できごと
コロナ週間
コロナ
7/18 微熱が続く 36.7度程度。横になっていればまぁ・・・だが起き上がるとしんどい
7/19 37〜38度程度の熱が続く。頭痛と気持ち悪さが続く
7/20 37〜38度程度の熱が続く。頭痛と気持ち悪さが続く
7/21 37度程度の熱が続く。頭痛と気持ち悪さが少し和らぐがやっぱり万全ではない
みたいなのがずっと続いていた
初動でワクチンの副反応かと思って検査を受けなかったのが失敗だった。多分これはコロナだろうなぁ・・・
固定項目
TODO
物欲
最終更新 2023/05/25 15:34:00 JST
tl;dr
proxmox前提
lxc-unprivilegedコンテナでOK
内部的には、mirakurun+epgstationのdockerコンテナで立てるのが一番楽。
やること1
以下の lxc.* の設定を追記する必要がある。(これはproxmoxの設定ファイルなので純粋なlxcの場合は多分そのまま使えない)
場所は /etc/pve/lxc/CTID.cfg (CTID=コンテナID。 100とか101とか数字のやつ。)
1
2
3
4
5
6
features: fuse=1,mknod=1,mount=nfs;cifs,nesting=1
lxc.cgroup.devices.allow: c 212:* rwm
lxc.cgroup.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/dvb dev/dvb none bind,optional,create=dir
lxc.mount.entry: /dev/bus/usb dev/bus/usb none bind,optional,create=dir
やること2 dockerのfsドライバを変更
これはLXCコンテナ内の話
dockerを入れたら、overlayfsが使えないというエラーが出るはずなので、apt install fuse-overlayfs
する。
/etc/docker/daemon.json に以下を追記
1
2
3
{
"storage-driver": "fuse-overlayfs"
}
これはやらなくても動くっぽい。
あとからやると、dockerのキャッシュ類がすべて見えなくなるので、 docker system prune
を実行する必要がある。
やること3 udev
これはproxmoxホストでやること
必要なPCカードリーダー、チューナーデバイスはLXCコンテナ内では権限がないので使えない。
PCカードリーダーは /dev/bus/usb 以下のどこかにデバイスファイルがある。
チューナーは /dev/dvb/adapterN だったり /dev/pt3video だったり。
何はともあれ、デバイスファイルの権限はudevが決定している。
ということで、udevのルールを追加して、PCカードリーダーとチューナーは誰でも使ってOKということにする。
cat /etc/udev/rules.d/99-smartcard.rules
1
2
3
4
5
6
7
8
# smartcard reader
# Gemalt
SUBSYSTEM=="usb", ATTRS{idVendor}=="08e6", ATTRS{idProduct}=="3437", GROUP="video", MODE="0666"
# NTT SCR3310
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e6", ATTRS{idProduct}=="511a", GROUP="video", MODE="0666"
# MyGica S270 (siano chip)
SUBSYSTEM=="dvb", ATTRS{idVendor}=="187f", ATTRS{idProduct}=="0600", GROUP="video", MODE="0666"
idVendor, idProductはlsusbで調べられる。 GROUP=videoは特に意味がない。videoグループに属するユーザーのみ使えるようにしたかったができなかった。
グループを変えておくと、udevルールが反映されたかどうか判別しやすいので変えたままにしている。
結局、unprivilegedなLXCコンテナはホストからみたときnobodyでしかないのでここまで権限を緩くしないと使えない。
(もちろん、さらにlxcで制限を食らうわけだ。←やること1で解決済み)
1
2
3
4
5
6
7
8
9
root@proxmox:~# ls -l /dev/dvb/
total 0
drwxr-xr-x 2 root root 100 Jun 12 01:38 adapter0
drwxr-xr-x 2 root root 100 Jun 12 01:38 adapter1
root@proxmox:~# ls -l /dev/dvb/adapter0/
total 0
crw-rw-rw- 1 root video 212, 0 Jun 12 01:38 demux0
crw-rw-rw- 1 root video 212, 1 Jun 12 01:38 dvr0
crw-rw-rw- 1 root video 212, 2 Jun 12 01:38 frontend0
やったこと4: docker-compose.yml
mirakurunは内部で nice コマンドを呼ぶ。そのため権限が必要…
unprivilegedなlxcコンテナ内で renice, ionice コマンドは使えない。
なのでdocker-compose.yml内で、同コマンドを上書きして何もしないようにしている。(nop.sh は中身が空で実行権限がついている。)
1
2
3
4
5
6
7
volumes:
- ./mirakurun/conf:/app-config
- ./mirakurun/data:/app-data
- ./mirakurun/dvbv5_channels_isdbt.conf:/dvbv5_channels_isdbt.conf:ro
- ./mirakurun/dvbv5_channels_isdbs.conf:/dvbv5_channels_isdbs.conf:ro
- ./mirakurun/nop.sh:/usr/bin/renice:ro
- ./mirakurun/nop.sh:/usr/bin/ionice:ro
まとめ
なんだかんだで一度動いてしまえばちゃんと動きます。
蛇足
mirakcのTSDサーバーについて。という項目にある socatを使って pcscサーバーとb25サーバーのコンテナを分けるというの 美しいなと思ったんだけど動かない。不思議なことに動かない。 で、結局mirakurunコンテナにチューナーもpcカードリーダーも見せちゃったらあっけなく解決した。 うーん。ちょっと不満はあるけれども仕方ない。
最終更新 2023/05/25 15:34:00 JST