コピペワールド

hirooka.pro

PX-W3U4

PX-W3U4 の Ubuntu 18.04 向け Linux 用ドライバがリリースされたと聞いて

更新日:

最新の LTS を使うウブンツァーに朗報です。これまで、Ubuntu では 14.04 と 17.10 向けにしか提供されていなかった PX-W3U4 のドライバですが、Ubuntu 18.04 向けも提供されるようになりました。

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

環境

  • Ubuntu 18.04 (4.15.0-23-generic)
  • PX-W3U4

動作確認

PX-W3U4 を挿してみて lsusb を実行してみます。

[highlight_bash]Bus 003 Device 014: ID 0511:083f N'Able (DataBook) Technologies, Inc. [/highlight_bash]

dmesg の結果を確認してみます。

[highlight_bash][ 373.017196] usb 3-9: new high-speed USB device number 28 using xhci_hcd
[ 373.169928] usb 3-9: New USB device found, idVendor=0511, idProduct=083f
[ 373.169934] usb 3-9: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 373.169938] usb 3-9: Product: W3U4
[ 373.169942] usb 3-9: Manufacturer: PLEX̀
[ 373.169946] usb 3-9: SerialNumber: 00000xxxxxxxxxx[/highlight_bash]

ドライバをダウンロードして insmod してみます。

[highlight_bash]curl -O http://plex-net.co.jp/plex/linux/Ubuntu18.04_64bit_kernel4.15.0-23.zip
unzip Ubuntu18.04_64bit_kernel4.15.0-23.zip
cd Ubuntu18.04_64bit_kernel4.15.0-23
sudo insmod tty_Virtual.ko
sudo insmod usb-px4.ko[/highlight_bash]

再度、dmesg の結果を確認してみます。usb-px4 が登録されました。

[highlight_bash]
[ 850.808417] tty0tty null modem driver v16.03.23.1
[ 863.294563] - Enter IT930x_module_init Function -
[ 863.294585] ======================================================
[ 863.294585] DRIVER_RELEASE_VERSION: v18.06.04.1
[ 863.294586] ENDEAVOUR_FW_RELEASE_VERSION: v0_0_0_0
[ 863.294587] ENDEAVOUR_FW_RELEASE_LINK_VERSION: 255.4.0.0
[ 863.294588] ENDEAVOUR_FW_RELEASE_OFDM_VERSION: 255.0.0.0
[ 863.294589] FW_RELEASE_LINK_VERSION: 12.53.14.0
[ 863.294590] FW_RELEASE_OFDM_VERSION: 2.43.14.0
[ 863.294591] API_RX_RELEASE_VERSION: 203.20140107.0
[ 863.294591] Company:ITEtech
[ 863.294592] ======================================================
[ 863.294592] ===== it930x usb device pluged in =====
[ 863.294593] - Enter IT930x_probe Function -
[ 863.295274] Device test ok
[ 863.296041] Device test ok
[ 863.296917] Device test ok
[ 863.297560] Device test ok
[ 863.298204] Device test ok
[ 863.298539] EEPROM - ========== Can read eeprom
[ 863.299592] EEPROM - Board ID: 80
[ 863.299925] EEPROM - Number of IT9300 is 1
[ 863.300645] EEPROM - BR Chip Version is 1, BR Chip Type is 0x9306
[ 863.301013] EEPROM - Mapp disalbe, Rx device ID using default
[ 863.301015] EEPROM - Device_ID = 65535
[ 863.301016] - DRV_GET_RX_ID success -
[ 863.301017] EEPROM - 0, 0, RxDevice_ID = 65535
[ 863.301027] EEPROM - 0, 1, RxDevice_ID = 65534
[ 863.301028] EEPROM - 0, 2, RxDevice_ID = 65533
[ 863.301029] EEPROM - 0, 3, RxDevice_ID = 65532
[ 863.301030] - DRV_GetEEPROMConfig success -
[ 863.301032] (Jacky)(IT930x_probe) URB_BUFSIZE : 153408
[ 863.301032] (Jacky)(IT930x_probe) URB_COUNT : 16
[ 863.301033] (Jacky)(IT930x_probe) dev->chip[0]->dwTolBufferSize : 2454528
[ 863.301060] (Jacky)(IT930x_probe) URB_BUFSIZE : 153408
[ 863.301061] (Jacky)(IT930x_probe) URB_COUNT : 16
[ 863.301063] (Jacky)(IT930x_probe) dev->chip[1]->dwTolBufferSize : 2454528
[ 863.301078] (Jacky)(IT930x_probe) URB_BUFSIZE : 153408
[ 863.301079] (Jacky)(IT930x_probe) URB_COUNT : 16
[ 863.301080] (Jacky)(IT930x_probe) dev->chip[2]->dwTolBufferSize : 2454528
[ 863.301095] (Jacky)(IT930x_probe) URB_BUFSIZE : 153408
[ 863.301096] (Jacky)(IT930x_probe) URB_COUNT : 16
[ 863.301097] (Jacky)(IT930x_probe) dev->chip[3]->dwTolBufferSize : 2454528
[ 863.301108] --- URB_BUFSIZE:153408 ---
[ 863.301848] (Jacky)(IT930x_probe) DC->it9300.firmwareVersion : 0x0
[ 863.301849] --- RESET PSB buffer ---
[ 863.356004] - Enter DRV_IT930x_device_init Function -
[ 863.357018] 0xF53A = 0, 0xDA98 = 0x0, 0xDA99 = 0x0
[ 863.450399] IT9300_initialize ok
[ 863.450709] IT9300_bcasInit OK
[ 863.450713] syncByte = 0x40
[ 863.451026] 0, 0 Ts Source Set in TsType OK!
[ 863.451647] syncByte = 0x41
[ 863.451649] 0, 1 Ts Source Set in TsType OK!
[ 863.452292] syncByte = 0x42
[ 863.452299] 0, 2 Ts Source Set in TsType OK!
[ 863.452947] syncByte = 0x43
[ 863.452949] 0, 3 Ts Source Set in TsType OK!
[ 863.453588] (Jacky)(IT930x_probe) URB_BUFSIZE : 153408
[ 863.453590] (Jacky)(IT930x_probe) BR_URB_COUNT : 16
[ 863.453591] (Jacky)(IT930x_probe) dev->br_chip->dwTolBufferSize : 2454528
[ 863.453636] Throw shift data, urb length = 0
[ 863.456735] REGIST - 0, 0, change RxDevice_ID = 0
[ 863.456887] handle name -->> px4-DTV0
[ 863.456890] REGIST - 0, 1, change RxDevice_ID = 1
[ 863.456986] handle name -->> px4-DTV1
[ 863.456989] REGIST - 0, 2, change RxDevice_ID = 2
[ 863.457074] handle name -->> px4-DTV2
[ 863.457077] REGIST - 0, 3, change RxDevice_ID = 3
[ 863.457168] handle name -->> px4-DTV3
[ 863.457171] - IT930x_probe success -
[ 863.457276] usbcore: registered new interface driver usb-px4
[/highlight_bash]

