#!/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 突然リセット |