Thanks Driven Life

日々是感謝

GuruPlug JTAG が届いたので Kernel アップデート&失敗

GuruPlug の JTAG を単品で注文するという残念なことをしました。
なので今いろいろ遊んでいます。
とりあえずカーネルをあげようかなと。

 # wget http://sheeva.with-linux.com/sheeva/README-2.6.34.6
 # sh README-2.6.34.6 --nandkernel
 # shutdown -r now

その後 JTAG つないで Uboot の出力みてたんだけど
カーネルが立ち上がってる途中で止まってた。
いろいろ見てたら、出荷時の uboot のバージョン (Marvell-Plug2L) だと
新しめのカーネルが起動しないらしい。なのでまずは uboot からアップデート。

ここで失敗しました。

アップデートする uboot イメージを持ってくる

まずは uboot のイメージとかその他いろいろあるやつを取ってくる

 # wget http://guruplug.googlecode.com/files/testenv.zip.00{1,2,3}
 # cat testenv.zip* > testenv.zip
 # unzip testenv.zip
 # tar jxf testenv.tar.bz2

アップデート自体は MacBookPro で TFTP サーバを立ち上げてやるので
展開したやつを tftpd の場所に移動

 # mv testenv/* /private/tftpboot/

GuruPlug JTAGMac Book に認識させる

FTDI のドライバーをとってきてインストールする。

http://www.ftdichip.com/Drivers/VCP.htm

設定ファイルに、JTAG 用の設定を書く。
すでにある設定を見て、適当なとこに追加すればいいとおもう。

 # vi /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist
                <key>SheevaPlug JTAGKey FT2232D A</key>
                <dict>
                  <key>CFBundleIdentifier</key>
                  <string>com.FTDI.driver.FTDIUSBSerialDriver</string>
                  <key>IOClass</key>
                  <string>FTDIUSBSerialDriver</string>
                  <key>IOProviderClass</key>
                  <string>IOUSBInterface</string>
                  <key>bConfigurationValue</key>
                  <integer>1</integer>
                  <key>bInterfaceNumber</key>
                  <integer>0</integer>
                  <key>idProduct</key>
                  <integer>40591</integer>
                  <key>idVendor</key>
                  <integer>40584</integer>
                </dict>
                <key>SheevaPlug JTAGKey FT2232D B</key>
                <dict>
                  <key>CFBundleIdentifier</key>
                  <string>com.FTDI.driver.FTDIUSBSerialDriver</string>
                  <key>IOClass</key>
                  <string>FTDIUSBSerialDriver</string>
                  <key>IOProviderClass</key>
                  <string>IOUSBInterface</string>
                  <key>bConfigurationValue</key>
                  <integer>1</integer>
                  <key>bInterfaceNumber</key>
                  <integer>1</integer>
                  <key>idProduct</key>
                  <integer>40591</integer>
                  <key>idVendor</key>
                  <integer>40584</integer>
                </dict>

そんでもってドライバロード

 # kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext

Uboot アップデート

準備おkなので JTAG を GuruPlug とつなげる

 # screen /dev/tty.usbserial-XXXXB 115200

「XXXX」は環境によって変わるとおもうので予め調べとく。

つなげたあと、uboot 起動。reboot 後キーを叩けば出るはず。

次に、uboot イメージを tftp サーバから取ってくるためのじゅんび

 Marvell>> setenv serverip 192.168.0.2 # tftp のサーバ。
 Marvell>> setenv ipaddr 192.168.0.3 # GuruPlug 。同じセグメントで適当に

実際にイメージをとってきて、NAND に書き込む
・・・わかる人にはわかると思うけど、ここでミスりました。

 Marvell>> tftp 0x6400000 rootfs.ubi.img # tftp サーバの /private/tftpboo/rootfs.ubi.img のこと
 Marvell>> nand erase 0x0 0x100000
 Marvell>> nand write.e 0x6400000 0x0 0x100000

rootfs.ubi.img ってのはそのなのとおり、rootfs のイメージ。
こいつを nand write で uboot イメージの領域に書き込んだ。

結果:uboot が起動しなくなった。

その後はシリアルコンソールでもつながらなくなった。
なにもできない。これぞ何もできない!!


続く