ただdebianでdockerの録画サーバを建てただけ、そうです。
環境
- OS: Proxmox VE 8.2
- チューナー: PX-W3PE5
- ソフトウェア: epgstation, mirakurun
PVEクラスタを組んだとしてもHA先に録画用ハードを用意していないため、ただ複雑にしてしまって仮想化やLXCを使う旨味が少なく、素直にPVEにdockerを入れてしまおうと判断
→ Q.なんでUbuntuじゃなくてPVE使うの A.他サーバの仮想化/LXC化のために自宅サーバを同居させたい
参考
-
(全体の流れ)2023年8月版 45分で作れる自宅録画サーバー(Ubuntu 22.04.3LTS)
- こちらのスクリプトをダウンロードして参考に改変しつつ実行していきます
-
(バックアップとリストア)EPGStationのデータをバックアップ・リストアする
- 旧録画サーバから移行があれば
- こちらもスクリプトを参考に同等の作業を実施
- チューナードライバのリポジトリ
- libaribb25のリポジトリ
さっそく
録画サーバのマシンにハードをインストールする
- チューナーPX-W3PE5を挿す
- カードリーダーをUSBポートに接続する
- カードリーダーにカードを挿す (しっかりいれることが本当にとても大切)
PVEホストに必要なソフトウェアを入れる
pve-headers-某
は環境に合わせる
$ apt upate
$ apt install pve-headers-6.1.10-1-pve dkms
$ apt install -y docker docker-compose
$ apt install -y libpcsclite-dev pcscd pcsc-tools libccid
カードリーダーの動作を確認する
カードリーダーの動作に問題なければ以下の表示、プロンプトが帰ってこないので ^C
で止める
※このとき Card state: Card removed,
→カード半挿し状態に気づいていたら、最後の視聴/録画できない状態にならなかった・・・
$ pcsc_scan
PC/SC device scanner
V 1.6.2 (c) 2001-2022, Ludovic Rousseau <ludovic.rousseau@free.fr>
Using reader plug'n play mechanism
Scanning present readers...
0: ACS ACR39U ICC Reader 00 00
Thu Jun 27 00:03:21 2024
Reader 0: ACS ACR39U ICC Reader 00 00
Event number: 0
Card state: Card removed,
サービスを停止/自動起動無効化する
$ systemctl stop pcscd.socket
$ systemctl disable pcscd.socket
チューナードライバを導入する
$ wget https://github.com/tsukumijima/px4_drv/releases/download/v0.4.4/px4-drv-dkms_0.4.4_all.deb
$ apt install -y ./px4-drv-dkms_0.4.4_all.deb
$ reboot
PX-W3PE5
をマシンに挿した状態であれば ls /dev/px*
で4本生えているのが見えるはず
# ls -1 /dev/px*
/dev/px4video0
/dev/px4video1
/dev/px4video2
/dev/px4video3
録画サーバをビルドする
2023年8月版 45分で作れる自宅録画サーバー(Ubuntu 22.04.3LTS) よりzipを頂戴し、展開しておく
以下を順に実行する
# `2023temp/epg-plex/6-install-w.sh` を改変したものです
$ base_path=/path/to/docker用のファイルをまとめてるところ
$ scrpt_path=/path/to/zipを展開したフルパス (2023tempで終わる)
$ mkdir -p ${base_path}
$ cd ${base_path}
$ git clone https://github.com/l3tnun/docker-mirakurun-epgstation.git
$ cd docker-mirakurun-epgstation
$ cp docker-compose-sample.yml docker-compose.yml
$ cp epgstation/config/config.yml.template epgstation/config/config.yml
$ cp epgstation/config/enc.js.template epgstation/config/enc.js
$ cp epgstation/config/operatorLogConfig.sample.yml epgstation/config/operatorLogConfig.yml
$ cp epgstation/config/epgUpdaterLogConfig.sample.yml epgstation/config/epgUpdaterLogConfig.yml
$ cp epgstation/config/serviceLogConfig.sample.yml epgstation/config/serviceLogConfig.yml
$ git clone https://github.com/Chinachu/Mirakurun
$ cp ${scrpt_path}/epg-plex/data/new-MirakurunDockerfile ${base_path}/docker-mirakurun-epgstation/Mirakurun/docker/Dockerfile
$ cp ${scrpt_path}/epg-plex/data/tuners-w.yml ${base_path}/docker-mirakurun-epgstation/Mirakurun/config/tuners.yml
$ cp ${scrpt_path}/epg-plex/data/channels.yml ${base_path}/docker-mirakurun-epgstation/Mirakurun/config/channels.yml
$ cp ${scrpt_path}/epg-plex/data/new-docker-compose-w.yml ${base_path}/docker-mirakurun-epgstation/docker-compose.yml
Mirakurun/docker/Dockerfile
を以下のように編集する
(略)
g++ \
pkg-config \
pcscd \
+ libpcsclite1 \
libpcsclite-dev \
libccid \
libdvbv5-dev \
pcsc-tools \
dvb-tools \
&& \
(略)
make install && \
rm -rf /tmp/recpt1 && \
\
+# arib-b25-stream-test
+\
+ cd /tmp/ && \
+ git clone https://github.com/tsukumijima/libaribb25.git && \
+ cd /tmp/libaribb25 && \
+ cmake -B build && \
+ cd build && \
+ make && \
+ make install && \
+\
# mirakurun
\
apt-get -y remove $DEV && \
apt-get autoremove -y && \
apt-get clean && \
- rm -rf /var/lib/apt/lists/*
+ rm -rf /var/lib/apt/lists/* && \
+ rm -rf /tmp
Mirakurun/config/tuners.yml
のdecoder部分を4箇所変更する (フルパスじゃなくてもいいのかも)
- decoder: arib-b1-stream-test
+ decoder: /usr/local/bin/arib-b25-stream-test
録画サーバをビルドする (きままにまつ)
$ cd ${base_path}/docker-mirakurun-epgstation
$ docker-compose pull \
&& docker-compose build --no-cache
録画サーバを動かす
(UIDやオーナーの修正があればここで済ませてしまう)
$ cd ${base_path}/docker-mirakurun-epgstation
$ docker-compose up -d
アクセスしてみる
- epgstation: http://(pve-IP-addr):8888
- Mirakurun: http://(pve-IP-addr):40772
- 録画実施やリアルタイムの視聴でうまくいかない場合はこちらのLogsタブをチェック