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