*

PLEX社製TVチューナーの非公式Linuxドライバインストール方法

  最終更新日:2019/02/11

Pocket

PLEX社製TVチューナーの非公式Linuxドライバインストール方法

 PLEX社製TVチューナーのPX-W3PE4、PX-Q3PE4、PX-W3U4の非公式Linuxドライバのインストール方法と録画確認の手順をまとめました。Ubuntu、Debian、CentOSのそれぞれについて説明します。

スポンサーリンク

はじめに

 紹介するドライバは、PLEX社が提供している公式ドライバではなく、有志の方が作られた非公式のドライバです。

 公式ドライバはバイナリファイルのみの提供なので、特定バージョンのLinuxディストリビューションでしか使用できません。また、動作の安定性にも不安があるようです。実際に私も挙動がおかしいなと感じることが何回かありました。何よりPLEX社があまり熱心ではないため、アップデートに期待が持てません(最終更新が2018年6月)。

 それに対して非公式ドライバは、今現在も開発中ではあるもののソースコードが公開されているため、ドライバをビルドする環境さえあれば、どんなLinuxでも動かすことが可能です。ネットで調べたところ、Raspberry Pi 3での動作報告もあるので、x86系のCPUだけでなくARMでも動作するようです。

 非公式ドライバは2018年1月に公開され、その後アップデートを繰り返し、現状は安定して動作するようです。

 なぜか同時期に発売されたチューナーの中でPX-Q3U4だけ動作対象に含まれないのですが、その点を除けば特に言うことはありません(誰も動作確認してないだけで、PX-Q3U4も実は動くのではないかと予想)。

 GitHubの非公式ドライバのページにインストール方法は書かれているのですが、多少分かりにくい点があるため、この記事でより掘り下げて説明します。

 説明に入る前にひとこと、ドライバを公開された開発者の方に感謝申し上げます。

公式ドライバのアンインストール

 公式ドライバをインストールしている場合、先にそちらをアンインストールします。

 上記の当ブログの記事を元にインストールされたことを前提に説明します。

Ubuntuの場合)
$ find /lib/modules -name usb-px4.ko | sudo xargs rm
$ find /lib/modules -name tty_Virtual.ko | sudo xargs rm
$ sudo rm /etc/udev/rules.d/99-px4.rules 
$ sudo depmod

CentOS, Debianの場合)
$ su
$ find /lib/modules -name usb-px4.ko | xargs rm
$ find /lib/modules -name tty_Virtual.ko | xargs rm
$ rm /etc/udev/rules.d/99-px4.rules 
$ depmod

 以上で公式ドライバのアンインストールは完了です。

 ただし、先程の記事通りにインストールしている場合、Linuxカーネルのバージョンを固定しているはずです。UbuntuとDebianはファイルを1つ削除すれば固定状態が解除されます。

Ubuntuの場合)
$ sudo rm /etc/apt/preferences.d/linux-kernel 

Debianの場合)
$ su -
$ rm /etc/apt/preferences.d/linux-kernel 

 CentOSは下記の記事に解除方法を書いてあるので、そちらの記事通りに実行して下さい。

事前準備

 ドライバのインストールの前に準備が必要です。

 当ブログではPT3向けに「録画サーバ構築の前準備」の記事を書いています。

 PLEXのTVチューナーも途中までは全く同じ作業内容になります。上記の「arib25ライブラリのインストール」の箇所まで進めた後(PT3ドライバとrecpt1のインストールは不要)、ここに再び戻ってきて下さい。

 UbuntuとDebianは最後に以下を実行して下さい(環境によっては不要かもしれません)。

Ubuntuの場合)
$ sudo apt-get install unzip

Debianの場合)
$ su
$ apt-get install unzip

 これで準備完了です。

ドライバインストール

 ドライバのソースコードを取得します。

