Spinel+BonDriverProxy_Linuxを使って仮想環境でChinachuを動かそうとした話
最近自宅サーバを入れ替えようかなって考えていて5年ほど前に構築した録画サーバも新しくしよう!と思い、いいのないかなと探していたらChinachuというのにめぐりあいました><><>
ですがこのChinachu Linuxのみの対応ということでしばらく導入は諦めていました。
VT-Dなどの仮想化技術を使いPCIパススルーをしようとも考えたのですが対応のCPUを用意できませんでした。
SpinelはLinuxには対応していないため最近DTV板で流行っている?BonDriverProxy_Linuxを使いLinuxにチューナを渡しChinachuで操る記事です。
【必要なもの】
- B-CASカードリーダ,赤or青カード
- BonDriverがあるチューナ(この記事ではDY-UD200を使います。PT3でも動作確認済みです)
- Spinel
- LinuxOS(この記事ではUbuntu Server 14.04を使います。Debian系すいしょう)
- 仮想環境(この記事ではHyper-Vを使います。Vmware Player、VirtualBoxなどで動くと思います)
- BonDriverProxyEx (BonDriverを共有する奴)
- BonDriverProxy_Linux (BonDriverProxyのサーバ、ドライバ、クライアント)
- recbond(recpt1のBonDriver対応版、スプリッタなど同封)
- Chinachu(かわいいの)
- B25Decoder.dll(いつもの)
【備考】
Spinel+Tvtest+Tvrockなどで録画環境が構築されすでに使用できる状態ということを想定しています。
自己責任で頼んます。
1.Spinelの設定変更
B25Decoder.dllがない場合はSpinel.exeがあるフォルダにコピー
Spinel.ini
; B25/B1スクランブル解除の動作を指定します。
DescrambleControl = 2
DescrambleControlの記述を2に変更します。
こうすることによりBonDriverSpinelの設定によりB-CASカードによりスクランブル解除された映像が配信され仮想環境でB-CASカードが不要になります。
Spinelの起動してください。
2.BonDriverProxyExの導入
u-n-k-n-o-w-n/BonDriverProxyEx · GitHub
ダウンロードし、ビルド
BonDriverProxyEx.exeがあるフォルダにBonDriverのファイル郡をコピー
BonDriver_Spinel_XXXX.dll
BonDriver_Spinel_XXXX.dll.ini
BonDriver_Spinel_XXXX.dll.ini
; スクランブル解除を行ったTSの配信を希望するかどうかを指定します。
DesiredDescrambleControl = 1
こうすることによりSpinel側にスクランブル解除された映像を希望できます。
Sample.iniのファイル名を[BonDriverProxyEx.ini]に変更
BonDriverProxyEx.exeがあるフォルダにコピー
BonDriverProxyEx.ini (改行コードがWindowsのそれと違うのでメモ帳以外で開くことを推奨します。
[OPTION]
ADDRESS=192.168.0.XX
PORT=1192
OPENTUNER_RETURN_DELAY=0
SANDBOXED_RELEASE=0
DISABLE_UNLOAD_BONDRIVER=0
BONDRIVER=PT-T
CHANNEL_LOCK=0
ADDRESSにはサーバのアドレス(この場合実行しているコンピュータのIPアドレス)
PORTはポート番号
00=PT-T;BonDriver_Spinel_XXXX.dll
コピーしてきたDLLを指定
sample.iniに元から記述されているように複数チューナにも対応しているEx版なので
00=PT-T;BonDriver_Spinel_PT3-T0.dll;BonDriver_Spinel_PT3-T1.dll
01=PT-S;BonDriver_Spinel_PT3-S0.dll;BonDriver_Spinel_PT3-S1.dll
このようにすれば複数チューナ&地上波/BSCS共存のBonDriverProxyができます。
BonDriverProxyExを起動してください。
3.Linuxした準備
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install make g++ build-essential curl git-core libssl-dev yasm libtool autoconf automake libboost-all-dev pkg-config node npm
パッケージのアップデートとパッケージのインストールを行います。
sudo adduser chinachu
Chinachu用のユーザを追加、パスワード、本名などの設定
sudo visudo
設定ファイルが開かれるので最終行に
chinachu ALL=(ALL)ALL
を追加。いろいろインストールするためにこうしますがセキュリティ上気になるようであれば最後に戻してください。
sudo -i -u chinachu
新しく作成したユーザに切り替えます。
4.BonDriverProxy_Linuxの導入
git clone https://github.com/u-n-k-n-o-w-n/BonDriverProxy_Linux ~/BonDriverProxy_Linux
BonDriverProxy_Linuxをリポジトリからクローン。
cd ~/BonDriverProxy_Linux
ディレクトリに移動
make client
BonDriverProxy_Linuxのクライアントのコンパイル
cp BonDriver_Proxy.so BonDriver_Proxy-T.so
cp BonDriver_Proxy.conf BonDriver_Proxy-T.so.conf
設定ファイル、ライブラリをコピーします。
BS/CSを使用する際は
cp BonDriver_Proxy.so BonDriver_Proxy-S.so
cp BonDriver_Proxy.conf BonDriver_Proxy-S.so.conf
これも作成。
設定ファイルの編集
BonDriver_Proxy-T.so.conf
ADDRESS=192.168.0.XX
PORT=1192
BONDRIVER=PT-T
ADDRESSをBonDriverProxyExが起動しているサーバのものに
PORTも同じように
BONDRIVERはチューナ名
BS/CSを使用する場合は
BonDriver_Proxy-S.so.conf
ADDRESS=192.168.0.XX
PORT=1192
BONDRIVER=PT-S
にして保存。
make sample
動作確認用にsampleをコンパイル
./sample -b /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-T.so -s 0 -c 21-t 5 output.ts
地上波16chの録画を5秒間テスト。
CATVだったらch2ファイル覗いて調整しましょう。
WinSCPとかでoutput.tsをダウンロードしスクランブル解除した状態で録画出来ているたら動作はOKです。
5.recbondの導入
git clone https://github.com/dogeel/recbond.git ~/BonDriverProxy_Linux/recbond
BonDriverProxy_Linuxをリポジトリからクローン。
cd ~/BonDriverProxy_Linux/recbond
ディレクトリに移動
./autogen.sh
./configure
make
sudo make install
コンパイル&インストール
recbond --driver /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-T.so --space 1 B16 5 ts.ts
BonDriverチャンネル16chを5秒間録画で動作確認 ダウンロードして表示されなかったら--spaceのところを0にするか記述を消してください。
6.Chinachuの導入
git clone git://github.com/kanreisa/Chinachu.git ~/chinachu
Chinachuをリポジトリからクローン。
cd ~/chinachu
ディレクトリに移動
./chinachu installer
インストーラの起動 1) 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
サービス登録+スタートアップ登録
insservがなんとか言われたら
sudo ln -s /usr/lib/insserv/insserv /sbin/insserv
シンボリックリンクを作成してください。
sudo service chinachu-operator start
sudo service chinachu-wui start
でサービス起動です。
ブラウザにて http://ServerIP:10772
を開き sample.json->wuiUsersに記載されているIDとパスワードを参考にしログイン。
表示したページから 設定を開き
"wuiUsers": [
"id:Password"
],
IDとパスワードを変更
"tuners": [
{
"name" : "DY-UD200",
"isScrambling": false,
"types" : [ "GR" ],
"command" : "recbond --driver /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-T.so --space 1 <channel> - -"
}
],
BonDriverProxyExのBonDriverProxyEx.iniに記述されているチューナの数だけコピー
--spaceのところはさっきうまく受信できたように。
"tuners": [
{
"name" : "PT3-S1",
"isScrambling": false,
"types" : [ "BS", "CS" ],
"command" : "recbond --driver /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-S.so --strip --sid <sid> <channel> - -"
},
{
"name" : "PT3-S2",
"isScrambling": false,
"types" : [ "BS", "CS" ],
"command" : "recbond --driver /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-S.so --strip --sid <sid> <channel> - -"
},
{
"name" : "PT3-T1",
"isScrambling": false,
"types" : [ "GR" ],
"command" : "recbond --driver /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-T.so --space 1 <channel> - -"
},
{"name" : "PT3-T2",
"isScrambling": false,
"types" : [ "GR" ],
"command" : "recbond --driver /home/chinachu/BonDriverProxy_Linux/BonDriver_Proxy-T.so --space 1 <channel> - -"
}
],
複数チューナーだったらこんな感じに
地上波のチャンネルは
"channels": [
{ "type": "GR", "channel": "B30" },
{ "type": "GR", "channel": "B29" },
{ "type": "GR", "channel": "B32" },
{ "type": "GR", "channel": "B33" },
{ "type": "GR", "channel": "B28" },
{ "type": "GR", "channel": "B27" },
{ "type": "GR", "channel": "B25" },
{ "type": "GR", "channel": "B26" },
{ "type": "GR", "channel": "B24" },
{ "type": "GR", "channel": "B31" },
{ "type": "GR", "channel": "B12" },
{ "type": "GR", "channel": "B5" },
こんな感じに先頭にBをつけてあとにBonDriverチャンネル
書いた順番が番組表に反映されます。
上記はCATVなので環境に合わせて変更してください。
sudo service chinachu-operator restart
保存したらサービス再起動してください。EPGの取得が始まると思います。
始まらなかったらログを参考に自力でお願いしmさう><
参考にさせて頂きました:
PT3とChinachuで手軽に録画サーバ - Aglona(アグロナ)
Installation · kanreisa/Chinachu Wiki · GitHub
2015/10/05 22:16 追記
パス修正、make client忘れてたの追加
現在Chinachuがインストールできずお困りの方は:
Node.js Environmentのインストールに失敗する · Issue #234 · kanreisa/Chinachu · GitHub
が参考になるかもしれないです。