読者です 読者をやめる 読者になる 読者になる

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さう><

 

f:id:miiqwe:20151002203523p:plain

f:id:miiqwe:20151002203526p:plain

 

参考にさせて頂きました:

PT3とChinachuで手軽に録画サーバ - Aglona(アグロナ)

Installation · kanreisa/Chinachu Wiki · GitHub

 

 

2015/10/05 22:16 追記

パス修正、make client忘れてたの追加

現在Chinachuがインストールできずお困りの方は:

Node.js Environmentのインストールに失敗する · Issue #234 · kanreisa/Chinachu · GitHub

 が参考になるかもしれないです。