$ git clone https://github.com/nns779/px4_drv

 続いてWindows用ファームウェアをLinux用に変換します。変換ツールがソースコードに含まれているので、ツールをビルドして実行します。

 以降はUbuntuの手順としてまとめているため、`sudo`で実行している箇所はDebian、CentOSではrootユーザーになってから実行して下さい。

$ cd px4_drv/fwtool/
$ make
$ wget http://plex-net.co.jp/plex/pxw3u4/pxw3u4_BDA_ver1x64.zip
$ unzip pxw3u4_BDA_ver1x64.zip
$ sudo ./fwtool pxw3u4_BDA_ver1x64/PXW3U4.sys it930x-firmware.bin
$ sudo cp -p it930x-firmware.bin /lib/firmware/
$ cd ..

 ここではドライバページのREADMEにならい、PX-W3U4用のWindowsドライバに同梱のファームウェアを変換しています(上記の`sudo ./fwtool`の箇所)。

 念のため確認しましたが、PX-W3PE4など他のファームウェアから変換したものとバイナリレベルで同一だったので、どのチューナーでも上記の通り実行して特に問題ありません。

 ドライバのビルドはdkmsコマンドを使用します。dkmsはカーネルのアップデートに合わせて自動的にドライバをビルドし直すツールです。

 ここではdkms用のスクリプト、”dkms.install”を作成して実行します。

$ vi dkms.install

 スクリプトは”dkms.conf”が存在する同じディレクトリに作成して下さい。

 スクリプトの内容は以下の通りです。ダブルクリックするとスクリプト全体を選択した状態になるのでCtrl+Cでコピーして下さい。

. ./dkms.conf
cp -a `pwd` /usr/src/$PACKAGE_NAME-$PACKAGE_VERSION
dkms add -m $PACKAGE_NAME -v $PACKAGE_VERSION
dkms build -m $PACKAGE_NAME -v $PACKAGE_VERSION
dkms install -m $PACKAGE_NAME -v $PACKAGE_VERSION

 最後にスクリプトを実行して終了です。

$ sudo bash dkms.install

 PCを再起動後、デバイスファイルが作成されていることを確認します。

$ ls -l /dev/px4*

crw-rw-r-- 1 root video 248, 0  1月 23 21:32 /dev/px4video0
crw-rw-r-- 1 root video 248, 1  1月 23 21:32 /dev/px4video1
crw-rw-r-- 1 root video 248, 2  1月 23 21:32 /dev/px4video2
crw-rw-r-- 1 root video 248, 3  1月 23 21:32 /dev/px4video3

 上記のように表示されていれば成功です。PX-W3U4の場合、8つのデバイスファイルが表示されるはずです。

録画コマンドインストール

 録画コマンドは、公式ドライバ付属のコマンドを流用します。

 余談ですが、ドライバを制御するioctlのパラメータが公式ドライバと同じなので流用可能なのです(公式ドライバを参考に作られたからと言うのが、正しい見方だとは思いますが……)。

 最初にファイルをダウンロード、解凍します。

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

 ヘッダファイル”pt1_dev.h”を編集します。以下を実行すると公式ドライバのデバイス名の記述箇所が、全て非公式のものに置き換わります。

$ sed -i".org" 's/-DTV/video/g' pt1_dev.h

 このままmakeすれば録画コマンドのrecpt1が生成されるのですが、PT3などと併用する場合にコマンド名が同じになってしまうため困ります(単純に実行するとPT3用のコマンドが上書きされてしまう)。

 そのため、当ブログではコマンド名を変更することをおすすめします。PLEXのチューナーだけ使用する場合は変更しなくても良いのですが、コマンド名が同じだとPT3用の設定と混同してしまう恐れがあるため、いずれにしろ変更しておいたほうが分かりやすくなるはずです。

 Makefile.inファイルを部分的に変更します(Makefileではないので注意!!)。コマンド名の後ろに”_px4”を付けます。好みの問題なので、判別しやすい名前であれば問題ありません。

$ vi Makefile.in

