PX-W3U4のBS再編への対応がバイナリの編集で面倒だなと思っていたら新しいLinux向けドライバが公開された。それぞれで今まで通り導入できるか再検証してみる。
今回公開されたドライバはCentOS 7、Ubuntu 18.04 LTS、Debian 9が対象、すべてx64。最新の安定版ディストリビューションが使えるのは有り難い。
やり方はPX-Q3U4, PX-W3PE4, PX-Q3PE4もおそらく共通。
非公式ドライバ向け記事
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
$ 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/
$ 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/
$ 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を使用する。これでカーネルのアップデートがあった場合も自動的に適応できる。
$ sudo yum install -y dkms kernel-headers kernel-devel
$ 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
アップデートに備えてモジュールを強制ロードできるようにする(効果は未検証)。チューナーの接続時に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
内蔵のカードリーダーは使えないので別途用意する。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
$ 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のドライバに付属しているrecpt1を使う。
$ cd ~/src/ $ curl -LO http://plex-net.co.jp/download/linux/Linux_Driver.zip $ unzip Linux_Driver.zip
CentOS 6のドライバに付属しているrecpt1を使う。
$ cd ~/src/ $ wget http://plex-net.co.jp/download/linux/Linux_Driver.zip $ unzip Linux_Driver.zip
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
takaaki 6月 29th, 2018