PX-S1UD V2.0 と PX-BCUD を Raspberry Pi 3 Model B で使う件

スポンサーリンク

Raspberry Pi 3 Model B で PX-S1UD V2.0 を使用できるというのは過去に確認していたのですが、PX-BCUD も使用できるようになっていました。

なんとか両方一緒に Raspberry Pi に接続することも可能です。
rpi-s1ud-bcud

Raspberry Pi 3 Model B

OS は Raspbian を使用しました。

Download Raspbian for Raspberry Pi
Raspbian is the Foundation's official supported operating system. You can install it with NOOBS or download the image below.

RASPBIAN JESSIE WITH PIXEL
Version:January 2017
Release date:2017-01-11
Kernel version:4.4

しかし、Raspbian をインストールした Raspberry Pi 3 Model B に、ただ PX-S1UD V2.0, PX-BCUD を接続しただけでは使用できません。

PX-S1UD V2.0

px-s1ud

PX-S1UD V2.0 には過去のポストもありますが、再まとめ。

過去のポスト
PX-S1UD V2.0 を Raspberry Pi 3 Model B で使う件

PX-S1UD V2.0 を実際に接続してみます。

lsusb

Bus 001 Device 006: ID 3275:0080 VidzMedia Pte Ltd

dmesg を確認してみると、ファームウェア?でエラーが出ています。

[ 1564.058796] usb 1-1.3: new high-speed USB device number 6 using dwc_otg
[ 1564.159656] usb 1-1.3: New USB device found, idVendor=3275, idProduct=0080
[ 1564.159679] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1564.159708] usb 1-1.3: Product: PX-S1UD Digital TV Tuner
[ 1564.159722] usb 1-1.3: Manufacturer: PLEX Digital TV Tuner
[ 1565.226726] smsusb:smsusb_probe: board id=18, interface number 0
[ 1565.229014] usb 1-1.3: Direct firmware load for isdbt_rio.inp failed with error -2
[ 1565.229039] smsmdtv:smscore_load_firmware_from_file: failed to open firmware file 'isdbt_rio.inp'
[ 1565.229385] smsmdtv:smscore_init_ir: IR port has not been detected
[ 1565.229402] smsusb:smsusb_probe: Device initialized with return code 0
[ 1565.252015] DVB: registering new adapter (Siano Rio Digital Receiver)
[ 1565.252784] usb 1-1.3: DVB: registering adapter 0 frontend 0 (Siano Mobile Digital MDTV Receiver)...
[ 1565.253059] smsdvb:smsdvb_hotplug: DVB interface registered.
[ 1565.258432] usbcore: registered new interface driver smsusb

そのため、ファームウェアを入れ換えてみます。

cd /tmp && \
    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/

OS を再起動し、再度 dmesg を確認してみるとファームウェアのエラーは無くなっています。

[  141.438821] usb 1-1.3: new high-speed USB device number 15 using dwc_otg
[  141.539463] usb 1-1.3: New USB device found, idVendor=3275, idProduct=0080
[  141.539475] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  141.539481] usb 1-1.3: Product: PX-S1UD Digital TV Tuner
[  141.539488] usb 1-1.3: Manufacturer: PLEX Digital TV Tuner
[  141.540083] smsusb:smsusb_probe: board id=18, interface number 0
[  141.999146] DVB: registering new adapter (Siano Rio Digital Receiver)
[  141.999566] usb 1-1.3: DVB: registering adapter 0 frontend 0 (Siano Mobile Digital MDTV Receiver)...
[  141.999676] smsdvb:smsdvb_hotplug: DVB interface registered.
[  141.999685] smsmdtv:smscore_init_ir: IR port has not been detected
[  141.999692] smsusb:smsusb_probe: Device initialized with return code 0

PX-BCUD

px-bcud

PX-BUCD を実際に接続してみます。

lsusb

Bus 001 Device 007: ID 3275:0085 VidzMedia Pte Ltd

dmesg を確認してみると、DVB のデバイスとして認識されていません。というのも、2017-01-11 の Raspbian のカーネル 4.4 では、そもそも PX-BCUD をサポートしていません。

[ 1763.258807] usb 1-1.2: new high-speed USB device number 7 using dwc_otg
[ 1763.359698] usb 1-1.2: New USB device found, idVendor=3275, idProduct=0085
[ 1763.359721] usb 1-1.2: New USB device strings: Mfr=0, Product=1, SerialNumber=2
[ 1763.359734] usb 1-1.2: Product: PX-BCUD
[ 1763.359746] usb 1-1.2: SerialNumber: 0

