ゼロから始めるlinux録画鯖の書

Chinachu
スポンサーリンク

記念すべきブログ一発目のネタです。よろしくお願いします。
自分はLinuxのテキストエディタはnano派なのでテキストエディタのコマンドはnanoで書いています。
vimやviユーザーの方はお手数ですがnanoのところを打ち直してください。スイマセン
このページでは、2017年6月現在でのPT3でMirakurunとChinachu Gammmaでの録画サーバー構築方法を書いています。

それぞれのツールが更新されて挙動が変わるかもしれませんがあしからず。

この記事で紹介しているものは2017年のもので古いのでこれから録画サーバーを構築する場合は2019年版を参考にしてください。

参考にしたサイト

https://github.com/Chinachu/Chinachu/wiki/Gamma-Installation-V2
(Chinachu公式) https://github.com/Chinachu/Mirakurun
(Mirakurun公式) https://www.jifu-labo.net/2017/01/chinachu_gd
https://blog.sugtao4423.xyz/?p=700

 

どうしたの

最近身近でCorei5-4440のPCが余っていたので、今や生産終了したPT3を乗っけて録画鯖を建て直したので、そのメモです。
Chinachu開発者様や各種ツール製作者様のお陰で、簡単に録画サーバーができるようになっていて、製作者様方には本当に頭があがりません。

必要なもの

・PT3などのlinuxドライバのあるチューナー(今はPT3が生産終了で値上がりしているので新しく買う人はヤフオク等で)

PT3 Rev.A
アースソフト
¥45,000(2023/10/03 22:23時点)
アースソフト PT2
アースソフト
¥15,980(2023/10/03 22:23時点)
※地上波だけなら別のチューナーだけど4,000円くらいで買えます。↓
最近では、さんぱくんっていうPCチューナー(これもなかなか手に入りませんが、在庫があれば7,000円)なら有志のドライバとツールでBS/地上波が使えます(別記事で紹介)。

・カードリーダー(↓我が家はLinux系での稼働実績の高いこれです)

・B-CASカード(レコーダー等から流用でOK)

・そこそこ容量の大きいHDD(当方はOS用のHDDとは別に2TBのHDD使用)
※別のHDDを設定する方法は各自調べてください。

・Corei3以上の性能のあるCPUをもったPC(以前core2duoでやってて結構順調でしたが、突然安定しなくなったりするのでこのぐらいのCPUは必要かと)

Step1 OS導入

自分はUbuntuDesktopで比較的なれていたのでOSはServer版のUbuntuで挑戦してみました。
やり方は執筆時最新のUbuntu16.04のServerを公式サイトからダウンロードしてUSBかDVDに焼いてインストールするだけです。
他のサイト等でも紹介されているのでインストール方法は割愛します。(SSHを設定していると便利です)

Step2 必要パッケージのインストール

Chinachu+Mirakurun+他関連ツールならこのくらいで足りると思います。
もしエラーが出たら、それに対応してaptでインストールって感じで対応してください。

$ sudo apt -y install autoconf build-essential cmake curl git-core libssl-dev libtool libboost-all-dev pkg-config yasm

 

Step3 カードリーダー用ドライバをインストール

$ sudo apt -y install pcscd pcsc-tools libpcsclite-dev
$ pcsc_scan

 

ここでJapanese Chijou Digital B-CAS Card (pay TV)と出ればOKです。
このコマンドは自動で終了しないのでCtrl+C で抜けます。

Step4 PT3ドライバ(チューナードライバ)をインストール

一応カーネル標準ドライバも試したのですが、何故かBSプレミアムが受信できないってのがあったので、PT3に関しては別途インストールした方が信頼性が高いと思います。

$ mkdir chinachu
$ cd chinachu
$ git clone https://github.com/m-tsudo/pt3.git
$ cd pt3 $make
$ sudo make install
$ sudo apt install dkms
$ sudo bash ./dkms.install

 

カーネル標準ドライバと競合するので標準ドライバをブラックリストにする

$ sudo nano /etc/modprobe.d/blacklist.conf

 

一番下の行にblacklist earth-pt3と追記
最後に録画サーバを再起動して終了。

$ sudo reboot

 

再起動後、ドライバモジュールがロードされているかを確認。

$ lsmod | grep pt3

 

pt3_drvのような表示があればOK

Step5 暗号化解除用arib25ライブラリのインストール

$ cd ../
$ git clone https://github.com/stz2012/libarib25.git
$ cd libarib25
$ cmake .
$ make
$ sudo make install

 

Step6 録画コマンドソフトrecpt1のインストール

$ git clone https://github.com/stz2012/recpt1.git
$ cd recpt1/recpt1
$ ./autogen.sh
$ ./configure --enable-b25
$ make
$ sudo make install

 

Step7 チューナー管理Mirakurunの前提ソフトであるnodeのインストール

Ubuntu等のOSのパッケージだとnodeやnpmのバージョンが古いのでnパッケージを入れて
そこから最新のnodeやnpmを入れていく形になります。最新になれば、古いパッケージは不要で混乱するため消す感じです。
ただ、nodeの奇数バージョンは不安定らしいので、最新が奇数バージョンの時は一つ前のバージョンを入れたほうがいいようです。ChinachuのWikiによると、通常環境における偶数バージョンの利用は Node.js 公式でも推奨されているようです。

