HD-120LAN ハックキット化まとめ


HD-120LAN Ver.1.x のハックキット化の手順をまとめる。

シリアルコンソールの追加

携帯電話データ転送ケーブル 9−KEなどを使用して、 シリアルコンソールを使えるようにする。

Ver.2 では、HDD を取り出して PC に接続、Linux PC で作業すれば、 シリアルコンソールは不要かも。

ext3 化

/mnt を umount し、ext3 でフォーマットする
root@SECO:/# umount /mnt
root@SECO:/# mkfs -j /dev/hda1
root@SECO:/# mount /mnt
/mnt/share, /mnt/share-mac を作成

ハックキットの展開

ファイル共有を経由して、/mnt/share に hackkit-1.2.tar.gz を転送し、 /mnt/HackKit に展開する。
root@SECO:~# cd /mnt
root@SECO:/mnt# mkdir HackKit
root@SECO:/mnt# cd HackKit
root@SECO:/mnt/HackKit# tar zxvf ../share/hackkit-1.2.tar.gz
	:
	:

fstab の変更

/mnt/HackKit/etc/fstab から /dev/hda2, /dev/hda3 の行を消す

ジェイル内 rc 作成

/mnt/HackKit/etc/rc.d/init.d/hackkitjail を作成する
#!/bin/sh
#
# HackKit
#

start() {
	touch /fastboot
	rm -f /.autofsck
	/etc/rc.d/rc.sysinit
	for f in /etc/rc.d/rc3.d/S*
	do
		$f start
	done
}

stop() {
	for f in `ls /etc/rc.d/rc3.d/S* | sort -r`
	do
		$f stop
	done
	umount /proc
	umount /dev/pts
}


case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	*)
		echo "Usage: $0 {start|stop}"
		exit 1
esac

exit 0

melsub_diskcheck.sh 作成

/mnt/HackKit/www/script/melsub_diskcheck.sh を作成する
#!/bin/sh

if [ `df | sed -n -e 's;^/dev/hda1.*[ ]*\([0-9][0-9]*\)%.*$;\1;p'` -ge 90 ]
then
	echo -n "WWWW" > /dev/ttyS1
	
	exit 1
fi

echo -n "VVVV" > /dev/ttyS1
exit 0

rc 作成

/etc/rc.d/init.d/hackkit を作成し、 /etc/rc.d/rc0.d/K10hackkit, /etc/rc.d/rc2.d/S96hackkit にシンボリックリンクする
#!/bin/sh
#
# HackKit
#

start() {
	/etc/rc.d/init.d/atalk stop
	/etc/rc.d/init.d/smb stop
	/etc/rc.d/init.d/cron stop
	/etc/rc.d/init.d/thttpd stop
	/etc/rc.d/init.d/inetd stop
	/etc/rc.d/init.d/syslog stop
	kill `cat /var/run/apservd-eth0.pid`
	/etc/rc.d/init.d/networking stop

	/etc/rc.d/init.d/atalk stop
	
	rm -fr /www
	mkdir /www
	mkdir /www/script
	cp /mnt/HackKit/www/script/*.sh /www/script

	/mnt/HackKit/usr/sbin/chroot /mnt/HackKit /etc/rc.d/init.d/hackkitjail start
}

stop() {
	/mnt/HackKit/usr/sbin/chroot /mnt/HackKit /etc/rc.d/init.d/hackkitjail stop
}

test -x /mnt/HackKit/etc/rc.d/init.d/hackkitjail || exit 1

case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	*)
		echo "Usage: $0 {start|stop}"
		exit 1
esac

exit 0

rc をフラッシュに保存

/dev/fl0 に自動起動スクリプトを保存する
root@SECO:~# as_flash /dev/fl0 get -n /tmp/conf_save.tar.gz --output /tmp/conf_save.tar.gz
root@SECO:/# /mnt/HackKit/usr/bin/gunzip /tmp/conf.tar.gz
root@SECO:/# tar rfp /tmp/conf_save.tar etc/rc.d/*/*hackkit
root@SECO:/# gzip /tmp/conf_save.tar
root@SECO:/# as_flash /dev/fl0 add -n /tmp/conf_save.tar.gz
root@SECO:/# as_flash /dev/fl0 list
0 -> /tmp/conf_save.tar.gz
HD-LAN Ver.2 であれば、 ファームウェアアップデータに入れるだけでよいはず
こんなところでしょうか。
どなたか、追試をお願いします。
LinkStation/玄箱 をハックしよう → 回転が止まらない WD1200AB

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