ramdisk.image のシュリンク(2)


ramdisk.image の再シュリンク

ramdisk.image は非常用なので、/dev/fl1 を元に戻す機能だけあればよい という観点で、再度シュリンクを進めた。

立ち上がらないのでは意味がないので、 確認のため ramdisk.image を HDD に展開し、 何か消すたびにリブートして確認した。
結果、

-rw-r--r--    1 root     root      1322991 Jul 10 05:31 ramdisk.image.gz
ここまで小さくできた。
find -printls -lR

PAM のはずし方がわからない(汗)とか、
getty → login → sh にせずに inittab から sh を立ち上げたかったとか
まだまだ改善の余地はあるが、、、、

ヘッダ部分に 108 バイト
vmlinux.gz のサイズが 719,495 バイト
ramdisk.image.gz のサイズが 1,322,991 バイト
トータル 2,042,594 バイトの firmimg.bin ができることになる。
/dev/fl1 は 3MB なので、おおよそ 1MB の空きができた。

firmimg.bin の作成

久しぶりに ThinkPad 310 を引っ張り出してきた。
setsum, firminfo.txt, ramdisk.image.gz, vmlinux.gz を置き、
[yasunari@tp310 kurobako]$ ./setsum firminfo.txt vmlinux.gz -r ramdisk.image.gz -o firmimg.bin
Firm information struct size = 108 2
read config file:firminfo.txt
set date:2004/6/10 8:40:23
read Kernel file:vmlinux.gz(719495 bytes)
     initrd file:ramdisk.image.gz(1322991 bytes)
Firmware ID  :00001001
         Name:KURO-BOX(maru) ver 1.00
         Date:2004/7/10 8:40:23
kernel_offset:0000006C (719495bytes)
initrd_offset:000AFAF3 (1322991bytes)
total size: 2042594bytes
check sum = 6C1AB9B3 4
Done..
[yasunari@tp310 kurobako]$ ls -l firmimg.bin
-rw-r--r--    1 yasunari yamasita  2042594 Jul 10 08:40 firmimg.bin
firmimg.bin が出来上がった。

fl1 への書き込み

いよいよ FLASH へ書き込む
まずは、バックアップ
[root@hackkit /root]# cat /dev/fl1 > fl1.orig
cat: /dev/fl1: そのようなファイルやディレクトリはありません
ハックキットに /dev/fl? を入れてないのを思い出した。
[root@hackkit /root]# mknod /dev/fl0 b 250 0
[root@hackkit /root]# mknod /dev/fl1 b 250 1
[root@hackkit /root]# mknod /dev/fl2 b 250 2
[root@hackkit /root]# mknod /dev/fl3 b 250 3
[root@hackkit /root]# mknod /dev/fl4 b 250 4
[root@hackkit /root]# cat /dev/fl1 > fl1.orig
[root@hackkit /root]# ls -l fl1.orig
-rw-r--r--    1 root     root      3145728 Jul 10 08:47 fl1.orig
さあ、書き込むぞ。立ち上がらなくなったらどうしよう、、、
[root@hackkit /root]# cat firmimg.bin > /dev/fl1
POWER, DISK FULL, DIAG の LED が点滅する。いやに長い。
1分ほどで書き終わったが、こういう時って時間がたつのが遅い。

念のため、確認

[root@hackkit /root]# od -xc /dev/fl1 | less
0000000 0000 0001 0000 1001 4b55 524f 2d42 4f58
         \0  \0  \0 001  \0  \0 020 001   K   U   R   O   -   B   O   X
0000020 286d 6172 7529 0000 0000 0000 0000 0000
          (   m   a   r   u   )  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
0000040 0000 0000 0000 0000 2000 0000 0000 0000
         \0  \0  \0  \0  \0  \0  \0  \0      \0  \0  \0  \0  \0  \0  \0
0000060 0000 0000 0000 0000 0000 0000 0000 0000
         \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
0000100 0000 0000 0000 0000 0001 0000 0000 6807
         \0  \0  \0  \0  \0  \0  \0  \0  \0 001  \0  \0  \0  \0   h  \a
0000120 0a08 2817 001f 2ae2 6c1a b9b3 0000 006c
         \n  \b   ( 027  \0 037   * 342   l 032 271 263  \0  \0  \0   l
0000140 000a fa87 000a faf3 0014 2fef 1f8b 0808
         \0  \n 372 207  \0  \n 372 363  \0 024   / 357 037 213  \b  \b
0000160 1049 7f40 0203 766d 6c69 6e75 7800 ec5c
        020   I 177   @ 002 003   v   m   l   i   n   u   x  \0 354   \
	:
	:
かけているようだ。

リブート

リブートしてみる。
まずはハックキットがインストールしてある HDD をつないだ状態。
******* Product Information *******
----------------------------------
Product Name: KURO-BOX(maru)
          VER: 1.00
         Date: 2004/7/10 8:40:23
----------------------------------
Firmware check:done.

>>root=/dev/hda1
Now Loading...done.
Now Booting
Memory BAT mapping: BAT2=64Mb, BAT3=0Mb, residual: 0Mb
Linux version 2.4.17_kuro-box (root@toda_dev.melcoinc.co.jp) (gcc version 2.95.3
 20010315 (release/MontaVista)) #4 2004年 4月 16日 金曜日 11:45:05 JST
KURO-BOX (C) 2004 KUROUTO-SHIKOU.
On node 0 totalpages: 16384
zone(0): 16384 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/hda1
	:
	:
Vine Linux 2.6 (La Fleur de Bouard)
Kernel 2.4.17_mvl21-sandpoint on a ppc

hackkit login: 
問題なく立ち上がってきた。これで何とかなるぞ。

続いて、Windows が入っている HDD を接続して、EM モードで起動する。

******* Product Information *******
----------------------------------
Product Name: KURO-BOX(maru)
          VER: 1.00
         Date: 2004/7/10 8:40:23
----------------------------------
Firmware check:done.

>>root=/dev/hda1
Now Loading...done.
Now Booting
Memory BAT mapping: BAT2=64Mb, BAT3=0Mb, residual: 0Mb
Linux version 2.4.17_kuro-box (root@toda_dev.melcoinc.co.jp) (gcc version 2.95.3
 20010315 (release/MontaVista)) #4 2004年 4月 16日 金曜日 11:45:05 JST
KURO-BOX (C) 2004 KUROUTO-SHIKOU.
On node 0 totalpages: 16384
zone(0): 16384 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/hda1
	:
	:
Kroutoshikou KURO-BOX (IETSUNA)
kernel 2.4.17-kuro-box on ppc

KURO-BOX-EM login: 
よーし。

あとは、カーネルとローダか。
餅屋への道は長ひ。


ハックの記録 → ローダの改造

Copyright (C) 2004 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp
山下康成京都府向日市