🧙‍♀️

未完 MirakurunをLXCコンテナで動かすメモ(on Proxmox)

2021/11/03に公開

更新記事があります。

https://zenn.dev/yakumo/articles/4d9adb8a4a338e

注意:この手順は失敗しています。

  • USBカードリーダーをコンテナに見せる方法がわからなかった
  • DVBデバイスをコンテナに公開することはできたが、自動的に割当ができなかった。手動では割当可能

環境

  • PT3
  • Proxmox VE 7.0 (Debianベース)

コンテナ作成

とりあえず Debian 10のコンテナを作る。これはGUIから可能ので省略

コンテナにDVBデバイスを追加

コンテナ起動後にホスト側で以下のコマンドを実行。
これを自動化することができなかった。lxc.hook.post-start はProxmoxではうまく動かなかった。 Proxmox独自の hookscript を使うことでうまく行きそうな感じはあるのだが、今度はhookscriptをどう指定するのかわからない。 hookscript: local:hookscript.pl という記述は見かけたのだが…

Mirakurunコンテナはそうそう再起動しないので、 pct stop/start <ID> と以下の記述を組み合わせれば半自動くらいにはなるのでヨシとした。

CTID=110   // ProxmoxのIDと合わせる
lxc-device -n $CTID add /dev/dvb/adapter0/demux0
lxc-device -n $CTID add /dev/dvb/adapter0/frontend0
lxc-device -n $CTID add /dev/dvb/adapter0/dvr0
lxc-device -n $CTID add /dev/dvb/adapter1/demux0
lxc-device -n $CTID add /dev/dvb/adapter1/frontend0
lxc-device -n $CTID add /dev/dvb/adapter1/dvr0
lxc-device -n $CTID add /dev/dvb/adapter2/demux0
lxc-device -n $CTID add /dev/dvb/adapter2/frontend0
lxc-device -n $CTID add /dev/dvb/adapter2/dvr0
lxc-device -n $CTID add /dev/dvb/adapter3/demux0
lxc-device -n $CTID add /dev/dvb/adapter3/frontend0
lxc-device -n $CTID add /dev/dvb/adapter3/dvr0

Node.js

https://github.com/nodesource/distributions/blob/master/README.md
上記の通り。

Mirakurun

https://github.com/Chinachu/Mirakurun/blob/master/doc/Platforms.md

  • apt install build-essential git
  • npm install pm2 -g
  • npm install mirakurun -g --unsafe-perm --production

POINT: arib-b25-stream-test はあとで入れるのでここで入れない

Config

  • cd /usr/local
  • git clone https://github.com/Chinachu/dvbconf-for-isdb.git
  • cd etc/mirakurun
  • channels.ymlは省略。 channel: 'BS1_1' のような形式で入っている場合、BS01_1 のように修正する必要がある。(dvbv5_channels_isdbs.conf に登録されている名前と合わせる必要がある)
- name: PT3-S0
  types:
    - BS
    - CS
  command: dvbv5-zap -a 0 -c /usr/local/dvbconf-for-isdb/conf/dvbv5_channels_isdbs.conf -r -P <channel>
  dvbDevicePath: /dev/dvb/adapter0/dvr0
  decoder: arib-b25-stream-test

- name: PT3-T0
  types:
    - GR
  command: dvbv5-zap -a 1 -c /usr/local/dvbconf-for-isdb/conf/dvbv5_channels_isdbt.conf -r -P <channel>
  dvbDevicePath: /dev/dvb/adapter1/dvr0
  decoder: arib-b25-stream-test

- name: PT3-S1
  types:
    - BS
    - CS
  command: dvbv5-zap -a 2 -c /usr/local/dvbconf-for-isdb/conf/dvbv5_channels_isdbs.conf -r -P <channel>
  dvbDevicePath: /dev/dvb/adapter2/dvr0
  decoder: arib-b25-stream-test

- name: PT3-T1
  types:
    - GR
  command: dvbv5-zap -a 3 -c /usr/local/dvbconf-for-isdb/conf/dvbv5_channels_isdbt.conf -r -P <channel>
  dvbDevicePath: /dev/dvb/adapter3/dvr0
  decoder: arib-b25-stream-test

libaribb25

https://github.com/tsukumijima/libaribb25

arib-b25-stream-test(試したときはファイルサイズ22KBの実行ファイルだった)

USBカードリーダー

/etc/pve/lxc/<CTID>.conf にUSBデバイスのIDを書いたりすると転送可能なようだがうまくいかなかった。ここでギブアップした。

lxc.mount.entry%3A /run/pcscd mount/run/pcscd none bind,ro,create=dir
lxc.hook.start%3A /opt/scripts/hook_start.sh

ちなみに…(2022/02/02追記)

現在は、Proxmoxに直接nodejsとmirakurunを導入しています。
USBカードリーダーも問題なく動いてとりあえず安定稼働しています。
いくらdebianベースとはいえ、ハイパーバイザーに余計なものを載せちゃってるのでちょっと微妙なんですが…

Discussion