HS-DGL!:5分で落ちるハックキット(4)


ハックキット 2.0 をインストールした HS-DGL! が ちゃんと ppc_uartd が動作しているのにもかかわらず5分で 落ちる症状を調べている。

標準ファームとハックキットとの差を見ていたのだが、 良くわからない。
今日は、何とかして標準ファームで同じ症状を発生させようと いろいろ試している。

プロセスの kill

普通に立ち上がった標準ファームにログインし、プロセスを kill しまくった。
root@GAWA:~# ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        S      0:04 init
    2 ?        SW     0:00 [keventd]
    3 ?        SWN    0:00 [ksoftirqd_CPU0]
    4 ?        SW     0:00 [kswapd]
    5 ?        SW     0:00 [bdflush]
    6 ?        SW     0:00 [kupdated]
    9 ?        SW     0:00 [mtdblockd]
   10 ?        SW     0:00 [khubd]
   15 ?        SW     0:00 [kjournald]
   81 ?        SW     0:00 [kjournald]
  555 ?        SW     0:00 [nfsd]
  576 ?        SW     0:00 [lockd]
  578 ?        SW     0:00 [rpciod]
  634 ttyS0    S      0:00 -bash
 1007 ?        S      0:00 /usr/sbin/ppc_uartd
 2242 ?        S      0:00 /usr/sbin/ap_servd -i eth0
 2494 ttyS0    R      0:00 ps ax
root@GAWA:~# uptime
  5:55pm  up 34 min,  1 user,  load average: 0.06, 0.02, 0.00
root@GAWA:~#
5分待つ
root@GAWA:~# uptime
  6:01pm  up 40 min,  1 user,  load average: 0.04, 0.01, 0.00
root@GAWA:~#
6分経っても動いている。

プロセスを立上げない

立上げた後で kill しても大丈夫なのかも知れない。
プロセスを起動しないよう、 /etc/rc.d/rc2.d を空にして再起動する。
root@GAWA:~# cd /etc/rc.d/
root@GAWA:/etc/rc.d# mv rc2.d rc2.d.orig
root@GAWA:/etc/rc.d# mkdir rc2.d
root@GAWA:/etc/rc.d#
再起動後、
root@GAWA:~# ps -ax
Bad syntax, perhaps a bogus '-'?
  PID TTY      STAT   TIME COMMAND
    1 ?        S      0:04 init
    2 ?        SW     0:00 [keventd]
    3 ?        SWN    0:00 [ksoftirqd_CPU0]
    4 ?        SW     0:00 [kswapd]
    5 ?        SW     0:00 [bdflush]
    6 ?        SW     0:00 [kupdated]
    9 ?        SW     0:00 [mtdblockd]
   10 ?        SW     0:00 [khubd]
   15 ?        SW     0:00 [kjournald]
   81 ?        SW     0:00 [kjournald]
  121 ?        S      0:00 dhcpcd -h GAWA -t 10 eth0
  178 ?        S      0:00 /sbin/syslogd -m 0
  180 ?        S      0:00 /sbin/klogd -x
  199 ttyS0    S      0:00 -bash
  202 ttyS0    R      0:00 ps -ax
root@GAWA:~#
ppc_uartd だけは手動で起動しておく
root@GAWA:~# /etc/rc.d/init.d/ppc_uartd start
Start services: ppc_uartd
root@GAWA:~# ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        S      0:04 init
    2 ?        SW     0:00 [keventd]
    3 ?        SWN    0:00 [ksoftirqd_CPU0]
    4 ?        SW     0:00 [kswapd]
    5 ?        SW     0:00 [bdflush]
    6 ?        SW     0:00 [kupdated]
    9 ?        SW     0:00 [mtdblockd]
   10 ?        SW     0:00 [khubd]
   15 ?        SW     0:00 [kjournald]
   81 ?        SW     0:00 [kjournald]
  121 ?        S      0:00 dhcpcd -h GAWA -t 10 eth0
  178 ?        S      0:00 /sbin/syslogd -m 0
  180 ?        S      0:00 /sbin/klogd -x
  199 ttyS0    S      0:00 -bash
  205 ?        S      0:00 /usr/sbin/ppc_uartd
  214 ?        S      0:00 /usr/sbin/ap_servd -i eth0
  219 ttyS0    R      0:00 ps ax
root@GAWA:~# uptime
  6:07pm  up 2 min,  1 user,  load average: 0.04, 0.03, 0.00
root@GAWA:~#
相変わらず ap_servd もついてくる。

これで5分後に落ちてくれれば、 あとは /etc/rc.d/rc2.d の中を単純に2分探索なんだが、、、

root@GAWA:~# uptime
  6:15pm  up 9 min,  1 user,  load average: 0.00, 0.00, 0.00
