mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-03-31 06:34:17 -04:00
Assign GPUs to containers via /dev/dri/by-path/ instead #1578
Open
opened 2025-11-20 05:12:41 -05:00 by saavagebueno
·
7 comments
No Branch/Tag Specified
main
github-action-update-changelog
pr-update-app-files
add-script-bambuddy-1774853250
MickLesk-patch-1
fix/immich-maintenance-mode-redis-error
fix/npm-unmask-openresty-on-migration
fix/ollama-intel-gpg-error-handling
github-action-archive-changelog
add-script-yourls-1774732133
add-script-matter-server-1774638379
fix/dispatcharr-pg-port
cron_update_lxc
chore/immich-v2.6.3
add-script-geopulse-1774548387
cdn_improvements
add-script-birdnet-1774535320
fix/tools-func-exit-codes
fix/immich-update-db-hostname
update/frigate-0.17.1
fix/use-absolute-path-for-install
fix/pin-npm-version
shell_safe_fixes
remove_booklore
chore/update-url-community-scripts
komodov2
refactor/turnkey-modernize
add-script-nextexplorer-1774344421
add-script-homebrew-1774342032
fix/shell-security-hardening-v2
improve/build-func-performance-cleanup
fix/build-dns-prefix
fix/anytype-mongodb-wait
fix/frigate-cpu-model-path
copilot/fix-installation-failure-isponsorblocktv
fix/reactive-resume-add-git
copilot/scanopy-fix-apt-configuration-error
add-script-isponsorblocktv-1774009652
add-script-alpine-wakapi-1774008954
fix/coder-code-server-existing-config-and-reachability
add-script-teleport-1773928044
CrazyWolf13-patch-wealthfolio-1
refactor/tools-func-qol
fix/stirling-pdf-jdk-reinstall
fix/pinned-version-wording
MickLesk-patch-10
fix/reactive-resume-v5013
fix/tracearr-update-version-oom
copilot/fix-hdd-space-for-owncast
tremor021-patch-6
pocketbase_bot
disp_fix
fix/tdarr-binary-check-curl-retry
MickLesk-patch-9
refactor/podman-quadlets
alpine-ntfy
refactor/jellyfin
CrazyWolf13-patch-11
feature/autousermod_hwaccell
add-script-split-pro-1773677692
fix/frigate-openvino-fallback
fix/paperless-ngx-default-ram
fix/plex-restart-after-update
fix/gluetun-openvpn-env
MickLesk-patch-8
termix_add_guacd
MickLesk-patch-7
fix/tududi-nodejs-in-update
fix/sparkyfitness-npm-peer-deps
docs/website-metadata-workflow
fix-pbs_microcode
remove_jsons
michelroegl-brunner-patch-4
add-script-test-1773325265
cleanup_workflows
feat/remove-frontend
automated/update-github-versions
feat/mode-generated
fix/n8n-build-essential
fix/sparkyfitness-shared-deps
fix/rocm-path-escaping
fix/storage-validation-cross-node
fix/frigate-nvidia-version-regex
arm64-build-support
readme
michelroegl-brunner-patch-3
fix/coder-code-server-backup
copilot/fix-immich-update-dependency-issue
rust
fix/linkwarden-update-playwright
fix/powerdns-sqlite-permissions
fix/duplicate-nameserver-searchdomain
CrazyWolf13-patch-7
feat/ollama-rocm-support
fix/seerr-migration-update-script
preflight_tests
adgu_fix
2026-03-30
2026-03-29
2026-03-28
2026-03-27
2026-03-26
2026-03-25
2026-03-24
2026-03-23
2026-03-22
2026-03-21
2026-03-20
2026-03-19
2026-03-18
2026-03-17
2026-03-16
2026-03-15
2026-03-14
2026-03-13
2026-03-12
2026-03-11
2026-03-10
2026-03-09
2026-03-08
2026-03-07
2026-03-06
2026-03-05
2026-03-04
2026-03-03
2026-03-02
2026-03-01
2026-02-28
2026-02-27
2026-02-26
2026-02-25
2026-02-24
2026-02-23
2026-02-22
2026-02-21
2026-02-20
2026-02-19
2026-02-18
2026-02-17
2026-02-16
2026-02-15
2026-02-14
2026-02-13
2026-02-12
2026-02-11
2026-02-10
2026-02-09
2026-02-08
2026-02-07
2026-02-06
2026-02-05
2026-02-04
2026-02-03
2026-02-02
2026-02-01
2026-01-31
2026-01-30
2026-01-29
2026-01-28
2026-01-27
2026-01-26
2026-01-25
2026-01-24
2026-01-23
2026-01-22
2026-01-21
2026-01-20
2026-01-19
2026-01-18
2026-01-17
2026-01-16
2026-01-15
2026-01-14
2026-01-13
2026-01-12
2026-01-11
2026-01-10
2026-01-09
2026-01-08
2026-01-07
2026-01-06
2026-01-05
2026-01-04
2026-01-03
2026-01-02
2026-01-01
2025-12-31
2025-12-30
2025-12-29
2025-12-28
2025-12-27
2025-12-26
2025-12-25
2025-12-24
2025-12-23
2025-12-22
2025-12-21
2025-12-20
2025-12-19
2025-12-18
2025-12-17
2025-12-16
2025-12-15
2025-12-14
2025-12-13
2025-12-12
2025-12-11
2025-12-10
2025-12-09
2025-12-08
2025-12-07
2025-12-06
2025-12-05
2025-12-04
2025-12-03
2025-12-02
2025-12-01
2025-11-30
2025-11-29
2025-11-28
2025-11-27
2025-11-26
2025-11-25
2025-11-24
2025-11-23
2025-11-22
2025-11-21
2025-11-20
2025-11-19
2025-11-18
2025-11-17
2025-11-16
2025-11-15
2025-11-14
2025-11-13
2025-11-12
2025-11-11
2025-11-10
2025-11-09
2025-11-08
2025-11-07
2025-11-06
2025-11-05
2025-11-04
2025-11-03
2025-11-02
2025-11-01
2025-10-31
2025-10-30
2025-10-29
2025-10-28
2025-10-27
2025-10-26
2025-10-25
2025-10-24
2025-10-23
2025-10-22
2025-10-21
2025-10-20
2025-10-19
2025-10-18
2025-10-17
2025-10-16
2025-10-15
2025-10-14
2025-10-13
2025-10-12
2025-10-11
2025-10-10
2025-10-09
2025-10-08
2025-10-07
2025-10-06
2025-10-05
2025-10-04
2025-10-03
2025-10-02
2025-10-01
2025-09-30
2025-09-29
2025-09-28
2025-09-27
2025-09-26
2025-09-25
2025-09-24
2025-09-23
2025-09-22
2025-09-21
2025-09-20
2025-09-19
2025-09-18
2025-09-17
2025-09-16
2025-09-15
2025-09-14
2025-09-13
2025-09-12
2025-09-11
2025-09-10
2025-09-09
2025-09-08
2025-09-07
2025-09-06
2025-09-05
2025-09-04
2025-09-03
2025-09-02
2025-09-01
2025-08-31
2025-08-30
2025-08-29
2025-08-28
2025-08-27
2025-08-26
2025-08-25
2025-08-24
2025-08-23
2025-08-22
2025-08-21
2025-08-20
2025-08-19
2025-08-18
2025-08-17
2025-08-16
2025-08-15
2025-08-14
2025-08-13
2025-08-12
2025-08-11
2025-08-10
2025-08-09
2025-08-08
2025-08-07
2025-08-06
2025-08-05
2025-08-04
2025-08-03
2025-08-02
2025-08-01
2025-07-31
2025-07-30
2025-07-29
2025-07-28
2025-07-27
2025-07-26
2025-07-25
2025-07-24
2025-07-23
2025-07-22
2025-07-21
2025-07-20
2025-07-19
2025-07-18
2025-07-17
2025-07-16
2025-07-15
2025-07-14
2025-07-11
2025-07-10
2025-07-09
2025-07-08
2025-07-07
2025-07-06
2025-07-05
2025-07-04
2025-07-03
2025-07-02
2025-07-01
2025-06-30
2025-06-29
2025-06-28
2025-06-27
2025-06-26
2025-06-25
2025-06-24
2025-06-23
2025-06-22
2025-06-21
2025-06-20
2025-06-19
2025-06-18
2025-06-17
2025-06-16
2025-06-15
2025-06-14
2025-06-13
2025-06-12
2025-06-11
2025-06-10
2025-06-09
2025-06-08
2025-06-07
2025-06-06
2025-06-05
2025-06-04
2025-06-03
2025-06-02
2025-06-01
2025-05-31
2025-05-30
2025-05-29
2025-05-28
2025-05-27
2025-05-26
2025-05-25
2025-05-24
2025-05-23
2025-05-22
2025-05-21
2025-05-20
2025-05-19
2025-05-18
2025-05-17
2025-05-16
2025-05-15
2025-05-14
2025-05-13
2025-05-12
2025-05-11
2025-05-10
2025-05-09
2025-05-08
2025-05-07
2025-05-06
2025-05-05
2025-05-04
2025-05-03
2025-05-02
2025-05-01
2025-04-30
2025-04-29
2025-04-28
2025-04-27
2025-04-26
2025-04-25
2025-04-24
2025-04-23
2025-04-22
2025-04-20
2025-04-21
2025-04-19
2025-04-18
2025-04-17
2025-04-15
2025-04-16
2025-04-14
2025-04-13
2025-04-12
2025-04-11
2025-04-10
2025-04-09
2025-04-08
2025-04-07
2025-04-06
2025-04-05
2025-04-04
2025-04-03
2025-04-02
2025-04-01
2025-03-31
2025-03-30
2025-03-29
2025-03-28
2025-03-27
2025-03-26
2025-03-25
2025-03-24
2025-03-23
2025-03-22
2025-03-21
2025-03-20
2025-03-19
2025-03-18
2025-03-17
2025-03-16
2025-03-15
2025-03-14
2025-03-13
2025-03-12
2025-03-11
2025-03-10
2025-03-09
2025-03-08
2025-03-07
2025-03-06
2025-03-05
2025-03-04
2025-03-03
2025-03-02
2025-03-01
2025-02-28
2025-02-27
2025-02-26
2025-02-25
2025-02-24
2025-02-23
2025-02-21
2025-02-20
2025-02-19
2025-02-18
2025-02-17
2025-02-16
2025-02-15
2025-02-14
2025-02-13
2025-02-12
2025-02-11
2025-02-10
2025-02-09
2025-02-08
2025-02-07
2025-02-06
2025-02-05
2025-02-04
2025-02-03
2025-02-02
2025-02-01
2025-01-31
2025-01-30
2025-01-29
2025-01-28
2025-01-27
2025-01-26
2025-01-24
2025-01-23
2025-01-22
2025-01-21
2025-01-20
2025-01-19
2025-01-18
2025-01-17
2025-01-16
2025-01-15
2025-01-14
2025-01-13
2025-01-11
2025-01-10
2025-01-09
2025-01-08
2025-01-07
2025-01-06
2025-01-05
2025-01-04
2025-01-03
2025-01-02
2025-01-01
2024-12-31
2024-12-30
2024-12-29
2024-12-28
2024-12-27
2024-12-26
2024-12-25
2024-12-23
2024-12-21
2024-12-20
2024-12-19
2024-12-18
2024-12-17
2024-12-16
2024-12-13
2024-12-12
2024-12-09
2024-12-08
2024-12-07
2024-12-06
2024-12-05
2024-12-04
2024-12-03
2024-12-02
2024-11-30
2024-11-29
2024-11-28
2024-11-27
2024-11-26
2024-11-25
2024-11-24
2024-11-23
Labels
Clear labels
🛑 Failure to comply with the guidelines
breaking change
bug
bug
bugfix
deferred
delete script
dependencies
enhancement
external
feature
github
help wanted
Implemented in VED waiting push to Main
in project pipeline
invalid
investigation
json
maintenance
new script
new script
nice to have
not a script issue
not planned
organization
pull-request
question
refactor
rename script
security
update script
website
wontdo
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
saavagebueno
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: SVI/ProxmoxVE#1578
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @danielwsky on GitHub (Jul 26, 2025).
Originally assigned to: @MickLesk on GitHub.
📌 Task summary
Refactor the way cards and renders are assigned to container (and VMs maybe) trough /dev/dri/by-path/ directory
📋 Task details
I've recently been encountering issues with container initialization due to the absence of "card0" in /dev/dri. The specific error I'm encountering is:
TASK ERROR: Device /dev/dri/card0 does not exist
The root cause of this issue seems to be Proxmox's inconsistent assignment of the GPU, alternating between card0 and card1. After some troubleshooting, I discovered that the /dev/dri/by-path/ directory, which references GPUs by their PCI address, provides a more reliable solution. By adjusting the container configuration to search for the hardware location instead of relying on the card index (card0 or card1), I managed to resolve the issue.
Given this understanding, I propose that the Proxmox VM and container creation script be improved to support GPU identification by PCI address. This would enhance reliability in configuring GPU passthrough, especially in environments with multiple GPUs.
Additionally, it would be highly beneficial if the script allowed users to select which GPU they want to use during the creation of a new VM or container. This would provide extra flexibility and control, particularly on systems equipped with several graphics units.
Please consider these suggestions to enhance the robustness and functionality of the current script:
PCI Address Identification: Change the method of GPU identification to utilize the PCI address found in /dev/dri/by-path/.
User-Selectable GPU: Include an option in the script that allows users to specify which GPU should be used when creating a VM or container.
These improvements would not only resolve the current issue but also increase the flexibility and reliability of the VM and container creation process on Proxmox.
@webmogul1 commented on GitHub (Aug 10, 2025):
@danielwsky Are you using plex by any chance?
I can't get it to work if I use /dev/dri/by-path.
Edit: I guess I found the problem: https://github.com/tteck/Proxmox/discussions/3235#discussioncomment-9929434
@danielwsky commented on GitHub (Aug 11, 2025):
I'm using Jellyfin and Ollama. Did you use the whole pci address? Eg /dev/dri/by-path/pci-0000:xx:00.0-card
You should be able to see your device pci address by cd /dev/dri/by-path/ then ls
If you have more than one gpu, I would suggest to check lspci | grep VGA or something like that
@webmogul1 commented on GitHub (Aug 11, 2025):
Yes, I did use the whole pci address.
This works.

