前回からの続き
起動が完了するとログイン可能な状態になります。
しかし、何やら様子がおかしい。ちょっと見たことない画面。
パスワードも不明。
いろいろ調べたところ、 admin / admin でログイン出来た。
しかし、lsもない。なぜ?
と思ったら
MMCシリーズの専用UIに
ネットワークカメラなどの類似製品で使われているようです。
ここでshell を入力すると、ようやくいつものBusyBox shell に入れます。
MTD(NAND)構成は以下の通り。
カーネル、ユーザ領域ともバックアップとの2面構成になってるようです。
起動直後に'd'の入力で u-bootの環境に残ります。
ここで表示されるbootargが2系統準備してあり、片方でこけたら次に生きようになってるのかな?
bootarg1=setenv bootargs 'mem=64M console=ttyAMA0,115200 busclk=150000000 root=/dev/mtdblock5 rootfstype=yaffs2 mtdparts=hinand:8M(Ext),8M(logo),8M(kernel1)ro,8M(kernel2),64M(sys1)ro,64M(sys2),184M(fota),112M(sysdata),-(pic) panic=3'
bootarg2=setenv bootargs 'mem=64M console=ttyAMA0,115200 busclk=150000000 root=/dev/mtdblock6 rootfstype=yaffs2 mtdparts=hinand:8M(Ext),8M(logo),8M(kernel1),8M(kernel2)ro,64M(sys1),64M(sys2)ro,184M(fota),112M(sysdata),-(pic) panic=3'
見た限り、/dev/mtdblock5にyaffs2で作ったrootfsを書いてやればサクッとシステムが更新できるんじゃないでしょうか。
ところで、MMCスロットがあるのでアクセスできるか見てみましたが、
helpにmmcサブシステムがありません。
あちゃーと思いつつ、usb start してみたところ
hilinux # usb start
(Re)start USB...
USB: scanning bus for devices... 3 USB Device(s) found
scanning bus for storage devices... 1 Storage Device(s) found
え?USB Storage???
hilinux # fatls usb 0
...
system volume information/
1404 bootex.log1 file(s), 1 dir(s)
なんかいる!
hilinux # fatinfo usb 0
Interface: USB
Device 0: Vendor: Generic Rev: 1.68 Prod: Ultra HS-COMBO
Type: Removable Hard Disk
Capacity: 3781.5 MB = 3.6 GB (7744512 x 512)
Partition 1: Filesystem: FAT32 "NO NAME "
あ!これSDカードが見えてる。
なんとu-bootからSDカードが直アクセスできました。
で、fatload もあるので、u-bootのboot env を書き換えてやればたぶん普通にSDから起動できます。
すごいすごい。
さて、とりあえず、mtdblockにそのままwriteできるかどうか、
logoパーティションのBMPを書き換えてみます。
普通に起動したSDカードが使えるってなんて便利なんでしょう。
(ファミコンミニですごい大変だったのでものすごい楽)
[root@localhost /root]$ dd if=/dev/mtdblock2 of=/mnt/sd/part1/mtdblock2
16384+0 records in
16384+0 records out
ddで書き出したデータは以下のようなロゴになっていました。
u-bootが起動した直後に表示してくれるのでスマートな起動画面になりますね。
この時にコンソールにはこのように出ています。
prepare to show logo!
Decode LOGO(BMP format) OK
これをペイントで開いて、けもふれロゴジェネレータでつくった画像を突っ込みます
そして、
[root@localhost part1]$ dd if=mtdblock2 of=/dev/mtdblock2
2250+1 records in
2250+1 records out
で書き戻す。
再起動。
できたwwww
続く。