$ sudo apt install npm
$ sudo npm cache clean
$ sudo npm install n -g
$ sudo n stable
$ sudo ln -sf /usr/local/bin/node /usr/bin/node
$ sudo apt purge -y nodejs npm

 

参考:http://qiita.com/seibe/items/36cef7df85fe2cefa3ea

バージョン確認は

$ node -v
v8.2.1
$ npm -v
5.3.0

 

という感じです。
因みにnpmが5.xや、nodeが7.x等(不安定版)がインストールされてバージョンを下げたい場合は

$ sudo npm i -g npm@4
$ sudo n 6.*

 

という感じです。
この場合npmは4.x、nodeは6.xになります。

Step8 Mirakurunの導入

MirakurunはChinachuのチューナー部分の管理ソフトです。
このソフトは録画が無い時に自動でEPGを取ってくれたりします。
他にもBonDriver_Mirakurunを使えばwindowsのDTVでは定番のTVtestでの視聴がローカルLan内で可能になったりする優れものです。

$ sudo npm install pm2 -g --no-optional
$ sudo npm install mirakurun -g --unsafe --production --no-optional
$ sudo npm install arib-b25-stream-test -g --unsafe --no-optional

 

設定

$ sudo EDITOR=nano mirakurun config {server|tuners|channels}

 

server設定はデフォルトでいいと思いますが、tuners、channelsはチューナー、地域に合わせて変更する必要があります。
PT3の時は下記のような感じです。具体的にはPT3の設定は最初から書いてあるのでisDisabled: trueisDisabled: falseとすれば使うことができます。
※最初に紹介したさんぱくんの設定は別記事で紹介します。

$ sudo EDITOR=nano mirakurun config tuners
- name: PT3-S1
types:
- BS
- CS
command: recpt1 --device /dev/pt3video0 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false

- name: PT3-S2
types:
- BS
- CS
command: recpt1 --device /dev/pt3video1 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false

- name: PT3-T1
types:
- GR
command: recpt1 --device /dev/pt3video2 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false

- name: PT3-T2
types:
- GR
command: recpt1 --device /dev/pt3video3 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false

 

channelsの設定で地上波は

$ curl -X PUT "http://localhost:40772/api/config/channels/scan"

 

で自動登録できます。BS・CSのチャンネル設定は手動でしか出来ませんが全国均一なので一番下に書いておきます。
一通り設定が終わったら

$ sudo mirakurun restart

 

でmirakurunを再起動しましょう。

Step9 録画予約管理のChinachuの導入

ようやくメインとなるChinachuのインストールです。chinachuはインストーラーが非常によく出来ているのでインストールも対話的にできるので、かなり楽です。

$ sudo apt install build-essential curl git-core vainfo
$ cd ../
$ git clone git://github.com/Chinachu/Chinachu.git
$ cd Chinachu/
$ ./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

 

初回は1“Auto (full)”を選択します。

コンフィグファイルやルールファイルの作成

$ cp config.sample.json config.json

 

空のルール設定ファイルを作成

$ echo [] > rules.json

 

動作確認

$ ./chinachu service wui execute

 

ここで、SSHや、プロンプトを開いたままブラウザでhttp://[サーバーIP]:20772でアクセス可能なことを確認してください。
問題なく起動できたらCtrl+\で終了
続いてEPG取得テスト

$ ./chinachu update

 

ここでうまくいかない場合は恐らく Mirakurun に接続できていないようです。
うまくいかない場合はmirakurunのログシステムsudo mirakurun log server等でエラーを確認してください。

スクリプト(サービスとして)登録

自分はpm2でchinachuを管理するよりサービスで管理するほうが好きなので今回はサービス(というよりサービスでなれたから)として登録しますが、chinachuの公式wikiではpm2での自動起動を紹介しています。
ここでは混乱回避のためpm2での設定は書かないことにします(-_-)
※以前pm2とサービスの両方を設定して多重起動になって録画ファイルがおかしな事になってしまったので、気をつけましょう。(そんな変な人は自分くらい?)

$ ./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 systemctl enable chinachu-operator
$ sudo systemctl enable chinachu-wui

 

ここまで設定すると起動時に自動でchinachuのwui、operatorを起動してくれます。
因みにサービスとして設定した場合の手動起動や手動再起動等は下記の通りです

#起動
$ sudo service chinachu-operator start
$ sudo service chinachu-wui start
#再起動
$ sudo service chinachu-operator restart
$ sudo service chinachu-wui restart
#終了
$ sudo service chinachu-operator stop
$ sudo service chinachu-wui stop

 

おまけ(設定ファイル)

起動が完了したらブラウザからChinachuトップの右上にある設定で設定をしましょう。JSONフォーマットのケツカンマは何度も悩みました。

このサイトで文法チェックをしてくれるようなので、文法チェックしながら設定しましょう。http://jsonlint.com/
ちなみに自分の設定は下記の通りです。

クリックで展開

そしてMirakurunのBS・CSのチャンネル設定
クリックで展開

あとがき

頻繁に更新されるChinachuは日に日に便利になって、次期大型アップデートChinachuAirが楽しみです。
ではまた。

Amazon検索
Chinachu
Till0196をフォローする
Till0196のぼーびろく

コメント