隠していた事解禁。AliExpressで注文していた、ISDB-T対応 TVチューナー Geniatech MyGica S270が先日届いたのでLinux環境で使ってみた。Siano製のチップセットが搭載されているチューナー。何故買ったのかは「AliExpressで買ってみた」でのお楽しみとして、本編は続きを読むから。
目次
注意
ファームウェアを入れる
Ubuntu 14.04のXenialカーネル 4.4.0-62-genericにはすでにSianoのチップセットドライバが組み込まれているので挿せばチューナーとして認識する。が、ファームウェアを入れないとエラーを吐いて正常に動かないのでドライバCDのDriver/x64/x64Inf内にあるisdbt_rio.inpを/lib/firmwareにぶっこむ。
$ sudo cp /media/(user_id)/TV_Stick/Driver/x64/x64Inf/isdbt_rio.inp /lib/firmware/ $ sudo chmod 644 /lib/firmware/isdbt_rio.inp
すでにチューナーを挿してしまっている場合はぶっ込んだ後チューナーを挿し直せばいい。
ファームウェアが無いときのカーネルログ
[25132.712057] usb 1-4.4: new high-speed USB device number 6 using ehci-pci [25132.805522] usb 1-4.4: New USB device found, idVendor=187f, idProduct=0600 [25132.805528] usb 1-4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [25132.805531] usb 1-4.4: Product: MDTV Receiver [25132.805534] usb 1-4.4: Manufacturer: MDTV Receiver [25134.152569] smsusb:smsusb_probe: board id=18, interface number 0 [25134.370686] usb 1-4.4: Direct firmware load for isdbt_rio.inp failed with error -2 [25134.370697] smsmdtv:smscore_load_firmware_from_file: failed to open firmware file 'isdbt_rio.inp' [25134.371212] smsmdtv:smscore_init_ir: IR port has not been detected [25134.371216] smsusb:smsusb_probe: Device initialized with return code 0 [25134.456809] DVB: registering new adapter (Siano Rio Digital Receiver) [25134.457990] usb 1-4.4: DVB: registering adapter 0 frontend 0 (Siano Mobile Digital MDTV Receiver)... [25134.458330] smsdvb:smsdvb_hotplug: DVB interface registered. [25134.462790] usbcore: registered new interface driver smsusb
b25をビルドする
放送波をB-CASカードを用いて復号してみる場合はlibarib25をインストールする。
$ sudo apt-get install cmake pcscd pcsc-tools libpcsclite1 libpcsclite-dev libccid $ git clone https://github.com/stz2012/libarib25 $ cd libarib25 $ mkdir build $ cd build $ cmake .. $ make $ sudo make install
recdvbをビルドする
libarib25をインストールした場合は./configureのオプションに--enable-b25を与える。
$ wget http://www13.plala.or.jp/sat/recdvb/recdvb-1.3.1.tgz $ tar xzvf recdvb-1.3.1.tgz $ cd recdvb-1.3.1 $ ./autogen.sh $ ./configure --enable-b25 $ make $ sudo make install
試しに録画してみる
recdvbを使って早速録画してみる。録画には物理チャンネル番号が必要だが、マスプロ電工のサイトから確認できる(ただし執筆時点で2014/03/31更新のデータの為それ以降の開局・チャンネル変更は反映されていない)。
--enable-b25付きでビルドしている場合はオプションに--b25 --stripを与えると復号処理も行う(ICカードリーダーにB-CASカードをセットした状態にすること)。与えなかった場合、ワンセグ以外は別途復号しない限り再生できない。
--sidには録画対象のサービスを指定する。hdとした場合は最初のサービス(論理チャンネルでいうとxx1chにあたる)、1segとした場合はワンセグサービス、--sidを指定しない場合はすべてのサービスを含めて録画する。
15の部分は物理チャンネルを指定している。ここでは札幌などでのNHK総合の物理チャンネルを指定している。30は録画する秒数、test.tsは出力先のファイル名を指定している。
$ recdvb --b25 --strip --sid hd 15 30 test.ts
うまくいくとtest.tsが出来上がるのでこれをvlcなりで再生してみる。うまく再生できれば成功。
もしB25絡みでエラーが出てくる場合は復号ができていないのでICカードリーダーの接続の確認やB-CASカードの再セットなどを行うべし。
ストリーミングサーバー
recdvbは--httpオプションを与えるとストリーミングサーバーとして稼働させることができる。ポート番号はお好みで(ここでは8800を指定している)。録画時と同じく--enable-b25でビルドしている場合はオプションに--b25 --stripを与える。
$ recdvb --b25 --strip --http 8800
VLCなどでhttp://[IPアドレス]:[指定したポート]/[物理チャンネル]/[サービス:hd/1seg]を開くと見れるはず。
今後について
今回は使われていないアンテナケーブルを隣の部屋から持ってきてやってみたが、その部屋にあまり使っていないRaspberry Piを置いて録画サーバーでも組んでみるかなぁ。ストレージ等の必要機器を調達しないといけないから資金の問題も出てくるが…