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 の APT のパッケージを最新にし、Ubuntu で PX-S1UD V2.0 を使用するユーザーを video グループに入れ、Ubuntu を再起動します。

sudo apt update
sudo apt upgrade
sudo gpasswd -a $USER video
sudo reboot

再起動後の情報は下記の通りでした。

$ uname -a
Linux ubuntu 5.4.0-1013-raspi #13-Ubuntu SMP Mon Jun 15 03:17:37 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux

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

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 006: ID 3275:0080 VidzMedia Pte Ltd

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

[55170.570408] usb 1-1.4: new high-speed USB device number 6 using xhci_hcd
[55170.671288] usb 1-1.4: New USB device found, idVendor=3275, idProduct=0080, bcdDevice= 0.01
[55170.671304] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[55170.671314] usb 1-1.4: Product: PX-S1UD Digital TV Tuner
[55170.671325] usb 1-1.4: Manufacturer: PLEX Digital TV Tuner
[55170.696274] smsusb:smsusb_probe: board id=18, interface number 0
[55170.697562] smsusb:siano_media_device_register: media controller created
[55170.698392] usb 1-1.4: Direct firmware load for isdbt_rio.inp failed with error -2
[55170.698423] smsmdtv:smscore_load_firmware_from_file: failed to open firmware file 'isdbt_rio.inp'
[55170.707762] smsmdtv:smscore_init_ir: IR port has not been detected
[55170.707769] smsusb:smsusb_probe: Device initialized with return code 0
[55170.728132] dvbdev: DVB: registering new adapter (Siano Rio Digital Receiver)
[55170.728453] dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
[55170.729098] usb 1-1.4: DVB: registering adapter 0 frontend 0 (Siano Mobile Digital MDTV Receiver)...
[55170.729114] dvbdev: dvb_create_media_entity: media entity 'Siano Mobile Digital MDTV Receiver' registered.
[55170.729458] smsdvb:smsdvb_hotplug: DVB interface registered.
[55170.730332] 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 コマンドを実行します。出力を確認してみるとファームウェアのエラーが出力されなくなりました。

[   99.963679] usb 1-1.4: new high-speed USB device number 3 using xhci_hcd
[  100.063498] usb 1-1.4: New USB device found, idVendor=3275, idProduct=0080, bcdDevice= 0.01
[  100.063512] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  100.063522] usb 1-1.4: Product: PX-S1UD Digital TV Tuner
[  100.063533] usb 1-1.4: Manufacturer: PLEX Digital TV Tuner
[  100.098567] smsusb:smsusb_probe: board id=18, interface number 0
[  100.100043] smsusb:siano_media_device_register: media controller created
[  100.573150] smsmdtv:smscore_init_ir: IR port has not been detected
[  100.573166] smsusb:smsusb_probe: Device initialized with return code 0
[  100.607253] dvbdev: DVB: registering new adapter (Siano Rio Digital Receiver)
[  100.607391] dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
[  100.607754] usb 1-1.4: DVB: registering adapter 0 frontend 0 (Siano Mobile Digital MDTV Receiver)...
[  100.607763] dvbdev: dvb_create_media_entity: media entity 'Siano Mobile Digital MDTV Receiver' registered.
[  100.607938] smsdvb:smsdvb_hotplug: DVB interface registered.
[  100.608670] usbcore: registered new interface driver smsusb

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

$ ls -al /dev/dvb/adapter0
total 0
drwxr-xr-x 2 root root     100 Jul 12 10:07 .
drwxr-xr-x 3 root root      60 Jul 12 10:07 ..
crw-rw---- 1 root video 212, 0 Jul 12 10:07 demux0
crw-rw---- 1 root video 212, 1 Jul 12 10:07 dvr0
crw-rw---- 1 root video 212, 2 Jul 12 10:07 frontend0

OS

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

GitHub

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

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

cd ~/working_directory && \
  wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip && \
  unzip c44e16dbb0e2.zip && \
  cd pt1-c44e16dbb0e2/arib25 && \
  make -j$(nproc) && \
  sudo make install

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

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

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

キャプチャ結果は VLC 等で確認することができます。