2009年09月23日

VieraとValdiaのHDMI-CEC連携

大手家電メーカー製デジタル家電の売りの一つにxxリンクと呼ばれるアレがある。そう、HDMIケーブルで接続したTVやレコーダー、アンプを連 携して動かすアレである。

このリンク機能はHDMI-CECという規格をベースとして各社が拡張したものであり、基本的な機能は異なるメーカー間でも使えるものの、高度な連携は同一メーカーの最新の機材をそろえないと使えなかったりする。動作保証という観点から(囲い込みという観点から?)他メーカーとの連携に関する情報は公式サイトには記載されない。

今回、理由あってパナのデジタルTVと東芝のレコーダーを接続したので、HDMI-CEC連携の様子について説明しておこうと思う。今回実験した組み合わせは、Panasonic Viera TH42PZ80(ちょっと前のテレビ)と 東芝 Valdia RD-S304K(わりと新しいレコーダ)である。AVラックに収める前の動作試験なので、ValdiaのHDMI-outをVieraのHDMI-in3(本体前面のパネル)に接続した。テレビ・レコーダー共にHDMIリンクを有効にして、一回電源を切る。そして、実験スタート。

可否方向機能
レコ→TVレコーダーの電源ONに対応して、TVの電源をON
不明レコ→TVレコーダーの電源OFFに対応して、HDMI入力を選択中のTVの電源をOFF
レコ→TVレコーダーの操作に対して、HDMI入力モードにTVの映像ソース切り替え
レコ→TVレコーダーの操作に対して、電源OFFのテレビをONにしてHDMI入力に切り替え
TV→レコTVの映像ソースがHDMI入力の時に、TVを切るとレコーダーも切れる
不可TV→レコ今見ている番組をレコーダーで録画開始
不可TV→レコTVの番組表からレコーダーの録画予約
不明TV→レコテレビのチャンネル設定のインポート

なお、表中の「」は再現できた連携動作、「不可」は動作しなかった連係動作、「不明」は実験できなかったor再現できなかった連係動作である。

レコーダーの操作に伴う映像ソースの変更はメインメニューの呼び出し、映像の再生などで利用可能だった。録画予約に関する動作は、残念ながら動作しなかった。VieraはDigaを接続することを前提にしているらしい。

posted by yuji_at_radiance at 22:58| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年09月20日

epgrecのインストール(ブラウザの設定編)

前回・前々回の手順で、epgrecのアーカイブと必要なツールがインストール・設定されているはずである。 今回は、epgrecをブラウザ経由で操作して初期設定を行う。

apacheの設定

まず、epgrecがapacheから見えるように設定を変更する。新たに/home/foltia/epgrecをドキュメントディレクトリに追加する。 既存のドキュメントディレクトリ(httpd/htdocsとかhttpd/htmlとかuser/public_htmlとか)にepgrecを置く場合この作業は不要である。 httpd.confに数行の設定を追加する。

/home/foltia/foltia_httpd/conf/httpd.conf
Alias /epgrec "/home/foltia/epgrec"

    DirectoryIndex index.php index.html
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

そしてapacheを再起動する。
# /etc/init.d/foltia_httpd restart

ブラウザベースの設定

h ttp://radiance/epgrec/index.phpにブラウザでアクセスする。 初回設定が済んでいないと自動的に対話的セットアップのページに飛ぶ。すごい。 デジタルチューナー設定については特に何もしない。 システム設定は変更が必要。少なくとも以下の項目を編集する。

  • MySQLサーバー名はlocalhost
  • MySQLユーザー名はfoltia
  • MySQLパスワードはpassword-for-foltia
  • データベース名はfoltia_epgrec
  • インストールURLはh ttp://radiance/epgrec
MySQLパスワードはepgrec以下に平文で保存されるので、他のパスワードと違う文字列にしたほうがよい。MySQLパスワードの設定については前記事(蛇足編)を参考にしていただきたい。 ちゃんと設定できると、EPGの初回受信を始める。私の場合なぜかここでepgrecがうんともすんとも言わなくなった。真面目に仕事しているかどうか、recfriioの動作状態を確認する。
$ ps -A | grep recfriio
recfriioが立ち上がっていないのにロックファイルがあると、他のプロセスの迷惑になるのでチェックして削除
$ rm -i /home/foltia/foltia_tools/perl/tool/friiodetect
上手くいかない場合、手動で試してみる。15分くらいかかる。
$ /home/foltia/foltia_php/bin/php /home/foltia/epgrec/getepg.php

cronに仕事を追加

定時に行う仕事をcrontabに追加する。例えば12時29分に番組表を取得するには次のように書く。

$ crontab -l | grep epgrec
29 12 * * *  /home/foltia/foltia_php/bin/php /home/foltia/epgrec/getepg.php

最後に・・・

videoフォルダを大容量ディスクへのシンボリックリンクに張り替える

$ rm -rf video
$ ln -s /home/shared3/foltiarec video

posted by yuji_at_radiance at 09:24| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年09月19日

epgrecのインストール:蛇足編

ここではepgrecが依存している環境、apacheとphp、MySQLのインストールと設定について説明する。これらがプリインストールされた環境でepgrecを使おうという人は読み飛ばしていただきたい。不幸にも環境に不備があった人、環境をカスタマイズしようとしている人に本記事を捧ぐ。

apacheの設定

foltiaを設定したときの記事を参考にしていただきたい。基本的にapacheのビルド設定は変更していない

MySQLのインストールと設定

MySQLはyumを使ってインストールする。らくちん。

