やってみたブログ

組込みLinuxとかいろいろやってみた

BeagleBone Blackの起動 - Angstrom

BeagleBone Black(BBB)の内蔵FlashROMにはAngstrom Linuxが書き込まれていて、電源入れるとすぐにAngstromが起動するようになっている。

ホストPCとの繋ぎ方とかは、BeagleBoard.org - Getting Started を見てもらえばよい。

添付のUSBケーブルをBBBに接続してホストPCにつなげると、Angstrom Linuxが起動する。

電源供給のUSBはUSBターゲットとなっていて、USB Mass-storageが実装されている。つまり、ホストPCからはBBBがUSBメモリのように見えて、内蔵FlashROMの中身が見えるようになる。ホストPCがWindowsなら、リムーバブルデバイスとして認識されているはず。中にSTART.htmというファイルが入っているので、それをみると、上のGetting Startedと同じものが入っている。

 また、USB Ethernetとしても使える。Getting StartedのStep#2: Install driversにあるとおり、ホストPCにnetwork-over-USBドライバを入れると、IPで接続されるようになる。BBB内部ではWebサーバが動いているので、http://192.168.7.2/ に接続すればBBBのデモが動かせる。

 

Beaglebone Blackで組込みLinux開発環境(1) - 買うものリストに書いたFTDIシリアルコンバータがあれば、ホストPCにFTDIドライバをインストールする。FTDIドライバはGetting StartedのStep#2: Install driversのSerialドライバになる。

FTDIシリアルコンバータを次の写真のとおりに接続して、screenとかminicomでシリアル接続すればok。BBBのシリアルは3.3Vなので、シリアルコンバータのショートピンを3.3Vに設定しておく。

f:id:dekigl:20130914115926j:plain

f:id:dekigl:20130914115932j:plain

 

以下、Macでの例。Linuxだと/dev/ttyUSB0とかで認識されているはず。

screen /dev/tty.usbserial-AD020MLB 115200

 するとシリアルコンソールが見れるようになる。

.---O---.                                           
|       |                  .-.           o o        
|   |   |-----.-----.-----.| |   .----..-----.-----.
|       |     | __  |  ---'| '--.|  .-'|     |     |
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
                -'  |
                '---'

The Angstrom Distribution beaglebone ttyO0

Angstrom v2012.12 - Kernel 3.8.13

beaglebone login: root
Last login: Sat Jan  1 00:00:47 UTC 2000 on ttyO0
root@beaglebone:~# 

 

Beaglebone BlackでDebianを動かす

BeagleBone Blackの内蔵FlashROMに入っているAngstromを動かすのは

BeagleBone Blackの起動 - Angstromで説明した。ここではSDカードにDebianを焼いて、SDカードからDebianをブートしてみる。

基本的に、BeagleBoardDebian - eLinux.orgの手順どおりにやればokだけど、手っ取り早くpre-buildイメージを使って動かしてみる。Demo Imageにある手順でやればok、、なんだけど。。

作業はLinuxでやったほうがいいので、ホストPC上のVMにLinuxをインストールしておく。開発環境としては、Ubuntu 12.04@32bitがいい。なので、VMにUbuntuを入れておく。仮想マシンソフトはVMware PlayerでもVirtualboxでも好きたものを。私はデスクトップ用途だとVirtualboxが使いやすいと思う。

以下、Virtualboxに入れたUbuntu上で操作することを前提として記す。

  1. ホストPCにSDカードを挿し、VirtualboxにSDカードをアタッチする。このとき、UbuntuがアタッチしたSDカードを自動マウントするかもしれないので、アンマウントしておく。
  2. VMのUbuntuからは/dev/sdbとかのデバイス名で認識されるはず。どのデバイス名で認識されているかはcat /proc/partitionsとかで確認できる。
  3. Debian 7.1のpre-buildイメージファイルを取得する。大きいので時間かかるはず。
    wget https://rcn-ee.net/deb/rootfs/wheezy/debian-7.1-console-armhf-2013-08-26.tar.xz
  4. 展開
    tar xJf debian-7.1-console-armhf-2013-08-26.tar.xz
    cd debian-7.1-console-armhf-2013-08-26
  5. SDカードに書き込み。/dev/sdXはUbuntu上のSDカードのデバイス番号。このとき、gitとかがないとか言われるので、メッセージに書かれているとおりにapt-getしてから再度setup_sdcard.shを実行する。
    sudo ./setup_sdcard.sh --mmc /dev/sdX --uboot bone

SDカードにDebianを書き込んだら、BBBにSDカードをさして電源を入れる。シリアルコンソールにu-bootやカーネルメッセージが表示され、ログインが表示される。

DebianでもUSB Ethernetが活性化している。sshdも動いているので、ホストPCからsshログインできる。ユーザ名は"debian"、パスワードは"temppwd"。

  1. ssh debian@192.168.7.2

rootのパスワードはrootだけどsudoが使えるので、rootになりたければdebianユーザでログインしてsudoすればいい。

BBBのEthernet(普通のEthernetのほう)をブロードバンドルータとかに接続すれば、DHCPIPアドレスをとってくれるので、普通にインターネット接続ができる。

HDMIでテレビとかに接続しておけば、起動後にログインプロンプトがテレビに表示されているはず。USBキーボードが接続されていれば、ログインできる。

f:id:dekigl:20130914132241j:plain

 

ここまでくればPCで動くDebianと同じなので、あとは好きにすればいい。