Sirius

2007年1月28日(日) 20:01

mkimage のコンパイル

注意。initrd の修正をミスすると、LS-GL が起動しなくなることがあります。自己責任でお願いします。

今まで、initrd.buffalo の作成に mkimage がなかったので、玄箱で作成していましたが、いちいち面倒なので LS-GL で出来ないかを試しました。

海外の linkstation wiki に mkimage がありますが、ライブラリの不整合でうまく動きませんでした。
そこで、せっかくコンパイルできるのだから。コンパイルしてみました。
Linkstation wiki の uboot_1.11_MSSII.tar.bz2 を展開します。

# bzcat uboot_1.11_MSSII.tar.bz2 | tar xvf -
# make cradle_config
# make
エラーが出ますが、mkimage は作成されます。tools の下に作成されます。mkimage をパスの通った場所にコピーします。

initrd.buffalo から initrd を取り出すには次のようにします。
# dd if=initrd.buffalo of=initrd.gz bs=64 skip=1
# gunzip initrd.gz

これで initrd が取り出せます。これをマウントしますが、LS-GL には loop デバイスがないので、作成します。

# cd /dev
# mknod loop0 b 7 0
# mknod loop1 b 7 1
# mknod loop2 b 7 2
# mknod loop3 b 7 3
# mknod loop4 b 7 4
# mknod loop5 b 7 5
# mknod loop6 b 7 6
# mknod loop7 b 7 7

では、initrd.buffalo の作り方。

initrd を作り変える場合は、initrd をマウントします。
# mkdir /mnt/tmp
# mount -o loop initrd /mnt/tmp
必要に応じて /mnt/tmp 以下のファイルを修正します。

initrd.buffalo を作ります。
# umount -d /mnt/tmp
# gzip initrd
# mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd -d initrd.gz initrd.buffalo
万が一を考え、/boot にある initrd.buffalo をリネームし、作成した initrd.buffalo を /boot にコピーすれば、修正した initrd で起動されます。

最近、LS-GL しかさわってないな〜。

written by sirius [/Linkstation] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Sirius

MySketch 2.7.2 written by 夕雨