LXC Pass devices

Giggling3999

Member
Apr 2, 2024
88
6
8
Hi

Is it possible to pass a LXC container devices? A have a tv tuner card I would like to pass

I saw something like this online

lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm

Am I going down the wrong route? I wanted a container to save resources, however I know this is easily done by VM. I would need to do the same again for NAS drives in the future
 
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
Why not try the new configuration options like:
Code:
dev0: /dev/dvb/adapter0/demux0,gid=44,uid=0
dev1: /dev/dvb/adapter0/dvr0,gid=44,uid=0
dev2: /dev/dvb/adapter0/frontend0,gid=44,uid=0
dev3: /dev/dvb/adapter0/net0,gid=44,uid=0
Check inside the VM whether the video group is 44 or something else. There is more than one thread on this forum about passing TV tuners to LXC.
 
Why not try the new configuration options like:
works perfectly with my TBS 8 Tuner card and a unprivileged container

Code:
dev0: /dev/dvb/adapter0/demux0,gid=44,uid=0
dev1: /dev/dvb/adapter0/dvr0,gid=44,uid=0
dev2: /dev/dvb/adapter0/frontend0,gid=44,uid=0
dev3: /dev/dvb/adapter0/net0,gid=44,uid=0
dev4: /dev/dvb/adapter1/demux0,gid=44,uid=0
dev5: /dev/dvb/adapter1/dvr0,gid=44,uid=0
dev6: /dev/dvb/adapter1/frontend0,gid=44,uid=0
dev7: /dev/dvb/adapter1/net0,gid=44,uid=0
dev8: /dev/dvb/adapter2/demux0,gid=44,uid=0
dev9: /dev/dvb/adapter2/dvr0,gid=44,uid=0
dev10: /dev/dvb/adapter2/frontend0,gid=44,uid=0
dev11: /dev/dvb/adapter2/net0,gid=44,uid=0
dev12: /dev/dvb/adapter3/demux0,gid=44,uid=0
dev13: /dev/dvb/adapter3/dvr0,gid=44,uid=0
dev14: /dev/dvb/adapter3/frontend0,gid=44,uid=0
dev15: /dev/dvb/adapter3/net0,gid=44,uid=0
dev16: /dev/dvb/adapter4/demux0,gid=44,uid=0
dev17: /dev/dvb/adapter4/dvr0,gid=44,uid=0
dev18: /dev/dvb/adapter4/frontend0,gid=44,uid=0
dev19: /dev/dvb/adapter4/net0,gid=44,uid=0
dev20: /dev/dvb/adapter5/demux0,gid=44,uid=0
dev21: /dev/dvb/adapter5/dvr0,gid=44,uid=0
dev22: /dev/dvb/adapter5/frontend0,gid=44,uid=0
dev23: /dev/dvb/adapter5/net0,gid=44,uid=0
dev24: /dev/dvb/adapter6/demux0,gid=44,uid=0
dev25: /dev/dvb/adapter6/dvr0,gid=44,uid=0
dev26: /dev/dvb/adapter6/frontend0,gid=44,uid=0
dev27: /dev/dvb/adapter6/net0,gid=44,uid=0
dev28: /dev/dvb/adapter7/demux0,gid=44,uid=0
dev29: /dev/dvb/adapter7/dvr0,gid=44,uid=0
dev30: /dev/dvb/adapter7/frontend0,gid=44,uid=0
dev31: /dev/dvb/adapter7/net0,gid=44,uid=0
 
You have to have the driver installed in the hypervisor, right? I might revisit this at some point. Sharing my NFS (From another VM) could be an issue, though
 
You have to have the driver installed in the hypervisor, right?
yes I installed directly at proxmox the kernel drivers
you could do a vm and pass the pcie device directly to it but lxc works without problems too :)

remember to stick the kernel to version with installed kernel drivers otherwise you loos the driver at every kernel update

https://pve.proxmox.com/wiki/Host_Bootloader
proxmox-boot-tool kernel pin 5.15.30-1-pve
 
