Hello - I am trying to pass through my alder lake igpu. I am wanting to do this to utilize it with Immich on ubuntu 25 in an LXC contianer. I was trying to follow Jim's garage example, HOWEVER... I have already worked to pass thru an SMB share and as such I have already done some group mapping. When I try both it breaks the lxc. I know i just need to map both device groups logically but as a newb I am not processing well enough to get it done right. Here is what is IN my LXC config:
Code:
arch: amd64
cores: 6
dev0: /dev/dri/renderD128
features: nesting=1
hostname: Ubuntu-Docker
memory: 4096
mp0: /mnt/pve/Stack-Immich,mp=/mnt/Immich
nameserver: 192.168.50.254
net0: name=eth0,bridge=vmbr0,firewall=1,gw=192.168.50.1,hwaddr=BC:24:11:BD:2C:0>
onboot: 1
ostype: ubuntu
rootfs: local-zfs:subvol-102-disk-0,size=120G
searchdomain: 192.168.50.252
swap: 512
unprivileged: 1
lxc.idmap: u 0 100000 1005
lxc.idmap: g 0 100000 1005
lxc.idmap: u 1005 1005 1
lxc.idmap: g 1005 1005 1
lxc.idmap: u 1006 101006 64530
lxc.idmap: g 1006 101006 64530
I use 1005 to pass through the SMB. (used this guide
https://pve.proxmox.com/wiki/Unprivileged_LXC_containers along with some tips from
https://forum.proxmox.com/threads/l...-write-mapping-but-they-worked-before.142650/ to get the SMB share working).
Jim's garage (
https://www.youtube.com/watch?v=0ZDr5h52OOE ,
https://github.com/JamesTurland/JimsGarage/tree/main/LXC/Jellyfin ) guides me to pass thru video 44 and render 104 (which I also confirmed) with the following:
Code:
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
lxc.idmap: u 0 100000 65536
lxc.idmap: g 0 100000 44
lxc.idmap: g 44 44 1
lxc.idmap: g 45 100045 62
lxc.idmap: g 107 104 1
lxc.idmap: g 108 100108 65428
In combination these break the LXC from starting. I know there is a way to make these idmaps work together but I'm just not experienced enough to do it on my own. Anyone offer a little help? I will try to learn from it and not ask silly simpleton questions such as this in the future.
Thanks in advance!
You can't use renderD128 as that is for the host server. if you're passing through the iGPU correctly you can use renderD129 up to renderD135
Using this command you should see each iGPU: ls -l /dev/dri
total 0
drwxr-xr-x 2 root root 360 May 26 10:03 by-path
crw-rw---- 1 root video 226, 0 May 26 10:03 card0
crw-rw---- 1 root video 226, 1 May 26 10:03 card1
crw-rw---- 1 root video 226, 2 May 26 10:03 card2
crw-rw---- 1 root video 226, 3 May 26 10:03 card3
crw-rw---- 1 root video 226, 4 May 26 10:03 card4
crw-rw---- 1 root video 226, 5 May 26 10:03 card5
crw-rw---- 1 root video 226, 6 May 26 10:03 card6
crw-rw---- 1 root video 226, 7 May 26 10:03 card7
crw-rw-rw- 1 root render 226, 128 May 26 10:03 renderD128
crw-rw-rw- 1 root render 226, 129 May 26 10:03 renderD129
crw-rw-rw- 1 root render 226, 130 May 26 10:03 renderD130
crw-rw-rw- 1 root render 226, 131 May 26 10:03 renderD131
crw-rw-rw- 1 root render 226, 132 May 26 10:03 renderD132
crw-rw-rw- 1 root render 226, 133 May 26 10:03 renderD133
crw-rw-rw- 1 root render 226, 134 May 26 10:03 renderD134
crw-rw-rw- 1 root render 226, 135 May 26 10:03 renderD135
You should then be able to use this code renderD130. The '130' needs to match on the second and third lines.
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:130 rwm
lxc.mount.entry: /dev/dri/renderD130 dev/dri/renderD130 none bind,optional,create=file
lxc.idmap: u 0 100000 65536
lxc.idmap: g 0 100000 44
lxc.idmap: g 44 44 1
lxc.idmap: g 45 100045 62
lxc.idmap: g 107 104 1
lxc.idmap: g 108 100108 65428
Regards Marc