Happy My Life

日常とか技術とか

Beagle BoardでAngstorm

Rev C2 Beagle Board running Android なんとか環境整えてThe Angstrom Distribution | Embedded powerが動くようになった。

と言っても、BeagleBoard.jp blog | Beagle BoardでAngstromを動かすや、HowToGetAngstromRunning - From New Beagleboard to Linux (Angstrom Distro) Runningを読みながら進めていっただけだが。

いくつかハマった点を上げてみる。

Section I. Assembling the Pieces

BeagleBoardShoppingList - beagleboard - A list of vendors and items that you’ll need with Beagleboard - Google Codeに必要な機材が挙げられているが、全て用意する必要はない。

今回の場合は

  • Beagle BoardとPCをシリアル接続(DB9M to IDC10Fケーブル、USB-RS232C変換ケーブル、クロスケーブル)
  • Beagle Boardとディスプレイを接続(HDMI-DVI変換コネクタ)
  • Beagle Boardへの電源供給(A-type mini-Btypeケーブルを使ったUSB OST接続)

これだけは用意した。あと接続も。

次に、PC上にLinux環境を構築する必要がある(ext3などLinuxパーティションを作成する必要があるため) VMWare PlayerにUbuntuを入れておけばOK。上記のページにも書いてあるが、ググるのもありかと。

Section II. Setting Up the Angstrom SD Card

この章が一番の難関の気がするので詳しく解説する。

SDカード(2G以上)をパーティション分割しなくてはいけない.LinuxBootDiskFormat - beagleboard - How to create a dual-partition card for BeagleBoard to boot Linux from first partition and have root file system at second partition. - Google Codeの手順でパーティションを作成する。

この中でも特に注意すべき点が

  • SDカードがマウントされたデバイスを確認すること(/dev/sdb, /dev/sdcなど)
  • fdiskでSDカードの情報を見たときに、SDカードの総バイト数をメモすること
  • 総バイト数を元に、シリンダ数を算出すること (シリンダ数 = SDカードの総バイト数 ÷ 255 ÷ 63 ÷ 512 。小数点以下切捨て )

次にブートファイル等をSDカードにコピーする。

Index of /demo/beagleboardから以下のファイルをダウンロード

  • Angstorm-Beagleboard-demo-(中略).tar.bz2
  • MLO
  • u-boot.bin
  • uImage
  • x-load.bin.ift

そして、FAT領域にMLOを最初にコピーし、残りu-boot.bin,uImage,x-load.bin.iftをコピー。ext3領域に、Angstorm-Beagleboard-demo-(中略).tar.bz2を展開する。

Section III. Putting New X-Loader into Beagleboard NAND Flash Memory

手元のBeagle Board Rev C2では、必要ないらしいので今回は省略した。

Section IV. Setting Up Your Automatic Boot

シリアルコンソールから書き込む必要がある。今回は最新版(2.6.28)のカーネルを使用したので以下のように実行した

OMAP3 beagleboard.org # setenv bootargs ‘console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait omapfb.video_mode=1024x768MR-16@60’ OMAP3 beagleboard.org # setenv bootcmd ‘mmcinit; fatload mmc 0 0x80300000 uImage; bootm 0x80300000’ OMAP3 beagleboard.org # saveenv

あとは、SDカードをBeagle Boardに差して、シリアルコンソールに流れるブートプロセスを眺めながら起動するのを待てば、Angstormの起動画面が表示されるはず。

一発で起動する事も稀だと思うので、エラーメッセージを参考に解決していけば、必ず起動する。

ハードウェアリファレンスはちゃんと読んでおけ

組込系に取り組むなら、ハードウェアリファレンスを予め隅から隅まで読んでおくのは常識なのだが、久しぶりなのですっかり忘れていた。

Angstorm起動後、キーボードやマウスをUSB接続しても、ウンともスンとも言わないので、なんでだろう?と調べていったら、ここにはUSB 2.0に対応した機材のみ接続できるよ、との記述が。

接続した機材がUSB 2.0に対応してない可能性もあるので、全然動かないのは、おそらくそのあたりが原因ではないだろうかと。

ちゃんとしたリファレンスがあるんだから、あらかじめ読んでおくべきだったなーと、少し後悔。みなさん気をつけましょう、という事で。