PX-S1UDをLinuxで使えるようにしたのでChinachuと組み合わせてみた。録画にはrecdvbを使う。

暗号化の解除

録画時にB25デコードをかける場合はlibarib25やFUSE_b25をインストールしておく。

recdvbのセットアップ

PT3などと同じように録画するには録画コマンドrecdvb(recpt1の改造版)をこちらからダウンロードしておく。手順はrecpt1と変わらない。

必要なパッケージのインストール

$ sudo aptitude install automake

ビルドとインストール

$ cd /usr/local/src/
$ wget http://www13.plala.or.jp/sat/recdvb/recdvb-1.2.0.tgz
$ tar xvzf recdvb-1.2.0.tgz
$ cd recdvb-1.2.0
$ ./autogen.sh
$ ./configure --enable-b25 #libarib25でデコードする場合
$ make
$ sudo make install

recpt1などが入っている場合checksignalが上書きされるので注意。recdvbはPT2、PT3のDVBドライバでも使えるが、衛星放送には対応していない。checksignalも形式が違うのであまり当てにならない。

録画テスト

$ recdvb --dev 0 --b25 --strip チャンネル番号 録画秒数 録画ファイル名

/dev/dvb/adapter0の場合–devに0を指定。

Chinachuのインストール

Chinachuwikiに従えば問題なくインストールできる。DVBデバイスの場合、実行ユーザーをvideoグループに所属させる必要があるので注意が必要。

必要なパッケージのインストール(wikiの記述通り)

$ sudo apt-get install build-essential curl git-core libssl-dev yasm libtool autoconf

実行ユーザー作成

$ sudo adduser chinachu
$ sudo adduser chinachu video #デバイスの操作はvideoグループにしかできないので、グループに追加
$ sudo adduser chinachu sudo #インストール・アップデートのためにsudoグループに追加

ユーザーをchinachuに切り替え

$ sudo -i -u chinachu

ソースの取得

$ git clone git://github.com/kanreisa/Chinachu.git chinachu

インストール

$ cd chinachu
$ ./chinachu installer
Chinachu Installer Menu:
[!] These are installed under all /home/chinachu/chinachu/...
[!] Recommend the Auto installation.
1) Auto (full)            5) Node.js Modules       9) libfdk-aac
2) Auto (fast)            6) epgdump              10) libogg
3) submodule              7) libx264              11) libvorbis
4) Node.js Environment    8) libvpx               12) libav
what do you install? > 1
selected: Auto (full)

サービスの登録

$ ./chinachu service operator initscript > /tmp/chinachu-operator
$ ./chinachu service wui initscript > /tmp/chinachu-wui
$ sudo chown root:root /tmp/chinachu-operator /tmp/chinachu-wui
$ sudo chmod +x /tmp/chinachu-operator /tmp/chinachu-wui
$ sudo mv /tmp/chinachu-operator /tmp/chinachu-wui /etc/init.d/
$ sudo insserv chinachu-operator
$ sudo insserv chinachu-wui

設定ファイルの作成

$ cp config.sample.json config.json #サンプルのコピー
$ sudo vi config.json

録画ファイルの保存先を設定

  "recordedDir" : "./recorded/",

ユーザーの設定

  "wuiUsers": [
    "ユーザー名:パスワード"
  ],

外部から見られないのであれば、設定そのものを削除してもいい。

ファイル名のフォーマット

"recordedFormat": "[<date:yymmdd-HHMM>][<type><channel>][<tuner>]<title>.m2ts",

フォーマットに使えるタグは/node_modules/chinachu-common/lib/chinachu-common.jsのexports.formatRecordedNameを見るとわかる。下に一覧を用意した。

チューナーの設定

  "tuners": [
    {
      "name"        : "PX-S1UD",
      "isScrambling": false,
      "types"       : [ "GR" ],
      "command"     : "recdvb --dev 0 --b25 --strip --sid <sid> <channel> - -"
    }
  ],

/dev/dvb/adapter0の場合–devに0を指定する。

チャンネル設定

  "channels": [
    { "type": "GR", "channel": "16" },
    { "type": "GR", "channel": "21" },
    { "type": "GR", "channel": "22" },
    { "type": "GR", "channel": "23" },
    { "type": "GR", "channel": "24" },
    { "type": "GR", "channel": "25" },
    { "type": "GR", "channel": "26" },
    { "type": "GR", "channel": "27" }
  ]

