docs(bazzite): join the input group via ujust add-user-to-input-group
ci / rust (push) Has been cancelled
ci / rust (push) Has been cancelled
On Bazzite (atomic rpm-ostree) `sudo usermod -aG input $USER` doesn't stick — /etc/group is managed declaratively, so the change is dropped or reverted on the next update. The supported path is the `ujust add-user-to-input-group` recipe, which edits the group the immutable-OS-correct way. Update the bazzite README + the packaging quickstart + the troubleshooting note (which also now points at the host's "virtual gamepad/DualSense created" vs "creation failed" log as the unambiguous signal). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+2
-1
@@ -62,7 +62,8 @@ sudo bootc switch ghcr.io/<you>/bazzite-punktfunk && systemctl reboot
|
|||||||
## First-run setup (either option)
|
## First-run setup (either option)
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo usermod -aG input "$USER" # virtual gamepads need /dev/uinput (then re-login)
|
ujust add-user-to-input-group # virtual gamepads need /dev/uinput (then re-login).
|
||||||
|
# On Bazzite use ujust, NOT `usermod -aG input` (atomic OS — it won't stick).
|
||||||
mkdir -p ~/.config/punktfunk
|
mkdir -p ~/.config/punktfunk
|
||||||
cp /usr/share/punktfunk/host.env.bazzite ~/.config/punktfunk/host.env # edit (gamescope app, etc.)
|
cp /usr/share/punktfunk/host.env.bazzite ~/.config/punktfunk/host.env # edit (gamescope app, etc.)
|
||||||
systemctl --user enable --now punktfunk-host
|
systemctl --user enable --now punktfunk-host
|
||||||
|
|||||||
@@ -114,9 +114,15 @@ The RPM **already installs** the rule to `/usr/lib/udev/rules.d/60-punktfunk.rul
|
|||||||
reloads udev. So on a packaged install (Path A or B) **you only need to join the `input` group**:
|
reloads udev. So on a packaged install (Path A or B) **you only need to join the `input` group**:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo usermod -aG input "$USER" # then LOG OUT and back in (or reboot)
|
ujust add-user-to-input-group # then LOG OUT and back in (or reboot)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> ⚠️ **On Bazzite use `ujust add-user-to-input-group`, NOT `sudo usermod -aG input $USER`.** Bazzite
|
||||||
|
> is an atomic (rpm-ostree) OS where `/etc/group` is managed declaratively — a plain `usermod` either
|
||||||
|
> doesn't stick or gets reverted on the next update. The `ujust` recipe edits the group the
|
||||||
|
> immutable-OS-correct way (and reloads udev). (`ujust` ships with Bazzite; `ujust --list` shows all
|
||||||
|
> recipes.)
|
||||||
|
|
||||||
> 🔁 **The group change does not apply to your current login session** — you must re-login (or
|
> 🔁 **The group change does not apply to your current login session** — you must re-login (or
|
||||||
> reboot). Until then, gamepad creation fails with a permission error on `/dev/uinput`. This is the
|
> reboot). Until then, gamepad creation fails with a permission error on `/dev/uinput`. This is the
|
||||||
> single most common "why don't my gamepads work" gotcha.
|
> single most common "why don't my gamepads work" gotcha.
|
||||||
@@ -126,7 +132,7 @@ manually — the exact commands from the rule file's header (`scripts/60-punktfu
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo cp scripts/60-punktfunk.rules /etc/udev/rules.d/
|
sudo cp scripts/60-punktfunk.rules /etc/udev/rules.d/
|
||||||
sudo usermod -aG input "$USER" # then re-login (or reboot)
|
ujust add-user-to-input-group # NOT `usermod` on Bazzite (see the note above); then re-login
|
||||||
sudo udevadm control --reload-rules && sudo udevadm trigger
|
sudo udevadm control --reload-rules && sudo udevadm trigger
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -313,9 +319,13 @@ desktop viewer.
|
|||||||
|
|
||||||
## 8. Troubleshooting (grounded in the repo's real gotchas)
|
## 8. Troubleshooting (grounded in the repo's real gotchas)
|
||||||
|
|
||||||
- **Gamepads don't appear / permission denied on `/dev/uinput` or `/dev/uhid`.** You haven't
|
- **Gamepads don't appear / permission denied on `/dev/uinput` or `/dev/uhid`.** Either you haven't
|
||||||
re-logged-in after `usermod -aG input`. Log out and back in (or reboot) — group membership only
|
joined the `input` group, or you haven't re-logged-in since. On Bazzite join it with
|
||||||
takes effect on a new session. (`scripts/60-punktfunk.rules`, `packaging/README.md`.)
|
`ujust add-user-to-input-group` (a plain `sudo usermod -aG input` doesn't stick on an atomic OS —
|
||||||
|
see section 3), then log out and back in (or reboot): group membership only takes effect on a new
|
||||||
|
session. The host log makes this unambiguous — it prints `virtual gamepad created` /
|
||||||
|
`virtual DualSense created` on success, or `… creation failed — controller input disabled` when
|
||||||
|
the device node isn't writable. (`scripts/60-punktfunk.rules`, `packaging/README.md`.)
|
||||||
|
|
||||||
- **No video / NVENC fails to encode.** RPM Fusion's `ffmpeg-libs` (with NVENC) is missing — it's a
|
- **No video / NVENC fails to encode.** RPM Fusion's `ffmpeg-libs` (with NVENC) is missing — it's a
|
||||||
weak dependency, so the package installed without it. Re-run the RPM Fusion step in section 1.
|
weak dependency, so the package installed without it. Re-run the RPM Fusion step in section 1.
|
||||||
|
|||||||
Reference in New Issue
Block a user