@@ -1142,64 +1142,48 @@ EOF
11421142
11431143 echo ""
11441144 msg_custom "⚙️ " "\e[96m" "Configuring VAAPI passthrough for LXC container"
1145-
11461145 if [ "$CT_TYPE" != "0" ]; then
11471146 msg_custom "⚠️ " "\e[33m" "Container is unprivileged – VAAPI passthrough may not work without additional host configuration (e.g., idmap)."
11481147 fi
1149-
11501148 msg_custom "ℹ️ " "\e[96m" "VAAPI enables GPU hardware acceleration (e.g., for video transcoding in Jellyfin or Plex)."
1151-
11521149 echo ""
11531150 read -rp "➤ Automatically mount all available VAAPI devices? [Y/n]: " VAAPI_ALL
11541151
11551152 if [[ "$VAAPI_ALL" =~ ^[Yy]$|^$ ]]; then
1156- # Mount all devices automatically
1157- if [[ -e /dev/dri/renderD128 ]]; then
1158- echo "lxc.cgroup2.devices.allow: c 226:128 rwm" >>"$LXC_CONFIG"
1159- echo "lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file" >>"$LXC_CONFIG"
1160- fi
1161- if [[ -e /dev/dri/card0 ]]; then
1162- echo "lxc.cgroup2.devices.allow: c 226:0 rwm" >>"$LXC_CONFIG"
1163-
1164- echo "lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file" >>"$LXC_CONFIG"
1165- fi
1166- if [[ -e /dev/fb0 ]]; then
1167- echo "lxc.cgroup2.devices.allow: c 29:0 rwm" >>"$LXC_CONFIG"
1168- echo "lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file" >>"$LXC_CONFIG"
1169- fi
1170- if [[ -d /dev/dri ]]; then
1171- echo "lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir" >>"$LXC_CONFIG"
1172- fi
1173- else
1174- # Manual selection per device
1175- if [[ -e /dev/dri/renderD128 ]]; then
1176- read -rp "➤ Mount /dev/dri/renderD128 (GPU rendering)? [y/N]: " MOUNT_D128
1177- if [[ "$MOUNT_D128" =~ ^[Yy]$ ]]; then
1153+ if [ "$CT_TYPE" == "0" ]; then
1154+ # PRV Container → alles zulässig
1155+ [[ -e /dev/dri/renderD128 ]] && {
11781156 echo "lxc.cgroup2.devices.allow: c 226:128 rwm" >>"$LXC_CONFIG"
11791157 echo "lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file" >>"$LXC_CONFIG"
1180- fi
1181- fi
1182-
1183- if [[ -e /dev/dri/card0 ]]; then
1184- read -rp "➤ Mount /dev/dri/card0 (GPU hardware interface)? [y/N]: " MOUNT_CARD0
1185- if [[ "$MOUNT_CARD0" =~ ^[Yy]$ ]]; then
1158+ }
1159+ [[ -e /dev/dri/card0 ]] && {
11861160 echo "lxc.cgroup2.devices.allow: c 226:0 rwm" >>"$LXC_CONFIG"
11871161 echo "lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file" >>"$LXC_CONFIG"
1188-
1189- fi
1190- fi
1191-
1192- if [[ -e /dev/fb0 ]]; then
1193- read -rp "➤ Mount /dev/fb0 (Framebuffer, GUI)? [y/N]: " MOUNT_FB0
1194- if [[ "$MOUNT_FB0" =~ ^[Yy]$ ]]; then
1162+ }
1163+ [[ -e /dev/fb0 ]] && {
11951164 echo "lxc.cgroup2.devices.allow: c 29:0 rwm" >>"$LXC_CONFIG"
11961165 echo "lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file" >>"$LXC_CONFIG"
1197- fi
1166+ }
1167+ [[ -d /dev/dri ]] && {
1168+ echo "lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir" >>"$LXC_CONFIG"
1169+ }
1170+ else
1171+ # UNPRV Container → nur devX für UI
1172+ [[ -e /dev/dri/card0 ]] && echo "dev0: /dev/dri/card0,gid=44" >>"$LXC_CONFIG"
1173+ [[ -e /dev/dri/card1 ]] && echo "dev0: /dev/dri/card1,gid=44" >>"$LXC_CONFIG"
1174+ [[ -e /dev/dri/renderD128 ]] && echo "dev1: /dev/dri/renderD128,gid=104" >>"$LXC_CONFIG"
11981175 fi
1176+ fi
11991177
1200- if [[ -d /dev/dri ]]; then
1201- echo "lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir" >>"$LXC_CONFIG"
1202- fi
1178+ fi
1179+ if [ "$CT_TYPE" == "1" ] && [ "$is_vaapi_app" == "true" ]; then
1180+ if [[ -e /dev/dri/card0 ]]; then
1181+ echo "dev0: /dev/dri/card0,gid=44" >>"$LXC_CONFIG"
1182+ elif [[ -e /dev/dri/card1 ]]; then
1183+ echo "dev0: /dev/dri/card1,gid=44" >>"$LXC_CONFIG"
1184+ fi
1185+ if [[ -e /dev/dri/renderD128 ]]; then
1186+ echo "dev1: /dev/dri/renderD128,gid=104" >>"$LXC_CONFIG"
12031187 fi
12041188 fi
12051189
0 commit comments