🧙♀️
未完 MirakurunをLXCコンテナで動かすメモ(on Proxmox)
更新記事があります。
注意:この手順は失敗しています。
- 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
上記の通り。
- curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
- apt-get install -y nodejs
Mirakurun
- 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
- git clone https://github.com/tsukumijima/libaribb25.git
- cd libaribb25
- (中身確認するのであれば CMakeLists.txtをチェック)
- cmake -B build -DCMAKE_VERBOSE_MAKEFILE=1
- cd build
- make
- make install
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