録画サーバーのハード(本体)の刷新は完了したので、次は録画サーバー機能の構築を行う。
Mirakurun, Chinachu と EPGStation を導入する。
今回は Mirakurun の導入まで。
Contents
これまでの環境
チューナーは earthsoft PT3。
2013年に Chinachu(β) と epgrec(UNA) の併用からはじまり、
2017年に Mirakurun を導入、Chinachu(γ) と rivarun + epgrec(UNA) 体制に移行しました。
Chinachu 専ら自分のアニメ録画用、epgrec UNAは家族用テレビとして動作していました。
当初は PT3 のチューナーを GR/BS それぞれ1組ずつ Chinachu と epgrec に割り当てていましたが、
Mirakurun の導入により、優先度をつけて両者が効率的にチューナーを共有できるようになっていました。
詳細は、この辺を参照のこと。
今回の構成と移行作業
チューナーは PT3 をそのまま使いまわします。
構成は、Mirakurun の下に Chinachu と EPGStation の併用。
EPGStation は Mirakurun と直接やりとりをしてくれるので、
epgrec の時のように rivarun を用いて無理やり動作させる必要がありません。
Web UI もすっきり洗練されていて、特にスマートフォンやタブレットからアクセスした時が快適。
家族用はこの EPGStation にすることにしました。
そして、今回この EPGStation は (rootless) Dockerで導入することにします。
自分用も EPGStation にしてしまおうかとも思ったのですが、
- アニメなどの第◯話という話数の取得が、Chinachu の方が得意だった(取れないものもありますが)
- 録画済みを複数大量に消去, 既存の録画番組を新環境に移行する際など、データベースの編集, 移行が容易
などの観点から、自分用は引き続き Chinachu でいくことにしました。
新環境
ハードウェア的なマシン構成はこちらを参照。
OS は Ubuntu Server 20.04 LTS (x86_64)。
録画ファイル用ストレージは、ZFS mirror で 10TB 確保しました。
rootless-docker は導入済です。
移行作業
さて新環境への移行作業ですが、
チューナーを直接操作するシステムでは一度に全てを移しきってしまわなければなりませんが、
私は幸い Mirakurun を介してやりとりするシステムになっているので、
確認しながら段階的に移行することができました。
- まず新環境へ Chinachu と EPGStation を導入します。
その間、既存環境の Mirakurun, Chinachu, epgrec はそのまま稼働し続けさせます。 - 新環境の Chinachu, EPGStation を、既存の Mirakurun を用いて動作確認します。
- クライアント側の移行が確認できたら、PT3 を新環境へ移設して Mirakurun を構成します。
(幸いそんなことにはなりませんでしたが) もし移行がすんなり行かなさそうだったら PT3 のみ、旧環境へ戻します。 - 新環境の参照先を移設した同機上の Mirakurun に変更します。
という訳で、実際の構築手順は Chinachu/EPGStation → Mirakurun なのですが、
読まれる方の大半に合わせて Mirakurun から説明します。
Mirakurun の導入
前回は、Chinachu(β) が既に導入済だったが、
今回は真っさらの環境への導入なので PT3 driver, recpt1 などから準備する。
(Chinachu(γ)は、β時と異なり Mirakurun とやりとりするので、これらが不要)
基本的には以前にやった作業を踏襲する。
しかし、細かい所は変わっていたりするので、比較的記事のあたらしい以下を参考にした。
https://nyanonon.hatenablog.com/entry/20190909/1568039100
B-CAS reader
B-CAS 用のカードリーダーの設定。
これも旧環境から引き継ぎ, NTT Communications SCR3310-NTTCom。
1 |
$ sudo apt install pcscd libpcsclite-dev pcsc-tools |
# この辺も含めサラッと通ってしまった所は控え忘れがあるかも。
# 詰まったり、慎重にやった個所は比較的ログを残してあるのだが。
PT3 driver
DVB版 と chardev版 というものがあるようで、
前者は処理的が重たく、後者は低スペックな環境でも使いやすいようである。
調べてみると旧環境は chardev版 を使っていたようなので、今回もこちらを入れる。
1 2 3 4 5 |
$ sudo apt install dkms # linux-header は導入済み $ git clone https://github.com/m-tsudo/pt3.git $ sudo bash ./dkms.install $ echo 'blacklist earth-pt3' | sudo tee -a /etc/modprobe.d/blacklist.conf $ sudo reboot |
libarib25 (arib-b25-stream-test)
arib-b25-stream-test は Mirakurun で使うのだが、
続く recpt1 で --enable-b25 とするために先に入れておく。
1 |
sudo npm install arib-b25-stream-test -g --unsafe-perm |
# よく考えたら、 Mirakurun では recpt1 で --b25 をする必要がないので、
# このステップと、次項の --enable-b25 は不要かも?
recpt1
以下の通り。
1 2 3 4 5 6 7 8 9 |
$ sudo apt install mercurial $ hg clone http://hg.honeyplanet.jp/pt1/ pt1/recpt1/pt1_dev.h /dev/pt3videoX $ sudo apt install automake autoconf $ ./autogen.sh $ ./configure --enable-b25 Makefile: prefix, CFLAGS, CPPFLAGS, LDFLAGS $ make && (sudo) make install |
3行目, PT3 なら bsdev: /dev/pt3video1, /dev/pt3video0、isdb_t_dev: /dev/pt3video2, /dev/pt3video3。
7行目は上記でコメントした通り。
8行目, Makefile を編集した旨の記録。
arib-b25-stream-test を導入して --enable-b25 を付けるなら、
/usr/lib/node_modules/arib-b25-stream-test/src 以下を参照するように
CPPFLAGS, LDFLAGS を適当に書き換える。
header は
#include <arib/xxxx.h> のような形で参照している。
例えば以下のようにする。
1 2 3 4 5 6 |
@pt1/recpt1 $ ln -s /usr/lib/node_modules/arib-b25-stream-test/src arib25 $ ln -s /usr/lib/node_modules/arib-b25-stream-test/src lib Makefilie CPPFLAGS += -I. LDFLGS += -L./lib |
Mirakurun
基本的には本家のインストラクションに則ってやる。
1 2 3 4 5 |
$ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - $ sudo apt install -y nodejs $ sudo npm install pm2 -g $ sudo npm install mirakurun -g —production $ sudo mirakurun init |
http://ipaddress:40772/ で Mirakurun の GUI が表示される(ようになっていた)。
40772 のポートは初期値。
Mirakurun の設定ファイル(*.yml) は旧環境からコピーした。
旧環境セットアップ時の記録はコチラ。
初期設定から動作確認は、上記の旧環境のセットアップ時の記録を踏襲すれば良い。
⇒ 次回は Chinachu と EPGStation の導入です。