CentOS 7、Ubuntu 16.04 LTS、Debian 8でPX-W3U4の設定をしたみたのでまとめる。
PX-Q3U4, PX-W3PE4, PX-Q3PE4でも同じ手順でセットアップできる。
追記: 4月、5月のBS周波数再編の影響で一部チャンネルが受信できなくなっている。(最新版ドライバで修正済み)
最新版ドライバ向け記事
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
配布されているモジュールに合わせたカーネルをインストールする。カーネルのアップデートはできない。
$ sudo apt-get install linux-image-4.13.0-19-generic linux-headers-4.13.0-19-generic $ sudo reboot $ uname -r 4.13.0-19-generic
モジュール書き換えることでHWEカーネルでも使用できる。
少し手間はかかるが、Ubuntu 18.04がリリースされるまでは対応したカーネルのアップデートがある。
$ sudo apt-get install linux-generic-hwe-16.04 $ sudo reboot $ uname -r 4.13.0-26-generic
$ mkdir -p ~/src/ $ cd ~/src/ $ sudo yum install -y unzip $ curl -LO http://plex-net.co.jp/plex/linux/CentOS7-1708_64bit_kernel3.10.0-693.zip $ unzip CentOS7-1708_64bit_kernel3.10.0-693.zip $ cd CentOS7-1708_64bit_kernel3.10.0-693/
$ mkdir -p ~/src/ $ cd ~/src/ $ wget http://plex-net.co.jp/plex/linux/Ubuntu17.10_64bit_Kernel4.13.0-19.zip $ unzip Ubuntu17.10_64bit_Kernel4.13.0-19.zip $ cd Ubuntu17.10_64bit_Kernel4.13.0-19/
$ mkdir -p ~/src/ $ cd ~/src/ $ wget http://plex-net.co.jp/plex/linux/Debian8.0.0_64bit_kernel3.16.0-4.zip $ unzip Debian8.0.0_64bit_kernel3.16.0-4.zip $ cd Debian8.0.0_64bit_kernel3.16.0-4/
ドライバ周りの操作を自動化するためにDKMSを使用する。これでカーネルのアップデートがあった場合も自動的に適応できる。
$ sudo yum install -y dkms kernel-headers kernel-devel
$ sudo apt-get install -y dkms
モジュールをコピーするだけの設定を作る。Ubuntu+HWEカーネル以外は同じ。
$ sudo mkdir -p /usr/src/px4-1712/ $ sudo cp -v *.ko /usr/src/px4-1712/ $ sudo vi /usr/src/px4-1712/dkms.conf
$ sudo dkms install -m px4 -v 1712
UbuntuとHWEカーネルを使う場合はモジュールのvermagicを書き換える必要がある。
$ sudo mkdir -p /usr/src/px4-1712/src/ $ sudo cp -v *.ko /usr/src/px4-1712/src/ $ sudo vi /usr/src/px4-1712/dkms.conf
$ sudo dkms install -m px4 -v 1712
アップデートに備えてモジュールを強制ロードできるようにする。チューナーの接続時に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
Ubuntuの場合は強制ロードは必要ないので、パーミッションだけ設定する。
$ sudo vi /etc/udev/rules.d/99-px4.rules 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-get 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を使う。B25を有効にするためリビルド。通常のrecpt1と区別するためリネームした。checksignalはうまく動作しない。
$ cd ~/src/ $ curl -LO http://plex-net.co.jp/download/linux/Linux_Driver.zip $ unzip Linux_Driver.zip $ cd Linux_Driver/MyRecpt1/MyRecpt1/recpt1/ $ 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 BS15_0 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 1月 29th, 2018
Posted In: ハードウェア
CentOS 6だけに対応していたときの覚書。今は他のディストリビューションにも対応しているので古い情報。
追記: 新しい情報はこちら
unzipのインストール
# yum install unzip -y
ドライバをダウンロード
# curl -LO http://plex-net.co.jp/download/linux/Linux_Driver.zip
ドライバモジュールをロード
# unzip Linux_Driver.zip # cd Linux_Driver/Linux_Driver/ # insmod tty_Virtual.ko # insmod usb-px4.ko
認識されているか確認
# ls /dev/px4-DTV? /dev/px4-DTV0 /dev/px4-DTV1 /dev/px4-DTV2 /dev/px4-DTV3
再起動すると元に戻るので自動的にロードさせる
ドライバをコピー
# cp -v tty_Virtual.ko usb-px4.ko /usr/local/lib64/ `tty_Virtual.ko' -> `/usr/local/lib/tty_Virtual.ko' `usb-px4.ko' -> `/usr/local/lib/usb-px4.ko'
設定を追加
# vi /etc/sysconfig/modules/usb-px4.modules
#!/bin/sh /sbin/insmod /usr/local/lib64/tty_Virtual.ko /sbin/insmod /usr/local/lib64/usb-px4.ko
実行権限を追加
# chmod +x /etc/sysconfig/modules/usb-px4.modules
recpt1をインストール
# cd ../MyRecpt1/MyRecpt1/recpt1 # install -m 755 recpt1 /usr/local/bin/recpx4 # install -m 755 recpt1ctl /usr/local/bin/recpx4ctl
ビルドは必要ない。PT1/2/3用とややこしいのでrecpx4にリネームしておく
内蔵カードリーダーは使えないのでカードリーダーを別途用意する。
NodeJSをインストール
# curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - # yum install -y nodejs
arib-b25-stream-testをセットアップ(EPELの導入が必要)
# curl -LO http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # rpm -ivh epel-release-6-8.noarch.rpm # yum install gcc-c++ pcsc-lite pcsc-lite-devel pcsc-tools # npm install arib-b25-stream-test -g --unsafe
そのままではサービスがうまく起動しないので再起動する
# reboot
カードリーダーの動作確認
$ pcsc_scan | grep B-CAS Japanese Chijou Digital B-CAS Card (pay TV) ^C
PM2のインストール
# npm install pm2 -g # pm2 startup
Mirakurunのインストール
# npm install mirakurun -g --unsafe --production
Mirakurunのチューナー設定
# mirakurun config tuners
0,1が衛星波、2,3が地上波になる
Mirakurunのチャンネル設定
# mirakurun config channels
BS/CSのチャンネルだけ登録する
チャンネルスキャンで地上波のチャンネルを設定する
# mirakurun restart $ curl -X PUT "http://localhost:40772/api/config/channels/scan" # mirakurun restart
別のマシンからアクセスできるようにファイアウォールを設定する
# iptables -I INPUT -p tcp -m tcp --dport 40772 -j ACCEPT # service iptables save
takaaki 1月 7th, 2018
先月にDVB版PT3ドライバがLinuxカーネルに取り込まれた。PX-S1UDも今年取り込まれている。PX-S1UDのドライバは3.15以降で、PT3のDVB版ドライバは3.18以降で使えるようになる。
両方のドライバをDebianで使えるようにしてみた。
PX-S1UDには3.15以降のカーネルで対応するので、Debianのカーネルをアップグレードすればいい。
PX-S1UDの接続確認
$ lsusb | grep VidzMedia Bus 001 Device 002: ID 3275:0080 VidzMedia Pte Ltd
バックポートリポジトリの追加
$ sudo sh -c "echo 'deb http://http.debian.net/debian wheezy-backports main' > /etc/apt/sources.list.d/backports.list" $ sudo aptitude update
カーネルのインストール
$ sudo aptitude -t wheezy-backports install linux-image-3.16-0.bpo.2-amd64
unzipのインストール
$ sudo aptitude install unzip
Windows用ドライバからファームウェアを導入
$ cd /usr/local/src/ $ wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip $ unzip PX-S1UD_driver_Ver.1.0.1.zip $ sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/
再起動
$ sudo reboot
ドライバを確認
$ lsmod | grep smsusb smsusb 17036 0 smsmdtv 47106 2 smsdvb,smsusb usbcore 199395 5 uhci_hcd,ehci_hcd,ehci_pci,smsusb,usbhid $ ls /dev/dvb/ adapter0
Linux3.18で対応するが、Wheezyではまだ使えないのでV4L-DVBドライバをインストールする。ビルドには3.8以降のカーネルが必要になる。カーネルのアップグレードまではPX-S1UDと共通。
PT3の確認
$ lspci | grep Multimedia 03:00.0 Multimedia controller: Altera Corporation Device 4c15 (rev 01)
バックポートリポジトリの追加
$ sudo sh -c "echo 'deb http://http.debian.net/debian wheezy-backports main' > /etc/apt/sources.list.d/backports.list" $ sudo aptitude update
カーネルのインストール
$ sudo aptitude -t wheezy-backports install linux-image-3.16-0.bpo.2-amd64
再起動して確認
$ sudo reboot $ uname -r 3.16-0.bpo.2-amd64
必要なパッケージのインストール
$ sudo aptitude install git build-essential patchutils libproc-processtable-perl linux-headers-3.16-0.bpo.2-amd64
ビルド
$ cd /usr/local/src/ $ git clone --depth=1 git://linuxtv.org/media_build.git $ cd media_build $ ./build
インストール
$ sudo make install
ドライバモジュールのロード
$ sudo modprobe earth-pt3
ドライバの確認
$ lsmod |grep earth_pt3 earth_pt3 21751 0 dvb_core 110088 1 earth_pt3 i2c_core 50108 4 drm,i2c_piix4,drm_kms_helper,earth_pt3 $ ls /dev/dvb/ adapter0 adapter1 adapter2 adapter3
Linux3.18以降を使う場合、DVB版ドライバをブラックリストに追加しておかないとDVB版ドライバが使われてしまう。PT3はearth-pt1ではなくearth-pt3を/etc/modprobe.d/blacklist.confに追加する。PT1/2を使っていない場合、earth-pt1を追加しても何の効果もない。
$ sudo sh -c "echo 'blacklist earth-pt3' >> /etc/modprobe.d/blacklist.conf
takaaki 10月 26th, 2014
Posted In: ハードウェア
PX-S1UDをLinuxで使えるようにしたのでChinachuと組み合わせてみた。録画にはrecdvbを使う。
現在はこちらのドライバが安定している。
録画時にB25デコードをかける場合はlibarib25やFUSE_b25をインストールしておく。
PT3などと同じように録画するには録画コマンドrecdvb(recpt1の改造版)をこちらからダウンロードしておく。手順はrecpt1と変わらない。
必要なパッケージのインストール
$ sudo aptitude install automake
ビルドとインストール
$ cd /usr/local/src/ $ wget http://www13.plala.or.jp/sat/recdvb/recdvb-1.2.0.tgz $ tar xvzf recdvb-1.2.0.tgz $ cd recdvb-1.2.0 $ ./autogen.sh $ ./configure --enable-b25 #libarib25でデコードする場合 $ make $ sudo make install
recpt1などが入っている場合checksignalが上書きされるので注意。recdvbはPT2、PT3のDVBドライバでも使えるが、衛星放送には対応していない。checksignalも形式が違うのであまり当てにならない。
録画テスト
$ recdvb --dev 0 --b25 --strip チャンネル番号 録画秒数 録画ファイル名
/dev/dvb/adapter0の場合–devに0を指定。
Chinachuのwikiに従えば問題なくインストールできる。DVBデバイスの場合、実行ユーザーをvideoグループに所属させる必要があるので注意が必要。
必要なパッケージのインストール(wikiの記述通り)
$ sudo apt-get install build-essential curl git-core libssl-dev yasm libtool autoconf
実行ユーザー作成
$ sudo adduser chinachu $ sudo adduser chinachu video #デバイスの操作はvideoグループにしかできないので、グループに追加 $ sudo adduser chinachu sudo #インストール・アップデートのためにsudoグループに追加
ユーザーをchinachuに切り替え
$ sudo -i -u chinachu
ソースの取得
$ git clone git://github.com/kanreisa/Chinachu.git chinachu
インストール
$ cd chinachu $ ./chinachu installer Chinachu Installer Menu: [!] These are installed under all /home/chinachu/chinachu/... [!] Recommend the Auto installation. 1) Auto (full) 5) Node.js Modules 9) libfdk-aac 2) Auto (fast) 6) epgdump 10) libogg 3) submodule 7) libx264 11) libvorbis 4) Node.js Environment 8) libvpx 12) libav what do you install? > 1 selected: Auto (full)
サービスの登録
$ ./chinachu service operator initscript > /tmp/chinachu-operator $ ./chinachu service wui initscript > /tmp/chinachu-wui $ sudo chown root:root /tmp/chinachu-operator /tmp/chinachu-wui $ sudo chmod +x /tmp/chinachu-operator /tmp/chinachu-wui $ sudo mv /tmp/chinachu-operator /tmp/chinachu-wui /etc/init.d/ $ sudo insserv chinachu-operator $ sudo insserv chinachu-wui
設定ファイルの作成
$ cp config.sample.json config.json #サンプルのコピー $ sudo vi config.json
録画ファイルの保存先を設定
"recordedDir" : "./recorded/",
ユーザーの設定
"wuiUsers": [ "ユーザー名:パスワード" ],
外部から見られないのであれば、設定そのものを削除してもいい。
ファイル名のフォーマット
"recordedFormat": "[<date:yymmdd-HHMM>][<type><channel>][<tuner>]<title>.m2ts",
フォーマットに使えるタグは/node_modules/chinachu-common/lib/chinachu-common.jsのexports.formatRecordedNameを見るとわかる。下に一覧を用意した。
チューナーの設定
"tuners": [ { "name" : "PX-S1UD", "isScrambling": false, "types" : [ "GR" ], "command" : "recdvb --dev 0 --b25 --strip --sid <sid> <channel> - -" } ],
/dev/dvb/adapter0の場合–devに0を指定する。
チャンネル設定
"channels": [ { "type": "GR", "channel": "16" }, { "type": "GR", "channel": "21" }, { "type": "GR", "channel": "22" }, { "type": "GR", "channel": "23" }, { "type": "GR", "channel": "24" }, { "type": "GR", "channel": "25" }, { "type": "GR", "channel": "26" }, { "type": "GR", "channel": "27" } ]
地域に合わせて設定する
$ sudo service chinachu-operator start
$ sudo service chinachu-wui start
しばらく待つと番組表が作成される。
ブラウザに"http://IPアドレス:10772/"と入力するとChinachuのWUIに接続できる。ここから予約や録画ファイルの視聴・管理が行える。ストリーミング再生を無変換以外で使うにはそれなりのスペックが必要。番組表からできるライブ視聴はエンコードが必要で信頼性がまだ低いので、予約録画して再生した方がいい。
他のユーザーでchinachuコマンドをそのまま使うのはまずそうなので、普段使っているユーザーで使えるようにエイリアスを追加。(次回ログインから有効)
$ echo "alias chinachu='sudo -u chinachu /home/chinachu/chinachu/chinachu'" >> ~/.bash_aliases
自動予約ルール確認
$ chinachu rules
予約済み番組の確認
$ chinachu reserves
録画中番組の確認
$ chinachu recording
録画済み番組の確認
$ chinachu reserves recorded
Chinachuのアップデート
$ chinachu updater
番組表手動更新
$ chinachu update
番組表の作り直し
$ chinachu update -f
ロックファイルの削除
$ chinachu unlock
takaaki 3月 23rd, 2014
タグ: Chinachu, DVB, fuse_b25, js, Linux, PLEX, PT2, PT3, PX-S1UD, sudo, TV, 録画