PX-BCUD をサポートするパッチは、2016年5月に Accept されたようです。

[media] em28xx_dvb: add support for PLEX PX-BCUD (ISDB-S usb dongle)login
https://patchwork.linuxtv.org/patch/34157/

本家 Linux の GitHub のプロジェクトでは、

[media] em28xx: add support for PLEX PX-BCUD (ISDB-S)
https://github.com/torvalds/linux/commit/ab4d14528fdf946dfa7177b53e64f78bf8cce03a

Raspberry Pi の GitHub のプロジェクトでは、

[media] em28xx: add support for PLEX PX-BCUD (ISDB-S)
https://github.com/raspberrypi/linux/commit/ab4d14528fdf946dfa7177b53e64f78bf8cce03a

で、Raspberry Pi の Linux リポジトリを見てみると、カーネル 4.7 以降で PX-BCUD に対応しているようです。

というわけで、2017-01-11 Raspbian のカーネルを強制的に 4.4 から次の next に上げてみます。Raspbian 的には next は 4.9 で、LTS のようです。

Moving Linux kernel to 4.9
https://www.raspberrypi.org/forums/viewtopic.php?t=167934

sudo BRANCH=next rpi-update

カーネルをアップデート後、バージョンを確認してみると 4.9 になっていました。

name -a
Linux raspberrypi 4.9.9-v7+ #963 SMP Fri Feb 10 18:14:48 GMT 2017 armv7l GNU/Linux

そして dmesg を確認してみると、DVB のデバイスとして認識されていました。

[   86.685250] usb 1-1.2: new high-speed USB device number 7 using dwc_otg
[   86.816230] usb 1-1.2: New USB device found, idVendor=3275, idProduct=0085
[   86.816248] usb 1-1.2: New USB device strings: Mfr=0, Product=1, SerialNumber=2
[   86.816257] usb 1-1.2: Product: PX-BCUD
[   86.816264] usb 1-1.2: SerialNumber: 0
[   86.817331] em28xx: New device  PX-BCUD @ 480 Mbps (3275:0085, interface 0, class 0)
[   86.817342] em28xx: DVB interface 0 found: isoc
[   86.817518] em28xx: chip ID is em28178
[   88.288936] em28178 #0: EEPROM ID = 26 00 01 00, EEPROM hash = 0x705ac8db
[   88.288946] em28178 #0: EEPROM info:
[   88.288952] em28178 #0: 	microcode start address = 0x0004, boot configuration = 0x01
[   88.312551] em28178 #0: 	AC97 audio (5 sample rates)
[   88.312558] em28178 #0: 	500mA max power
[   88.312567] em28178 #0: 	Table at offset 0x24, strings=0x106a, 0x047a, 0x0000
[   88.313038] em28178 #0: Identified as PLEX PX-BCUD (card=98)
[   88.313046] em28178 #0: dvb set to isoc mode.
[   88.313172] em28178 #0: Binding DVB extension
[   88.321512] tc90522 4-0015: Toshiba TC90522 attached.
[   88.327411] qm1d1c0042 5-0061: Sharp QM1D1C0042 attached.
[   88.749713] DVB: registering new adapter (em28178 #0)
[   88.749745] usb 1-1.2: DVB: registering adapter 1 frontend 0 (Toshiba TC90522 ISDB-S module)...
[   88.751444] em28178 #0: DVB extension successfully initialized

recdvb

PX-S1UD V2.0, PX-BCUD のための録画用ソフトウェアとして recdvb が公開されています。

recdvb
https://github.com/dogeel/recdvb

必要と思われるパッケージをインストールした後、recdvb をビルドしてインストールします。

sudo gpasswd -a $USER video
sudo reboot

sudo touch /etc/ld.so.conf.d/local.conf
sudo sh -c "echo '/usr/local/lib' >> /etc/ld.so.conf.d/local.conf"
sudo apt-get -y install autoconf libpcsclite-dev pcsc-tools pcscd cmake libasound2-dev
cd /tmp && \
    git clone https://github.com/dogeel/recdvb && \
    cd recdvb && \
    chmod a+x autogen.sh && \
    ./autogen.sh && \
    ./configure && \
    make && \
    sudo make install

recdvb の実際の使い方としては、

PX-S1UD V2.0 のデバイス名が /dev/dvb/adapter0 とすると、

recdvb <ch> 30 out.ts

PX-BCUD のデバイス名が /dev/dvb/adapter1 とすると、

recdvb --dev 1 <ch> 30 out.ts