Raspberry Pi 4 Model B 8GB で PLEX PX-S1UD V2.0 を使用

Raspberry Pi 4 Model B 8GB で PLEX PX-S1UD V2.0 を使用してみました。

OS

OS は Raspberry Pi OS (旧 Raspbian) ではなく Ubuntu を使用しました。2020 年 7 月の時点では Raspberry Pi OS は 32bit 版しか提供されておらず、 64bit 版はベータのテストバージョンです。一方、Ubuntu は公式に Raspberry Pi 4 向けの 64bit 版が提供されています。また、私は自作 PC でも Ubuntu を使用しているため、そこでのノウハウを横展開できる利点もあります。

Raspberry Pi 4 Model B 8GB にインストールした Ubuntu のバージョンは 20.04 です。インストールについは下記の通り、別途投稿しています。

PX-S1UD V2.0 接続

Ubuntu で PX-S1UD V2.0 を使用するユーザーを video グループに入れ、OS を再起動します (ログオフでもよいです) 。

sudo gpasswd -a $USER video
sudo reboot

続いて、私にとって必要と思われるパッケージをインストールします。

sudo apt install -y build-essential git wget libasound2-dev \
      autoconf libtool pcsc-tools pkg-config libpcsclite-dev pcscd \
      cmake yasm curl ssh dkms unzip

PX-S1UD V2.0 を Raspberry Pi 4 に接続します。lsusb コマンドを実行してみます。

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

dmesg コマンドを実行すると、下記のような出力がされていました。ファームウェアのファイルを開くのに失敗しているようです。

[  966.992219] usb 1-1.4: new high-speed USB device number 3 using xhci_hcd
[  967.093154] usb 1-1.4: New USB device found, idVendor=3275, idProduct=0080, bcdDevice= 0.01
[  967.093170] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  967.093181] usb 1-1.4: Product: PX-S1UD Digital TV Tuner
[  967.093192] usb 1-1.4: Manufacturer: PLEX Digital TV Tuner
[  967.154737] smsusb:smsusb_probe: board id=18, interface number 0
[  967.155981] smsusb:siano_media_device_register: media controller created
[  967.156836] usb 1-1.4: Direct firmware load for isdbt_rio.inp failed with error -2
[  967.156849] smsmdtv:smscore_load_firmware_from_file: failed to open firmware file 'isdbt_rio.inp'
[  967.166155] smsmdtv:smscore_init_ir: IR port has not been detected
[  967.166161] smsusb:smsusb_probe: Device initialized with return code 0
[  967.196904] dvbdev: DVB: registering new adapter (Siano Rio Digital Receiver)
[  967.197080] dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
[  967.197491] usb 1-1.4: DVB: registering adapter 0 frontend 0 (Siano Mobile Digital MDTV Receiver)...
[  967.197501] dvbdev: dvb_create_media_entity: media entity 'Siano Mobile Digital MDTV Receiver' registered.
[  967.197687] smsdvb:smsdvb_hotplug: DVB interface registered.
[  967.198563] usbcore: registered new interface driver smsusb

そのため、ファームウェアを入れ換えます。適当な作業用ディレクトリを作成し、そこで作業しています。

mkdir ~/working_directory && \
        cd ~/working_directory && \
        curl -O 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/

Ubuntu を再起動し、再度 dmesg コマンドを実行します。出力を確認してみるとファームウェアのエラーが出力されなくなりました。

[    1.914546] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[    2.064691] usb 1-1: New USB device found, idVendor=2109, idProduct=3431, bcdDevice= 4.21
[    2.064699] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    2.064704] usb 1-1: Product: USB2.0 Hub
[    2.065881] hub 1-1:1.0: USB hub found
[    2.066141] hub 1-1:1.0: 4 ports detected
[    2.358554] usb 1-1.4: new high-speed USB device number 3 using xhci_hcd
[    2.369931] usb_phy_generic phy: phy supply vcc not found, using dummy regulator
[    2.459286] usb 1-1.4: New USB device found, idVendor=3275, idProduct=0080, bcdDevice= 0.01
[    2.459294] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.459299] usb 1-1.4: Product: PX-S1UD Digital TV Tuner
[    2.459303] usb 1-1.4: Manufacturer: PLEX Digital TV Tuner

デバイス名は /dev/dvb/adapter0 でした。

$ ls -al /dev/dvb/adapter0

total 0
drwxr-xr-x 2 root root     100 Apr  1  2020 .
drwxr-xr-x 3 root root      60 Apr  1  2020 ..
crw-rw---- 1 root video 212, 0 Apr  1  2020 demux0
crw-rw---- 1 root video 212, 1 Apr  1  2020 dvr0
crw-rw---- 1 root video 212, 2 Apr  1  2020 frontend0

rec 系ソフトウェア

recdvb を使用しました。recdvb は複数存在しますが、GitHub で公開されている下記のものを使用しました。

GitHub

Corresponding to the BS/CS(ISDB-S) and CATV. Contribute to d…

recdvb をインストールします。

cd ~/working_directory && \
    git clone https://github.com/dogeel/recdvb && \
    cd recdvb && \
    chmod a+x autogen.sh && \
    ./autogen.sh && \
    ./configure && \
    make -j$(nproc) && \
    sudo make install

任意のチャンネルを設定し、10秒間キャプチャしてみます。PX-S1UD V2.0 のデバイス名が /dev/dvb/adapter0 とすると、実行するコマン ドは下記の通りです。

recdvb --dev 0 <gr_ch> 10 <gr_ch>.ts

暗号化されたストリームが出力されます。