Merge pull request #14 from theupriser/perf/pin-kernel-first

Perf/pin kernel first
This commit is contained in:
theupriser authored and GitHub committed 2026-09-25 10:09:27 +02:00
commit eb5a088f03
4 files changed
+34 -1

No files matched your search

+12
View File
@@ -5,6 +5,18 @@ All notable changes, per version and per commit. Versions follow
`steamify.sh`. Versions before 0.7.0 were numbered afterwards,
one per merged pull request.
## 1.1.1 - 2026-09-25
- **perf: Pinned kernel before the LED driver**
- With the kernel pin ticked, Steam Machine support installs kernel
7.1.6-1 first, so DKMS builds the LED driver once, for that kernel,
instead of for the current kernel first and then again. The LED driver
then loads after the restart, which it now says instead of warning.
- **fix: steamos-manager starts after cecd**
- It checks only at its start whether cecd runs; if it was first, Steam's
HDMI-CEC settings were missing until it restarted. A drop-in
(`/etc/systemd/user/steamos-manager.service.d/`) orders it after cecd.
## 1.1.0 - 2026-09-25
- **feat: HDMI-CEC** (experimental, on every PC; ticked by default only on a
+9
View File
@@ -8,6 +8,9 @@
# Sourced by steamify.sh; not meant to be run on its own.
CEC_PKGS=(cecd cec-audio-control inputattach-cec-units)
# steamos-manager checks once, at its start, whether cecd runs; order it
# after cecd so it never misses it at login.
CEC_ORDER_DROPIN=/etc/systemd/user/steamos-manager.service.d/10-steamify-after-cecd.conf
restart_steamos_manager() {
# steamos-manager only offers its HDMI-CEC interface (Steam's CEC
@@ -64,6 +67,9 @@ cec_enable() {
# session, after steamos-manager wrote its config from Steam's settings.
sudo udevadm control --reload
sudo udevadm trigger --subsystem-match=cec --action=add
sudo mkdir -p "$(dirname "$CEC_ORDER_DROPIN")"
printf '%s\n' "# Written by Steamify: steamos-manager only sees cecd if it runs at its start." \
'[Unit]' 'After=cecd.service' | sudo tee "$CEC_ORDER_DROPIN" >/dev/null
systemctl --user daemon-reload
systemctl --user enable steamos-manager-configure-cecd.service 2>/dev/null
if compgen -G "/dev/cec*" >/dev/null; then
@@ -81,6 +87,9 @@ cec_disable() {
systemctl --user disable --now cecd.service cec-audio-control.socket cec-audio-control.service 2>/dev/null
systemctl --user disable steamos-manager-configure-cecd.service 2>/dev/null
sudo pacman -Rns --noconfirm "${CEC_PKGS[@]}" 2>/dev/null
sudo rm -f "$CEC_ORDER_DROPIN"
sudo rmdir "$(dirname "$CEC_ORDER_DROPIN")" 2>/dev/null
systemctl --user daemon-reload
if [[ -n "$(state_get cec installed_linuxconsole)" ]]; then
sudo pacman -Rns --noconfirm linuxconsole 2>/dev/null
state_clear cec
+12
View File
@@ -251,6 +251,13 @@ install_valve_led_driver() {
# Load now, and on every boot.
echo leds-valve | sudo tee /etc/modules-load.d/leds-valve.conf >/dev/null
# The running kernel was just replaced (the kernel pin): its modules are
# gone, so the driver can only load after the restart.
if [[ ! -d "/usr/lib/modules/$(uname -r)/kernel" ]]; then
ok "The LED driver loads after the restart (into the new kernel)."
return 0
fi
info "Loading the leds-valve kernel module..."
if sudo modprobe leds-valve; then
ok "Module loaded."
@@ -361,6 +368,11 @@ machine_status() {
}
machine_enable() {
# The pinned kernel first when it's wanted too, so DKMS builds the LED
# driver for it once, instead of for the current kernel and then again.
if [[ "${WANTED[kpin]:-0}" == 1 ]]; then
install_pinned_kernel || { err "Couldn't set up kernel $PINNED_KERNEL_VER."; return 1; }
fi
ensure_aur_helper || { warn "Couldn't set up an AUR helper automatically. Install yay or paru, then run the wizard again."; return 1; }
install_valve_led_driver || { warn "LED driver setup ran into a problem - see errors above."; return 1; }
install_headers_boot_check
+1 -1
View File
@@ -15,7 +15,7 @@
set -uo pipefail
# Release version, see CHANGELOG.md.
VERSION=1.1.0
VERSION=1.1.1
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"