妄想日記 by 妄想エンジン


FreeBSDマシンにmirakurunを入れてチューナーサーバにする

ここ何年か、テレビ代わりにPT3を使っていました。
ドライバなどの問題からwindowマシンに、BonDriverProxyExとBonCasClientを使って、録画と視聴を行っていました。

で、以前は、ML110G7上のVMWare ESXiでPT3をパススルーした仮想Windows7マシンでTVrockを動かしていて、ダイニングのテレビはTvTestを使っていて、それ以外のスマホとかタブレットとかは TvRemoteviewer_VBで見ていたのですが、主に音の関係から、ML110G7を引退させる予定でした。

当初は、TS150にFreeBSD11.0を入れて、Bhyve で PT3をパススルーした 仮想Windows7マシンにその代替をさせる予定でしたが、私の力不足か、うまくパススルーが動かなかったため、TX1310にWindows8.1を入れて、普段のお仕事用のマシンに録画環境を併用させていました。
これはこれで運用上それほど問題がなかったのですが、お仕事用マシンの裏でそういうのがうごいているのはなんとなく落ち着かないし、そのうえ仕事部屋にアンテナ線のコネクタが来ていないため、ずるずると部屋まで長いケーブルを引っ張っていて、見苦しいのと足元危険なのと、部屋の扉がきちんと閉まらないことでした。

そこで、netの海をいろいろさまよっていたところ、FreeBSD上にPT3のドライバ作っている人がいる+recpt1も動いている+mirakurun は recpt1動けば動きそう+bondriver_mirakurun で今までの環境をどうにかそのまま移行できそうというのが分かったので、試してみることにしました。幸いなことに、PT3は二枚あるけど録画はそれほど多くない時期だったので、一枚抜いて試してみればいいし、ダメだったらもとに戻せばいいし。

mirakurun のメリットは、いろいろ公式にもかいてあるのですが、私が一番魅力的に思えたのはチャンネルの共用ができることでした。同様のことはBondriverProxyExでも可能で、今まではそれでやっていました。録画をしつつ視聴もするというのは、うちでは結構あることなので、これができるとチューナーがまとめられるので楽ちんです。

用意するもの
1.何はともあれ、FreeBSDなマシン。ここでは11.0-RELEASEを使いました。たぶん10.0系列でも大丈夫と思うけど、今更新規に10系列選ぶ理由はないよね。
2. PT3
3. PT3のFreeBSD用のドライバ
4. git その他、開発環境。

まずはPT3のFreeBSDのドライバをインストールします。
ここからgit clone して make して sudo make install します。すると、ptx.koがインストールされますので、とりあえずsudo kldload ptx.ko してみます。何も問題がなければ、kldstat した際にきちんと読み込まれていて、/dev/ptxN.{s0,s1,t0,t1}が生えてくるはずです。

次に、libarib25 をインストールします。

pkg install git cmake gmake pkgconf gcc pcsc-lite automake
してから
git clone https://github.com/stz2012/libarib25.git
cd libarib25
cmake .
gmake install
で、たぶんこけるので、ccmake . していろいろ書き換えてあげます。

つぎに、recpt1をインストールします。これはfreebsd用にパッチを当ててくれた方がいらっしゃるので、ありがたくそれを頂戴します。
cd ..
fetch http://hgotoh.jp/wiki/lib/exe/fetch.php/documents/freebsd/freebsd-019-re...
tar zxvf freebsd-019-recpt1_20140521.tar.gz
cd recpt1
./autogen.sh
gmake
gmake install

これでひとまずrecpt1のインストールは終了です。あとはpt3とつながるかどうか確認して、録画のテストをしてみてちゃんととれるか確認してください。
checksignal --device /dev/ptx0.t0 27
とかやると、信号が来ているか確認できます。

そこまで動けばほぼ峠は越えました。あとはmirakurunのインストールと設定です。
mirakurun はもともとlinux で動いていますので、FreeBSDで動かすためにはちょっといじる必要があります。
まず、前提のパッケージをいくつか入れていきます。
pkg install bash node npm
ln -s /usr/local/bin/bash /bin/bash