変更前) ※7行目以降
TARGET = recpt1
TARGET2 = recpt1ctl
TARGET3 = checksignal

変更後)
TARGET = recpt1_px4
TARGET2 = recpt1ctl_px4
TARGET3 = checksignal_px4

 必要な変更が完了したので、古いデータを`make clean`で消去した後、makeを実行してインストールします。

$ make clean
$ sh ./configure --enable-b25
$ make
$ sudo make install

 録画コマンドが正常に動作するか確認します。一般ユーザーで実行して下さい。

 以下は、関東で東京スカイツリーから地デジを受信している場合のNHK総合(27ch)を10秒間録画したコマンド例です。

$ recpt1_px4 --b25 --strip 27 10 ~/test.ts

 チャンネル番号はマスプロの地上デジタル放送 チャンネル一覧表で確認して下さい。

 BSとCSの録画確認例もついでに載せておきます。

NHK BS1)
$ recpt1_px4 --b25 --strip BS15_0 10 test2.ts

ショップチャンネル)
$ recpt1_px4 --b25 --strip CS8 --sid 55 10 test3.ts

 録画したファイルの再生確認はVLC media playerを使用します。Windows PCにコピーするか、Samba経由で行って下さい。

 ファイルが正常に再生できない場合、以下を確認して下さい。

  • arib25ライブラリをインストールせずに録画コマンドをmakeしてないか
  • アンテナ線が正常につながっているか
  • B-CASカードが正しくカードリーダーに挿さっているか

ドライバのアップデート方法

 ドライバのソースコードがアップデートされた際に更新する方法を説明します。ドライバは、いまだ開発中と言うことなので、アップデート手順についてもまとめておきます。

 この記事ではドライバをdkmsを使ってインストールしたため、同じくアンインストールもdkmsを使います。

 まず、アンインストール用のスクリプトを作成します。ドライバのソースコードディレクトリ直下に”dkms.uninstall”を作ります。

$ cd px4_drv
$ vi dkms.uninstall

 スクリプトの内容は以下の通りです。ダブルクリックしてCtrl+Cでコピーして下さい。

. ./dkms.conf
dkms remove -m $PACKAGE_NAME -v $PACKAGE_VERSION --all
rm -vrf /usr/src/$PACKAGE_NAME-$PACKAGE_VERSION

 ここまで準備したらドライバアップデートは簡単にできます。以下を実行して下さい。

$ git pull
$ sudo bash dkms.uninstall
$ sudo bash dkms.install

 注意点としてMirakurunなど録画サーバソフトが動いている場合、停止後に実行しましょう。

Mirakurunの設定

 TVチューナーの制御ソフトとしてMirakurunが存在します。Chinachu γ(ガンマ)やEPGStationを使用するには、Mirakurunのインストールが必要になります。

 Mirakurunのインストール手順は以下の記事にまとめてあります。PT3用としてまとめた記事ですが、実行内容はほぼ同じです。

 以下のチューナー設定の内容が異なるだけです。

$ sudo mirakurun config tuners

 設定内容を以下の様に変更して下さい。以下はPX-W3PE4の設定例です。

- name: PX4-S1
  types:
    - BS
    - CS
  command: recpt1_px4 --device /dev/px4video0 --lnb 15 <channel> - -
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PX4-S2
  types:
    - BS
    - CS
  command: recpt1_px4 --device /dev/px4video1 --lnb 15 <channel> - -
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PX4-T1
  types:
    - GR
  command: recpt1_px4 --device /dev/px4video2 <channel> - -
  decoder: arib-b25-stream-test
  isDisabled: false

- name: PX4-T2
  types:
    - GR
  command: recpt1_px4 --device /dev/px4video3 <channel> - -
  decoder: arib-b25-stream-test
  isDisabled: false

 ”/dev/px4video0”などのデバイスファイルの番号は以下の規則に従います。

  • /dev/px4video0,1,4,5,8,9…がBS/CS用
  • /dev/px4video2,3,6,7,10,11…が地デジ用