#!/bin/sh
#
# HackKit
#
# chkconfig: 2 96 06
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/melsub_shutdown.sh /www/script/melsub_shutdown.sh
	/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
HD-LAN Ver.2 だと、
ファームウェアアップデータがディスク上にあるようなので、
そこに入れてしまえばいいのだろうが、
HD-LAN Ver.1 だとそうもいかない。
/etc/rc.d/init.d/ にファイルを置く方法を普通に考えると、 D-RAM に展開されるファイルシステムは、 /dev/fl1 の ramdisk.image.gz に収められているので、
大変だなぁ、、、と思っていたら、 通勤途上に:-)良い案を思いついた。
/dev/fl1 ではなく、/dev/fl0 に入れるのである。
/dev/fl0 には、設定ファイルを収めた conf_save.tar.gz が保存してあるが、
/etc/init.d/load_config で conf_save.tar.gz を D-RAM に展開する際、
何のチェックも行っていない。
つまり、conf_save.tar.gz に入れておけば、
どんなファイルでも展開されるはずである。
早速試してみる
まずは、conf_save.tar.gz の取り出し
root@SECO:~# as_flash /dev/fl0 get -n /tmp/conf_save.tar.gz --output /tmp/conf_save.tar.gzrc を整える
root@SECO:~# cd /etc/rc.d/ root@SECO:/etc/rc.d# cd rc2.d/ root@SECO:/etc/rc.d/rc2.d# ln -s ../init.d/hackkit S96hackkit root@SECO:/etc/rc.d/rc2.d# cd ../rc0.d/ root@SECO:/etc/rc.d/rc0.d# ln -s ../init.d/hackkit K10hackkitconf_save.tar.gz に追加する
root@SECO:/# gunzip /tmp/conf_save.tar.gz bash: gunzip: command not foundあたた、ハックキットの gunzip を使う
root@SECO:/# /mnt/HackKit/usr/bin/gunzip /tmp/conf.tar.gz root@SECO:/# tar rfp /tmp/conf_save.tar etc/rc.d/*/*hackkitfl0 に書き込む
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
******* Product Information *******
----------------------------------
Product Name: HD-LAN
          VER: 1.23
         Date: 2004/5/10 11:24:1
----------------------------------
Firmware check:done.
>>
Now Loading...done.
Now Booting
(略)
INIT: Entering runlevel: 2
Starting AP serv daemon:AP serv starting on eth0
Starting internet superserver: inetd.
Start services: thttpd
Starting periodic command scheduler: cron.
Starting AppleTalk services: (backgrounded)
Start services: smbd nmbd
Start services: ppc_uartd
(ここまでが LinkStation Linux。この下から ジェイルのハックキット)
Stop servecies: atalkd afpd
Can't unregister SECO:Workstation@*
Can't unregister SECO:netatalk@*
/etc/rc.d/rc2.d/S90atalk: line 7:   150 Terminated              /usr/sbin/atalkd
 -f /etc/atalk/atalkd.conf
Stop services: smbd nmbd
Stopping periodic command scheduler: cron.
Stop services: thttpd
Stopping internet superserver: inetd.
Stopping system log daemon: klogd syslogd.
Deconfiguration network interface: lo eth0
dhcpcd[73]: terminating on signal 1
Stop servecies: atalkd afpd
Can't unregister SECO:Workstation@*
Can't unregister SECO:netatalk@*
                        Welcome to Vine Linux
                Press 'I' to enter interactive startup.
Mounting proc filesystem:  [  OK  ]
Configuring kernel parameters:  [  OK  ]
hwclock: ioctl() to /dev/rtc to turn on update interrupts failed unexpectedly, errno=515: Unknown error 515.
Setting clock  (localtime): Mon Jun 14 01:42:28 JST 2004 [  OK  ]
Activating swap partitions:  [  OK  ]
Setting hostname hackkit:  [  OK  ]
modprobe: Can't open dependencies file /lib/modules/2.4.17_mvl21-sandpoint/modules.dep (No such file or directory)
modprobe: Can't open dependencies file /lib/modules/2.4.17_mvl21-sandpoint/modules.dep (No such file or directory)
modprobe: Can't open dependencies file /lib/modules/2.4.17_mvl21-sandpoint/modules.dep (No such file or directory)
Mounting local filesystems:  [  OK  ]
Enabling local filesystem quotas:  [  OK  ]
Enabling swap space:  [  OK  ]
/bin/cat: /proc/modules: No such file or directory
                                                  /bin/cat: /proc/ksyms: No such
 file or directory
                  Setting network parameters:  [  OK  ]
