DbAcRap(2)


PC-MV7DX/U2 を接続していない玄箱/HG の DbAcRap を置き換えて、どんなコマンドが使われているかをみる。

引数のロギング

まずは、引数をロギングする
[root@hage PCast]# mv DbAcRap DbAcRap.orig
[root@hage PCast]# vi DbAcRap
[root@hage PCast]# cat DbAcRap
#!/bin/sh
echo $* >> /tmp/DbAcRap.log
[root@hage PCast]#

チューナ設定

Web 管理画面の「初期設定」から、「チューナ設定」をクリックすると、 予想通り地域設定はできない。
この時
[root@hage PCast]# cat /tmp/DbAcRap.log
GetDeviceStatus
[root@hage PCast]#
と DbAcRap GetDeviceStatus が実行され、 デバイスの状態が確認されるようだ。

PC-MV7DX/U2 を接続していない HD-HLAN の DbAcRap で GetDeviceStatus すると、

bash-2.04$ cd /usr/local/PCast/
bash-2.04$ ./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
bash-2.04$
となるので、 玄箱/HG のダミー DbAcRap も嘘の応答を返すようにする。
[root@hage PCast]# cat DbAcRap
#!/bin/sh
echo $* >> /tmp/DbAcRap.log
echo $1
case $1 in
        GetDeviceStatus)
        echo '[START]GetDeviceStatus'
        echo '[DATA]Device=0 Status=WAIT'
        echo '[DATA]Device=1 Status=NODEVICE'
        echo '[DATA]Device=2 Status=NODEVICE'
        echo '[DATA]Device=3 Status=NODEVICE'
        echo '[FINISH]GetDeviceStatus'
        ;;
esac
[root@hage PCast]#
再度 Web 管理画面の「初期設定」から、「チューナ設定」をクリックすると、 地域設定ができるようになった。

地域設定

私のところのTVアンテナは生駒山を向いているので 「大阪(大阪)」を選択して、 「チャンネルスキャンを実行する」は選択せず 「設定」をクリックすると、 チャンネルと放送局名の一覧が表示される。
この時、DbAcRap.log は
[root@hage PCast]# cat /tmp/DbAcRap.log
GetDeviceStatus
GetDeviceStatus
[root@hage PCast]#
となるので、DbAcRap は実行されていない。

「チャンネルスキャンを実行する」を選択して「設定」をクリックすると、

[root@hage PCast]# cat /tmp/DbAcRap.log
GetDeviceStatus
GetDeviceStatus
channelscan
[root@hage PCast]#
と channelscan が実行されている。

HD-HLAN で DbAcRap channelscan を実行する

[root@link /root]# /usr/local/PCast/DbAcRap channelscan
channelscan
[START]ChannelScan
[DATA] Channel = 002
[DATA] Channel = 004
[DATA] Channel = 006
[DATA] Channel = 008
[DATA] Channel = 010
[DATA] Channel = 012
[DATA] Channel = 019
[DATA] Channel = 021
[DATA] Channel = 032
[DATA] Channel = 034
[DATA] Channel = 040
[DATA] Channel = 061
[FINISH]ChannelScan
[root@link /root]#
電波が受信できたチャンネルが表示される。

PC-MV7DX/U2 のフロントパネルの S 端子に接続している BS デジタルチューナの電源を入れた状態 (つまり S 端子に信号がある状態)で チャンネルスキャンを実行すると、、何か変化があると思ったのだが、

[root@link /root]# /usr/local/PCast/DbAcRap channelscan
channelscan
[START]ChannelScan
[DATA] Channel = 002
[DATA] Channel = 004
[DATA] Channel = 006
[DATA] Channel = 008
[DATA] Channel = 010
[DATA] Channel = 012
[DATA] Channel = 019
[DATA] Channel = 021
[DATA] Channel = 032
[DATA] Channel = 034
[DATA] Channel = 040
[DATA] Channel = 058
[DATA] Channel = 061
[FINISH]ChannelScan
[root@link /root]#
変化なし。

玄箱/HG のダミー DbAcRap もチャンネルをスキャンしたことにする。

