*

PLEX社製TVチューナーをLinuxで使用する方法(Ubuntu・Debian・CentOS)

  最終更新日:2018/08/01

Pocket

PLEXテレビチューナー PX-W3PE4

PLEXテレビチューナー PX-W3PE4

 PLEX社製TVチューナーのPX-W3PE4、PX-Q3PE4、PX-W3U4、PX-Q3U4をLinuxで使用する方法をまとめました。Ubuntu、Debian、CentOSのそれぞれについて説明します。

スポンサーリンク

PLEX社提供Linuxドライバ




 2017年12月にPX-W3PE4、PX-Q3PE4、PX-W3U4、PX-Q3U4の主要Linuxディストリビューションのドライバが公開されました(ドライバダウンロードページ)。

 ただし、公開されたドライバは、ソースコードではなくバイナリファイルであるため、使用可能なLinuxディストリビューションが限定されます。

 Linuxのドライバは、基本的にはそのドライバをコンパイルしたカーネルのバージョンでしか動かないようになっています。そのため、使用可能な環境が限定されるのです(厳密にはチェックサムが一致すれば良いのですが、本筋ではないので説明は割愛します)。

 2017年12月に公開されたドライバには不具合があるため、2018年6月に公開されたドライバを使用します(この記事は2018年8月1日時点のものです。ドライバに更新があった場合、以降の文章は適宜読み替えて下さい)。

 2018年6月公開のドライバは以下のディストリビューションのものです。

  • CentOS 7.5.1804
  • Debian 9.0.0
  • Ubuntu 18.04

 ドライバは4つのTVチューナー共通です。当ブログではPX-W3PE4で検証しました。

 PX-Q3PE4、PX-W3U4、PX-Q3U4では検証していませんが、ドライバのインストールと設定手順に違いは無いはずなので、共通手順として本記事をまとめています。紹介している手順に問題が見つかれば、コメント欄にて報告して頂けると助かります。

動作確認したLinuxディストリビューション

 実際に動作確認した環境は以下の3つです。リンク先は各ディストリビューションの最小構成のISOイメージファイルです。CD-RやUSBメモリに書き込んで使用して下さい(バージョンさえ合っていれば、下記ISOでなくても可)。

 以降では、基本的には上記のバージョンで動かした結果をまとめています。

事前準備

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

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

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

 Linuxのディストリビューションは、先程紹介した「動作確認したLinuxディストリビューション」の一覧にまとめたものをインストールして下さい。

カーネルバージョンの固定

 記事冒頭で説明した通り、ドライバの動作するカーネルバージョンは限定されます。そこで、カーネルバージョンをあらかじめ固定しておきます。

CentOS

 CentOSの場合、カーネルバージョンを固定と言うか、OSのバージョンを固定しておけば良いです。

 CentOSのバージョン固定方法は以下の記事にまとめまています。以下の記事を参考にCentOSでは7.5.1804に固定するようにして下さい

Debian

 Debianの場合、カーネルバージョン4.9.0-6をインストールする必要があります。

# apt-get install linux-image-4.9.0-6-amd64 linux-headers-4.9.0-6-amd64

 続いて、カーネルバージョンを固定するための設定ファイルを作成します。

# vi /etc/apt/preferences.d/linux-kernel 

 以下を書き込みます(ダブルクリックで選択状態にしてCtrl+Cでコピー可)。

Package:  linux-image-amd64
Pin: version 4.9.0-6*
Pin-Priority: 1001

Package:  linux-headers-amd64
Pin: version 4.9.0-6*
Pin-Priority: 1001

 OSを再起動後、カーネル4.9.0-6で起動して下さい。

Ubuntu

 Ubuntuの場合、カーネルバージョン4.15.0.23をインストールする必要があります。以下、見やすいように複数行に渡って書いていますが1つのコマンドです

# sudo apt-get install linux-image-4.15.0-23-generic \
                       linux-headers-4.15.0-23 \
                       linux-modules-extra-4.15.0-23-generic

 続いて、カーネルバージョンを固定するための設定ファイルを作成します。

# vi /etc/apt/preferences.d/linux-kernel 

 以下を書き込みます(ダブルクリックで選択状態にしてCtrl+Cでコピー可)。

Package:  linux-generic
Pin: version 4.15.0.23*
Pin-Priority: 1001

Package:  linux-headers-generic
Pin: version 4.15.0.23*
Pin-Priority: 1001

Package:  linux-image-generic
Pin: version 4.15.0.23*
Pin-Priority: 1001

 OSを再起動後、カーネル4.15.0.23で起動して下さい。

ドライバインストール

 ドライバをPLEXのページからダウンロードします。

 ブラウザからダウンロードしても良いのですが、以降でwgetコマンドでダウンロードする手順を説明します。ディストリビューションごとにダウンロードするファイルが異なるので注意して下さい。

CentOSの場合)
$ wget 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

Debianの場合)
$ 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

Ubuntuの場合)
$ 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

 続いてドライバをロードします。

CentOS、Debianの場合)
$ su
# insmod tty_Virtual.ko
# insmod usb-px4.ko

Ubuntuの場合)
# sudo insmod tty_Virtual.ko
# sudo insmod usb-px4.ko

 この時点で何らかのエラーが表示される場合、カーネルのバージョンが異なっている可能性が高いです。

 unameコマンドで表示される起動中のカーネルバージョンとmodinfoコマンドで表示されるドライバの対応カーネルバージョンが一致しているか確認して下さい。以下はDebianでの例です。

