docs: Power-off fix texts cover every affected kernel, not just 7.2

This commit is contained in:
theupriser committed 2026-09-27 12:23:54 +02:00
1 parent 6df19eba3e
commit 56fb9080a7
8 files changed
+31 -25

No files matched your search

+3 -2
View File
@@ -215,11 +215,12 @@ gamescope and the Plasma desktop. Primary target: the Valve Steam Machine
registered first, which never happens since amdgpu loads from the registered first, which never happens since amdgpu loads from the
initramfs. Without it `/dev/cec0` exists but stays at `f.f.f.f`. initramfs. Without it `/dev/cec0` exists but stays at `f.f.f.f`.
- Power-off fix (`poweroff`, `lib/fremont-poweroff.sh`, a default sub-option - Power-off fix (`poweroff`, `lib/fremont-poweroff.sh`, a default sub-option
of `machine`): kernels >= 7.2 keep the firmware's S4/S5 wake bit on GPIO of `machine`): recent kernels (7.2 and the 6.x/7.0/7.1 updates with the
backport) keep the firmware's S4/S5 wake bit on GPIO
pin 18, so the Steam Machine boots again right after powering off pin 18, so the Steam Machine boots again right after powering off
(Valve's kernel clears it at probe, not for upstream). The DKMS module (Valve's kernel clears it at probe, not for upstream). The DKMS module
`steamify-fremont-poweroff` (`patches/steamify-fremont-poweroff.c`) clears `steamify-fremont-poweroff` (`patches/steamify-fremont-poweroff.c`) clears
it in a power-off-prepare handler, for every kernel. It made the kernel pin it in a power-off-prepare handler, built for each kernel. It made the kernel pin
unnecessary: `kpin` is only available while on (`kpin_available`), and unnecessary: `kpin` is only available while on (`kpin_available`), and
`detect_components` unticks it (and `hdmi`, which needs the pinned `detect_components` unticks it (and `hdmi`, which needs the pinned
kernel), so a normal run removes an existing pin. CachyOS's kernel), so a normal run removes an existing pin. CachyOS's
+4 -3
View File
@@ -8,11 +8,12 @@ one per merged pull request.
## 2.2.0 - 2026-09-27 ## 2.2.0 - 2026-09-27
- **feat: Power-off fix for the Steam Machine; the kernel pin is optional** - **feat: Power-off fix for the Steam Machine; the kernel pin is optional**
- With kernels 7.2 and newer the Steam Machine started again right after - With recent kernels (newer 6.x, 7.0 and 7.1 updates, 7.2 and probably
shutting down: Linux 7.2 keeps the wake bit the firmware sets on GPIO later ones) the Steam Machine started again right after shutting down:
they keep the wake bit the firmware sets on GPIO
pin 18, which Valve's own kernel clears in a patch that won't reach pin 18, which Valve's own kernel clears in a patch that won't reach
CachyOS. Steam Machine support now builds a small module with DKMS for CachyOS. Steam Machine support now builds a small module with DKMS for
every kernel that clears it right before power-off: the new **Power-off each installed kernel that clears it right before power-off: the new **Power-off
fix** sub-option, ticked along with Steam Machine support (opt-out). fix** sub-option, ticked along with Steam Machine support (opt-out).
Tested with CachyOS 7.2.8: stays off, and without the module it Tested with CachyOS 7.2.8: stays off, and without the module it
rebooted. rebooted.
+5 -3
View File
@@ -210,9 +210,11 @@ wizard installed it).
## Power-off fix (Steam Machine) ## Power-off fix (Steam Machine)
With kernels 7.2 and newer a Steam Machine starts again right after With recent kernels a Steam Machine starts again right after powering off:
powering off. Linux 7.2 stopped clearing the S4/S5 wake bits at probe the newer 6.x, 7.0 and 7.1 updates and 7.2 (and probably every kernel after
(`pinctrl-amd: Don't clear S4 wake bits at probe`), and the firmware leaves it). Linux stopped clearing the S4/S5 wake bits at probe
(`pinctrl-amd: Don't clear S4 wake bits at probe`, in 7.2 and backported to
stable kernels), and the firmware leaves
that bit set on GPIO pin 18 (`_SB.PCI0.GPP6`). Valve's own kernel that bit set on GPIO pin 18 (`_SB.PCI0.GPP6`). Valve's own kernel
(`linux-neptune-72`) clears it at probe on Fremont, in a patch marked not (`linux-neptune-72`) clears it at probe on Fremont, in a patch marked not
for upstream ("until the firmware is fixed"), so CachyOS and mainline won't for upstream ("until the firmware is fixed"), so CachyOS and mainline won't
+10 -8
View File
@@ -1,13 +1,15 @@
#!/bin/bash #!/bin/bash
# "Power-off fix" menu item (poweroff), a sub-option of Steam Machine support # "Power-off fix" menu item (poweroff), a sub-option of Steam Machine support
# ticked along with it (opt-out): the Steam Machine powers off instead of # ticked along with it (opt-out): the Steam Machine powers off instead of
# booting up again, on every kernel. Since Linux 7.2 ("pinctrl-amd: Don't # booting up again. Recent kernels (7.2, and the 6.x, 7.0 and 7.1 updates
# clear S4 wake bits at probe") the S4/S5 wake bit the firmware leaves set # that got the change backported) keep the S4/S5 wake bit the firmware
# on GPIO pin 18 stays set, and the machine starts again right after # leaves set on GPIO pin 18 ("pinctrl-amd: Don't clear S4 wake bits at
# powering off (the reason for the kernel pin). Valve's kernel clears it at # probe"), so the machine starts again right after powering off (the reason
# probe on Fremont, in a patch not meant for upstream, so CachyOS won't get # for the old kernel pin). Valve's kernel clears it at probe on Fremont, in
# it. A small module (patches/steamify-fremont-poweroff.c) clears it right # a patch not meant for upstream, so CachyOS won't get it. A small module
# before power-off; DKMS builds it for every kernel. On kernels that clear it themselves it does nothing. # (patches/steamify-fremont-poweroff.c) clears it right before power-off;
# DKMS builds it for each installed kernel. On a kernel that clears it
# itself it does nothing.
# Sourced by steamify.sh; not meant to be run on its own. # Sourced by steamify.sh; not meant to be run on its own.
POWEROFF_DKMS_NAME=steamify-fremont-poweroff POWEROFF_DKMS_NAME=steamify-fremont-poweroff
@@ -65,5 +67,5 @@ poweroff_enable() {
} }
poweroff_disable() { poweroff_disable() {
poweroff_fix_disable poweroff_fix_disable
ok "Power-off fix removed; with kernels 7.2 and newer the Steam Machine may start again after shutting down." ok "Power-off fix removed; with recent kernels the Steam Machine may start again after shutting down."
} }
+1 -1
View File
@@ -33,7 +33,7 @@ declare -A LABEL=(
[launcher]="Steamify shortcut: the app on the desktop, Steamify Terminal in the launcher" [launcher]="Steamify shortcut: the app on the desktop, Steamify Terminal in the launcher"
[cec]="HDMI-CEC: use Steam with the TV remote, TV on/off with the PC (experimental)" [cec]="HDMI-CEC: use Steam with the TV remote, TV on/off with the PC (experimental)"
[machine]="Steam Machine support: LED bar driver, hardware settings in Steam" [machine]="Steam Machine support: LED bar driver, hardware settings in Steam"
[poweroff]="Power-off fix: stays off after shutting down, on every kernel" [poweroff]="Power-off fix: the Steam Machine stays off after shutting down"
[kpin]="Pin the kernel to $PINNED_KERNEL_VER (no longer needed: untick for CachyOS's current kernel)" [kpin]="Pin the kernel to $PINNED_KERNEL_VER (no longer needed: untick for CachyOS's current kernel)"
[hdmi]="HDMI refresh boost: highest refresh your HDMI display runs" [hdmi]="HDMI refresh boost: highest refresh your HDMI display runs"
[bios]="Update BIOS" [bios]="Update BIOS"
+1 -1
View File
@@ -6,5 +6,5 @@ read and reviewed on their own. `lib/*.sh` reads them with `patch_file
| File | Used by | What | | File | Used by | What |
|---|---|---| |---|---|---|
| `steamify-fremont-poweroff.c` | `lib/fremont-poweroff.sh` (Steam Machine support) | Kernel module (DKMS): clears GPIO 18's S4/S5 wake bit before power-off, so the Steam Machine stays off on kernels 7.2 and newer | | `steamify-fremont-poweroff.c` | `lib/fremont-poweroff.sh` (Steam Machine support) | Kernel module (DKMS): clears GPIO 18's S4/S5 wake bit before power-off, so the Steam Machine stays off with recent kernels |
| `cros-ec-cec-single-port.patch` | `lib/cec.sh` (HDMI-CEC) | Makes Valve's Steam Machine CEC driver find amdgpu's HDMI port | | `cros-ec-cec-single-port.patch` | `lib/cec.sh` (HDMI-CEC) | Makes Valve's Steam Machine CEC driver find amdgpu's HDMI port |
+3 -3
View File
@@ -2,9 +2,9 @@
/* /*
* Steam Machine (Fremont): power off instead of booting up again. * Steam Machine (Fremont): power off instead of booting up again.
* *
* Since Linux 7.2 ("pinctrl-amd: Don't clear S4 wake bits at probe") the * Since "pinctrl-amd: Don't clear S4 wake bits at probe" (Linux 7.2, also
* S4/S5 wake bit the firmware leaves set on GPIO pin 18 (_SB.PCI0.GPP6) * backported to 6.x, 7.0 and 7.1 updates) the S4/S5 wake bit the firmware
* stays set, and the machine starts again right after powering off. * leaves set on GPIO pin 18 (_SB.PCI0.GPP6) stays set, and the machine starts again right after powering off.
* Valve's kernel clears that bit at probe on Fremont (not for upstream); * Valve's kernel clears that bit at probe on Fremont (not for upstream);
* this does the same right before power-off, for kernels without it. * this does the same right before power-off, for kernels without it.
*/ */
+4 -4
View File
@@ -69,11 +69,11 @@ ApplicationWindow {
machine: { label: "Steam Machine support", hint: "LED bar, fan and performance settings in Steam", machine: { label: "Steam Machine support", hint: "LED bar, fan and performance settings in Steam",
body: "The front LED bar works, Steam's hardware settings work, and the power button puts it to sleep like a console.", body: "The front LED bar works, Steam's hardware settings work, and the power button puts it to sleep like a console.",
changes: ["leds-valve driver for every kernel (DKMS)", "steamos-manager for Steam's settings", "Console-like power handling"] }, changes: ["leds-valve driver for every kernel (DKMS)", "steamos-manager for Steam's settings", "Console-like power handling"] },
poweroff: { label: "Power-off fix", hint: "Stays off after shutting down, on every kernel", poweroff: { label: "Power-off fix", hint: "Stays off after shutting down",
body: "With kernels 7.2 and newer the Steam Machine starts again right after shutting down: the firmware leaves a wake bit set that newer kernels keep. Valve's own kernel clears it; this small module does the same right before power-off, for every CachyOS kernel.", body: "With recent kernels the Steam Machine starts again right after shutting down: the firmware leaves a wake bit set, and newer kernels (7.2, and updates of 6.x, 7.0 and 7.1) no longer clear it. Valve's own kernel clears it; this small module does the same right before power-off.",
changes: ["steamify-fremont-poweroff module for every kernel (DKMS)", "Only on a Steam Machine, only touches that one wake bit", "Off: kernels 7.2 and newer may start it again after shutting down"] }, changes: ["steamify-fremont-poweroff module for each installed kernel (DKMS)", "Only on a Steam Machine, only touches that one wake bit", "Off: recent kernels may start it again after shutting down"] },
kpin: { label: "Pin the kernel", hint: "No longer needed: untick for the current kernel", kpin: { label: "Pin the kernel", hint: "No longer needed: untick for the current kernel",
body: "Keeps the Steam Machine on CachyOS kernel 7.1.6, which older versions of Steamify needed to shut down properly. Steam Machine support now fixes that on every kernel. Untick it to go back to CachyOS's current kernel (HDMI refresh boost goes with it: newer kernels read the display's fast modes and do HDMI 2.1 themselves).", body: "Keeps the Steam Machine on CachyOS kernel 7.1.6, which older versions of Steamify needed to shut down properly. The power-off fix handles that now. Untick it to go back to CachyOS's current kernel (HDMI refresh boost goes with it: newer kernels read the display's fast modes and do HDMI 2.1 themselves).",
changes: ["linux-cachyos from Steamify's release (signature checked)", "Kept in /var/cache/steamify/kernel", "Added to IgnorePkg"] }, changes: ["linux-cachyos from Steamify's release (signature checked)", "Kept in /var/cache/steamify/kernel", "Added to IgnorePkg"] },
hdmi: { label: "HDMI refresh boost", hint: "Higher refresh rates over HDMI", hdmi: { label: "HDMI refresh boost", hint: "Higher refresh rates over HDMI",
body: "The pinned kernel keeps many HDMI displays at 60 Hz. Turning this on shows which refresh rates your display can run at the desktop resolution; you pick them, and each one is tried for 15 seconds so you can check the picture before it's installed.", body: "The pinned kernel keeps many HDMI displays at 60 Hz. Turning this on shows which refresh rates your display can run at the desktop resolution; you pick them, and each one is tried for 15 seconds so you can check the picture before it's installed.",