mirror of
https://github.com/games-on-whales/wolf.git
synced 2026-10-15 21:12:08 +00:00
[GH-ISSUE #477] Rootless Podman: app containers fail with "device cgroup rules are not supported in rootless mode" #287
Labels
No labels
🧠 1 - 🤖 999
AMD
bug
bug
cannot reproduce
documentation
duplicate
easy
enhancement
enhancement
enhancement
fixed?
fixed?
good first issue
hard
help wanted
Intel
invalid
LXC
medium
moonlight-protocol
Multi GPU
nixos
not a bug
nvidia
pull-request
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
games-on-whales/wolf#287
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
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 @sturq on GitHub (Aug 16, 2026).
Original GitHub issue: https://github.com/games-on-whales/wolf/issues/477
Wolf itself starts fine under rootless Podman, but launching any app fails because the app container is created with a device cgroup rule, which rootless Podman cannot support.
What happens
Wolf runs, pairing works, the Wayland compositor comes up and the GStreamer pipeline starts. As soon as an app is launched (tested with "Test ball" and Wolf UI), the runner aborts:
This is a hard limitation of rootless Podman rather than a configuration problem: device cgroup rules require privileges that a rootless user namespace does not have.
For the Wolf container itself the rule can simply be omitted (the devices are passed with
--deviceinstead) and Wolf starts normally. But the rule Wolf applies to the app containers it creates is not configurable, so there is no way to work around it from the outside.Steps to reproduce
/var/run/docker.sock, devices passed via--device /dev/dri --device /dev/uinput --device /dev/uhid, and no--device-cgroup-rule(that flag is rejected outright in rootless mode).Other rootless-specific findings
Two more issues showed up before reaching the cgroup error, both solvable, noting them in case they are useful:
Unable to find docker mount for path: ...— Wolf resolves its own container mounts to host paths via the Docker API. WhenXDG_RUNTIME_DIRpoints at a path that is not an explicit bind mount, the lookup fails. Mounting that path explicitly (e.g.-v /host/sockets:/tmp/socketswithXDG_RUNTIME_DIR=/tmp/sockets) resolves it.Failed to create mouse/keyboard: Permission denied—/dev/uinputisroot:input 0660on the host, but theinputgroup is not mapped into the rootless user namespace, so it appears asnobody:nogroupinside the container.--userns=keep-idis not a workaround here: the image's startup script needs to chmod files it does not own in that mode and exits withchmod: changing permissions of '/opt/gow/startup.sh': Operation not permitted.Question
Is rootless Podman intended to be supported? The docs mention Podman support and there are references to rootless patches, but the device cgroup rule on app containers appears to block it entirely. If the rule could be made optional (e.g. skipped when the runtime reports rootless, since the devices are already passed explicitly), rootless deployments would work.
Environment
stable(revision7f416ec0f2)WOLF_RENDER_NODEset explicitlyRunning Wolf rootful works as expected.
@r0b0tb4c0n commented on GitHub (Sep 18, 2026):
you can assign cgroup permissions to your user slice if you use cgroups v2. look here for a pretty good overview:
https://oneuptime.com/blog/post/2026-03-18-use-cgroups-v2-rootless-podman/view
@ABeltramo commented on GitHub (Sep 21, 2026):
Closing this assuming that the comment from @r0b0tb4c0n fixes it, feel free to re-open if that's not the case.