地域に合わせて設定する

サービスの起動

$ sudo service chinachu-operator start
$ sudo service chinachu-wui start

しばらく待つと番組表が作成される。

WUIに接続

ブラウザに"http://IPアドレス:10772/"と入力するとChinachuのWUIに接続できる。ここから予約や録画ファイルの視聴・管理が行える。ストリーミング再生を無変換以外で使うにはそれなりのスペックが必要。番組表からできるライブ視聴はエンコードが必要で信頼性がまだ低いので、予約録画して再生した方がいい。

エイリアス

他のユーザーでchinachuコマンドをそのまま使うのはまずそうなので、普段使っているユーザーで使えるようにエイリアスを追加。(次回ログインから有効)

$ echo "alias chinachu='sudo -u chinachu /home/chinachu/chinachu/chinachu'" >> ~/.bash_aliases

CLIコマンド

自動予約ルール確認

$ chinachu rules

予約済み番組の確認

$ chinachu reserves

録画中番組の確認

$ chinachu recording

録画済み番組の確認

$ chinachu reserves recorded 

Chinachuのアップデート

$ chinachu updater

番組表手動更新

$ chinachu update

番組表の作り直し

$ chinachu update -f

ロックファイルの削除

$ chinachu unlock

ファイル名のフォーマット

<date:日付フォーマット>
日時。dateformatが使われる。
<id>
番組ID
<type>
放送波の種類
<channel>
チャンネル番号
<channel-id>
チャンネルID
<channel-sid>
SID
<channel-name>
チャンネル名
<tuner>
チューナー名
<title>
タイトル
<fulltitle>
EPGで受信したタイトル
<subtitle>
サブタイトル
<episode>
話数
<category>
ジャンル

おすすめ


3月 23rd, 2014

Posted In: ソフトウェア, ハードウェア

タグ: , , , , , , , , , ,

Leave a Comment

PLEXのUSBチューナーPX-S1UDがLinuxで使えるというので試してみた。標準ドライバに少し手を加えて使えるようにする。環境はDebian(wheezy)。

追記:ドライバがカーネルに組み込まれたのでこちらを参照。PX-S1UDとPT3のDVBドライバがLinux標準に – 底辺迷走

カーネルのアップグレード

Debian(wheezy)に導入されているカーネル3.2に含まれているドライバはPX-S1UDに使えないので、新しいカーネルを導入しておく。カーネル3.10以降であればアップグレードは不要。

使われているカーネルを確認

$ uname -r
3.2.0-4-amd64

Backportsリポジトリを追加

$ sudo sh -c "echo 'deb http://ftp.debian.org/debian/ wheezy-backports main' > /etc/apt/sources.list.d/wheezy-backports.list"
$ sudo aptitude update

カーネルのインストール

$ sudo aptitude -t wheezy-backports install linux-image-3.12-0.bpo.1-amd64

カーネルを入れ替えるために再起動

$ sudo reboot

カーネルを確認

$ uname -r
3.12-0.bpo.1-amd64

ドライバのビルド

必要なパッケージのインストール

$ sudo aptitude install build-essential linux-source-3.12 linux-headers-3.12-0.bpo.1-amd64

カーネルソースの展開

$ cd /usr/local/src/
$ tar xvJf /usr/src/linux-source-3.12.tar.xz

ビルドの準備

$ cd linux-source-3.12/
$ cp /boot/config-`uname -r` .config
$ make oldconfig
$ make modules_prepare
$ cp /lib/modules/`uname -r`/build/Module.symvers .

ドライバの階層に移動

$ cd drivers/media/usb/siano/

ソースを修正する

$ vi smsusb.c

usb_device_id smsusb_id_tableに次の2行を追加

        { USB_DEVICE(0x3275, 0x0080),
                .driver_info = SMS1XXX_BOARD_SIANO_RIO },

変更内容

$ diff -u smsusb.c{.org,}
--- smsusb.c.org        2014-01-26 02:18:00.000000000 +0900
+++ smsusb.c    2014-03-21 19:59:07.922682492 +0900
@@ -634,6 +634,8 @@
                .driver_info = SMS1XXX_BOARD_ZTE_DVB_DATA_CARD },
        { USB_DEVICE(0x19D2, 0x0078),
                .driver_info = SMS1XXX_BOARD_ONDA_MDTV_DATA_CARD },
