吉方位確認サービス「楽方位」α版を公開しました。

Raspberry Pi 3 Model B で PLEX PX-W3U4 が動くという良い話

Sponsored Links

先日、PLEX から PX-W3U4 の Ubuntu 18.04 (x86_64) 向けのドライバがリリースされ、動作確認をしていたのですが、

http://www.plex-net.co.jp/download/

GitHub 上で開発されている “PLEX PX-W3U4/W3PE4 Unofficial Linux driver” にも大きな進展がありました。

https://github.com/nns779/px4_drv

2018 年の 2 月くらいに S 側の対応がされていたのは確認していたのですが、今回、T 側も対応されたとのことです。

私は PX-W3U4 を所有しています。Raspberry Pi 3 Model B で動作確認してみました。OS は Raspbian です。PX-W3U4 は USB であるため、元々あまり環境を選ばないのですが、ソースコードを公開するドライバ開発のお蔭で、Linux OS のディストリビューションやバージョンに依存しない、32bit、ARM など、可能性がさらに大きく広がります。

https://www.raspberrypi.org/downloads/raspbian/

確認した Raspbian のバージョンは、April 2019 (2019-04-08) です。

カーネルのバージョンは下記の通りです。

$ uname -a
Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux

Debian 9 ベースです。

$ cat /etc/os-release 
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Raspberry Pi 3 Model B に PX-W3U4 を挿して lsusb を実行してみます。

Bus 001 Device 009: ID 0511:083f N'Able (DataBook) Technologies, Inc.

dmesg も確認してみます。

[30956.311982] usb 1-1.3: new high-speed USB device number 9 using dwc_otg
[30956.446584] usb 1-1.3: New USB device found, idVendor=0511, idProduct=083f
[30956.446597] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[30956.446606] usb 1-1.3: Product: W3U4
[30956.446615] usb 1-1.3: Manufacturer: PLEX̀
[30956.446623] usb 1-1.3: SerialNumber: 00000xxx00xxxxx

GitHub の README にも記載されているように、ファームウェアを置いて、カーネルヘッダを入れて、ドライバをビルドしてインストールします。

sudo apt-get -y install git
git clone https://github.com/nns779/px4_drv
cd px4_drv/fwtool/
make
curl -O http://plex-net.co.jp/plex/pxw3u4/pxw3u4_BDA_ver1x64.zip
unzip -oj pxw3u4_BDA_ver1x64.zip pxw3u4_BDA_ver1x64/PXW3U4.sys
./fwtool PXW3U4.sys it930x-firmware.bin
sudo cp it930x-firmware.bin /lib/firmware/
cd ../

sudo apt-get -y install raspberrypi-kernel-headers # Raspbrry Pi only
cd driver
make
sudo make install
sudo modprobe px4_drv

dmesg を確認してみます。

[31725.178930] px4_drv: loading out-of-tree module taints kernel.
[31725.179844] px4_drv: px4_drv version 0.1.0, rev: 108, commit: 443ab19f90895ac5025264725e16b8a73c9744b5 @ develop
[31725.289344] px4_drv 1-1.3:1.0: Firmware loaded. version: 1.4.0.0
[31725.428722] px4_drv 1-1.3:1.0: tsdev 0: px4video0
[31725.428886] px4_drv 1-1.3:1.0: tsdev 1: px4video1
[31725.428962] px4_drv 1-1.3:1.0: tsdev 2: px4video2
[31725.429033] px4_drv 1-1.3:1.0: tsdev 3: px4video3
[31725.429195] usbcore: registered new interface driver px4_drv

lsmod も確認してみます。

$ lsmod | grep px4
px4_drv                65536  0

/dev/ 下にデバイスが作成されています。

$ ls -al /dev/px4*
crw-rw-r-- 1 root video 243, 0 May 18 13:54 /dev/px4video0
crw-rw-r-- 1 root video 243, 1 May 18 13:54 /dev/px4video1
crw-rw-r-- 1 root video 243, 2 May 18 13:54 /dev/px4video2
crw-rw-r-- 1 root video 243, 3 May 18 13:54 /dev/px4video3

以前に同じドライバをインストールしていて、今回再度インストールし、/dev/ 下にデバイスが無い場合、下記を実行するとよいかもしれません。

sudo modprobe -r px4_drv
sudo modprobe px4_drv

recpt1 で使用できるか確認してみます。注意点としては、ビルド前に pt1_dev.h に PX-W3U4 のデバイス名を追加しておく必要があります。例えば、下記の通りです。

cd
sudo apt-get -y install autoconf
git clone https://github.com/stz2012/recpt1.git
cd recpt1/recpt1
sed -i -e "/^char \*bsdev\[NUM_BSDEV\] = {$/a \ \ \ \ \"/dev/px4video1\",\n\ \ \ \ \"/dev/px4video0\"," pt1_dev.h
sed -i -e "/^char \*isdb_t_dev\[NUM_ISDB_T_DEV\] = {$/a \ \ \ \ \"/dev/px4video2\",\n\ \ \ \ \"/dev/px4video3\"," pt1_dev.h
./autogen.sh
./configure
make
sudo make install

video グループにユーザーを登録しておきます。

sudo gpasswd -a $USER video

登録を反映させるために、ログオフするか OS を再起動します。その後、recpt1 で動作を確認します。

PT3 は既に定価入手は困難ですし、PX-BCUD も入手が困難です。

PX-W3U4 は USB のマルチチューナーであり、x86_64 だけではなく Raspberry Pi でも使用できます。そのため、Linux で使用するデジタルチューナーの選択肢が大きく広がったのではないでしょうか。