root@GAWA:~# ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        S      0:04 init
    2 ?        SW     0:00 [keventd]
    3 ?        SWN    0:00 [ksoftirqd_CPU0]
    4 ?        SW     0:00 [kswapd]
    5 ?        SW     0:00 [bdflush]
    6 ?        SW     0:00 [kupdated]
    9 ?        SW     0:00 [mtdblockd]
   10 ?        SW     0:00 [khubd]
   15 ?        SW     0:00 [kjournald]
   81 ?        SW     0:00 [kjournald]
  121 ?        S      0:00 dhcpcd -h GAWA -t 10 eth0
  178 ?        S      0:00 /sbin/syslogd -m 0
  180 ?        S      0:00 /sbin/klogd -x
  199 ttyS0    S      0:00 -bash
  205 ?        S      0:00 /usr/sbin/ppc_uartd
  214 ?        S      0:00 /usr/sbin/ap_servd -i eth0
  334 ttyS0    R      0:00 ps ax
root@GAWA:~#
むむ。
リブートせずに動いているということは、 /etc/rc.d/rc2.d は関係なし。

ppc_uartd を kill すれば、、、

ppc_uartd を kill すれば、5分後に落ちるはず。
root@GAWA:~# /etc/rc.d/init.d/ppc_uartd stop
Stop services: ppc_uartd
root@GAWA:~# /etc/rc.d/init.d/apservd stop
Stop services: ap_servd
およそ5分後、、、リブートした。

一つ試す度に5分。また5分、またまた5分、、、日が暮れる。

試しに、あと5分使って ppc_uartd だけ kill、 ap_servd は立上げたままで落ちることも確認しておく。

root@GAWA:~# /etc/rc.d/init.d/ppc_uartd start
Start services: ppc_uartd
root@GAWA:~# /etc/rc.d/init.d/apservd start
Start services: ap_servd on eth0
root@GAWA:~# /etc/rc.d/init.d/ppc_uartd stop
Stop services: ppc_uartd
root@GAWA:~# ps ax
  PID TTY      STAT   TIME COMMAND
    1 ?        S      0:04 init
    2 ?        SW     0:00 [keventd]
    3 ?        SWN    0:00 [ksoftirqd_CPU0]
    4 ?        SW     0:00 [kswapd]
    5 ?        SW     0:00 [bdflush]
    6 ?        SW     0:00 [kupdated]
    9 ?        SW     0:00 [mtdblockd]
   10 ?        SW     0:00 [khubd]
   15 ?        SW     0:00 [kjournald]
   81 ?        SW     0:00 [kjournald]
  120 ?        S      0:00 dhcpcd -h GAWA -t 10 eth0
  177 ?        S      0:00 /sbin/syslogd -m 0
  179 ?        S      0:00 /sbin/klogd -x
  198 ttyS0    S      0:00 -bash
  212 ?        S      0:00 /usr/sbin/ap_servd -i eth0
  228 ttyS0    R      0:00 ps ax
root@GAWA:~# uptime
  6:42pm  up 3 min,  1 user,  load average: 0.02, 0.04, 0.01
root@GAWA:~#
ppc_uartd が動いていないので VVVV が送られず、 およそ5分後にはリブートするはず。
root@GAWA:~# uptime
  6:45pm  up 6 min,  1 user,  load average: 0.00, 0.02, 0.00
root@GAWA:~# uptime
  6:46pm  up 7 min,  1 user,  load average: 0.00, 0.01, 0.00
root@GAWA:~# uptime
  6:47pm  up 8 min,  1 user,  load average: 0.00, 0.01, 0.00
root@GAWA:~#
そろそろリブートする頃。
ちょっと待って再確認。
root@GAWA:~# uptime
  6:50pm  up 11 min,  1 user,  load average: 0.02, 0.01, 0.00
root@GAWA:~#
あれ? おちてへんやん。

ap_servd が AVR にコマンドを送っている?

/dev/ttyS1 を普通のファイルにして ap_servd だけ起動、/dev/ttyS1 に何が出力されるかを見る
root@GAWA:~# cd /dev
root@GAWA:/dev# mv ttyS1 ttyS1.orig
root@GAWA:/dev# touch ttyS1
root@GAWA:/dev# /etc/rc.d/init.d/apservd stop
Stop services: ap_servd
root@GAWA:/dev# /etc/rc.d/init.d/apservd start
Start services: ap_servd on eth0
root@GAWA:/dev# ls -l ttyS1
-rw-r--r--    1 root     root            0 Oct  9 18:52 ttyS1
root@GAWA:/dev# uptime
  6:53pm  up 14 min,  1 user,  load average: 0.20, 0.05, 0.02
ap_servd 起動直後は ttyS1 には何も出力されていない
またまた5分待つ。
root@GAWA:/dev# uptime
  7:02pm  up 23 min,  1 user,  load average: 0.01, 0.01, 0.00
root@GAWA:/dev# ls -l ttyS1
-rw-r--r--    1 root     root            0 Oct  9 18:52 ttyS1
9分後もリブートせず、ttyS1 にも何も出力されず。




HS-DGL!:5分で落ちるハックキット(3)
ハックの記録
LinkStation/玄箱 をハックしよう

HS-DGL!:5分で落ちるハックキット(5)

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