1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Proxmox VEで仮想化/LXC使わない録画サーバ

Posted at

ただdebianでdockerの録画サーバを建てただけ、そうです。

環境

  • OS: Proxmox VE 8.2
  • チューナー: PX-W3PE5
  • ソフトウェア: epgstation, mirakurun

PVEクラスタを組んだとしてもHA先に録画用ハードを用意していないため、ただ複雑にしてしまって仮想化やLXCを使う旨味が少なく、素直にPVEにdockerを入れてしまおうと判断
→ Q.なんでUbuntuじゃなくてPVE使うの A.他サーバの仮想化/LXC化のために自宅サーバを同居させたい

参考

  1. (全体の流れ)2023年8月版 45分で作れる自宅録画サーバー(Ubuntu 22.04.3LTS)
    • こちらのスクリプトをダウンロードして参考に改変しつつ実行していきます
  2. (バックアップとリストア)EPGStationのデータをバックアップ・リストアする
    • 旧録画サーバから移行があれば
    • こちらもスクリプトを参考に同等の作業を実施
  3. チューナードライバのリポジトリ
  4. libaribb25のリポジトリ

さっそく

録画サーバのマシンにハードをインストールする

  • チューナーPX-W3PE5を挿す
  • カードリーダーをUSBポートに接続する
  • カードリーダーにカードを挿す (しっかりいれることが本当にとても大切)

PVEホストに必要なソフトウェアを入れる

pve-headers-某 は環境に合わせる

root
$ 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, →カード半挿し状態に気づいていたら、最後の視聴/録画できない状態にならなかった・・・

root
$ 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,

サービスを停止/自動起動無効化する

root
$ systemctl stop pcscd.socket
$ systemctl disable pcscd.socket

チューナードライバを導入する

root
$ 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を頂戴し、展開しておく

以下を順に実行する

root
# `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 を以下のように編集する

${base_path}/docker-mirakurun-epgstation/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箇所変更する (フルパスじゃなくてもいいのかも)

config/tuners.yml
-  decoder: arib-b1-stream-test
+  decoder: /usr/local/bin/arib-b25-stream-test

録画サーバをビルドする (きままにまつ)

root
$ cd ${base_path}/docker-mirakurun-epgstation
$ docker-compose pull \
  && docker-compose build --no-cache

録画サーバを動かす

(UIDやオーナーの修正があればここで済ませてしまう)

root
$ cd ${base_path}/docker-mirakurun-epgstation
$ docker-compose up -d

アクセスしてみる

  • epgstation: http://(pve-IP-addr):8888
  • Mirakurun: http://(pve-IP-addr):40772
    • 録画実施やリアルタイムの視聴でうまくいかない場合はこちらのLogsタブをチェック
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?