lsmod を実行してみます。usb_px4 が表示されるようになりました。

[highlight_bash]lsmod | grep px4
usb_px4 454656 0
tty_Virtual 24576 1 usb_px4[/highlight_bash]

デバイス名を確認してみます。

[highlight_bash]
crw------- 1 root root 180, 1 Jun 29 18:53 /dev/px4-DTV0
crw------- 1 root root 180, 2 Jun 29 18:53 /dev/px4-DTV1
crw------- 1 root root 180, 3 Jun 29 18:53 /dev/px4-DTV2
crw------- 1 root root 180, 4 Jun 29 18:53 /dev/px4-DTV3
[/highlight_bash]

このままだと root でしか操作できないため、video グループにも権限を付与します。そうしないと後で、(tune) Cannot tune to the specified channel のようなエラーが出るかもしれません。

[highlight_bash]sudo chown root:video /dev/px4-DTV*
sudo chmod g+rw /dev/px4-DTV*[/highlight_bash]

再度、確認してみます。これで video グループのユーザーが操作できます。

[highlight_bash]
ls -al /dev/px4-DTV*
crw-rw---- 1 root video 180, 1 Jun 29 19:08 /dev/px4-DTV0
crw-rw---- 1 root video 180, 2 Jun 29 19:08 /dev/px4-DTV1
crw-rw---- 1 root video 180, 3 Jun 29 19:08 /dev/px4-DTV2
crw-rw---- 1 root video 180, 4 Jun 29 19:08 /dev/px4-DTV3
[/highlight_bash]

キャプチャ用のプログラムも提供されているようです。ダウンロードしてビルドしてインストールしてみます。

[highlight_bash]curl -O http://plex-net.co.jp/download/linux/Linux_Driver.zip
unzip Linux_Driver.zip
cd Linux_Driver/MyRecpt1/MyRecpt1/recpt1
chmod a+x configure
./configure
make
sudo make install[/highlight_bash]

ここまでで、ひとまず動作確認完了です。

OS 起動対応

この状態では、OS を再起動するとドライバが読み込まれません。OS を再起動する度に手動でドライバをインストールするのも面倒なので、OS が起動する際にドライバを自動で読み込むようにしてみます。

[highlight_bash]sudo cp *.ko /lib/modules/`uname -r`/kernel/drivers/video/
sudo sh -c "echo 'KERNEL=\"px4-DTV*\", GROUP=\"video\", MODE=\"0660\"' >> /etc/udev/rules.d/99-usb_px4.rules"
sudo depmod[/highlight_bash]

OS 再起動後、/dev/px4-DTV* が存在していることを確認します。

-PX-W3U4

Copyright© hirooka.pro , 2018 All Rights Reserved.