やりたいこと
CentOS 7.6環境で、PX-W3PE4を動かしたい。 前回の記事
環境
PC
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
NEC Mate PC-MK34MEZDG
チューナー
カードリーダー
Identive “CLOUD 2700R, USB, white”
やったこと
以前dkmsで非公式ドライバを入れたとき、エラーになっていたのを思い出したので、念のため入れなおしておきます
$ sudo dkms uninstall -m px4_drv/0.2.1
-------- Uninstall Beginning --------
Module: px4_drv
Version: 0.2.1
Kernel: 3.10.0-957.12.2.el7.x86_64 (x86_64)
-------------------------------------
Status: Before uninstall, this module version was ACTIVE on this kernel.
Removing any linked weak-modules
px4_drv.ko.xz:
- Uninstallation
- Deleting from: /lib/modules/3.10.0-957.12.2.el7.x86_64/extra/
- Original module
- No original module was found for this module on this kernel.
- Use the dkms install command to reinstall any previous module version.
Running the post_remove script:
`/etc/udev/rules.d/99-px4video.rules' を削除しました
depmod...
DKMS: uninstall completed.
$ sudo dkms remove px4_drv/0.2.1 --all
-------- Uninstall Beginning --------
Module: px4_drv
Version: 0.2.1
Kernel: 3.10.0-957.12.2.el7.x86_64 (x86_64)
-------------------------------------
Status: Before uninstall, this module version was ACTIVE on this kernel.
Removing any linked weak-modules
px4_drv.ko.xz:
- Uninstallation
- Deleting from: /lib/modules/3.10.0-957.12.2.el7.x86_64/extra/
- Original module
- No original module was found for this module on this kernel.
- Use the dkms install command to reinstall any previous module version.
Running the post_remove script:
`/etc/udev/rules.d/99-px4video.rules' を削除しました
depmod...
DKMS: uninstall completed.
------------------------------
Deleting module version: 0.2.1
completely from the DKMS tree.
------------------------------
Done.
再インストール。
$ cd ~/chinachu_work/px4_drv
$ sudo bash dkms.install
Creating symlink /var/lib/dkms/px4_drv/0.2.1/source ->
/usr/src/px4_drv-0.2.1
DKMS: add completed.
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
cleaning build area...
cd ./driver; make KVER=3.10.0-957.12.2.el7.x86_64 px4_drv.ko...
cleaning build area...
DKMS: build completed.
px4_drv.ko.xz:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/3.10.0-957.12.2.el7.x86_64/extra/
Adding any weak-modules
Running the post_install script:
`./etc/99-px4video.rules' -> `/etc/udev/rules.d/99-px4video.rules'
depmod...
DKMS: install completed.
$ sudo reboot
再起動しておきます。
$ lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
だめですね。
さて、ここまでで考えられるのは、
- チューナー本体の不具合
- チューナーのUSB2.0端子とUSB3.0端子を変換するために使ったコードの不具合(Linux機の内部にUSB2.0の口がなかったため)
- PC側のUSB端子の不具合
- PC側のPCI端子の不具合
でしょうか。一つずつ潰していきましょうか。
-
チューナー本体の不具合
自宅にあるWindows機にこのチューナーを刺したところ、正常に認識されました。
-
USB2.0 to USB3.0変換コードの不具合
Windows機にこのコードを利用して接続しても、正常に認識されました。
-
Linux機のUSB端子の不具合
このUSB端子にもともとついていたUSB-Aに変換するコードを接続して、その辺にあったUSBデバイスを接続したところ、Linux機でも正常に認識しました。
-
PC側のPCI端子の不具合
このPCにはPCI端子が三つあるのですが、どれに刺してもlsusbに出てきません。ls /devにも出てきません。 外に手ごろなPCIカードがあればいいのですがあいにくないので困りました。
検証用に、USB拡張ボードを買ってきました。どうやら正常に認識されているようです。
さて。あと可能性は何だろう?
ここで、再起動時のdmesgを見てみたところ、以下のような記述があった。
[ 0.677352] px4_drv: loading out-of-tree module taints kernel.
[ 0.677686] px4_drv: module verification failed: signature and/or required key missing - tainting kernel
[ 0.678991] px4_drv: px4_drv version 0.2.1, rev: 141, commit: 2b3f79b5bc5db56e8556bb28397f7d8f74b2adeb @ master
[ 0.679007] usbcore: registered new interface driver px4_drv
うーん…これはロードされているのか?
解決
この後内部USBからtypeAに変換するコードを買ってきて、PC外部のtypeAに接続したところ、無事正常に認識しました。要するに違うUSBポートならいけたということですね。物さえ買ってくればあっさりでしたね。今は外部にコードが回っていて気持ち悪いので、そのうち内部に回します。
$ ls /dev | grep px4
px4video0
px4video1
px4video2
px4video3
やっとデバイスファイルが見えました。ということで、次回はカードリーダーの設定をしていきます。