+       { USB_DEVICE(0x3275, 0x0080),
+               .driver_info = SMS1XXX_BOARD_SIANO_RIO },
        { } /* Terminating entry */
        };

ドライバモジュールのビルド

$ make -C /usr/local/src/linux-source-3.12 M=`pwd` modules

ドライバのインストール

"make modules_install"ではうまくインストール出来ないのでcpでインストールする。Windows用ドライバに含まれるファームウェアも必要なので導入しておく。

元のモジュールを上書きするので、バックアップする

$ sudo mv /lib/modules/`uname -r`/kernel/drivers/media/usb/siano/smsusb.ko{,.org}

ドライバモジュールのインストール

$ sudo cp smsusb.ko /lib/modules/`uname -r`/kernel/drivers/media/usb/siano/
unzipのインストール
$ sudo aptitude install unzip

Windows用ドライバからファームウェアを導入

$ cd /usr/local/src/
$ wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip
$ unzip PX-S1UD_driver_Ver.1.0.1.zip
$ sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/

ドライバのロード

PX-S1UDの接続確認

$ lsusb |grep VidzMedia
Bus 002 Device 002: ID 3275:0080 VidzMedia Pte Ltd

ドライバモジュールのロード

$ sudo modprobe smsusb

デバイスの確認

$ ls /dev/dvb/
adapter0

ドライバモジュールを自動で読み込ませる

$ sudo sh -c "echo smsusb >> /etc/modules"

DVBデバイスとして認識されるので他のDVBデバイス同様に扱える。FUSE_b25を使えばMythTVでも使える。

参考:

おすすめ


3月 21st, 2014

Posted In: ハードウェア

タグ: , , , , , , , , ,

One Comment

MythTVがActive EIT Scanで非契約チャンネルに切り替えると、エラーと認識して動作しなくなってしまう。MythTVに無料番組だけ見るチャンネルを登録していると厄介だ。

syslog

Bad ret code[0x8902] in a ECM response.
Card I/O failed too many times.

FUSE_b25はエラーカウントが一定数(5)溜まると動作しなくなる仕様になっている。ECMのリターンコードがエラーでもエラーカウントを上げてしまう。そこで、ECMが非契約のリターンコードを返してもエラーカウントを上げないようにする。

非契約のリターンコード(地上デジタルテレビジョン放送運用規定(TR-B14) 第3分冊より

非契約 (Kwなし) A103
非契約 (契約外) 8901,8501,8301
非契約 (期限切れ) 8902,8502,8302
非契約 (視聴制限) 8903,8503,8303

bcas.cを変更して、非契約でもエラーカウントを上げないようにする。すべてのリターンコードをエラーに勘定しない場合は409行目を"goto through;"にして、399~406行を削除すればいい。

$ vi fuse_b25-0.4.8/src/bcas.c
   394    retcode = rbuf[4] << 8 | rbuf[5];
   395    if (retcode != CARD_RETCODE_GD_TIER &&
   396        retcode != CARD_RETCODE_GD_PREPPV &&
   397        retcode != CARD_RETCODE_GD_POSTPPV &&
   398        retcode != CARD_RETCODE_PV_PREPPV && retcode != CARD_RETCODE_PV_POSTPPV) {
   399      if (retcode == 0xa103 ||
   400          (retcode >= 0x8901 &&  retcode <= 0x8903) ||
   401          (retcode >= 0x8501 &&  retcode <= 0x8503) ||
   402          (retcode >= 0x8301 &&  retcode <= 0x8303)) {
   403        syslog (LOG_NOTICE,
   404            "Ret code[0x%04x] in a ECM response.\n", retcode);
   405        goto through;
   406      }
   407      syslog (LOG_NOTICE,
   408          "Bad ret code[0x%04x] in a ECM response.\n", retcode);
   409      goto failed;
   410    }

   441
   442  through:
   443    pthread_mutex_lock (&card->lock);
   444    kinfo->status = CMD_S_FAILED;
   445    pthread_mutex_unlock (&card->lock);
   446    return;
   447  }

パッチ