This does not work

@MickLesk commented on GitHub (Aug 11, 2025):
Have the Same issue at some LXC from Dev Repo, thats the reason why i dont merge this Feature into live
@danielwsky commented on GitHub (Aug 11, 2025):
That's weird, I don't have two gpus, but I've installed a RTX 2060 before.
Here's my setup:
Machinist X99 E5-RS9
Intel Xeon E5-2683 v4
4x16GB RAM
Intel Arc A770 16GB
I've enabled Resizeble Bar too.
Actually, I started having the card0<>card1 flip when installing the Arc GPU and enabling ReBar. And after two weeks of troubleshooting I've found this "by-path" workaround.
I guess installing new pci devices mess with pci addressess.
Can you show your lspci | grep VGA result?
I would try to install Plex in my machine but I have no storage left.
@MickLesk , could this have something to do with grouping and access stuff? (I'm literally shooting in the dark, but linux problems are usually about access configs)
@webmogul1 commented on GitHub (Aug 11, 2025):
@FibreFoX commented on GitHub (Nov 19, 2025):
@danielwsky After upgrading the hardware of my system, I stumbled upon a similar problem, but not related to the community scripts, but Promxox in general.
You wrote
The root cause of this issue seems to be Proxmox's inconsistent assignment of the GPU, alternating between card0 and card1, which resembles the same behaviour as I am experiencing it.Maybe instead of solving this via
/dev/dri/by-path, you could tame the kernel a bit, which was referenced at some archlinux post or some random website my search engine came up with.The reason of this behaviour (as far as I understood) might be a component called "simpledrm", which gets loaded by the kernel itself on boot. It is possible to disable this via kernel boot parameters like explained at https://pve.proxmox.com/wiki/Host_Bootloader#sysboot_edit_kernel_cmdline
When using GRUB
vi /etc/default/grubWhen using systemd-boot
vi /etc/kernel/cmdlineThen remember to generate the actual boot configuration:
After a restart of the system, you should be able to use
/dev/dri/card0"as normal" without it changing randomly.But there is a downside that comes with this workaround: you will not be able anymore to see some boot text after selecting the kernel (due to the SimpleDRM driver not being loaded), but you can still see via
dmesg.I hope this helps 😺