2011/02/05

beagleboardとの日々2

前回の続きで、今回は

2. b君(以後b)に関して深く知りたい編(インスコ前準備)

を綴っていければと思います。具体的には、bに関してまずは少し調べて、それからandroidポーティングの準備を行います。


まず、bに関してですが、スペックを少し

僕がさわっているbはRevC2で、CPUはOMAP3530 ES3.0というものらしく、シリーズとしてはARM Cortex-A8(780MHz)らしい。FlashROMは256MB、SDRAMは256MB@166MHzとのこと。

へぇ。他にも色々とSDカードスロットがあるとか、USBホストになれるとか、JTAG、Serialデバッグ可能ですとか。

まぁ写真を見た方がはやいですね。。データはbeagleboard公式からここから。



こんな感じです。で、プロセッサである、OMAP3530のデータシートはここ

あと、簡単なシステムダイアグラム。



もはや高性能すぎて全部の機能について調べる気が...
とにかくいろいろできて、えらいやつなのだなぁと実感。

ただ一つ気になったのが、USB-OTGとUSB-HOSTってなにが違う訳?
マニュアルみてたけど、OTGの方はほぼ電源とるとこ用っぽいですね。HOSTの方が、USBホストとして動作可能ということ。

で、とにかくポーテイングしてみよう!という訳で、私のほろ苦いb生活が始まったわけです。

まずポーティングするために何が必要なのか、色々調べて、下記を用意しました。

・b君自身(RevC2)
・Mac Book Pro
・5V電源 (センタ+)
・DVI<->HDMI変換ケーブル
・DVI入力のあるモニタ
・USB mini(Bタイプ)<->USB(Aタイプ)変換ケーブル
・SDカード2Gくらい
・USB<->Serial変換モジュール(とジャンパ線)

で、大まかなポーティングの手順としては

  1. 前準備で各種必要なソフトをインスコ
  2. SDカードにパーティションをきって各種ファイルを書き込む
  3. SDカードをbにセットして、電源ON
  4. 起動

    (※別途、シリアルコンソールでubootの起動プロセスを設定することもできるらしい)


どういう手順でポーティングするかというと、下記のサイトを参考にしました。

前準備に関しては、下記のサイトを参考に、ubuntu9.10をvmwareにセット、java5やら、gitやら、repoやら必要なものを逐一ダウンロードして割とスムーズに完了

http://www.facebook.com/note.php?note_id=374748694361


次に、SDカードに〜ってことで下記を参考にしながら進める。

http://code.google.com/p/android-development-environment/wiki/FroyoOnBeagleBoard

この手順で、Froyo(Android 2.2)がポーティングできるとのこと。ということで進めていった訳ですが、、

第一のはまりどころがAndroidのmake....
一夜あけても、bはmakeできない。。朝makeうって、夜帰ってモニタをみてもまだ終わっていない..というかとまってんじゃね?

なぜだ!!ということで、目を皿にして上記手順をながめる...あれ? makeのパロメータが違う...

make -j2 じゃなくてmake -j8 じゃん...

てっかj2とかj8ってなに? CPUのコアすう設定とかどっかに書いてあったけど、どうやってしらべりゃいいの?
Makefileみても、それらしきことかいてないし。

だれかおせーて。

ま、makeとおったということで、次へ進む。

今回試すbのブートプロセスとしては、

電源ON -> SDカード読み出し -> MLO(xLoader) -> uboot -> kernel -> init(Android起動)

という順でブートさせればいいとのこと。

上記リンクの手順にはMLOとubootのインスコ手順は書いていない。。ということでまた別で用意した。
下記リンクからダウンロード。

http://code.google.com/p/beagleboard/downloads/list

よっしゃ、全てそろった!ということで後はSDに

第1パーティション: MLO -> uboot -> uImage(kernel)
第2パーティション: Android起動イメージ

を書き込めばいいはずっ!!

ということでSDカードへの書き込みを終了し、各パーティションをumount。







に、

SDカードヲbニヨミコマセルトキガ..ヒャッホーーーーー!2828という感じで、接続作業を進めたわけです。

bのHDMI出力からDVI変換でモニタにつないで、usb<->serialモジュールをPCと接続(秋月のFTDIのモジュールを使ったので別途ドライバをゲトしてから)、SDをセットして、シリアルコンソールを開く(ubuntuを開いているくせに何故かmacのscreen上で)。

$ls /dev/tty.* (これで希望のモジュールを発見し)
$screen /dev/tty.usbserial-A7004CuM 115200 (これで開く)


8bit長、パリティなし、ストップビット1、フロー制御なしの baudrate 115200で開くはず..

そして、5V電源を、、、つなぐっ。


おおーーーーーーー!b犬!!いったかー!


あれ、止まる。


コンソールはこんな感じでばけばけ。




接続はこんな感じ。

こっから、ネトーリとしたbとの日々が始まる。

何が原因なのだろうか。。。はて。

とりあえず色々試しました。

何でシリアルからの文字がばけばけなの?
・usb<->シリアルモジュールは正常動作しているか?
->別の新品モジュールでも試して、同様の動作なので、動作しているポイ(まぁ正確を期すためには、目的のbaudrateでループバックとかしてみろってはなしだけれど何故かやってないorz..)

・結線(tx, rx, gnd)は間違ってないか
->マニュアル見てヘッダ位置、必要な結線箇所確認したので間違っていないハズ
->テスタで通電も確認した

・PC側の問題でないか?
->vmware上のWindows上のteratermでも同様だったのでおそらく文字コードやらPC側ソフトの問題ではない
->vmwareのWindowsのBIOS設定もシリアル接続enableにしてある


何でHDMIからの出力画面がいつも同じところで止まるの?てか、正しい画面なの?
・bの起動プロセスは間違っていないか?
->起動プロセス確認しようにも、どうやって確認すれば?

・SDカードちゃんと読み込まれてる?
->ジツハSDカード挿しても挿さなくても同じ画面なんですけどーーー

うーーーーーん。。bと私の間に深い溝ができ(ru..

最終的に、私のbへの理解が足りていない、、デバッグ力が足りていないーーーという事で、次の1手をどう打てばいいのか、、、誰かヘルプミー

#なんとなくSDがうまく書き込めていないor読み込めていない気もするけど...
#てか、SDも、microSDアダプタを使っている訳ですがそれもまずかったりするのか..

About Me

自分の写真
目指せネイチャアプログラマ!Objective-C/Cocoa、web系スキルも絶賛習得中。Nature Interfaceに興味ありあり。
Powered By Blogger

Mitolog © 2008. Template by Dicas Blogger.

TOPへ