BeagleBoard Rev.Cの動作確認をしてみる

Beagleboard動作確認のため以下のサイトを参考に進めました.

Validating Beagle Board (Rev C and Rev B) with Tests / Diagnostics

基本的には

  1. SDのフォーマット
  2. SDへブートローダカーネルイメージをコピー
  3. SDをBeagleBoardへ差し込んで起動

この3ステップで動作確認用のLinuxが起動します.

そしてLinuxが起動したら

  1. キーボードからコマンド入力
  2. 動画ファイル(AVI)を再生
  3. 自分の声を録音・再生

なんてことができました.

ただUSB-LANなどを所持していないため,参考元サイトの一部の動作確認しかできませんでした.
ともあれ,動作確認手順を以下に記していきます.

SDのフォーマット

HP USB Disk Storage Format Tool
をダウンロードしてインストールします.
そして,それを起動してSDをFAT32でフォーマットします.

SDへブートローダカーネルイメージをコピー

次に上記サイトValidating Beagle Board (Rev C and Rev B) with Tests / Diagnostics
上部にある

 MLO as MLO 
 u-boot as u-boot.bin 
 u-boot for flash as u-boot-f.bin 
 ramdisk image as ramdisk.gz 
 Kernel (uImage) as uImage.bin 
 reset.scr as boot.scr 
 x-loader image as x-load.bin.ift 
 Regular script file as normal.scr 

のリンクされたファイルを,新しく作成したフォルダへすべてダウンロードしてリネームしておきます.
(例えばu-bootをクリックするとu-boot_revc_v3.binファイルがダウンロードされるため,u-boot.binへリネームする)

そしてさきほどフォーマットしたSDへ上から順にコピーします(特にMLOは最初のセクタへ書き込む必要があるため)

以上で動作確認用のLinux環境の構築は完了です.

SDをBeagleBoardへ差し込んで起動

Linux環境をコピーしたSDをBeagleBoardのSDスロットへ差し込みます.
そして電源を入れるわけですが,その前に準備が必要です.

まず,BeagleBoardのメッセージを確認するために端末が必要になります.
WindowsであればTeraTermをインストールするとよいと思います.
そして以下のような設定にします.

COMポート番号はデバイスドライバで確認してください.

端末の設定は以上です.
次にBeagleBoardの周辺回路のチェックです.

  • SDカード挿入
  • シリアルポートの接続
  • HDMI-DVIコネクタでディスプレイと接続
  • Audio-Inへマイク,Audio-Outへイヤホンを接続
  • USB-HUBを接続
  • USB-HUBにキーボードを接続

そしていよいよ電源投入です.
最初は必ずUSERボタンを押しながら電源を入れます.
そうすることでSDからブートします.

電源を入れてすぐにメッセージが流れ始めます.

Texas Instruments X-Loader 1.41
Starting on with MMC 
Reading boot sector

197528 Bytes Read from MMC 
Starting OS Bootloader from MMC...

MMCと文字が見えればSDからのブートに成功です.

U-Boot 2009.01 (May 28 2009 - 09:59:16)

I2C:   ready
OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
OMAP3 Beagle board + LPDDR/NAND
DRAM:  256 MB
NAND:  256 MiB
*** Warning - bad CRC or NAND, using default environment

MUSB: using high speed
mtdparts variable doesn't start with 'mtdparts='
mtdparts variable doesn't start with 'mtdparts='
mtdparts variable doesn't start with 'mtdparts='
mtdparts variable doesn't start with 'mtdparts='
mtdparts variable doesn't start with 'mtdparts='
In:    serial usbtty 
Out:   serial usbtty 
Err:   serial usbtty 
Board revision C

revision Cとでました.

〜 略 〜

.-------.
|       |                  .-.
|   |   |-----.-----.-----.| |   .----..-----.-----.
|       |     | __  |  ---'| '--.|  .-'|     |     |
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
                -'  |
                '---'

The Angstrom Distribution beagleboard ttyS2

Angstrom 2009.X-test-20090305 beagleboard ttyS2

beagleboard login:

ここまでくればあとはrootと入力すればログインできます.

以下,TeraTermの端末上から操作できるようになります.

キーボードを使ってみる

ディスプレイを接続していればLinuxのログイン画面がディスプレイに表示されるのでTeraterm端末からだけでなくキーボードから直接コマンド入力ができます.

※私のUSBキーボードでは,Linux起動後にUSBに差し込んでも認識されなかったので起動前からUSBキーボードを差し込むと認識されました.

動画ファイルを再生してみる

あらかじめAVIファイルが入っているのでそれを再生します.

[root@beagleboard mmc]# svideo
[root@beagleboard mmc]# mplayer /sample_video.avi

するとディスプレイに海外のアニメが流れ始めます.
音も流れるのでスピーカーチェックもできます.

自分の声を録音してみる

まずマイク入力から録音ファイルを作ります.

ただし,動作確認用のLinuxファイルシステムがROM上に展開されるようになっているためファイルの保存ができません.
なのでSDをマウントしてそこに録音ファイルを作ります.

[root@beagleboard /]# mount -t vfat /dev/mmcblk0p1 /mnt
[root@beagleboard /]# cd /mnt

そして以下のコマンドでk.wavファイルを作ります.
コマンドを打ち込んでからマイクに声を入れて終了するときはCtrl+Cします.

[root@beagleboard mmc]# arecord -t wav -c 2 -r 44100 -f S16_LE -v k.wav

k.wavファイルを再生すると自分の生ぬるい声が聞こえてきます.

[root@beagleboard mmc]# aplay -t wav -c 2 -r 44100 -f S16_LE -v k.wav

以上で簡単な動作確認は終了です.

上にも書きましたが今回USB-LANなど手元になかったものはテストを見送りました.
参考元サイトではさらにS-VideoやUSBマウスのテストなどの方法が解説されています.

最後に補足として
reset.scr を boot.scr へリネームしたスクリプトファイルは毎回NANDをフラッシュするのでNANDの書き換え回数を気にする人は2度目以降の起動時には normal.scr を boot.scr へリネームして使用するといいかもしれません.


    • -

ここから余談・・・というか失敗談?

はじめ上記サイトを参考に進めていたんですが,間違えて別のページのブートファイルをDLしてしまい
(レイアウトが似ているから間違えた(汗))
そのファイルをNANDに書き込んで,気づかずにブートさせると,なぜかメッセージで

DRAM:  256 MB

となるはずの部分が

DRAM:  128 MB

と表示されていました(!?)
しかも起動しない・・・
DRAMがはやくも逝ってしまったか,とかなりあせりました.
ホンキで初期不良Digi-Keyに問い合わせようとしましたが,自分が間違えていることに気づき

参考元にあるブートファイル一式とreset.scrをboot.scrにリネーム,SDへコピーし,USERボタンを押した状態でbeagleboardを起動すると無事直りました.

このreset.scrをboot.scrとして使用するとNANDから古いx-loadとu-bootの情報を消し,SD上のx-loadとu-boot-f.binをNANDへコピーしているようです.

ようやくDRAMの表記は256MBに戻り,カーネルブートできました.
128MBと表記された原因はおそらく,間違えてrev.B仕様(DRAM:128MB)のブートローダを使用したためだと思います.


ともあれ動作確認はできました.
次はXが搭載されたLinuxをブートさせてみたいと思います.