# yum install mysql mysql-server mysql-devel
# /etc/init.d/mysqld start
コンソール作業でMySQLの初期設定を行う。もしかしたらepgrecが勝手にやってくれるかも知れないけど、手を動かそう。
ルートパスワードの設定とセキュリティーホールなユーザの削除
$mysql -u root mysql
mysql> set password for root@localhost=password("root-pass");
mysql> delete from user where user='';
mysql> delete from user where password='';
mysql> quit
foltiaユーザの作成(便利なコマンドがありそうだけど・・・)
$mysql -u root -p mysql
password: "root-pass"
mysql> insert into user set
    -> host='localhost',
    -> user='foltia',
    -> password=Password('password-for-foltia'),
    -> Select_priv='Y',
    -> Insert_priv='Y',
    -> Delete_priv='Y',
    -> Update_priv='Y',
    -> Create_priv='Y';
データベースを新規作成し、ユーザfoltiaに関連付ける
mysql> create database foltia_epgrec
mysql> grant all on foltia_epgrec to foltia@localhost 
    -> identified by 'password-for-foltia';

重大な訂正(2009/11/19)。Update_privの権限を付加するのを忘れていた。というか、書き写すときに抜けていた。権限を付与しないとupdateコマンドが使えないので、epgの更新などの作業中にこける。もうむしろ全権与えてもいいんじゃないかという気がしてきた。

php5の設定

MySQLのサポートとマルチバイト文字サポートが必要になる。最低限必要なconfigureコマンドとビルド手順は以下の通り。先にmysql-develをインストールしておくこと。

$ ./configure  --disable-debug \
  --with-apxs2=/home/foltia/foltia_httpd/bin/apxs \
  --with-pgsql=/usr/bin \
  --prefix=/home/foltia/foltia_php \
  --with-mysql --enable-mbstring --enable-mbregex
$ make
# /etc/init.d/foltia_httpd stop
# make install
--enable-mbstringを外すと、録画予約中にスクリプトがコケるので注意。画面は正しく遷移するのにデータベースが更新されないのでタチが悪い。foltia_php/lib/php.iniを編集してlog_errors=Onにしておくと、apacheのエラーログにmbライブラリの欠落が警告されるようになる。

次回は最終回、Webベースの設定とdailyスクリプトの登録。

posted by yuji_at_radiance at 00:54| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

2009年09月18日

epgrecのインストール

テレビ王国がアクセス制限を行っているためfoltiaのEPG機能は正常に動作しない。アニメの放映情報はしょぼいカレンダーから取得しているので問題ないが、それ以外の番組を録画するには手動で入力するしかない。状況を打開するために、日経Linuxで記事になっていたepgrecを動かしてみることにした。なるべく既存のfoltia環境に相乗りする形でインストールすることを目指してトライする。

epgrecのダウンロード

配布ページから最新のアーカイブをダウンロードする。私が入手したのは8月14日版。あとTSからEPGを取り出すツールepgdumpを入手しておく。epgrec配布サイトから入手するか、DTV保管庫へ。私が使っているのはepgdumpr2 (up0027.zip)。

epgdumpのビルド・インストール

up0027.zipはunzipコマンドで解凍できない。本当の拡張子は.tarだからである(アップローダーの仕様?)。拡張子を変えてさっくりとビルドして、適当なパスに放り込む。

$ mv up0027.zip up0027.tar
$ tar -xvf up0027.tar
$ cd epgdumpr2
$ make
# cp epgdump /usr/local/bin

epgrecの解凍

既存の設定として以下の環境を想定する。

  • 全てのツールはユーザfoltiaの権限で動かす
  • チューナーはmonsterTV HDUS(F)
  • /home/foltia以下には以下のディレクトリがある
    • foltia_httpd...foltia用apache
    • foltia_php.....foltia用php5
    • foltia_tools...foltiaの録画ツール
    • src............apache/phpのビルド用ディレクトリ
本記事では、epgrecのファイル一式を/home/foltia/epgrecに解凍する。

epgrecの設定:コンソール編

まずは録画ドライバを調整し、EPGが取得できることを確認する。設定ファイルと録画ドライバのテンプレートをコピーする。

$ cd /home/foltia/epgrec
$ cp config.php.sample config.php
$ cp do-record.sh.friio do-record.sh
config.phpを編集する。自分の住んでいるエリアに対応した放送局のみコメントを外す。他はとりあえず放置。 do-record.shを編集する。foltiaと録画予約がバッティングした時にrecfriioが多重起動しないようにロックファイルを共用する。
do-record.sh
#!/bin/sh
echo "CHANNEL : $CHANNEL"
echo "DURATION: $DURATION"
echo "OUTPUT  : $OUTPUT"
echo "TUNER : $TUNER"
echo "TYPE : $TYPE"
echo "MODE : $MODE"

RECORDER=/usr/local/bin/recfriio
B25=/usr/local/bin/b25_bcas
LOCKFILENAME=/home/foltia/foltia_tools/perl/tool/friiodetect

$RECORDER --b25 --hdus --lockfile ${LOCKFILENAME} \
          ${CHANNEL} ${DURATION} ${OUTPUT} >/dev/null
ちゃんと書けているか一応試す。ついでにEPGを抽出してみる
$ OUTPUT=test.ts CHANNEL=27 DURATION=90 TUNER=0 MODE=0 TYPE=GR /var/www/epgrec/do-record.sh
$ epgdump 27 test.ts test.xml
$ cat test.xml

区切りのいいところで次回へ続く

posted by yuji_at_radiance at 23:53| Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。