SSブログ

シリアルコンソールの設定を見直してみる [beagleboard]

無事,実機でAndroidが起動した.
起動時の様子をシリアルコンソールで観察してみようと思って,Mac側でTerminal.appを立ち上げ,screenコマンドを打って接続しておく.

でBeagleBoard-xMの電源をON!すると,
U-Boot 2010.06-rc1 (May 31 2011 - 09:45:26)

OMAP34xx/35xx-GP ES2.1, CPU-OPP2 L3-165MHz
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
DRAM: 256 MiB
NAND: 0 MiB
*** Warning - bad CRC or NAND, using defonment

In: serial
Out: serial
Err: serial
Beagle xM Rev C
Die ID #797e00029ff80000016830c404013014
Hit any key to stop autoboot: 0

ってところで止まってしまう.

本来は,「Hit any key to stop autoboot:」ってところの値がカウントダウンしていって,なにもKeyを押さないとAndroidがBootするようになっているみたいなのだが・・・.

screenコマンドを使って接続してない状態では,Androidが起動する.

試しに,Windowsマシン+TeraTermで試してみる.

おー,ちゃんと「Hit any key to stop autoboot:」のところがカウントダウンしてる.10から始まって,ほっとくと0になって,で,そっからAndroidがBootする.ログもいっぱい出てくるぞ.

んー,ってことは・・・,
可能性は2つ.
1.Mac用のUSB-シリアル変換ケーブルのドライバがなんかおかしい.
2.シリアルコンソールがなんかおかしい.

最初はUSB-シリアル変換ケーブルがおかしいとか,BeagleBoard-xM側がおかしいとかも疑ったんだけど,Windowsで試してうまくいったので,それはないと判断.

で,もし1.だとすると,どうにも手出しできそうもない.ドライバの解析なんてわからん.できるとしたら別のUSB-シリアル変換ケーブルを試してみるとかするしかなさそうだけど,さすがに我が家には2種類のUSB-シリアル変換ケーブルは無い.

ってことで2.の可能性について調べてみる.
現象からみて,Mac側から「Hit any key」に相当するなんかを基板側に送っているようだ.つまり,Macがkeyを押したと同等の信号を基板側に送っているので,Bootのシーケンスがそこで止まっているってこと.

んー,screenの設定かなぁ・・・.ってことで見直してみる.
怪しそうなのは,フロー制御とか?と思っていろいろやってみる.

まず,今の設定がどうなっているか確認するために,
stty -a
ってしてみる.
いろいろ出てくる.こいつの意味は調べると,パリティとかストップビットとかフロー制御とか,それ以外にもいろいろどう設定されているかが分かるようになっている.

で,まぁいろいろ試しました.特にフロー制御に関連しそうなところを重点的に.
でも,症状は変わらず.絶対なんか送ってやがるんだけどなぁ・・・.

仕方ないので,screenをあきらめて,別のシリアルコンソールを試してみる.
minicomってのが使えるようだ.

ネットで検索すると,自分でコンパイルしている人もいるようだが,とりあえずはバイナリで試してみる.
バイナリはここからダウンロードして,インストール.
ブツは,
/opt/minicom/2.2/
にインストールされる.あと,/opt/bin/にシンボリックリンクというかエイリアスが作成されるようだ.
パスは通してくれないので,自分で通しておく必要がある.ま,とりあえずはお試しなのでパスを通すのは後回し.

で,最初に設定が必要なので,

/opt/bin/minicom -s
で起動してやる.
「Serial port setup」でシリアルデバイスの設定をデバイス名でしてやる必要があるので,screenコマンドの時と同じデバイス名を設定.ボーレートとかはデフォルトのままでよかったのでそのまま.まぁデフォルトが何になっているかは環境によって違うかも.
「Save setup as dfl」で設定を保存.
いったんminicomを抜けて,今度はコマンドオプションなしで起動.
/opt/bin/minicom
これでつながる.

で,これでBeagleBoard-xMの電源をONすると・・・.
「Hit any key to stop autoboot:」のところで止まることなく,カウントダウンもされて,無事,起動しました.

ってことで,screenに問題があるようで.
なんか設定があるんだろうと思って,再度オプションをいろいろ変えて試してみたけど・・・.
やっぱりダメ.

まぁscreenにこだわる必要はないので,今後はminicomを使うことにします.
nice!(0)  トラックバック(0) 

nice! 0

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。