USB-Passthrough auf unprivilegierten LXC Container

tweak

Member
Dec 27, 2019
68
2
13
40
Hallo,
ich habe ein leichtes Verständnis-Problem.
Und zwar ist es mir reibungslos gelungen USB->Serial Adapter an einen "unprivilegierten" LXC Container durchzureichen. Das funktioniert absolut reibungslos.
Ich verstehe jedoch nicht weshalb ich für meine USB-TV-Karte einen privilegierten Container benötige.
Müsste das nicht das selbe sein?

Ich sehe im Container die entsprechenden Geräte und habe diese am Host auch den notwendigen User aus dem Container zugewiesen.

Code:
hts@tv01:/dev/dvb/adapter0$ ls -la
total 0
drwxrwxrwx 2 hts  video    100 Jul 28 15:26 .
drwxr-xr-x 3 root root      60 Jul 28 15:49 ..
crwxrwxrwx 1 hts  video 212, 1 Jul 28 15:26 demux0
crwxrwxrwx 1 hts  video 212, 2 Jul 28 15:26 dvr0
crwxrwxrwx 1 hts  video 212, 0 Jul 28 15:26 frontend0
hts@tv01:/dev/dvb/adapter0$

Auf dem Proxmox-Host sieht es so aus:

Code:
root@pve02:/dev/dvb/adapter0# ls -la
total 0
drwxrwxrwx 2 100107 100044    100 Jul 28 17:26 .
drwxrwxrwx 3 root   root       60 Jul 28 17:26 ..
crwxrwxrwx 1 100107 100044 212, 1 Jul 28 17:26 demux0
crwxrwxrwx 1 100107 100044 212, 2 Jul 28 17:26 dvr0
crwxrwxrwx 1 100107 100044 212, 0 Jul 28 17:26 frontend0

selbiges Setup wie erwähnt funktioniert für den USB/Serial-Adapter perfekt, wieso nur für die TV-Karte nicht?

Wenn ich nun im LXC Versuche frontend0 zu öffnen, bekomme ich natürlich permission denied...

Danke für die Aufklärung.
 
hi,

poste bitte deine lxc config pct config CTID und deine pveversion -v
 
Hallo,
anbei die gewünschten Infos:

Code:
arch: amd64
cores: 1
hostname: tv01.xxx.xxx
memory: 1024
nameserver: 172.31.100.1
net0: name=eth0,bridge=vmbr1,firewall=1,gw=172.31.150.254,hwaddr=66:32:3A:10:1D:26,ip=172.31.150.2/24,tag=150,type=veth
ostype: debian
rootfs: local-zfs:subvol-101-disk-0,size=8G
searchdomain: xxx.xxx
swap: 512
unprivileged: 1
lxc.cgroup.devices.allow: c 212:* rwm
lxc.cgroup.devices.allow: c 250:* rwm
lxc.cgroup.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/dvb/adapter0 dev/dvb/adapter0 none bind,optional,create=dir
lxc.mount.entry: /dev/bus/usb/001/008 dev/bus/usb/001/008 none bind,optional,create=dir
lxc.mount.entry: /dev/mediainput0 dev/mediainput0 none bind,optional,create=file


Code:
proxmox-ve: 6.4-1 (running kernel: 5.4.124-1-pve)
pve-manager: 6.4-13 (running version: 6.4-13/9f411e79)
pve-kernel-5.4: 6.4-4
pve-kernel-helper: 6.4-4
pve-kernel-5.4.124-1-pve: 5.4.124-1
pve-kernel-5.4.114-1-pve: 5.4.114-1
pve-kernel-5.4.106-1-pve: 5.4.106-1
pve-kernel-5.4.73-1-pve: 5.4.73-1
ceph-fuse: 12.2.11+dfsg1-2.1+b1
corosync: 3.1.2-pve1
criu: 3.11-3
glusterfs-client: 5.5-3
ifupdown: residual config
ifupdown2: 3.0.0-1+pve4~bpo10
ksm-control-daemon: 1.3-1
libjs-extjs: 6.0.1-10
libknet1: 1.20-pve1
libproxmox-acme-perl: 1.1.0
libproxmox-backup-qemu0: 1.1.0-1
libpve-access-control: 6.4-3
libpve-apiclient-perl: 3.1-3
libpve-common-perl: 6.4-3
libpve-guest-common-perl: 3.1-5
libpve-http-server-perl: 3.2-3
libpve-storage-perl: 6.4-1
libqb0: 1.0.5-1
libspice-server1: 0.14.2-4~pve6+1
lvm2: 2.03.02-pve4
lxc-pve: 4.0.6-2
lxcfs: 4.0.6-pve1
novnc-pve: 1.1.0-1
proxmox-backup-client: 1.1.10-1
proxmox-mini-journalreader: 1.1-1
proxmox-widget-toolkit: 2.6-1
pve-cluster: 6.4-1
pve-container: 3.3-6
pve-docs: 6.4-2
pve-edk2-firmware: 2.20200531-1
pve-firewall: 4.1-4
pve-firmware: 3.2-4
pve-ha-manager: 3.1-1
pve-i18n: 2.3-1
pve-qemu-kvm: 5.2.0-6
pve-xtermjs: 4.7.0-3
qemu-server: 6.4-2
smartmontools: 7.2-pve2
spiceterm: 3.1-1
vncterm: 1.6-2
zfsutils-linux: 2.0.4-pve1

Wie gesagt, die Frage ist, weshalb für die TV-Karte zwingend ein priviligierter Container erforderlich ist und nicht gleich wie beim USB-Serialadapter wo auch geschrieben wird, unpriviligiert zu bleiben.
 
danke fuer die ausgabe.

und wie sieht es aus mit diesen kommandos:

Code:
# auf PVE
$ ls -al  /dev/bus/usb/001/008
# und im container
$ ls -al /dev/bus/usb/001/008

was mich interessiert sind die user/group ids von diesen files, weil du ja sagst dass die usb funktioniert
 
Hallo,
sorry da hast du mich leider falsch verstanden, die USB die ich meine die Funktioniert ist eine andere Schnittstelle und hat mit diesem Container nichts zu tun. Diese USB gehört zum TV-Tuner.
 
Keiner eine Erklärung weshalb ein USB-Tuner zwangsläufig einen privilgierten Container benötigt?
 
bist du auf PVE 7? dann solltest du die lxc.cgroup eintraege im CT config zum lxc.cgroup2 wechseln
 
Hallo,
nein ich bin nach wie vor auf PVE6.
Gibt es eventuell noch eine Erklärung hierfür? Oder muss wirklich zwangsläufig ein priviligierter Container genutzt werden? Wenn ja verstehe ich es technisch zwar nicht aber ok.

Den da wäre mir die Alternative mit der eigenständigen VM eigentlich lieber, jedoch gibts ja scheinbar "delay" - Probleme beim durchreichen von USB-Tunern, kann das jemand erklären?
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!