PT2+FUSE_b25+MythTVをDebianで使う上で録画失敗から対策したことを対策箇所ごとにまとめる。
エンコードなどマシンに負荷をかけすぎると録画中、fuse_b25がsyslogに“Driver Baffar Overflowed"というエラーを出して、以降の部分が録画されなくなる。
エンコードの際は、CPUコア(スレッド)の数より少ないスレッド数を指定する。
#2コア2スレッドの場合 $ ffmpeg -threads 1 [オプション]
更にfuse_b25の優先度は高くし、エンコードの優先度を低くしておく。
/etc/rc.local、fuse_b25のマウント部分
#マウント先の数字を元のデバイスよりいくつ大きくするか
OFFSET=10
for ADAPTER in 0 1 2 3
do
NEW_ADAPTER=`expr $ADAPTER + $OFFSET`
/usr/local/sbin/b25dir $NEW_ADAPTER
nice --4 /usr/local/bin/fuse_b25 --target /dev/dvb/adapter$ADAPTER /dev/dvb/adapter$NEW_ADAPTER -o allow_other
done
ffmpegの優先度を下げる
$ nice -15 ffmpeg [オプション]
また、録画ディスクのI/Oに負荷をかけすぎても同様のことが起こるのでTsSplitterを使う場合は必ずWAITオプションを指定する。
$ wine TsSplitter.exe [オプション] -WAIT2,5
録画の開始時にMythTVのバックエンドが落ちることがある。PIDファイルが残るのでmythbackendのプロセスがなく、PIDファイルが残っていたら再起動させる。念のためfuse_b25の再マウントも行う。
$ sudo vi /usr/local/sbin/mythtv_check.sh
takaaki 4月 16th, 2012
Posted In: ソフトウェア
DKMSはカーネルモジュールのソースパッケージを管理するシステム。これを使うとモジュールのビルド、インストールを自動化できる。これをPT2のDVB版ドライバに適用する。
DKMSのインストール
$ sudo aptitude install dkms
ソースのダウンロード・展開
$ wget http://www.linuxtv.org/hg/v4l-dvb/archive/tip.tar.gz $ tar xvzf tip.tar.gz
ソースのディレクトリは"<パッケージ名>-<バージョン>"という名前にし、/usr/src/以下に配置する。展開された状態で"v4l-dvb-3724e93f7af5"となっているのでそのままコピーした。
/usr/src/以下にソースをコピー
$ sudo cp -r v4l-dvb-3724e93f7af5/ /usr/src/
DKMSにソースパッケージを追加するにはソースディレクトリ内に"dkms.conf"という設定ファイルを作成する必要がある。
dkms.confの作成
$ sudo vi /usr/src/v4l-dvb-3724e93f7af5/dkms.conf #パッケージの名前 PACKAGE_NAME="v4l-dvb" #パッケージのバージョン PACKAGE_VERSION="3724e93f7af5" #中間ファイルの削除コマンド CLEAN="make clean" #ビルドするコマンド MAKE="make KVER=${kernelver}" #モジュールが作成される場所(ソースディレクトリからの相対パス) BUILT_MODULE_LOCATION[0]="v4l" BUILT_MODULE_LOCATION[1]="v4l" #作成されるモジュールの名前(拡張子.koは付けない) BUILT_MODULE_NAME=[0]"dvb_core" BUILT_MODULE_NAME=[1]"earth-pt1" #元々のインストール先(/lib/modules/`uname -r`をルートとしたパス) DEST_MODULE_LOCATION[0]="/kernel/drivers/media/dvb/dvb-core/" DEST_MODULE_LOCATION[1]="/kernel/drivers/media/dvb/pt1/" #自動更新の有効化 AUTOINSTALL="YES"
必要なモジュールはearth-pt1のみなのでearth-pt1とdvb-coreのみなので上記のようにした。他のモジュールも入れる場合BUILT_MODULE_LOCATION[2],BUILT_MODULE_NAME[2],DEST_MODULE_LOCATION[2]というようにインデックスを増やして指定する。同じインデックスで組になる。
AUTOINSTALL="YES"としておくとカーネルのアップデート時に自動的にインストールされる。(設定の有無だけを見ているので"NO"としても有効になる)
DEST_MODULE_LOCATIONは元々のモジュールを見つけるためだけに使われ、モジュールはupdates/dkms/以下にインストールされる。Ubuntu10.10以降など新しいディストリビューションでは使われるらしい。
ソースパッケージの追加
$ sudo dkms add -m v4l-dvb -v 3724e93f7af5
モジュールのビルド
$ sudo dkms build -m v4l-dvb -v 3724e93f7af5
モジュールのインストール
$ sudo dkms install -m v4l-dvb -v 3724e93f7af5
インストールされたモジュールの確認
$ sudo modprobe -l |grep earth-pt1.ko updates/dkms/earth-pt1.ko
モジュールのアンインストール
$ sudo dkms uninstall -m v4l-dvb -v 3724e93f7af5
ソースパッケージの登録削除
$ sudo dkms remove -m v4l-dvb -v 3724e93f7af5 --all
自動インストールの動作を確認するには次のコマンドを使う。
$ sudo /usr/lib/dkms/dkms_autoinstaller start
追記:アンインストールの記述間違いを修正
2012/03/30追記: earth-pt1のモジュールが動作しなかったのでdvb-coreもdkms.confに追加。
2012/05/11追記: 上手く動かなかったのでdkms.confにBUILT_MODULE_LOCATION[1]を追加。(動作確認済み)
takaaki 2月 4th, 2012
簡易設置したBSのアンテナがずれてBSが受信できなくなっていたので再調整した。
DVB版ドライバで信号レベルを測定する方法が見当たらないので、chardev版ドライバをインストールして測定する。測定にはrecpt1付属のchecksignalを使う。
ドライバの取得・展開
$ wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2 $ tar xvjf tip.tar.bz2
ドライバのインストール
$ cd pt1-3914cc1b2375/ $ cd driver/ $ make $ sudo make install
recpt1をビルド
$ cd ../recpt1/ $ ./autogen.sh $ ./configure $ make
ドライバ付属のもので問題ない。常用しないのでインストールはしない。
MythTVの停止
$ sudo /etc/init.d/mythtv-backend stop
fuse_b25のマウント解除
$ sudo umount /dev/dvb/adapter{10,11,12,13}
DVB版のドライバ無効化して、chardev版ドライバを有効化
$ sudo modprobe -r earth_pt1 $ sudo modprobe pt1_drv
DVB版と違って0,1がBS/CS、2,3が地上波になっている。地上波は物理チャンネルを指定、BSは通常のチャンネル。BSは同じ方角なので、チャンネルが古くても問題ない。
使い方
$ ./checksignal --help Usage: ./checksignal [--device devicefile] [--lnb voltage] [--bell] channel Options: --device devicefile: Specify devicefile to use --lnb voltage: Specify LNB voltage (0, 11, 15) --bell: Notify signal quality by bell --help: Show this help --version: Show version --list: Show channel list Available Channels: 13-62: Terrestrial Channels 101ch: NHK BS1 102ch: NHK BS2 103ch: NHK BShi 141ch: BS Nittele 151ch: BS Asahi 161ch: BS-TBS 171ch: BS Japan 181ch: BS Fuji 191ch: WOWOW 192ch: WOWOW2 193ch: WOWOW3 200ch: Star Channel 211ch: BS11 Digital 222ch: TwellV C13-C63: CATV Channels CS2-CS24: CS Channels
地上波
$ ./checksignal --device /dev/pt1video2
BS
$ ./checksignal --device /dev/pt1video0 --lnb 15 101
モジュールの入れ替え
$ sudo modprobe -r pt1_drv $ sudo modprobe earth_pt1
トラブル防止のためにchardev版ドライバを自動的にロードしないようにする
$ sudo sh -c 'echo "blacklist pt1_drv" >> /etc/modprobe.d/blacklist.conf'
もしくは、ドライバをアンインストールしてしまう
$ sudo rm /lib/modules/`uname -r`/kernel/drivers/video/pt1_drv.ko $ sudo rm /etc/udev/rules.d/99-pt1.rules
fuse_b25の再マウント
$ sudo fuse_b25 --target /dev/dvb/adapter0 /dev/dvb/adapter10 -o allow_other $ sudo fuse_b25 --target /dev/dvb/adapter1 /dev/dvb/adapter11 -o allow_other $ sudo fuse_b25 --target /dev/dvb/adapter2 /dev/dvb/adapter12 -o allow_other $ sudo fuse_b25 --target /dev/dvb/adapter3 /dev/dvb/adapter13 -o allow_other
MythTVの起動
$ sudo /etc/init.d/mythtv-backend start
追記:コマンドの間違いを修正
takaaki 2月 2nd, 2012
wineが前回やった方法でインストールできなくなっているので何とかインストールしてみた。
作業ディレクトリを作成して移動
$ mkdir /usr/local/src/wine-unstable/ $ cd /usr/local/src/wine-unstable/
パッケージのダウンロード
$ wget http://dev.carbon-project.org/debian/wine-unstable/\ {libwine-alsa-unstable_1.4~rc1-0.1_amd64.deb,\ libwine-bin-unstable_1.4~rc1-0.1_amd64.deb,\ libwine-capi-unstable_1.4~rc1-0.1_amd64.deb,\ libwine-cms-unstable_1.4~rc1-0.1_amd64.deb,\ libwine-dbg-unstable_1.4~rc1-0.1_amd64.deb,\ libwine-dev-unstable_1.4~rc1-0.1_amd64.deb,\ libwine-gl-unstable_1.4~rc1-0.1_amd64.deb,\ libwine-gphoto2-unstable_1.4~rc1-0.1_amd64.deb,\ libwine-ldap-unstable_1.4~rc1-0.1_amd64.deb,\ libwine-openal-unstable_1.4~rc1-0.1_amd64.deb,\ libwine-oss-unstable_1.4~rc1-0.1_amd64.deb,\ libwine-print-unstable_1.4~rc1-0.1_amd64.deb,\ libwine-sane-unstable_1.4~rc1-0.1_amd64.deb,\ libwine-unstable_1.4~rc1-0.1_amd64.deb,\ wine-bin-unstable_1.4~rc1-0.1_amd64.deb,\ wine-unstable_1.4~rc1-0.1_amd64.deb}
libwine-alsa-unstableが依存しているlib32asound2がsqueezeでは古いのでwineが上手くインストールできない。無理やりインストールしても問題は見当たらなかったのでlibwine-alsa-unstableのパッケージを書き換える。
libwine-alsa-unstableのパッケージを展開
$ dpkg-deb -x libwine-alsa-unstable_1.4~rc1-0.1_amd64.deb libwine-alsa-unstable_1.4~rc1-0.1_amd64 $ dpkg-deb -e libwine-alsa-unstable_1.4~rc1-0.1_amd64.deb libwine-alsa-unstable_1.4~rc1-0.1_amd64/DEBIAN
依存しているlib32asound2のバージョンを書き換え(squeezeのlib32asound2は1.0.23-2.1)
$ vi libwine-alsa-unstable_1.4~rc1-0.1_amd64/DEBIAN/control 7 Depends: lib32asound2 (>= 1.0.23-2.1), libc6-i386 (>= 2.1.3), libwine-unstable (= 1.4~rc1-0.1)
パッケージを再構築
$ dpkg-deb -b libwine-alsa-unstable_1.4~rc1-0.1_amd64 libwine-alsa-unstable_1.4~rc1-0.1_amd64.deb
パッケージのインストール
sudo dpkg -i *.deb
依存関係の修復
$ sudo aptitude -f install 以下の、インストールが完了していないパッケージが設定されます: libwine-alsa-unstable{b} libwine-bin-unstable libwine-capi-unstable libwine-cms-unstable{b} libwine-dbg-unstable libwine-dev-unstable{b} libwine-gl-unstable{b} libwine-gphoto2-unstable{b} libwine-ldap-unstable{b} libwine-openal-unstable{b} libwine-oss-unstable{b} libwine-print-unstable libwine-sane-unstable libwine-unstable{b} wine-bin-unstable wine-unstable インストール・削除・更新されるパッケージがありません。 更新: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。 0 B のアーカイブを取得する必要があります。展開後に 0 B のディスク領域が新たに消費されます。 以下のパッケージには満たされていない依存関係があります: libwine-unstable: 依存: ia32-libs (>= 20111001) but it is not going to be installed. 依存: lib32z1 (>= 1:1.1.4) but it is not going to be installed. libwine-openal-unstable: 依存: ia32-libs (>= 20111001) but it is not going to be installed. libwine-ldap-unstable: 依存: ia32-libs (>= 20111001) but it is not going to be installed. libwine-dev-unstable: 依存: libc6-dev but it is not going to be installed. 依存: libc6-dev-i386 but it is not going to be installed. libwine-cms-unstable: 依存: ia32-libs (>= 20111001) but it is not going to be installed. libwine-alsa-unstable: 依存: lib32asound2 (>= 1.0.23-2.1) but it is not going to be installed. libwine-gl-unstable: 依存: ia32-libs (>= 20111001) but it is not going to be installed. libwine-oss-unstable: 依存: oss-compat but it is not going to be installed. libwine-gphoto2-unstable: 依存: ia32-libs (>= 20111001) but it is not going to be installed. 以下のアクションでこれらの依存関係の問題は解決されます: 以下のパッケージを削除する: 1) libwine-alsa-unstable 2) libwine-bin-unstable 3) libwine-capi-unstable 4) libwine-cms-unstable 5) libwine-dbg-unstable 6) libwine-dev-unstable 7) libwine-gl-unstable 8) libwine-gphoto2-unstable 9) libwine-ldap-unstable 10) libwine-openal-unstable 11) libwine-oss-unstable 12) libwine-print-unstable 13) libwine-sane-unstable 14) libwine-unstable 15) wine-bin-unstable 16) wine-unstable この解決方法を受け入れますか? [Y/n/q/?]n 以下のアクションでこれらの依存関係の問題は解決されます: 以下のパッケージをインストールする: 1) binutils [2.20.1-16 (stable)] 2) gcc [4:4.4.5-1 (stable)] 3) gcc-4.4 [4.4.5-8 (stable)] 4) gcc-4.4-multilib [4.4.5-8 (stable)] 5) gcc-multilib [4:4.4.5-1 (stable)] 6) ia32-libs [20120102 (stable)] 7) lib32asound2 [1.0.23-2.1 (stable)] 8) lib32bz2-1.0 [1.0.5-6+squeeze1 (stable)] 9) lib32gcc1 [1:4.4.5-8 (stable)] 10) lib32gomp1 [4.4.5-8 (stable)] 11) lib32ncurses5 [5.7+20100313-5 (stable)] 12) lib32stdc++6 [4.4.5-8 (stable)] 13) lib32v4l-0 [0.8.0-1 (stable)] 14) lib32z1 [1:1.2.3.4.dfsg-3 (stable)] 15) libc-dev-bin [2.11.3-2 (stable)] 16) libc6-dev [2.11.3-2 (stable)] 17) libc6-dev-i386 [2.11.3-2 (stable)] 18) libgomp1 [4.4.5-8 (stable)] 19) linux-libc-dev [2.6.32-41 (stable)] 20) oss-compat [0.0.4+nmu3 (stable)] この解決方法を受け入れますか? [Y/n/q/?]y 以下の新規パッケージがインストールされます: binutils{a} gcc{a} gcc-4.4{a} gcc-4.4-multilib{a} gcc-multilib{a} ia32-libs{a} lib32asound2{a} lib32bz2-1.0{a} lib32gcc1{a} lib32gomp1{a} lib32ncurses5{a} lib32stdc++6{a} lib32v4l-0{a} lib32z1{a} libc-dev-bin{a} libc6-dev{a} libc6-dev-i386{a} libgomp1{a} linux-libc-dev{a} oss-compat{a} 以下の、インストールが完了していないパッケージが設定されます: libwine-alsa-unstable libwine-bin-unstable libwine-capi-unstable libwine-cms-unstable libwine-dbg-unstable libwine-dev-unstable libwine-gl-unstable libwine-gphoto2-unstable libwine-ldap-unstable libwine-openal-unstable libwine-oss-unstable libwine-print-unstable libwine-sane-unstable libwine-unstable wine-bin-unstable wine-unstable 更新: 0 個、新規インストール: 20 個、削除: 0 個、保留: 0 個。 49.7 MB のアーカイブを取得する必要があります。展開後に 129 MB のディスク領域が新たに消費されます。 先に進みますか? [Y/n/?] y
これで問題なくインストールされた。
winetricksのインストール
$ wget http://winetricks.org/winetricks $ sudo cp winetricks /usr/local/bin/ $ sudo chmod +x /usr/local/bin/winetricks
takaaki 1月 31st, 2012
Posted In: ソフトウェア
Linux用のRDPサーバーのXRDPを導入してみた。特に設定は必要無いのでVNC単体より簡単に使うことができる。また、普段GUIを使っていない場合でもログインしている間だけGUIが起動するので無駄が少ない。
Windows標準のリモートデスクトップ接続が使えるので、Windowsにクライアントをインストールする必要がない。
インストール
$ sudo aptitude install xrdp
インストールできたら、特に設定をする必要は無いのでWindowsから接続してみる。
ユーザー名とパスワードを入力するとデスクトップが表示される。
デフォルトでは「sesman-Xvnc」が使われ、VNCを経由して表示される。VNCなので音は出ない。任意のVNCサーバーやRDPサーバーに接続することもできる。
「sesman-X11rdp」という項目があり、Xを使って表示されるようだが、標準では使うことはできない。
X11rdpを導入するとXRDPにXが使えるようになる。ここに書かれていることを参考に導入した。
ソースのダウンロード・展開
$ cd /usr/local/src/ $ wget http://server1.xrdp.org/xrdp/x11rdp_xorg71.tar.gz $ tar xvzf x11rdp_xorg71.tar.gz
インストール
$ sudo mkdir /opt/X11rdp #インストール先ディレクトリを作成 $ cd x11rdp_xorg71 $ sudo sh buildx.sh /opt/X11rdp #インストール先を指定する
既存の環境に影響を与えないので/opt/X11rdpにインストールした。数十分かかるのでしばらく待つ。
インストールが完了したらパスが通っているディレクトリに実行ファイルのシンボリックリンクを貼る。
$ sudo ln -s /opt/X11rdp/bin/X11rdp /usr/local/bin/X11rdp
準備ができたのでRDPで接続してみる。
色の深度は16ビットにしておく
「sesman-X11rdp」を使って接続する
デスクトップが表示される。こちらも音声のリダイレクトには対応していない様子。
参考
Install xrdp and X11rdp – the comprehensive HOWTO for Ubuntu and Debian based systems « Scarygliders
takaaki 1月 28th, 2012
Posted In: ソフトウェア
MythTVで録画したファイルをネットワークメディアプレイヤーやWindowsクライアントから再生する方法を紹介する。
MythTVにはUPnP(DLNA)サーバー機能が備わっているというが、検出されないし、その設定項目もなかった。適切に設定されてない場所を修正するとあっさり有効になった。標準機能を使うのでwizdやmediatombと組み合わせるよりも手軽。
まず、mythtv-setupを起動する。
$ mythtv-setup
"1.一般"を選び、"ホストアドレスバックエンドの設定"で"Local Backend"と"Master Backend"の"IP Address"にマシンに振られているIPアドレスを指定する。両方に同じ物を指定しないと2つが別のマシンと認識してしまうので注意が必要。次に"UPnP Server Settings"の"UPnP Media Update Time"が0になっていないことを確認する。何も設定しなくてもデフォルトは30になっている。
設定を行ったら反映させる。一般ユーザーで設定しているのでバックエンドを再起動する。
$ sudo /etc/init.d/mythbackend restart
これでDLNAクライアントなどからMythTVが検出されるようになる。
タイトル、ジャンル、日付、チャンネル、グループのいずれかで分けて表示することもできる。サーバー側で並び順が変えられないのが惜しい所。下の画像はRDLNAを使った例。
takaaki 1月 20th, 2012
Posted In: ソフトウェア
タグ: Debian, DLNA, LAN, Linux, MythTV, PT2, TV, Windows, ネットワーク, 録画
ローカルメールを外部に転送できなくて放置していたのを調べてみた。
持っているアドレスに手当たり次第にmailコマンドでメールを送ってみるがどこにも届かなかった。Exim4の設定はインターネットサイトになっているので問題ないがログ(Exim4は/var/log/exim4/mainlog)を見てみると"No route to host"と出ていた。そこで、プロバイダの規制がないか調べてみると原因はOP25B(Outbound Port 25 Blocking)ということがわかった。聞いたことはあったがそういうことだとは思わなかった。
プロバイダのメールサーバーを経由すればOP25Bを回避できるので、Debian標準のExim4で設定する。
再設定コマンド
$ sudo dpkg-reconfigure exim4-config
ウィザードが表示される。メールサーバーとして使うつもりはないので必要な設定以外はデフォルトで進めていくことにする。
SMTP認証が必要なので設定する。
$ sudo vi /etc/exim4/passwd.client
例の通り追記する。
# Example: ### target.mail.server.example:login:password プロバイダのSMTPサーバー:アカウント名:パスワード
eo光の場合
smtpauth.eonet.ne.jp:xxxx@****.eonet.ne.jp: password
これでmailコマンドでメールが送れるようになった。
ローカルのメールサーバーは使わないのでメールを全部独自ドメインのgmailに転送する。
/etc/aliasesを編集する。最後の行のrootへのエイリアスに転送先メールアドレスを指定する。
$ sudo vi /etc/aliases root: example@example.com
一般ユーザー
ホームディレクトリに.forwardという名前のファイルを作って、そこにメールアドレスを指定する。
$ vi ~/.forward example@example.com
これでサーバーの通知メールなどが外部から受け取れるようになった。
takaaki 10月 22nd, 2011
Posted In: ソフトウェア
新しいBSチャンネルをスキャンしようとlinux用 DVBアプリ集ver.0.92に入ってるs2scanを使ってみると新しいチャンネルが出てこず、WOWOWのチャンネル名が変わってる程度だった。なぜ出てこないか調べてみると既存のものとTSIDが全く違っている様子。既存のものより0x400、0x600多いTSIDが振られていることが分かった。
追記 21:13
linux用 DVBアプリ集ver.0.96が出て対応したので、下記の操作は不要。
そこで、0x200ずつTSIDを増やしてスキャンするようにソースを変更した。パッチは以下の通り。
--- s2scan.c.orig 2010-05-17 21:01:46.000000000 +0900 +++ s2scan.c 2011-10-01 19:26:01.228455734 +0900 @@ -34,6 +34,7 @@ static int TS_IDX = 0; +static int TS_IDEX = 0; static int CH_IDX = 0; static int CH_IDX_END = 0; static FILE *INFILE; @@ -116,12 +117,16 @@ case BS: if (TS_IDX > 7) { TS_IDX = 0; - CH_IDX+=2; + TS_IDEX+=2; + if (TS_IDEX > 6 ) { + TS_IDEX = 0; + CH_IDX+=2; + } } if (CH_IDX > CH_IDX_END) return -1; freq = 11727480 + (CH_IDX - 1) * 38360 / 2 - 10678000; - ts_id = 0x4000 + (CH_IDX << 4) + TS_IDX; + ts_id = 0x4000 + (CH_IDX << 4) + TS_IDX + TS_IDEX * 0x100; TS_IDX++; break; case TER:
ダウンロード
ソースをmake
$ make s2scan cc s2scan.c arib_b24_str.c -o s2scan
作り直したs2scanでチャンネルスキャン
$ ./s2scan -p -b -a 0 trying freq:1049480 (tsid:4010)...locked..BS朝日1:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4010:151 BS朝日2:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4010:152 BS朝日3:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4010:153 ok. trying freq:1049480 (tsid:4011)...locked..BS−TBS:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4011:161 BS−TBS:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4011:162 BS−TBS:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4011:163 ok. trying freq:1049480 (tsid:4012)... no lock. skipped. trying freq:1049480 (tsid:4013)... no lock. skipped. trying freq:1049480 (tsid:4014)... no lock. skipped. trying freq:1049480 (tsid:4015)... no lock. skipped. trying freq:1049480 (tsid:4016)... no lock. skipped. trying freq:1049480 (tsid:4017)... no lock. skipped. trying freq:1049480 (tsid:4210)... no lock. skipped. trying freq:1049480 (tsid:4211)... no lock. skipped. trying freq:1049480 (tsid:4212)... no lock. skipped. trying freq:1049480 (tsid:4213)... no lock. skipped. trying freq:1049480 (tsid:4214)... no lock. skipped. trying freq:1049480 (tsid:4215)... no lock. skipped. trying freq:1049480 (tsid:4216)... no lock. skipped. trying freq:1049480 (tsid:4217)... no lock. skipped. trying freq:1049480 (tsid:4410)... no lock. skipped. trying freq:1049480 (tsid:4411)... no lock. skipped. trying freq:1049480 (tsid:4412)... no lock. skipped. trying freq:1049480 (tsid:4413)... no lock. skipped. trying freq:1049480 (tsid:4414)... no lock. skipped. trying freq:1049480 (tsid:4415)... no lock. skipped. trying freq:1049480 (tsid:4416)... no lock. skipped. trying freq:1049480 (tsid:4417)... no lock. skipped. trying freq:1049480 (tsid:4610)... no lock. skipped. trying freq:1049480 (tsid:4611)... no lock. skipped. trying freq:1049480 (tsid:4612)... no lock. skipped. trying freq:1049480 (tsid:4613)... no lock. skipped. trying freq:1049480 (tsid:4614)... no lock. skipped. trying freq:1049480 (tsid:4615)... no lock. skipped. trying freq:1049480 (tsid:4616)... no lock. skipped. trying freq:1049480 (tsid:4617)... no lock. skipped. trying freq:1087840 (tsid:4030)...locked..WOWOWプライム:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1087840|DTV_ISDBS_TS_ID=0x4030:191 ok.
これでスキャンされるTSIDが増え、新しいチャンネルもスキャンされるようになった。
takaaki 10月 1st, 2011
Posted In: ソフトウェア
家ではテレビにデジタルチューナーを導入しないと決まっていたので、PCで一応見れるようにとリモートでのリアルタイム視聴を視野に入れていた。http版recpt1を候補にしたが、MythTVでもfuse_b25で対応でき、MythTV Playerでリアルタイム視聴できるとわかったので、元々使っていたMythTVを引き続き使うことにした。視聴と予約録画が同じシステムにあるので、MythTVにはチューナーを効率的に活用できる利点がある。
MythTV+FUSE_b25とepgfillでパッチを当てずに常用できるが、BSが見られないなど色々と不具合があるのでパッチ当てたものを使う。ただし、依存関係やらが面倒なのでMythTVはDeb-Multimediaのものをベースにする。セットアップはPT1/PT2のDVBとMythTV @Wikiを参考にして行った。
MythTVを修正するためのパッチを用意する。
2011.9.29 追記
ISDB対応パッチとカテゴリ日本語化パッチを分離。パッチの形式を変更して再作成。
2011.9.30 追記
サブタイトルの切り直しパッチを更新。("最終回"や"<新>"などの文字列に対応)
2011.11.17
サブタイトルの切り直しパッチを更新
2011.12.11
サブタイトルの切り直しパッチを更新
2011.4.21
サブタイトルの切り直しパッチを更新
2012.5.19
0.25が最新版になったことの対策と自動アップデート防止を追記
番組表取得や全チャンネルのフルスキャンに対応したMythTVのISDB対応版がある。Debian-Multimediaのパッケージをベースにするため、これをそのまま使わずパッチとして利用する。
本家のソースとISDB版のソースを持ってきてパッチを作る。
$ sudo aptitude install git #gitが入っていない場合 $ w3m http://www.mythtv.org/download/mythtv/0.24.1 #本家 $ tar xjf mythtv-0.24.1.tar.bz2 $ git clone git://github.com/fukumen/mythtv.git mythtv #ISDB版 $ mv mythtv/mythtv/ isdb-mythtv $ diff -urN mythtv-0.24.1 isdb-mythtv > mythtv-isdb.patch
ISDB版で取得される番組表はepgdumpとは違い、カテゴリが英語になっているので、日本語に修正する。英語でも問題ないように思えるが、カテゴリが日本語になっていないと番組表の色分けが正常に行われない。
EITで取得した番組表のタイトルが番組名での録画予約に適さないのでサブタイトルを切り直すようにするパッチ。先頭の識別子と後半部分を切り出してサブタイトルの先頭につける。このパッチの正規表現では後半部分の切り出しが少し過剰になるかもしれない。
サブタイトル切り直しパッチ(2011.12.11版)
ISDB版でもBSには対応していないので無理やり対応させる。このレスを参考にデータベースにアクセスする際にTransportIDも一緒に取ってくる処理とDisEqCの無効化してBSをチューニングする処理を追加した。TSIDをつけてチューニングする処理を追加するだけでチャンネルスキャンで設定することはできない。そのため、データベースを直接操作する必要がある。チャンネル登録用スクリプトを用意したので記事の下の方を参照。
録画に失敗しても再試行しないバグがある。それに対応するパッチがwikiのトラブルシューティングにあるので持ってくる。これを当ててからfuse_b25に異常がない限り録画に失敗することはなくなった。
MythTVに内蔵しているffmpegをAACの音声切り替えに対応させるパッチ。これもwikiからもらってくる。視聴にMythTV Playerを使っていて音声切り替えでエラーが出るので効果は不明。
2011.11.16追記
Debian-Multimediaのmythtv(0.24.1+fixes20111029以降)にはこのパッチを当てられない。
takaaki 9月 10th, 2011
Posted In: ソフトウェア
タグ: Debian, DVB, fuse_b25, Linux, MySQL, MythTV, PT2, Qt, TV, ネットワーク, 録画
先月、アナログ停波に備え、余ったPT2を譲ってもらって録画環境をデジタル化した。地上波だけでは高い買い物に感じたのでBSにも対応させた。ようやく使えるようになってきたのでまとめる。今回はMythTV以外の部分。
用意した機材
B-CASカードは電話して再発行してもらった。BSが見られるか聞かれただけでメーカー、機種名は問われなかった。
家にアンテナが立っていないのでブースター付きの室内アンテナを新調。ケーブルが付属していないので2本必要になる。BSアンテナは十年以上使われてなかったものをガラクタで補修して簡単に設置した。アンテナケーブルは一番安く手に入るダイソーのものを購入。
信号レベルはWindowsマシンにカードを挿してSignalTalkerで測った。BSアンテナはBluetoothでSignalTalkerの音を飛ばして調整した。recpt1でも信号レベルは測れるらしいので、もしアンテナがずれたら試してみる。DVB版で測れるツールはないんだろうか。
まずドライバを導入する。chardev版ではなくDVB版を使う。DVB版はfuse_b25を使えば、アナログ環境で使っていたMythTVで使える。DVB版ドライバは新しいカーネルには標準で入っているが、squeezeのカーネルには入っていないのでインストールする。
PT2が認識しているか確認
$ lspci | grep Multimedia 04:01.0 Multimedia controller: Xilinx Corporation Device 222a (rev 01)
上のように出たらPT2が認識しているのでドライバをインストールする。ドライバのソースはhttp://www.linuxtv.org/hg/v4l-dvbからダウンロードできる。
そのままではビルドできないので必要なパッケージをインストールしておく。
$ sudo aptitude install build-essential linux-header-2.6-amd64
パッケージをインストールしたらドライバをビルドしてインストールする。
$ cd /usr/local/src/ $ wget http://www.linuxtv.org/hg/v4l-dvb/archive/tip.tar.bz2 $ tar xjf tip.tar.bz2 $ cd v4l-dvb-3724e93f7af5/ $ make $ sudo make install $ sudo reboot
インストール後、ドライバモジュールを読み込ませるために再起動する。
ドライバの確認。
$ lsmod | grep pt1 earth_pt1 15748 105 dvb_core 75106 1 earth_pt1 i2c_core 15819 6 i915,drm_kms_helper,earth_pt1,drm,i2c_algo_bit,i2c_i801 $ dmesg | grep DVB [ 7.555975] DVB: registering new adapter (earth-pt1) [ 7.556224] DVB: registering new adapter (earth-pt1) [ 7.556414] DVB: registering new adapter (earth-pt1) [ 7.556632] DVB: registering new adapter (earth-pt1) [ 7.892565] DVB: registering adapter 0 frontend 0 (VA1J5JF8007/VA1J5JF8011 ISDB-S)... [ 7.892655] DVB: registering adapter 1 frontend 0 (VA1J5JF8007/VA1J5JF8011 ISDB-T)... [ 7.892688] DVB: registering adapter 2 frontend 0 (VA1J5JF8007/VA1J5JF8011 ISDB-S)... [ 7.892714] DVB: registering adapter 3 frontend 0 (VA1J5JF8007/VA1J5JF8011 ISDB-T)... $ ls /dev/dvb/ adapter0 adapter1 adapter2 adapter3
ISDB-SとなっているのがBS/CS用、ISDB-Tとなっているのが地上波用になる。
takaaki 8月 19th, 2011
タグ: Debian, DVB, fuse_b25, Linux, MythTV, PT2, TV, Windows, 録画