*** bcas.c.orig 2011-05-19 01:22:28.000000000 +0900
--- bcas.c      2012-08-04 17:21:55.558189838 +0900
***************
*** 396,401 ****
--- 396,409 ----
        retcode != CARD_RETCODE_GD_PREPPV &&
        retcode != CARD_RETCODE_GD_POSTPPV &&
        retcode != CARD_RETCODE_PV_PREPPV && retcode != CARD_RETCODE_PV_POSTPPV) {
+     if (retcode == 0xa103 ||
+         (retcode >= 0x8901 &&  retcode <= 0x8903) ||
+         (retcode >= 0x8501 &&  retcode <= 0x8503) ||
+         (retcode >= 0x8301 &&  retcode <= 0x8303)) {
+       syslog (LOG_NOTICE,
+           "Ret code[0x%04x] in a ECM response.\n", retcode);
+       goto through;
+     }
      syslog (LOG_NOTICE,
          "Bad ret code[0x%04x] in a ECM response.\n", retcode);
      goto failed;
***************
*** 430,435 ****
--- 438,449 ----
    }
    pthread_mutex_unlock (&card->lock);
    return;
+
+ through:
+   pthread_mutex_lock (&card->lock);
+   kinfo->status = CMD_S_FAILED;
+   pthread_mutex_unlock (&card->lock);
+   return;
  }

ダウンロード

パッチの当て方

$ patch fuse_b25-0.4.8/src/bcas.c < bcas_mythtv-patch/bcas_uncontracted.patch

ビルド・インストール

$ cd fuse_b25-0.4.8/
$ ./configure
$ make
$ sudo make install

おすすめ


8月 4th, 2012

Posted In: ソフトウェア

タグ: , , , , , ,

Leave a Comment

アンテナを110度CS対応にしたので、試用期間の残っているB-CASカードを使って検証してみた。MythTVにはBS対応パッチを当ててある。

アンテナとケーブル

アンテナを変える前はBSのほとんどのチャンネルが受信できたが、周波数の高いDlifeなどは受信できなかった。しかし、新しいアンテナに交換してもDlifeとCSの受信状態が悪く、CSの信号レベルが低かった。別の部屋のテレビは正常に受信できていたので、古いケーブルを交換してみると改善した。

受信確認

チャンネル登録スクリプトでチャンネルを登録して、視聴してみる。BSはすべてのチャンネルが正常に視聴することができた。しかし、チャンネルがCSに変わると極端に精度が落ちた。ほとんどが受信状態が悪いチャンネルで全く見れないチャンネルも多かった。正常に視聴できるチャンネルは一握り。

見れないチャンネルから特徴を探ってみるが、特定の周波数でもない。チューニング情報にも誤りはない。mythtvには原因がわかるログが見つからなかったが、syslogには大量のエラーが表示されていた。

failed to poll. errno:0.
poll received an error on the fd for pid:0x0701

MythTVに原因がないか切り分けるためにtuneコマンドとcatで録画する。確認したところ、MythTVでの視聴と大差ない。TvtPlayで確認していて、そこでサービスがいくつもあるのに気がついた。BSはTSIDでチャンネルを分けているのに対して、CSはserviceidでチャンネルを分けている(一つのチャンネルにサービスがいくつもある)。

FUSE_b25でCSは見れない?

CS放送は一つの周波数にいくつもサービスが載っていてその数も多い。FUSE_b25はそのすべてをデコードしようとするので、処理し切れない可能性が出てくる。だとすると、FUSE_b25ではCSを見れないことになる。見れないのは自分の環境だけかもしれないが、見れないという情報がいくつかある。

FUSE_b25の仕組みからしてどうにもならない。MythTV+DVBでのCS録画はMythTVにb25デコード機能を付けない限り難しいだろう。無料放送だけを見るので個人的な影響は小さいだろうが。

おすすめ


7月 18th, 2012

Posted In: ソフトウェア

タグ: , , , , , ,

Leave a Comment

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

(さらに…)

おすすめ


4月 16th, 2012

Posted In: ソフトウェア

タグ: , , , , , , , ,

Leave a Comment

簡易設置したBSのアンテナがずれてBSが受信できなくなっていたので再調整した。

DVB版ドライバで信号レベルを測定する方法が見当たらないので、chardev版ドライバをインストールして測定する。測定にはrecpt1付属のchecksignalを使う。

