HS-DGL! + ハックキット 2.0:ハック de 録!!


10/27 の手順で HS-DGL! + ハックキット 2.0 にハック de 録!!をインストールする。

準備

  • HS-DGL ファームウェア 1.49 の image.dat

  • 「玄箱をハックしよう!」付属CD-ROM の /hackderokku に納めている
  • hackderokku.sh

  • hackderokkufiles

  • extract_image

  • を HS-DGL! の /tmp に置く

    hackderokkufiles の修正

    hackderokkufiles を修正する。
    [root@gawa tmp]# mv hackderokkufiles hackderokkufiles.orig
    [root@gawa tmp]# cp hackderokkufiles.orig hackderokkufiles
    [root@gawa tmp]# vi hackderokkufiles
    	:
    [root@gawa tmp]# diff -c hackderokkufiles.orig hackderokkufiles
    *** hackderokkufiles.orig       2005-12-29 13:17:37.000000000 +0900
    --- hackderokkufiles    2005-12-29 13:23:33.000000000 +0900
    ***************
    *** 9,14 ****
    --- 9,15 ----
      ./etc/init.d/logmgr
      ./etc/init.d/epg
      ./etc/init.d/thttpd
    + ./etc/linkstation_release
      ./etc/rc.d/*/*apservd
      ./etc/rc.d/*/*pcastd
      ./etc/rc.d/*/*logmgr
    ***************
    *** 19,27 ****
      ./etc/thttpd2.conf
      ./etc/timezone
      ./lib/libls.so*
    ! ./lib/modules/LSUVCD.o
    ! ./usr/lib/libvweb.so
      ./usr/lib/libdb-3.3.so
      ./usr/local/PCast
      ./usr/sbin/ap_servd
      ./usr/sbin/thttpd
    --- 20,44 ----
      ./etc/thttpd2.conf
      ./etc/timezone
      ./lib/libls.so*
    ! ./lib/modules/*.o
    ! ./usr/etc/mediaserver*
    ! ./usr/lib/iconv_no_i18n
    ! ./usr/lib/libcharset.so*
      ./usr/lib/libdb-3.3.so
    + ./usr/lib/libiconv.so*
    + ./usr/lib/libiconv_plug.so
    + ./usr/lib/libiconv_plug_linux.so
    + ./usr/lib/libmbms_cmanager.so*
    + ./usr/lib/libmbms_upnp.so*
    + ./usr/lib/libmediabolic_client.so*
    + ./usr/lib/libmediabolic_import.so*
    + ./usr/lib/libmediabolic_mediaserver.so*
    + ./usr/lib/libmediabolic_mediaserver_verify.so*
    + ./usr/lib/libmediabolic_mediaspace.so*
    + ./usr/lib/libpcap.so*
    + ./usr/lib/libvweb.so
    + ./usr/lib/mediaserver
      ./usr/local/PCast
    + ./usr/mediaserver
      ./usr/sbin/ap_servd
      ./usr/sbin/thttpd
    [root@gawa tmp]#
    

    hackderokku.sh の実行

    [root@gawa tmp]# cd /
    [root@gawa /]# sh /tmp/hackderokku.sh
    Archive:  /tmp/image.dat
      inflating: tmpimage.tgz
    	:
    	:
    ./usr/mediaserver/
    ./usr/mediaserver/mediaserver
    ./usr/mediaserver/mdb_verify
    ./usr/mediaserver/chk_mediaserver.sh
    ./usr/mediaserver/smb_mediaserver.sh
    cp: ``/tmp/dummy.o'' を stat できません: そのようなファイルやディレクトリはありません
    [root@gawa /]#
    

    ドライバのロード

    まだ、何をロードすると PC-MV52DX/U2 を認識するのか良くわかってない。
    ためしに /lib/modules にあるドライバをロードしてみる
    [root@gawa /]# ls /lib/modules/
    2.4.20_mvl31-ppc_linkstation/  mv51dxu2.o*  video-buf.o*  videodev.o*
    [root@gawa /]# insmod /lib/modules/videodev.o
    [root@gawa /]# insmod /lib/modules/video-buf.o
    Warning: loading /lib/modules/video-buf.o will taint the kernel: no license
      See http://www.tux.org/lkml/#export-tainted for information about tainted modules
    Module video-buf loaded, with warnings
    [root@gawa /]# insmod /lib/modules/mv51dxu2.o
    Warning: loading /lib/modules/mv51dxu2.o will taint the kernel: no license
      See http://www.tux.org/lkml/#export-tainted for information about tainted modules
    Module mv51dxu2 loaded, with warnings
    [root@gawa /]# lsmod
    Module                  Size  Used by    Tainted: P
    mv51dxu2              644212   0  (unused)
    video-buf              18848   0  [mv51dxu2]
    videodev                7696   0  [mv51dxu2]
    [root@gawa /]#
    
    3つともロードが必要のよう。

    PC-MV52DX/U2 を刺す

    ドライバがロードできた状態で PC-MV52DX/U2 の USB ケーブルを HS-DGL! のフロントパネルの USB ポートに刺す。
    [root@gawa /]# tail -f /var/log/messages
    Dec 29 13:28:52 gawa kernel: Linux video capture interface: v1.00
    Dec 29 13:29:04 gawa kernel: usb.c: registered new driver BUFFALO PC-MV5 Series
    Dec 29 13:29:04 gawa kernel: BUFFALO PC-MV5 Series version 0.14 loaded
    (ここまではドライバのロード時に出力されていた)
    Dec 29 13:30:58 gawa kernel: hub.c: new USB device 00:0e.2-1, assigned address 3
    Dec 29 13:30:58 gawa kernel: BUFFALO PC-MV52DX-U2 VCap registered video device video0
    
    無事、認識されたようだ。

    PC-MV52DX/U2 認識の確認

    確認しようと、/proc/LSUVCD を見ようとしたら、、、
    [root@gawa /]# cat /proc/LSUVCD
    cat: /proc/LSUVCD: そのようなファイルやディレクトリはありません
    [root@gawa /]#
    
    あれ?

    /etc/rc.d/init.d/pcastd の修正

    ロードするドライバがわかったので、 /etc/rc.d/init.d/pcastd を修正する
    [root@gawa /]# cd /etc/rc.d/init.d/
    [root@gawa init.d]# mv pcastd pcastd.orig
    mv: ``pcastd.orig'' を上書きしてもよろしいですか (yes/no)? yes
    [root@gawa init.d]# cp pcastd.orig pcastd
    [root@gawa init.d]# vi pcastd
    	:
    [root@gawa init.d]# diff -c pcastd.orig pcastd
    *** pcastd.orig 2005-12-29 13:25:54.000000000 +0900
    --- pcastd      2005-12-29 13:41:23.000000000 +0900
    ***************
    *** 20,29 ****
      {
            if [ ${server} = "on" ] ; then
                echo  "Start services: pcastd scheduler"
    !           insmod /lib/modules/`uname -r`/kernel/drivers/usb/usbcore.o
    !           insmod /lib/modules/`uname -r`/kernel/drivers/usb/usb-ohci.o
    !           insmod /lib/modules/`uname -r`/kernel/drivers/dummy.o
    !           insmod -f /lib/modules/`uname -r`/kernel/drivers/LSUVCD.o
                /usr/local/PCast/Scheduler &
                /usr/local/PCast/pcastd
                logger -t ${tag} -p ${facility} -i 'Started pcastd scheduler'
    --- 20,33 ----
      {
            if [ ${server} = "on" ] ; then
                echo  "Start services: pcastd scheduler"
    ! #         insmod /lib/modules/`uname -r`/kernel/drivers/usb/usbcore.o
    ! #         insmod /lib/modules/`uname -r`/kernel/drivers/usb/usb-ohci.o
    ! #         insmod /lib/modules/`uname -r`/kernel/drivers/dummy.o
    ! #         insmod -f /lib/modules/`uname -r`/kernel/drivers/LSUVCD.o
    !           insmod /lib/modules/videodev.o
    !           insmod /lib/modules/video-buf.o
    !           insmod /lib/modules/mv51dxu2.o
    !
                /usr/local/PCast/Scheduler &
                /usr/local/PCast/pcastd
                logger -t ${tag} -p ${facility} -i 'Started pcastd scheduler'
    [root@gawa init.d]#
    

    再起動

    ログアウトし電源ボタンを長押ししてシャットダウン、 再度電源ボタンを押して HS-DGL! を再起動する

    再ログイン

    ログインして、確認する。
    [root@gawa root]# ps -aux
    USER       PID %CPU %MEM   VSZ  RSS TTY      STAT    START   TIME COMMAND
    root         1  4.8  0.4  1652  572 ?        S       13:44   0:05 init
    root         2  0.0  0.0     0    0 ?        SW      13:44   0:00 [keventd]
    root         3  0.0  0.0     0    0 ?        SWN     13:44   0:00 [ksoftirqd_CPU0]
    root         4  0.0  0.0     0    0 ?        SW      13:44   0:00 [kswapd]
    root         5  0.0  0.0     0    0 ?        SW      13:44   0:00 [bdflush]
    root         6  0.0  0.0     0    0 ?        SW      13:44   0:00 [kupdated]
    root         9  0.0  0.0     0    0 ?        SW      13:44   0:00 [mtdblockd]
    root        10  0.0  0.0     0    0 ?        SW      13:44   0:00 [khubd]
    root        15  0.1  0.0     0    0 ?        SW      13:44   0:00 [kjournald]
    root       125  0.0  0.0     0    0 ?        SW      13:44   0:00 [kjournald]
    root       385  0.1  0.5  1776  672 ?        S       13:44   0:00 syslogd -m 0
    root       390  0.0  0.3  1652  496 ?        S       13:44   0:00 klogd -x
    root       398  0.0  0.5  2072  688 ?        S       13:44   0:00 /usr/sbin/ap_servd -i eth0
    root       421  0.0  0.6  2068  876 ?        S       13:44   0:00 /usr/sbin/thttpd -C /etc/thttpd2.conf
    root       458  0.0  0.4  1632  544 ?        S       13:44   0:00 /usr/sbin/ppc_uartd -p 1
    root       469  0.0  0.4  1764  632 ?        S       13:44   0:00 inetd
    root       488  0.0  3.6  4956 4656 ?        SL      13:44   0:00 ntpd -p /var/run/ntpd.pid -g
    root       504  0.0  0.5  1772  688 ?        S       13:44   0:00 crond
    root       517  0.0  1.8 11480 2416 ?        S       13:44   0:00 smbd -D
    root       522  0.0  1.3  7912 1696 ?        S       13:44   0:00 nmbd -D
    root       523  0.0  1.8 11480 2400 ?        S       13:44   0:00 smbd -D
    root       531  0.0  0.0     0    0 ?        SW      13:44   0:00 [BUFFALO PC-MV52]
    root       532  0.7  5.1 41980 6560 ?        S       13:44   0:00 /usr/local/PCast/Scheduler
    root       534  0.0  0.9 37028 1204 ?        S       13:44   0:00 /usr/local/PCast/Scheduler
    root       535  0.0  5.1 41980 6560 ?        S       13:44   0:00 /usr/local/PCast/Scheduler
    root       536  0.0  5.1 41980 6560 ?        S       13:44   0:00 /usr/local/PCast/Scheduler
    root       537  0.0  5.1 41980 6560 ?        S       13:44   0:00 /usr/local/PCast/Scheduler
    root       539  0.0  0.8  4372 1080 ?        S       13:44   0:00 /usr/local/PCast/pcastd
    root       540  0.0  5.1 41980 6560 ?        S       13:44   0:00 /usr/local/PCast/Scheduler
    root       541  0.0  5.1 41980 6560 ?        S       13:44   0:00 /usr/local/PCast/Scheduler
    root       543  0.0  0.8  4372 1100 ?        S       13:44   0:00 /usr/local/PCast/pcastd
    root       546  0.0  0.9 37028 1204 ?        S       13:44   0:00 /usr/local/PCast/Scheduler
    root       547  0.0  0.9 37028 1204 ?        S       13:44   0:00 /usr/local/PCast/Scheduler
    root       548  0.0  0.9 37028 1204 ?        S       13:44   0:00 /usr/local/PCast/Scheduler
    root       549  0.1  1.0  5780 1276 ?        S       13:44   0:00 /bin/sh /usr/mediaserver/chk_mediaserver.sh
    root       552  2.3 15.8 97412 20264 ?       S       13:44   0:01 /usr/mediaserver/mediaserver
    root       560  0.0  0.5  2552  684 ?        S       13:44   0:00 /usr/local/PCast/EPGd
    root       562  0.0 15.8 97412 20264 ?       S       13:44   0:00 /usr/mediaserver/mediaserver
    root       563  0.0 15.8 97412 20264 ?       S       13:44   0:00 /usr/mediaserver/mediaserver
    root       564  0.0 15.8 97412 20264 ?       S       13:44   0:00 /usr/mediaserver/mediaserver
    root       565  0.0 15.8 97412 20264 ?       S       13:44   0:00 /usr/mediaserver/mediaserver
    root       566  0.0 15.8 97412 20264 ?       S       13:44   0:00 /usr/mediaserver/mediaserver
    root       567  0.0 15.8 97412 20264 ?       S       13:44   0:00 /usr/mediaserver/mediaserver
    root       568  0.0 15.8 97412 20264 ?       S       13:44   0:00 /usr/mediaserver/mediaserver
    root       569  0.0 15.8 97412 20264 ?       S       13:44   0:00 /usr/mediaserver/mediaserver
    root       570  0.0  0.7  4144 1004 ?        S       13:44   0:00 /usr/local/PCast/iRCommander
    root       573  0.0  0.9 37028 1204 ?        S       13:44   0:00 /usr/local/PCast/Scheduler
    root       582  0.0 15.8 97412 20264 ?       S       13:45   0:00 /usr/mediaserver/mediaserver
    daemon     584  0.0  0.4  1756  636 ?        S       13:45   0:00 /usr/sbin/atd
    root       602  0.0  0.9 37028 1204 ?        S       13:45   0:00 /usr/local/PCast/Scheduler
    root       603  0.1 15.8 97412 20264 ?       S       13:45   0:00 /usr/mediaserver/mediaserver
    root       658  0.1  0.6  2116  768 ?        S       13:45   0:00 in.telnetd: mebiusl.yamasita.jp
    root       659  0.2  1.1  4244 1436 ?        S       13:45   0:00 login -- yasunari
    yasunari   724  6.0  1.2  5784 1556 pts/0    S       13:46   0:00 -bash
    root       745  0.0  0.4  5084  556 ?        S       13:46   0:00 sleep 1
    yasunari   746  0.0  0.6  3016  836 pts/0    R       13:46   0:00 ps -aux
    [root@gawa root]#
    
    サーバ類は動いていそう。
    [root@gawa root]# lsmod
    Module                  Size  Used by    Tainted: P
    mv51dxu2              644212   0  (unused)
    video-buf              18848   0  [mv51dxu2]
    videodev                7696   1  [mv51dxu2]
    [root@gawa root]# cat /proc/devices
    Character devices:
      1 mem
      2 pty
      3 ttyp
      4 ttyS
      5 cua
     10 misc
     81 video_capture
     90 mtd
    128 ptm
    136 pts
    162 raw
    180 usb
    
    Block devices:
      1 ramdisk
      3 ide0
     31 mtdblock
    [root@gawa root]#
    
    PC-MV52DX/U2 も認識されている模様。

    セットアップ

    http://gawa:8080/ にアクセスする。
    まずは「初期設定」をクリックする。

    メディアサーバ設定

    以下の通りに設定
    設定項目設定値
    メディアサーバー機能使用する
    メディアフォルダshare
    メディアサーバパスワード設定しない
    パスワード空欄
    確認用パスワード空欄
    DLNAクライアントのアクセス制限使用しない

    チューナ設定

    「大阪(大阪)」を選択し、チャンネルスキャンをして、、
    のつもりだったが、「地域未設定」がダークアウトしていて、 地域が選択できない。あちゃー。チューナが認識されていない。

    どこから調べようか、、、

    トラブルシューティング

    DbAcRap GetDeviceStatus

    DbAcRap でステータスを調べる
    [root@gawa tmp]# /usr/local/PCast/DbAcRap GetDeviceStatus
    GetDeviceStatus
    [START]GetDeviceStatus
    [DATA]Device=0 Status=NODEVICE
    [DATA]Device=1 Status=NODEVICE
    [DATA]Device=2 Status=NODEVICE
    [DATA]Device=3 Status=NODEVICE
    [FINISH]GetDeviceStatus
    [root@gawa tmp]#
    
    NODEVICE だとぉ??

    LSUVCD.o が要る?

    LSUVCD.o をロードしてみる
    [root@gawa root]# insmod /lib/modules/2.4.20_mvl31-ppc_linkstation/kernel/drivers/LSUVCD.o
    Warning: loading /lib/modules/2.4.20_mvl31-ppc_linkstation/kernel/drivers/LSUVCD.o will taint the kernel: non-GPL license -
     Proprietary
      See http://www.tux.org/lkml/#export-tainted for information about tainted modules
    Module LSUVCD loaded, with warnings
    [root@gawa root]# /usr/local/PCast/DbAcRap GetDeviceStatus
    GetDeviceStatus
    [START]GetDeviceStatus
    [DATA]Device=0 Status=NODEVICE
    [DATA]Device=1 Status=NODEVICE
    [DATA]Device=2 Status=NODEVICE
    [DATA]Device=3 Status=NODEVICE
    [FINISH]GetDeviceStatus
    [root@gawa root]# lsmod
    Module                  Size  Used by    Tainted: P
    LSUVCD                 28824   0  (unused)
    mv51dxu2              644212   0  (unused)
    video-buf              18848   0  [mv51dxu2]
    videodev                7696   1  [mv51dxu2]
    [root@gawa root]# 
    
    変わらず。

    PC-MV7DX/U2 を刺してみる

    PC-MV52DX/U2 を抜いてPC-MV7DX/U2 を刺してみる。
    [root@gawa root]# /usr/local/PCast/DbAcRap GetDeviceStatus
    GetDeviceStatus
    [START]GetDeviceStatus
    [DATA]Device=0 Status=ERROR
    [DATA]Device=1 Status=NODEVICE
    [DATA]Device=2 Status=NODEVICE
    [DATA]Device=3 Status=NODEVICE
    [FINISH]GetDeviceStatus
    [root@gawa root]# cat /proc/LSUVCD
    device1=mv7dxu2_006f
    device2=none
    device3=none
    device4=none
    [root@gawa root]#
    
    Status=ERROR にはなっているものの、/proc/LSUVCD ができている。

    もう一度 PC-MV7DX/U2 を刺し直すと、

    [root@gawa log]# /usr/local/PCast/DbAcRap GetDeviceStatus
    GetDeviceStatus
    [START]GetDeviceStatus
    [DATA]Device=0 Status=WAIT
    [DATA]Device=1 Status=NODEVICE
    [DATA]Device=2 Status=NODEVICE
    [DATA]Device=3 Status=NODEVICE
    [FINISH]GetDeviceStatus
    [root@gawa log]#
    
    Status=WAIT になった。

    初期設定のチューナ設定でも、地域が選択できるようになった。
    PC-MV7DX/U2 だと問題なく動作しそう。
    PC-MV52DX/U2 は、何か違う手順が必要のよう。

    もう一度PC-MV52DX/U2 を刺す

    [root@gawa log]# cat /proc/LSUVCD
    device1=none
    device2=none
    device3=none
    device4=none
    [root@gawa log]# /usr/local/PCast/DbAcRap GetDeviceStatus
    GetDeviceStatus
    [START]GetDeviceStatus
    [DATA]Device=0 Status=NODEVICE
    [DATA]Device=1 Status=NODEVICE
    [DATA]Device=2 Status=NODEVICE
    [DATA]Device=3 Status=NODEVICE
    [FINISH]GetDeviceStatus
    [root@gawa log]#
    
    /proc/LSUVCD は残っているが、相変わらず Status=NODEVICE。

    むむむ




    PC-MV52DX/U2 到着
    ハックの記録
    LinkStation/玄箱 をハックしよう

    HS-DGL! + ハックキット 2.0:ハック de 録!!(2)

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