Bringing up loopback interface:  [  OK  ]
Bringing up interface eth0:  [  OK  ]
Starting system logger: [  OK  ]
Starting kernel logger: [  OK  ]
Initializing random number generator:  [  OK  ]
Mounting other filesystems:  [  OK  ]
Starting INET services: [  OK  ]
Starting crond: [  OK  ]
Starting atd: [  OK  ]
MELCO INC. Link Station series HD-LAN
hackkit login:
OK!hackkit login: root PAM_unix[609]: (login) session opened for user root by LOGIN(uid=0) Linux (none) 2.4.17_mvl21-sandpoint #857 2004年 5月 10日 月曜日 11:22:13 JST ppc unknown login[609]: ROOT LOGIN on `console' root@hackkit:~# ps -aux Bad syntax, perhaps a bogus '-'? USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 2.4 1.0 1448 644 ? S 01:41 0:05 init root 2 0.0 0.0 0 0 ? SW 01:41 0:00 [keventd] root 3 0.0 0.0 0 0 ? SWN 01:41 0:00 [ksoftirqd_CPU0] root 4 0.0 0.0 0 0 ? SW 01:41 0:00 [kswapd] root 5 0.0 0.0 0 0 ? SW 01:41 0:00 [bdflush] root 6 0.0 0.0 0 0 ? SW 01:41 0:00 [kupdated] root 35 0.0 0.0 0 0 ? SW 01:42 0:00 [kreiserfsd] root 157 0.0 0.7 1408 480 ? S 01:42 0:00 /usr/sbin/ppc_uar root 515 0.0 1.2 1660 780 ? S 01:42 0:00 syslogd -m 0 root 520 0.0 0.9 1500 620 ? S 01:42 0:00 klogd -2 root 574 0.0 1.0 1628 660 ? S 01:42 0:00 inetd root 592 0.0 1.3 2016 848 ? S 01:42 0:00 crond daemon 603 0.0 1.1 1628 712 ? S 01:42 0:00 /usr/sbin/atd root 609 0.0 2.4 2756 1552 ttyS0 S 01:42 0:00 -bash root 622 0.0 1.4 2800 924 ttyS0 R 01:45 0:00 ps -aux root@hackkit:~#HD-HGLAN から telnet してみる
[yasunari@giga yasunari]$ telnet hackkit Trying 192.168.1.6... Connected to hackkit. Escape character is '^]'. Vine Linux 2.6 (La Fleur de Bouard) Kernel 2.4.17_mvl21-sandpoint on a ppc login: guest Password: bash-2.04$ ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 2.5 1.0 1448 644 ? S 01:47 0:05 init root 2 0.0 0.0 0 0 ? SW 01:47 0:00 [keventd] root 3 0.0 0.0 0 0 ? SWN 01:47 0:00 [ksoftirqd_CPU0] root 4 0.0 0.0 0 0 ? SW 01:47 0:00 [kswapd] root 5 0.0 0.0 0 0 ? SW 01:47 0:00 [bdflush] root 6 0.0 0.0 0 0 ? SW 01:47 0:00 [kupdated] root 35 0.0 0.0 0 0 ? SW 01:47 0:00 [kreiserfsd] root 157 0.0 0.7 1408 480 ? S 01:47 0:00 /usr/sbin/ppc_uartd root 520 0.0 1.2 1660 780 ? S 01:48 0:00 syslogd -m 0 root 525 0.0 0.9 1500 620 ? S 01:48 0:00 klogd -2 root 579 0.0 1.0 1628 672 ? S 01:48 0:00 inetd root 597 0.0 1.3 2016 848 ? S 01:48 0:00 crond daemon 608 0.0 1.1 1628 712 ? S 01:48 0:00 /usr/sbin/atd root 614 0.0 0.9 1428 592 ttyS0 S 01:48 0:00 /sbin/getty console root 644 1.0 1.5 2360 992 ? S 01:51 0:00 in.telnetd: giga.yamasita.jp root 645 1.6 2.5 3980 1596 pts/0 S 01:51 0:00 login -- guest guest 646 3.0 2.2 2888 1428 pts/0 S 01:51 0:00 -bash guest 659 0.0 1.6 3244 1012 pts/0 R 01:51 0:00 ps -aux bash-2.04$電源ボタン長押し
INIT: Switching to runlevel: 0
INIT: Sending pStopping atd: [  OK  ]
Stopping crond: [  OK  ]
Stopping INET services: [  OK  ]
Saving random seed:  [  OK  ]
Shutting down kernel logger: [  OK  ]
Shutting down system logger: [  OK  ]
Shutting down interface eth0:  [  OK  ]
Shutting down loopback interface:  [  OK  ]
Stopping periodic command scheduler: cron.
                                          Stopping internet superserver: inetd.
                                                                               S
top services: thttpd
                    Saving random seed... done.
                                               Stop servecies: atalkd afpd
                                                                          Can't
unregister hackkit:Workstation@*
                                Can't unregister hackkit:netatalk@*
                                                                   Stopping syst
em log daemon: klogd syslogd.
                             Stop services: smbd nmbd
                                                     Stop services: ppc_uartd
                                                                             Sen
ding all processes the TERM signal... done.
                                           Sending all processes the KILL signal
... done.
         Deactivating swap... done.
                                   Unmounting local filesystems... done.
                                                                        flushing
 ide devices: hda
Power down.
ハックキット化、完了!| ← | LinkStation/玄箱 をハックしよう | → HD-120LAN 突然リセット |