npm install pm2 -g
npm install mirakurun -g --unsafe --production
で、入ってほしいところですが、残念ながら、Unsupported platform for mirakurun とはじかれてしまいます。
で、ちょっと悩んでいたところ、chinachu/mirakurun の作者から、「下記の手順でソース持ってきて、package.json を書き換えてみて」というヒントをいただきました。
https://github.com/Chinachu/Mirakurun/blob/master/CONTRIBUTING.md#checkout
さっそく試してみます。

cd ..
git clone https://github.com/Chinachu/Mirakurun/
cd Mirakurun
vim package,json
最後のほうに、"freebsd", を追加。
npm install
npm run build
npm install . -g --unsafe --production
すると、いろいろ何かメッセージが出て、インストールが完了します。というか、したように見えますがconfigファイルがコピーされていないのでこぴります。

mkdir /usr/local/etc/mirakurun
cp -v config/* /usr/local/etc/mirakurun
rm -v /usr/local/etc/mirakurun/*win32*

おめでとうございます、無事インストール完了です。

mirakurun-server のスタートは
mirakurun start
停止は
mirakurun stop
再起動は
mirakurun restart
です。
まだ設定終わっていないので、一旦止めておきましょう。

設定ファイルは
mirakurun config server
で、サーバの設定をします。ここはポート以外いじることはないかな。
mirakurun config tuners
で、チューナーの設定をします。
ここは実際のデバイス名に合わせてちょっと変えていきます。また、b25のデコーダーもdecoderで指定できるのですが、ここはひとまずはクライアント側でboncasclientで、デコードすることにしておきます。もちろん、recpt1で--b25できるようになっていれば、そちらも使えます。arib-b25-stream-test はまたしてもインストールできませんでした。残念。

あとは、
mirakurun config channels
でチャンネルの設定をします。この辺はlinux版とほぼ一緒ですので割愛します。

で、設定が完了したら
mirakurun start
でサーバをスタートしましょう。
mirakurun log server でログを確認できます。
きちんと設定ができていれば、epgデータを取りに行くために、recpt1が裏で動き出すはずです。おかしいようだったら一旦止めてconfigを確認してください。

さて、サーバ側はひとまずここまで。
クライアント側の設定は bondriver_mirakurun を使います。
https://github.com/Chinachu/BonDriver_Mirakurun/releases
上記のサイトで公式にバイナリを配布していますので、拾ってきて展開します。32bit版と64bit版がありますので、使うプログラムに合わせてインストールしてください。
同梱の bondriver_mirakurun.ini を開いて、サーバのアドレスを適切に設定します。

あとは、TvTestであればチャンネルスキャンをして、チャンネルを合わせてください。
以上で設定完了です。あら、かんたん。
録画プログラムのほうでは、iniの PRIORITY を閲覧用よりも大きなものにすると、録画中にチャンネル変更されて録画が失敗することを防げます。

積み残し:
chinachu も入れてみたいなー。その辺はもうちょい先かなー。
そうすると、少なくとも録画用にWindowsを無くせるなー。

参考URL
pt3 FreeBSDドライバ
https://github.com/Piro77/fbsdpt3

libarib25
https://github.com/stz2012/libarib25

FreeBSD recpt1
https://hgotoh.jp/wiki/doku.php/documents/freebsd/freebsd-019

mirakurun
https://github.com/Chinachu/Mirakurun

bondriver_mirakurun
https://github.com/Chinachu/BonDriver_Mirakurun

Chinachu + Mirakurun + TVTest によるリアルタイム視聴&録画機能
http://qiita.com/h-mineta/items/28dddff08d5a52dedffb

最後になりましたが、有用なプログラムを公開してくださった皆様、ありがとうございました。

ツイート
|top |アフィリエイト |windowsネタ |料理メモ |コンタクト |twitter |
さわやかなエロスを目指す--妄想エンジン ©1996-2022
コンテンツ配信