やっぱりトラップ?

LS410D

initrd.buffalo を作りなおすと、ブートしなくなる。

凡例:
○:ブートすることが確認済み
?:ブートするかどうか未確認
×:ブートしないことが確認済み
とすると、、、

○ initrd.buffalo のタイムスタンプを変える
○ initrd.buffalo のサイズを変える
○ initrd.buffalo の image を作り直す
○ initrd.buffalo の image 内の initrd を gzip し直し
× initrd.buffalo の image 内の initrd を ar で作り直し

やっぱり initrd の作り方が悪いのか。。。

その前に、まだ確認ポイントが有った。
○ initrd.buffalo の image 内の initrd を gzip し直し
? initrd.buffalo の image 内の initrd のタイムスタンプを変える
? initrd.buffalo の image 内の initrd のサイズを変える
× initrd.buffalo の image 内の initrd を ar で作り直し

initrd.buffalo の image 内の initrd のタイムスタンプを変える

スクリプトの変更

touch してタイムスタンプを変える
root@qube:/srv/tftp/ls400-111# !vi
vi remakeinitrd.sh
	:
	:ここで編集
	:
root@qube:/srv/tftp/ls400-111# cat !$
cat remakeinitrd.sh
set -x

dd if=initrd.buffalo.orig of=/tmp/initrd.gz bs=64 skip=1
gunzip /tmp/initrd.gz

touch /tmp/initrd

#mkdir root
#cd root
#cat /tmp/initrd | cpio -id

#find . -depth -print | cpio -ovH newc > /tmp/initrd

#cd ..
#rm -fr root

gzip /tmp/initrd
mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /tmp/initrd.gz initrd.buffalo

rm -f /tmp/initrd.gz

rm -f ../initrd.buffalo
ln initrd.buffalo ..
root@qube:/srv/tftp/ls400-111#

スクリプトの実行

root@qube:/srv/tftp/ls400-111# bash remakeinitrd.sh
+ dd if=initrd.buffalo.orig of=/tmp/initrd.gz bs=64 skip=1
185731+1 records in
185731+1 records out
11886820 bytes (12 MB) copied, 8.13823 s, 1.5 MB/s
+ gunzip /tmp/initrd.gz
+ touch /tmp/initrd
+ gzip /tmp/initrd
+ mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /tmp/initrd.gz initrd.buffalo
Image Name:   initramfs
Created:      Sat Sep 28 18:26:19 2013
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    11929799 Bytes = 11650.19 kB = 11.38 MB
Load Address: 0x00000000
Entry Point:  0x00000000
+ rm -f /tmp/initrd.gz
+ rm -f ../initrd.buffalo
+ ln initrd.buffalo ..
root@qube:/srv/tftp/ls400-111#

tftp Boot

root@qube:/srv/tftp/ls400-111# !tail
tail -f /var/log/daemon.log
	:
	:
Sep 28 18:27:29 qube in.tftpd[2729]: connect from 192.168.11.150 (192.168.11.150)
Sep 28 18:27:29 qube tftpd[2731]: tftpd: trying to get file: uImage.buffalo
Sep 28 18:27:29 qube tftpd[2731]: tftpd: serving file from /srv/tftp
Sep 28 18:27:31 qube in.tftpd[2732]: connect from 192.168.11.150 (192.168.11.150)
Sep 28 18:27:31 qube tftpd[2733]: tftpd: trying to get file: initrd.buffalo
Sep 28 18:27:31 qube tftpd[2733]: tftpd: serving file from /srv/tftp
取りに来た。

しばらくして、白点灯。
起動してきた

○ initrd.buffalo の image 内の initrd を gzip し直し
○ initrd.buffalo の image 内の initrd のタイムスタンプを変える
? initrd.buffalo の image 内の initrd のサイズを変える
× initrd.buffalo の image 内の initrd を ar で作り直し

initrd.buffalo の image 内の initrd のサイズを変える

最期の確認ポイント、サイズを変えてみる

スクリプトの変更

root@qube:/srv/tftp/ls400-111# !vi
vi remakeinitrd.sh
	:
	:ここで編集
	:
root@qube:/srv/tftp/ls400-111# !cat
cat remakeinitrd.sh
set -x

dd if=initrd.buffalo.orig of=/tmp/initrd.gz bs=64 skip=1
gunzip /tmp/initrd.gz

echo >> /tmp/initrd

#mkdir root
#cd root
#cat /tmp/initrd | cpio -id

#find . -depth -print | cpio -ovH newc > /tmp/initrd

#cd ..
#rm -fr root

gzip /tmp/initrd
mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /tmp/initrd.gz initrd.buffalo

rm -f /tmp/initrd.gz

rm -f ../initrd.buffalo
ln initrd.buffalo ..
root@qube:/srv/tftp/ls400-111#

スクリプトの実行

root@qube:/srv/tftp/ls400-111# !bash
bash remakeinitrd.sh
+ dd if=initrd.buffalo.orig of=/tmp/initrd.gz bs=64 skip=1
185731+1 records in
185731+1 records out
11886820 bytes (12 MB) copied, 7.48311 s, 1.6 MB/s
+ gunzip /tmp/initrd.gz
+ echo
+ gzip /tmp/initrd
+ mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /tmp/initrd.gz initrd.buffalo
Image Name:   initramfs
Created:      Sat Sep 28 18:31:25 2013
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    11929800 Bytes = 11650.20 kB = 11.38 MB
Load Address: 0x00000000
Entry Point:  0x00000000
+ rm -f /tmp/initrd.gz
+ rm -f ../initrd.buffalo
+ ln initrd.buffalo ..
root@qube:/srv/tftp/ls400-111#

tftp Boot

root@qube:/srv/tftp/ls400-111# !tail
tail -f /var/log/daemon.log
	:
	:
Sep 28 18:32:03 qube in.tftpd[2759]: connect from 192.168.11.150 (192.168.11.150)
Sep 28 18:32:03 qube tftpd[2760]: tftpd: trying to get file: uImage.buffalo
Sep 28 18:32:03 qube tftpd[2760]: tftpd: serving file from /srv/tftp
Sep 28 18:32:05 qube in.tftpd[2762]: connect from 192.168.11.150 (192.168.11.150)
Sep 28 18:32:05 qube tftpd[2763]: tftpd: trying to get file: initrd.buffalo
Sep 28 18:32:05 qube tftpd[2763]: tftpd: serving file from /srv/tftp
取りに来た。

しばらくして、、

E07

カーネル?

という訳で、、、

○ initrd.buffalo の image 内の initrd を gzip し直し
○ initrd.buffalo の image 内の initrd のタイムスタンプを変える
× initrd.buffalo の image 内の initrd のサイズを変える
× initrd.buffalo の image 内の initrd を ar で作り直し
ar で作りなおしとか以前に、initrd のサイズを変えただけで 起動しなくなる。

こんなトコロがチェックできるのはカーネルだけ??

GPL-LGPL Resource - BUFFALO INC. で、カーネルソースが公開されていないのは このトラップがあるため?



LS410D

楽天市場
Amazon


仕切り直し
ハックの記録
LinkStation/玄箱 をハックしよう

BUFFALO さん、GPLに従い、LS410Dのカーネルソースを開示してください!

ツイート Tweet to @yasunari_y @yasunari_yをフォロー

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