てなわけで、以前QNAPのVirtualizationStation 3で録画サーバを立ち上げるというのをやったんですが、どうもUSBパススルーだとドロップが激しいという問題を解消できず、PCIパススルーもうまくいかなかったので、諦めてラズパイを使って行こうかと思います。

ラズパイを使うのであればいまだと4とかあるのでソッチのほうがいいのですが、入手不可状態なので手元にあるラズパイ3Bで進めていきます。

このラズパイ3Bは初めて録画鯖をたてようと思ったときに購入したものだったんですが、どうにもチューナーが正しく認識できず諦めて今まで使われていなかったものです。

5年の時を経てようやく本来の役目を果たせる・・かもといった感じです。

Raspberry Pi 3BをUSBブート対応させる

ラズパイはMicroSDカードをストレージとして起動させるのですが、寿命がかなり短く結構すぐ壊れてしまいます。

今回はUSBブートを使ってUSB SSDからブートする方法で行こうかと思いますが、
ラズパイ3BはUSBブートに対応しているもののデフォルトで有効になっていないのでその対応をする必要があります。

といってもかなり簡単です。

まずは通常通りMicroSDから起動をします。

以下のコマンドでUSBブートの有効状態を確認します。

vcgencmd otp_dump | grep ^17

17:1020000aなら無効、17:3020000aならすでに有効になっています。
それ以外の場合は何かしら問題が発生している可能性があります。

無効の場合、/boot/config.txtを編集し以下を追記します。

program_usb_boot_mode=1

リブート後、改めてvcgencmdで確認して有効の値であれば問題なしです。

あとはMicroSDカードを抜いて、Raspberry Pi OSを入れたUSB SSDを挿して起動することができるか確認します。

私の場合、他のUSB機器を接続しているとうまく起動しない事があったので一度起動を確認できるまでは何も挿さないほうがいいと思います。
※LANのすぐ右上に挿しているとうまくいきました、それ以外はなんかだめです・・・

あとは、好きなようにセットアップしておきます。

PX-S1UDのファームウェアを入れる

いつものやつですね・・・

wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip
unzip PX-S1UD_driver_Ver.1.0.1.zip
sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware

ちなみに、今回私は64bit版のOSにしました。

リブートして、PX-S1UDが認識されていることを確認しておきます。

lsusb | grep Siano
ls -la /dev/dvb

docker-mirakurun-epgstationの導入

MirakurunとEPGStationをDockerに閉じ込めたやつを公開してくれている方がいますので、ありがたく使わせていただきます。
https://github.com/l3tnun/docker-mirakurun-epgstation

インストールはリンク先のままで問題なしです、
個人的にはMySQLはやりすぎなので、今後安定しそうであればSQLiteにしてしまおうかと思います。
※ラズパイ使わない場合はそのままでも良いと思う

あと、Mirakurunを本家のdocker-compose.yamlと揃えたいなと思うのでそこも修正していこうかなって感じです。

起動は少し時間かかりますが、無事に8888でアクセスすることができれば完了です。

設定とかその他

EPGStationの設定ですが、今回はNASに録画データをホゾさせたいのでその設定をします。

前回書いた記事と同じようにNASをCIFSでマウントしておきます。

ラズパイ3BはLANが100Baseなので直接置くようなことはせず、一時録画先recordedTmpを使用してローカルに保管したあと、保存先recordedをNASにしておくといった感じにします。

あとは録画ファイル名、ここは好みによりますが私はなるべくChinachu時代と同じ様になるよう調整しています。
Chinachuの時はサブディレクトリを作るようにしていたので、自動サブディレクトリ設定も有効にしておきます。

気になるところ

EPGStationの録画中のサムネが真っ白、これ合ってるんですかね。
気になっちゃいますw

あと、録画を途中で止めることができない(止めると削除される)のが個人的には不便でなんとかしてくれないかなって感じです。

エンコード周りはEPGStationにやらせないので(というかラズパイじゃ無理)特にいじってません、
視聴も直接Mirakurunから行うのでEPGStationの設定は無視します。

今の所ドロップなどは発生していないですが、
一定時間でチューナーの認識がバグって指し直したりしないと直らないことがあるのが気になっていて、それが再発するようであれば使い物にならないという判断をするしかないのでできれば直ってほしいところ・・


そんな感じで眠いですがざっと書きたいことを書きましたw

雑な文章になってしまったのでまた今度書き直したいと思いますが、今回はこの辺にしておきます。

追記

Chinachuなんですが、一時保管先を利用できないので不採用になりましたが、個人的にはChinachuのほうが好きなのでAirに期待しておきます。

また、ラズパイでインストールしようとするとビルドが8時間たっても終わらなかったので確認してたらどうやらNode.jsをわざわざビルドする必要はなさそう。

入れる場合は以下の感じでやっていきます。
※2022/1/1現在

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs

sudo npm install pm2 -g
sudo pm2 startup

git clone git://github.com/Chinachu/Chinachu.git ~/chinachu
cd ~/chinachu/
./chinachu installer #2 submoduleを実行
./chinachu installer #3 Node.js Modulesを実行
./chinachu installer #4 ffmpegを実行

mkdir .nave
ln -s /usr/bin/node /usr/bin/npm .nave/

cp config.sample.json config.json
vim config.json #調整

echo [] > rules.json
./chinachu service wui execute # 問題なく起動できたらCtrl+\で終了
./chinachu update #Mirakurunとの接続を確認

sudo pm2 start processes.json
sudo pm2 save

#20772にアクセスして問題ないことを確認する