前提
自分用の手順書・詰まったポイントの備忘録です
理解せず先人の設定内容をそのまま使っているだけの箇所もあるのであくまでご参考程度に
(特にコンテナの設定ファイルでデバイスを許可する内容)
経緯
EsxiからProxmoxに移行
PLEXチューナーをUSBパススルー接続するもドロップ多発
LXCコンテナという存在を知り、構築
環境
-チューナー:PX-MLT8PE、PT3
-ホストOS:Proxmox VE 8.2
-ゲストOS:Ubuntu22.04
参考
- LXCで録画鯖 [1]PVEホストマシンでの準備【PX-W3PE5/px4_drv】
- Proxmox VE上にコンテナをデプロイする
- chinachu立て直し
- Proxmox上に録画サーバーを立ててみた2023
- 【2023年10月】Ubuntu + Mirakurun + EDCB-Wine + KonomiTV (px4_drv + recisdb + ISDBScanner) でパパッと Linux 録画鯖構築の手引き
- Docker公式インストール方法
手順
Proxmox上でコンテナ作成
local→CTテンプレートを選択
上部ボタンのテンプレートを押下し、ubuntu-22.04-standardを選択してダウンロードを押下。
テンプレートがダウンロードされる。
最上部のCTを作成ボタンを押下
全般
CT ID、ホスト名、パスワードを入力
非特権コンテナのチェックを外す
テンプレート
先ほどダウンロードしたubuntu-22.04を選択
ディスク
ディスクサイズを変更
ネットワーク
IPv4 DHCPに変更
DNS
DNSドメイン:8.8.8.8
DNSサーバ:8.8.8.8
を入力
確認
完了を押下
Proxmoxホストにドライバインストール
px4_drvインストール
詰まったポイント1
sudo apt install pve-headers-$(uname -r)
wget https://github.com/tsukumijima/px4_drv/releases/download/v0.5.2/px4-drv-dkms_0.5.2_all.deb
apt install ./px4-drv-dkms_0.5.2_all.deb
sudo dkms build -m px4_drv -v 0.5.2
sudo dkms install -m px4_drv -v 0.5.2
sudo modprobe px4_drv
#動作確認
dmesg | grep px4_drv
チューナー・カードリーダーをLXCで使用するための設定
PT3のudevファイル作成・権限変更
nano /etc/udev/rules.d/99-pt3.rules
# PT3
KERNEL=="dvb*" GROUP="video",MODE="0666"
udev作成後、一回リブートしておく。
PLEXチューナーの権限変更(念の為)
nano /etc/udev/rules.d/99-px4video.rules
- KERNEL=="pxmlt8video*", GROUP="video", MODE="0664"
+ KERNEL=="pxmlt8video*", GROUP="video", MODE="0666"
#udev再読み込み
udevadm control --reload
udevadm trigger
#動作確認
ls -l /dev/px*
crw-rw-rwになっている。
カードリーダーの接続先を確認
lsusb
Bus 001 Device 004: ID 04e6:511a SCM Microsystems, Inc. SCR3310-NTTCom USB SmartCard Reader
Busの後の数字をメモ
今回で言えばBus 001
コンテナ設定を変更し、チューナーを使えるようにする
LXCの設定ファイル( {録画鯖LXCのコンテナID}.conf )を書き換える。
nano /etc/pve/lxc/110.conf
lxc.cgroup2.devices.allow: c 189:* rwm
// /dev/bus/usb/{さっきメモったBusの後の数字}
lxc.mount.entry: /dev/bus/usb/001 dev/bus/usb/001 none bind,create=dir,mode=0666
lxc.cgroup2.devices.allow: c 238:* rwm
// ls -l /dev/px*で表示されるチューナーを記載
lxc.mount.entry: /dev/pxmlt8video0 dev/pxmlt8video0 none bind,optional,create=file
lxc.mount.entry: /dev/pxmlt8video1 dev/pxmlt8video1 none bind,optional,create=file
lxc.mount.entry: /dev/pxmlt8video2 dev/pxmlt8video2 none bind,optional,create=file
lxc.mount.entry: /dev/pxmlt8video3 dev/pxmlt8video3 none bind,optional,create=file
lxc.mount.entry: /dev/pxmlt8video4 dev/pxmlt8video4 none bind,optional,create=file
lxc.mount.entry: /dev/pxmlt8video5 dev/pxmlt8video5 none bind,optional,create=file
lxc.mount.entry: /dev/pxmlt8video6 dev/pxmlt8video6 none bind,optional,create=file
lxc.mount.entry: /dev/pxmlt8video7 dev/pxmlt8video7 none bind,optional,create=file
lxc.cgroup2.devices.allow: c 212:* rwm
lxc.mount.entry: /dev/dvb/adapter0 dev/dvb/adapter0 none bind,optional,create=dir
lxc.mount.entry: /dev/dvb/adapter1 dev/dvb/adapter1 none bind,optional,create=dir
lxc.mount.entry: /dev/dvb/adapter2 dev/dvb/adapter2 none bind,optional,create=dir
lxc.mount.entry: /dev/dvb/adapter3 dev/dvb/adapter3 none bind,optional,create=dir
// AppArmor無効化
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:
LXC構築
以下コマンドでコンテナ起動・ログイン
pct start 110(コンテナID)
pct exec 110(コンテナID) -- bash
チューナー・カードリーダーの認識確認
ls /dev/px*
sudo apt install pcscd pcsc-tools
pcsc_scan
環境設定
詰まったポイント2(ISDBScannerが異常終了する)
echo 'export PYTHONUTF8=1' >> ~/.bashrc
echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bashrc
source ~/.bashrc
sudo locale-gen en_US.UTF-8
node.jsインストール
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
apt-get install nsolid -y
node -v
dockerインストール(公式)
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
recisdb、ISDBScanner、Mirakurun、EDCB-Wine のインストールと設定
後は以下リンク先の手順を実施すれば行けるはず。
【2023年10月】Ubuntu + Mirakurun + EDCB-Wine + KonomiTV (px4_drv + recisdb + ISDBScanner) でパパッと Linux 録画鯖構築の手引き