[root@hage /root]# cat /usr/local/PCast/DbAcRap
#!/bin/sh
echo $* >> /tmp/DbAcRap.log
echo $1
case $1 in
        GetDeviceStatus)
        echo '[START]GetDeviceStatus'
        echo '[DATA]Device=0 Status=WAIT'
        echo '[DATA]Device=1 Status=NODEVICE'
        echo '[DATA]Device=2 Status=NODEVICE'
        echo '[DATA]Device=3 Status=NODEVICE'
        echo '[FINISH]GetDeviceStatus'
        ;;

        channelscan)
        echo '[START]ChannelScan'
        echo '[DATA] Channel = 002'
        echo '[DATA] Channel = 004'
        echo '[DATA] Channel = 006'
        echo '[DATA] Channel = 008'
        echo '[DATA] Channel = 010'
        echo '[DATA] Channel = 012'
        echo '[DATA] Channel = 019'
        echo '[DATA] Channel = 021'
        echo '[DATA] Channel = 032'
        echo '[DATA] Channel = 034'
        echo '[DATA] Channel = 040'
        echo '[DATA] Channel = 058'
        echo '[DATA] Channel = 061'
        echo '[FINISH]ChannelScan'
        ;;

esac
[root@hage /root]#

チューナ設定

チャンネルと放送局名の一覧が表示されている画面で、 「設定」をクリックすると、 DbAcRap SetUserChannel が実行される。 例によって HD-HLAN で DbAcRap SetUserChannel を実行
[root@link /root]# /usr/local/PCast/DbAcRap SetUserChannel
SetUserChannel
[START]SetUserChannel
[FINISH]SetUserChannel
[root@link /root]#
チャンネルの情報は必要ないの?

        SetUserChannel)
        echo '[START]SetUserChannel'
        echo '[FINISH]SetUserChannel'
        ;;
このぐらいで、一通り準備が済んだかな?

録画予約

Web 管理画面の「予約する」を選択、 番組名だけ入力して「設定」をクリックしてみた。
予約一覧画面で「予約録画リストが存在しません」といわれた。
DbAcRap は、
GetDeviceStatus
GetMergeListBottom
add{0}{1}{2005/7/3/17/4}{2005/7/3/17/6}{02}{2}{0}{0}{0}{0}{玄箱をハックしよう}
GetMergeListBottom
と呼ばれている。
GetMergeListBottom は予約リストを取得するコマンド。
add は予約追加のコマンドであろう。
add の引数は
No.上記の場合内容
1{0} 0:1回
1:毎日
2:毎週
3:毎週(月曜日〜金曜日)
4:毎週(火曜日〜土曜日)
5:毎週(月曜日〜土曜日)
6:毎週(火曜日〜日曜日)
2{1} 0:MPEG2 高画質
1:MPEG2 標準画質
2:MPEG2 低画質
4:MPEG2 ストリーミング画質
10:MPEG4 高画質
11:MPEG4 標準画質
12:MPEG4 低画質
14:MPEG4 ストリーミング画質
3{2005/7/3/17/4}開始時間
4{2005/7/3/17/6}終了時間
5{02}チャンネル。 S 端子入力は 1000、ビデオ入力は 1001
6{2} 2:ステレオ
3:主音声
4:副音声
5:主+副音声
7{0}未使用
8{0}未使用
9{0}未使用
10{0}デバイス
11{玄箱をハックしよう}番組名

予約実行

HD-HLAN で実際に予約してみた。
[root@link /root]# /usr/local/PCast/DbAcRap add{0}{1}{2005/7/7/17/4}{2005/7/7/17/6}{02}{2}{0}{0}{0}{0}{玄箱をハックしよう}
add{0}{1}{2005/7/7/17/4}{2005/7/7/17/6}{02}{2}{0}{0}{0}{0}{玄箱をハックしよう}
[START]Add
[FINISH]Add
[root@link /root]#
Web 管理画面の「予約一覧」をみると、ちゃんと待機中となっている。

よーし。これで録画予約ができるようになったぞ。




PC-MV7DX/U2 ファームウェア?
ハックの記録
LinkStation/玄箱 をハックしよう

暑いので(2)

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