yes I installed directly at proxmox the kernel drivers
you could do a vm and pass the pcie device directly to it but lxc works without problems too :)

remember to stick the kernel to version with installed kernel drivers otherwise you loos the driver at every kernel update

https://pve.proxmox.com/wiki/Host_Bootloader
proxmox-boot-tool kernel pin 5.15.30-1-pve
What software do you use?

TVHeadEnd couldn't see the adapters, but nextpvr can...
 
nothing fancy otherwise, remeber tvh just scans for adapters at start of the service

1743273550816.png 1743273724740.png

Code:
root@proxmox:~# cat /etc/pve/lxc/100.conf
arch: amd64
cores: 4
dev0: /dev/dvb/adapter0/demux0,gid=44,uid=0
dev1: /dev/dvb/adapter0/dvr0,gid=44,uid=0
dev10: /dev/dvb/adapter2/frontend0,gid=44,uid=0
dev11: /dev/dvb/adapter2/net0,gid=44,uid=0
dev12: /dev/dvb/adapter3/demux0,gid=44,uid=0
dev13: /dev/dvb/adapter3/dvr0,gid=44,uid=0
dev14: /dev/dvb/adapter3/frontend0,gid=44,uid=0
dev15: /dev/dvb/adapter3/net0,gid=44,uid=0
dev16: /dev/dvb/adapter4/demux0,gid=44,uid=0
dev17: /dev/dvb/adapter4/dvr0,gid=44,uid=0
dev18: /dev/dvb/adapter4/frontend0,gid=44,uid=0
dev19: /dev/dvb/adapter4/net0,gid=44,uid=0
dev2: /dev/dvb/adapter0/frontend0,gid=44,uid=0
dev20: /dev/dvb/adapter5/demux0,gid=44,uid=0
dev21: /dev/dvb/adapter5/dvr0,gid=44,uid=0
dev22: /dev/dvb/adapter5/frontend0,gid=44,uid=0
dev23: /dev/dvb/adapter5/net0,gid=44,uid=0
dev24: /dev/dvb/adapter6/demux0,gid=44,uid=0
dev25: /dev/dvb/adapter6/dvr0,gid=44,uid=0
dev26: /dev/dvb/adapter6/frontend0,gid=44,uid=0
dev27: /dev/dvb/adapter6/net0,gid=44,uid=0
dev28: /dev/dvb/adapter7/demux0,gid=44,uid=0
dev29: /dev/dvb/adapter7/dvr0,gid=44,uid=0
dev3: /dev/dvb/adapter0/net0,gid=44,uid=0
dev30: /dev/dvb/adapter7/frontend0,gid=44,uid=0
dev31: /dev/dvb/adapter7/net0,gid=44,uid=0
dev4: /dev/dvb/adapter1/demux0,gid=44,uid=0
dev5: /dev/dvb/adapter1/dvr0,gid=44,uid=0
dev6: /dev/dvb/adapter1/frontend0,gid=44,uid=0
dev7: /dev/dvb/adapter1/net0,gid=44,uid=0
dev8: /dev/dvb/adapter2/demux0,gid=44,uid=0
dev9: /dev/dvb/adapter2/dvr0,gid=44,uid=0
features: nesting=1
hostname: tvheadend
memory: 5120
net0: name=eth0,bridge=vmbr0,firewall=1,gw=192.168.0.1,hwaddr=BC:24:11:9A:C0:53,ip=192.168.0.245/23,type=veth
onboot: 1
ostype: debian
rootfs: data:subvol-100-disk-0,size=16G
swap: 0
unprivileged: 1
 
I'm not sure this works so well ?

This is the second time - For me - That the drivers have had to been reinstalled - Seemingly after a week or so.

They just stop working as dvb devices even though tvheadend still seem them.

Reinstalling the driver on proxmox seems to fix the issue
 
did you run a kernel update ? the drivers do not persist at kernel updates

I run it with a pinned kernel for several years without a problem.