chardev版ドライバのインストール

ドライバの取得・展開

$ 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版ドライバの無効化

トラブル防止のために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

追記:コマンドの間違いを修正

おすすめ


2月 2nd, 2012

Posted In: ソフトウェア, ハードウェア

タグ: , , , , , ,

3 Comments

家ではテレビにデジタルチューナーを導入しないと決まっていたので、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が最新版になったことの対策と自動アップデート防止を追記

ISDB対応パッチ

番組表取得や全チャンネルのフルスキャンに対応した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対応パッチ

カテゴリ日本語化パッチ

ISDB版で取得される番組表はepgdumpとは違い、カテゴリが英語になっているので、日本語に修正する。英語でも問題ないように思えるが、カテゴリが日本語になっていないと番組表の色分けが正常に行われない。

カテゴリ日本語化パッチ

サブタイトルの切り直しパッチ

EITで取得した番組表のタイトルが番組名での録画予約に適さないのでサブタイトルを切り直すようにするパッチ。先頭の識別子と後半部分を切り出してサブタイトルの先頭につける。このパッチの正規表現では後半部分の切り出しが少し過剰になるかもしれない。

サブタイトル切り直しパッチ

サブタイトル切り直しパッチ(2011.11.17版)

サブタイトル切り直しパッチ(2011.12.11版)

サブタイトル切り直しパッチ(2012.4.21版)

BS対応パッチ

ISDB版でもBSには対応していないので無理やり対応させる。このレスを参考にデータベースにアクセスする際にTransportIDも一緒に取ってくる処理とDisEqCの無効化してBSをチューニングする処理を追加した。TSIDをつけてチューニングする処理を追加するだけでチャンネルスキャンで設定することはできない。そのため、データベースを直接操作する必要がある。チャンネル登録用スクリプトを用意したので記事の下の方を参照。

BS対応パッチ

新BS対応パッチ

チューニングバグ修正パッチ

録画に失敗しても再試行しないバグがある。それに対応するパッチがwikiのトラブルシューティングにあるので持ってくる。これを当ててからfuse_b25に異常がない限り録画に失敗することはなくなった。

チューニングパッチ

FFmpegのAAC音声切り替え対応パッチ

MythTVに内蔵しているffmpegをAACの音声切り替えに対応させるパッチ。これもwikiからもらってくる。視聴にMythTV Playerを使っていて音声切り替えでエラーが出るので効果は不明。

2011.11.16追記

Debian-Multimediaのmythtv(0.24.1+fixes20111029以降)にはこのパッチを当てられない。

ffmpegパッチ

(さらに…)

おすすめ


9月 10th, 2011

Posted In: ソフトウェア

タグ: , , , , , , , , , ,

12 Comments

先月、アナログ停波に備え、余ったPT2を譲ってもらって録画環境をデジタル化した。地上波だけでは高い買い物に感じたのでBSにも対応させた。ようやく使えるようになってきたのでまとめる。今回はMythTV以外の部分。

用意した機材

  • アースソフト PT2 Rev.A
  • NTT-ME SCR3310-NTTCom
  • B-CASカード
  • YAGI UwPA-UP
  • 富士通のBSアンテナ(十数年前のもの)
  • HORIC アンテナ2分配器 HAT-2SP911NB
  • YAGI 2分配器 CSPDL2(以前買って余ってた)
  • ダイソーのアンテナケーブル1m 315円*5

B-CASカードは電話して再発行してもらった。BSが見られるか聞かれただけでメーカー、機種名は問われなかった。

家にアンテナが立っていないのでブースター付きの室内アンテナを新調。ケーブルが付属していないので2本必要になる。BSアンテナは十年以上使われてなかったものをガラクタで補修して簡単に設置した。アンテナケーブルは一番安く手に入るダイソーのものを購入。

信号レベルはWindowsマシンにカードを挿してSignalTalkerで測った。BSアンテナはBluetoothでSignalTalkerの音を飛ばして調整した。recpt1でも信号レベルは測れるらしいので、もしアンテナがずれたら試してみる。DVB版で測れるツールはないんだろうか。

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となっているのが地上波用になる。

(さらに…)

おすすめ


8月 19th, 2011

Posted In: ソフトウェア, ハードウェア

タグ: , , , , , , , ,

Leave a Comment