HS-DGL! + ハックキット 2.0:モジュールのロード方法の変更


pcastd restart

HS-DGL! にログインして ps を実行したら
/etc/init.d/pcastd restart
が動作しているのが見えた。
最近の ppc_uartd は各プロセスの監視役もつとめるようになったので、 ppc_uartd が何らかの異常を検知し、 Scheduler,pcastd,mediaserver を再起動したのであろう。

バグってる?

何がおこっているのかと、/var/log/messages を見てみた。
Jan 16 15:20:24 gawa uart daemon[463]: >IsProcessExist:process doesn't exist.[/var/run/EPG.pid]
Jan 16 15:20:24 gawa uart daemon[463]: exec [/etc/init.d/pcastd restart]
Jan 16 15:20:24 gawa linkstation[17306]: Stopped pcastd scheduler
Jan 16 15:20:28 gawa linkstation[17343]: Started pcastd scheduler
このパターンが30秒毎に出力されている。

なんで /var/run/EPG.pid が存在しなかったら /etc/init.d/pcastd restart を実行するんだ?
実行するなら /etc/init.d/epg restart じゃないの???
しゃーない、やっといたろ。

[root@gawa init.d]# /etc/init.d/epg restart
Stop services: EPGd iRCommander
EPGd: no process killed
Start services: EPGd iRCommander
EPGd : version 1.0.6
0.0.20
serverHost=tv1.so-net.ne.jp

モジュールの再ロード

話を元に戻す。

ハック de 録!!インストーラは、/etc/init.d/pcastd にパッチをあてて カーネルモジュールをロードするようにしている。
ということは、

/etc/init.d/pcastd restart
が実行される度にカーネルモジュールをロードして、 その度に already exists と言われているはず。
実害はないが、 気持ち悪いのでできれば他の方法でモジュールをロードしたほうが良い。

どこでロードする?

HS-DGL の標準ファームだと、 /etc/modules にモジュールへのパスを書いておくと、 /etc/init.d/modutils からロードしてくれるようになっている。

Vine にもこれと同じような仕組みがないかを探す。
(本来なら、modules.conf に書いて modprobe なんだろうが、、、(汗))

いろいろ探した結果、/etc/rc.modules に書けば良いことがわかった。

/etc/rc.modules に書く

[root@gawa etc]# vi /etc/rc.modules
	:
	:
[root@gawa etc]# cat !$
cat /etc/rc.modules
#!/bin/sh
insmod /lib/modules/videodev.o
insmod /lib/modules/video-buf.o
insmod /lib/modules/mv51dxu2.o
insmod /lib/modules/LSUVCD.o
[root@gawa etc]# chmod +x !$
chmod +x /etc/rc.modules
[root@gawa etc]# ls -l !$
ls -l /etc/rc.modules
-rwxr-xr-x    1 root     root          133 Jan 16 15:34 /etc/rc.modules*
[root@gawa etc]#
/etc/rc.d/init.d/pcastd から消す(コメントアウトする)
[root@gawa etc]# diff /etc/rc.d/init.d/pcastd{.orig,}
22a23,26
>           insmod /lib/modules/videodev.o
>           insmod /lib/modules/video-buf.o
>           insmod /lib/modules/mv51dxu2.o
>           insmod /lib/modules/LSUVCD.o
56c60
<       /sbin/killall "Scheduler"
---
>       /usr/bin/killall "Scheduler"
[root@gawa etc]# vi /etc/rc.d/init.d/pcastd
	:
	:
[root@gawa etc]# diff /etc/rc.d/init.d/pcastd{.orig,}
22a23,26
> #         insmod /lib/modules/videodev.o
> #         insmod /lib/modules/video-buf.o
> #         insmod /lib/modules/mv51dxu2.o
> #         insmod /lib/modules/LSUVCD.o
56c60
<       /sbin/killall "Scheduler"
---
>       /usr/bin/killall "Scheduler"
[root@gawa etc]#

再起動

PCast の「予約一覧」で、再起動しても録画に影響がないことを確認し、 HS-DGL! を再起動、モジュールがロードされているかを確認する
[root@gawa root]# lsmod
Module                  Size  Used by    Tainted: P
LSUVCD                 28776   0
mv51dxu2              644212   0
video-buf              18848   0  [mv51dxu2]
videodev                7696   1  [mv51dxu2]
[root@gawa root]#
OK


ケース交換
ハックの記録
LinkStation/玄箱 をハックしよう

プリンタサーバ変更

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