Debianの例)
# uname -r
4.9.0-6-amd64

# modinfo tty_Virtual.ko | grep vermagic
vermagic:       4.9.0-6-amd64 SMP mod_unload modversions

 続いて正常にドライバがロードできているか確認します。以下の様に”usb_px4”と”tty_Virtual”が表示されれば大丈夫です。

# lsmod | grep px4

表示結果例)
  usb_px4               426584  0 
  tty_Virtual            21318  1 usb_px4

 続いてTVチューナーのデバイスファイルが作成されているか確認します。”/dev/px4-DTV*”が複数表示されれば問題ありません。

# ls /dev/px4*

表示結果例)
  /dev/px4-DTV0  /dev/px4-DTV1  /dev/px4-DTV2  /dev/px4-DTV3

 上記の表示結果例はPX-W3PE4のものですが、チューナーが合計8つあるPX-Q3PE4とPX-Q3U4では”/dev/px4-DTV7”まで表示されるはずです。

 ドライバのロード確認が正常に終わったので、ドライバディレクトリにインストールします。以降はUbuntuの手順に合わせてあるため、CentOSとDebianでは”sudo”を外して実行して下さい。

# sudo cp -p *.ko /lib/modules/`uname -r`/kernel/drivers/video
# sudo depmod

 このままだとTVチューナーのデバイスファイルにrootユーザーしかアクセス出来ないため、一般ユーザーでもアクセス可能にするための設定ファイル”99-px4.rules”を作成します。

# sudo vi /etc/udev/rules.d/99-px4.rules

 下記の内容を設定ファイルに書き込みます。

KERNEL=="px4*" GROUP="video", MODE="0666"

 OS再起動後、デバイスファイルのパーミッションを確認します。

# sudo reboot

$ ls -l /dev/px4*

表示結果例)
crw-rw-rw- 1 root video 180, 192  2月 25 00:17 /dev/px4-DTV0
crw-rw-rw- 1 root video 180, 193  2月 25 00:17 /dev/px4-DTV1
crw-rw-rw- 1 root video 180, 194  2月 25 00:17 /dev/px4-DTV2
crw-rw-rw- 1 root video 180, 195  2月 25 00:17 /dev/px4-DTV3

 所有権がユーザーroot、グループvideoで誰でも読み書き出来るようになっていればOKです。

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

 録画用コマンドのソースコードをダウンロードします。紛らわしいですが、ファイル名はLinux_Driver.zipです。

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

 このまま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

 更にpt1_dev.hの372行目以降の該当箇所を変更する必要があります。この変更は、2018年4月以降に行われたBSチャンネルの移動に対応するための変更です。以下は変更前後の行をひとかたまりに書いていますが、実際にはバラバラに並んでいるのでご注意下さい。

$ vi pt1_dev.h

変更前)
    {   1, CHTYPE_SATELLITE, 1, "171"},  /* 171ch:BSジャパン */
    {   3, CHTYPE_SATELLITE, 0, "201"},  /* 201ch:スター・チャンネル2 */
    {   3, CHTYPE_SATELLITE, 0, "202"},  /* 202ch:スター・チャンネル3 */
    {   3, CHTYPE_SATELLITE, 1, "236"},  /* 236ch:BSアニマックス */
    {   3, CHTYPE_SATELLITE, 2, "256"},  /* 256ch:ディズニー・チャンネル */
    {   7, CHTYPE_SATELLITE, 1, "103"},  /* 103ch:NHK-BSプレミアム*/


変更後)
    {   0, CHTYPE_SATELLITE, 2, "171"},  /* 171ch:BSジャパン */
    {   7, CHTYPE_SATELLITE, 1, "201"},  /* 201ch:スター・チャンネル2 */
    {   7, CHTYPE_SATELLITE, 2, "202"},  /* 202ch:スター・チャンネル3 */
    {   6, CHTYPE_SATELLITE, 2, "236"},  /* 236ch:BSアニマックス */
    {   1, CHTYPE_SATELLITE, 2, "256"},  /* 256ch:ディズニー・チャンネル */
    {   1, CHTYPE_SATELLITE, 1, "103"},  /* 103ch:NHK-BSプレミアム*/

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

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

CentOS、Debianの場合)
$ su
$ make install

Ubuntuの場合)
$ sudo make install

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

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

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

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

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

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

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

Mirakurun

 Chinachu γ(ガンマ)を使うには、Mirakurunのインストールが必要になります。

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

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

$ sudo mirakurun config tuners

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

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

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

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

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

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

  • /dev/px4-DTV0,1,4,5,8,9…がBS/CS用
  • /dev/px4-DTV2,3,6,7,10,11…が地デジ用

Chinachu γ

 Chinachu γのインストール手順は以下の記事にまとめてあります。

 Mirakurunがチューナーの差異を吸収しているため、Chinachu γでPLEXチューナー固有の設定は必要ありません。記事通りの手順を実行して下さい。

epgrec UNA

 epgrec UNAでは専用のパッチを録画コマンド(recpt1)に当てないと使用できないようになっています。しかし、PLEX用コマンドのソースコードを見るとそのパッチが当たっているように見えます。

 実際にオリジナルのコマンドには存在しないはずのhttpオプションが存在します。そのため、何もしなくてもepgrec UNAで動かせるかもしれません。

 epgrec UNAのインストール方法は以下の記事にまとめています。

 後日検証してみて動くようであれば、本記事の内容を更新する予定です。