PX-W3U4のBS再編への対応がバイナリの編集で面倒だなと思っていたら新しいLinux向けドライバが公開された。それぞれで今まで通り導入できるか再検証してみる。
今回公開されたドライバはCentOS 7、Ubuntu 18.04 LTS、Debian 9が対象、すべてx64。最新の安定版ディストリビューションが使えるのは有り難い。
やり方はPX-Q3U4, PX-W3PE4, PX-Q3PE4もおそらく共通。
非公式ドライバ向け記事

EPELリポジトリを追加(CentOS)

CentOSはEPRLのパッケージが必要なので追加する。

$ curl -LO http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo rpm -ivh epel-release-latest-7.noarch.rpm

ドライバのダウンロード(CentOS)

$ mkdir -p ~/src/
$ cd ~/src/
$ sudo yum install -y unzip
$ curl -LO http://plex-net.co.jp/plex/linux/CentOS7-1804_64bit_kernel3.10.0-862.zip
$ unzip CentOS7-1804_64bit_kernel3.10.0-862.zip
$ cd CentOS7-1804_64bit_kernel3.10.0-862/

ドライバのダウンロード(Ubuntu)

$ mkdir -p ~/src/
$ cd ~/src/
$ wget 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/

ドライバのダウンロード(Debian)

$ mkdir -p ~/src/
$ cd ~/src/
$ sudo apt install -y unzip
$ wget http://plex-net.co.jp/plex/linux/Debian9.4_64bit_kernel4.9.0-6.zip
$ unzip Debian9.4_64bit_kernel4.9.0-6.zip
$ cd Debian9.4_64bit_kernel4.9.0-6/

DKMSをインストール(CentOS)

ドライバ周りの操作を自動化するためにDKMSを使用する。これでカーネルのアップデートがあった場合も自動的に適応できる。

$ sudo yum install -y dkms kernel-headers kernel-devel

DKMSをインストール(Ubuntu, Debian)

$ sudo apt install -y dkms

ドライバをインストール

モジュールをコピーするだけの設定を作る。

$ sudo mkdir -p /usr/src/px4-1806/
$ sudo cp -v *.ko /usr/src/px4-1806/
$ sudo vi /usr/src/px4-1806/dkms.conf

$ sudo dkms install -m px4 -v 1806

udevのルールを作成

アップデートに備えてモジュールを強制ロードできるようにする(効果は未検証)。チューナーの接続時にmodprobeを–forceオプションを付きで実行させる。デバイスファイルのパーミッションも設定する。

$ sudo vi /etc/udev/rules.d/99-px4.rules
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0511", ATTR{product}=="*[QW]3*4", RUN+="/sbin/modprobe -f usb-px4"
KERNEL=="px4-DTV*", GROUP="video", MODE="0666"
$ sudo reboot
$ ls /dev/px4-DTV*
/dev/px4-DTV0  /dev/px4-DTV1  /dev/px4-DTV2  /dev/px4-DTV3

libarib25を導入(CentOS)

内蔵のカードリーダーは使えないので別途用意する。CentOSは/usr/local/libへのパスを通す。

$ cd ~/src/
$ sudo yum install -y git cmake gcc-c++ pcsc-lite pcsc-lite-devel pcsc-tools
$ git clone https://github.com/stz2012/libarib25.git
$ cd libarib25/
$ cmake .
$ make
$ sudo make install
$ sudo sh -c "echo /usr/local/lib >> /etc/ld.so.conf.d/libc.conf"
$ sudo ldconfig

libarib25を導入(Ubuntu, Debian)

$ cd ~/src/
$ sudo apt install -y git build-essential cmake libpcsclite1 libpcsclite-dev pcscd pcsc-tools
$ git clone https://github.com/stz2012/libarib25.git
$ cd libarib25/
$ cmake .
$ make
$ sudo make install

カードリーダーの動作確認

$ pcsc_scan | grep B-CAS
        Japanese Chijou Digital B-CAS Card (pay TV)
^C

ここで何も出ない時は再起動するとうまくいく場合がある。

CentOS 6のドライバをダウンロード(CentOS)

CentOS 6のドライバに付属しているrecpt1を使う。

$ cd ~/src/
$ curl -LO http://plex-net.co.jp/download/linux/Linux_Driver.zip
$ unzip Linux_Driver.zip

CentOS 6のドライバをダウンロード(Ubuntu,Debian)

CentOS 6のドライバに付属しているrecpt1を使う。

$ cd ~/src/
$ wget http://plex-net.co.jp/download/linux/Linux_Driver.zip
$ unzip Linux_Driver.zip

recpt1を導入

B25を有効にするためリビルド。通常のrecpt1と区別するためリネームした。今回もchecksignalは動作しない。
–helpで表示されるチャンネルを修正するにはrecpt1core.cの286行目以降を書き換える。

$ cd ~/src/Linux_Driver/MyRecpt1/MyRecpt1/recpt1/
$ make clean
$ vi recpt1core.c

$ sh configure --enable-b25
$ make
$ sudo install -m 755 recpt1 /usr/local/bin/recpx4
$ sudo install -m 755 recpt1ctl /usr/local/bin/recpx4ctl

録画テスト

実際に録画してみる。0,1が衛星波、2,3が地上波。チューナーが増えた場合も衛星波2、地上波2の順で繰り返される。

$ cd ~
$ recpx4 --device /dev/px4-DTV0 --lnb 15 --b25 --strip BS15_0 10 bs0.m2ts
$ recpx4 --device /dev/px4-DTV1 --lnb 15 --b25 --strip BS01_2 10 bs1.m2ts
$ recpx4 --device /dev/px4-DTV2 --b25 --strip 27 10 gr0.m2ts
$ recpx4 --device /dev/px4-DTV3 --b25 --strip 27 10 gr1.m2ts

6月 29th, 2018

Posted In: ソフトウェア, ハードウェア

タグ: , , , , ,

One Comment