Chinachu (γ) on Ubuntu 16.04 LTS (2017夏)の焼き直しでLinuxでPX-W3U4を使う(2019年1月版)の続き。
USB2.0のチューナーしかない。CentOSはカーネルが古いので、PX-S1UDを使えない。
$ sudo apt install -y curl
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt install -y nodejs
$ sudo npm install pm2 -g
$ sudo npm install mirakurun -g --unsafe-perm --production
$ sudo apt install -y pkg-config
$ sudo npm install arib-b25-stream-test -g --unsafe
チューナーの設定
$ sudo mirakurun config tuners
チャンネルの設定
$ sudo mirakurun config channels
地上波はチャンネルスキャンで設定するので、BS/CSのチャンネルだけで十分。普通はserviceIdなしで問題ない。
設定を反映
$ sudo mirakurun restart
チャンネルスキャン
$ curl -X PUT "http://localhost:40772/api/config/channels/scan"
チャンネル設定を反映
$ sudo mirakurun restart
インストール
$ git clone git://github.com/kanreisa/Chinachu.git ~/chinachu
$ cd ~/chinachu/
$ ./chinachu installer
Chinachu Installer Menu:
[!] These are installed under all /home/user/chinachu/...
[!] Recommend the Auto installation.
1) Auto (full) 3) Node.js Environment 5) ffmpeg
2) submodule 4) Node.js Modules
what do you install? > 1
selected: Auto (full)
設定
$ tr -d \\r < config.sample.json > config.json
$ vi config.json
"uid": "user",
Chinachuを動作させるユーザーを設定
空の予約ルールを作成
$ echo [] > rules.json
動作チェック
$ ./chinachu service wui execute
^C
$ ./chinachu update
サービスを登録
$ sudo pm2 start processes.json
$ sudo pm2 save
takaaki 1月 28th, 2019
今回はカーネルの縛りがない非公式ドライバを使用する。現行で一番サポートが長いUbuntu 18.04 LTSに導入した。PX-W3PE4、PX-Q3U4、PX-Q3PE4でも手順は共通。
READMEの通りにやればできる。カーネルのアップデートに追従するためDKMSを使用した。
パッケージのインストール
$ sudo apt install -y git build-essential dkms
ドライバのダウンロード
$ mkdir -p ~/src/ $ cd ~/src/ $ git clone https://github.com/nns779/px4_drv.git
ファームウェアのインストール
$ cd ~/src/px4_drv/fwtool/ $ make $ wget http://plex-net.co.jp/plex/pxw3u4/pxw3u4_BDA_ver1x64.zip -O pxw3u4_BDA_ver1x64.zip $ unzip -oj pxw3u4_BDA_ver1x64.zip pxw3u4_BDA_ver1x64/PXW3U4.sys $ ./fwtool PXW3U4.sys it930x-firmware.bin $ sudo mkdir -p /lib/firmware $ sudo cp it930x-firmware.bin /lib/firmware/
ドライバを更新するときは一度削除する
$ sudo dkms remove px4_drv/0.1.0 --all $ sudo rm -rf /usr/src/px4_drv-0.1.0
ドライバのインストール
$ cd ~/src/px4_drv/ $ sudo cp -av ./ /usr/src/px4_drv-0.1.0 $ sudo dkms add px4_drv/0.1.0 $ sudo dkms install px4_drv/0.1.0 $ sudo modprobe px4_drv $ ls /dev/px4video* /dev/px4video0 /dev/px4video1 /dev/px4video2 /dev/px4video3
パッケージのインストール
$ sudo apt install -y cmake libpcsclite1 libpcsclite-dev pcscd pcsc-tools
libarib25をインストール
$ cd ~/src/ $ 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
パッケージのインストール
$ sudo apt install -y autoconf automake
recpt1をインストール
$ cd ~/src/ $ git clone https://github.com/stz2012/recpt1.git $ cd recpt1/recpt1/ $ ./autogen.sh $ ./configure --enable-b25 $ make $ sudo make install
実際に録画してみる。0,1が衛星波、2,3が地上波。チューナーが増えた場合も衛星波2、地上波2の順で繰り返される。
$ cd ~ $ recpt1 --device /dev/px4video0 --lnb 15 --b25 --strip BS15_0 10 bs0.m2ts $ recpt1 --device /dev/px4video1 --lnb 15 --b25 --strip BS01_2 10 bs1.m2ts $ recpt1 --device /dev/px4video2 --b25 --strip 27 10 gr0.m2ts $ recpt1 --device /dev/px4video3 --b25 --strip 27 10 gr1.m2ts
Chinachu on Ubuntu 18.04 LTS (2019年1月版)
takaaki 1月 23rd, 2019
Chinachuのメモリ周りを調整してみたのでメモ。(検証中)
2019/1/28追記: メモリを4GBから16GBに増設したこともあって、録画が中断されることはなくなった。
TSFilterがバッファオーバーフローを起こして録画が中断されることがある。
サーバー設定のhighWaterMarkでバッファを設定できる。推奨されていないので程々に数倍程度。
デフォルトは25165824(24MB)
$ sudo mirakurun config server
#highWaterMark: 25165824 # integer (bytes) #highWaterMark: 67108864 # 64MB highWaterMark: 134217728 # 128MB #highWaterMark: 268435456 # 256MB
使い切って録画を出力できなくなる時もこれで解決する。Mirakurunのアップデートのたびに実行する必要がある。
追記: mirakurun@2.8.0以降は–unsafe-permをつけずにアップデートすれば再設定する必要はない。
メモリの搭載量と相談して程々に。highWaterMarkを増やすときは一緒に増やす。
デフォルトでは256(MB)(追記: mirakurun@2.8.0以降は512)
sudo pm2 start mirakurun-server --node-args --max_old_space_size=1024
takaaki 12月 31st, 2018
Posted In: ソフトウェア
環境を構築し直したので、まとめてみる。今回はUbuntu 16.04 LTSを使った。気が向いたらDebian 9(Stretch)でやる予定。
PT3、PX-S1UD V2.0、PX-BCUD、KTV-FSMINIの4つをセットアップした。PT3はDVBドライバを使う。
カーネルにドライバが組み込まれているので、特に設定しなくても認識される。偶数がBS/CS、奇数が地上波と交互になる。
$ ls /dev/dvb/ adapter0 adapter1 adapter2 adapter3
アンテナに電源供給が必要な場合、chardev版ドライバを導入した方がいい。今回は取り上げない。
何もしなくても認識されるが、ファームウェアを入れないと動作しない。
$ ls /dev/dvb/ adapter0 adapter1 adapter2 adapter3 adapter4
ファームウェアをダウンロードして、インストールする。モジュールをロードし直すと有効になる。
$ 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 modprobe -r smsusb $ sudo modprobe smsusb
adapterの番号を変更するには次のようにする。複数ある場合は「,」で区切る。認識できるadapterの数は8つまでなので、0~7の番号が指定できる(Linux 4.10以降は16個なので0~15)。
$ sudo modprobe -r smsdvb $ sudo modprobe smsdvb adapter_nr=4
他のDVBデバイスと区別するため、起動時に番号を固定する。他にDVBデバイスがない場合は必要ない。
$ sudo sh -c 'echo "options smsdvb adapter_nr=4" > /etc/modprobe.d/smsdvb.conf'
LinuxカーネルにPX-BCUDのドライバが組み込まれるのは4.7以上で、標準のカーネル(4.4)ではドライバが組み込まれていない。HWEカーネルを導入する。
$ uname -r 4.4.0-83-generic $ sudo apt install linux-generic-hwe-16.04 $ sudo reboot $ uname -r 4.8.0-58-generic $ ls /dev/dvb/ adapter0 adapter1 adapter2 adapter3 adapter4 adapter5
adapter番号の指定
$ sudo modprobe -r em28xx-dvb $ sudo modprobe em28xx-dvb adapter_nr=5 $ sudo sh -c 'echo "options em28xx-dvb adapter_nr=5" > /etc/modprobe.d/em28xx_dvb.conf'
KTV-FSMINIはドライバではなくコマンドを利用する。KTVWikiにあるrecfsusb2iをダウンロードして、ビルドする。
$ sudo apt install p7zip-full $ 7z x recfsusb2i-20160220.7z -orecfsusb2i $ cd recfsusb2i/src/ $ make $ sudo install recfsusb2i /usr/local/bin/
DVBデバイスをチューニングするにはdvbv5-zapが必要になる。dvbv5-zapはdvb-toolsに含まれている。
$ sudo apt install dvb-tools
チューニングに必要な設定をダウンロード
$ sudo apt install git $ cd /usr/local $ sudo git clone https://github.com/Chinachu/dvbconf-for-isdb.git
パッケージのインストール
$ sudo apt install pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools
動作確認
$ pcsc_scan | grep B-CAS Japanese Chijou Digital B-CAS Card (pay TV) ^C
最後に現在も販売されているチューナーを挙げておく。
Chinachuの実行ユーザー作成(既存のユーザーにする場合は不要)
$ sudo adduser chinachu
Chinachuの実行ユーザーをsudoグループに所属させる
$ sudo adduser chinachu sudo
Chinachuの実行ユーザーに切り替え
$ sudo -i -u chinachu
Node.jsをインストール
$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - $ sudo apt install -y nodejs $ sudo npm -g i npm@latest # NPMを更新する
PM2とMirakurunをインストール
$ sudo npm install pm2 -g $ sudo npm install mirakurun -g --unsafe --production
arib-b25-stream-testをインストール
$ sudo npm install arib-b25-stream-test -g --unsafe
Mirakurunの設定
$ sudo mirakurun config server
Mirakurunのチューナー設定
$ sudo mirakurun config tuners
設定ファイルやadapterの番号を間違えないように気を付けて編集する
Mirakurunのチャンネル設定
$ sudo mirakurun config channels
BS/CSのチャンネルだけ登録する
チャンネルスキャンで地上波のチャンネルを設定する
$ sudo mirakurun restart $ curl -X PUT "http://localhost:40772/api/config/channels/scan" $ sudo mirakurun restart
Chinachuのダウンロードとインストール
$ sudo apt install git $ git clone git://github.com/kanreisa/Chinachu.git ~/chinachu $ cd ~/chinachu/ u$ ./chinachu installer Chinachu Installer Menu: [!] These are installed under all /home/chinachu/chinachu/... [!] Recommend the Auto installation. 1) Auto (full) 3) Node.js Environment 5) ffmpeg 2) submodule 4) Node.js Modules what do you install? > 1
設定
$ cp config.sample.json config.json $ vi config.json
実行ユーザーを指定する
"uid": "chinachu",
別のマシンからアクセスされるIPアドレスを指定する
"wuiOpenHost": "192.168.60.10",
空の予約ルールを作成
$ echo [] > rules.json
動作チェック
$ ./chinachu service wui execute ^C $ ./chinachu update
サービスを登録
$ sudo pm2 start processes.json $ sudo pm2 save
以上でインストールは完了。
ドライバはなるべく標準ドライバで対応して手間を省いた。チャンネル設定はBS/CSの設定が決まっていて、地上波はチャンネルスキャンできるので手間取らなかった。以前に比べて簡単になったものの、まだ手間がかかるように思う。
takaaki 7月 19th, 2017
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, 録画