mirror of
https://github.com/theupriser/steamify-cachyos.git
synced 2026-10-03 17:41:58 +02:00
Merge pull request #14 from theupriser/perf/pin-kernel-first
Perf/pin kernel first
This commit is contained in:
commit
eb5a088f03
4 files changed
+34
-1
No files matched your search
@@ -5,6 +5,18 @@ All notable changes, per version and per commit. Versions follow
|
|||||||
`steamify.sh`. Versions before 0.7.0 were numbered afterwards,
|
`steamify.sh`. Versions before 0.7.0 were numbered afterwards,
|
||||||
one per merged pull request.
|
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
|
## 1.1.0 - 2026-09-25
|
||||||
|
|
||||||
- **feat: HDMI-CEC** (experimental, on every PC; ticked by default only on a
|
- **feat: HDMI-CEC** (experimental, on every PC; ticked by default only on a
|
||||||
|
|||||||
@@ -8,6 +8,9 @@
|
|||||||
# Sourced by steamify.sh; not meant to be run on its own.
|
# Sourced by steamify.sh; not meant to be run on its own.
|
||||||
|
|
||||||
CEC_PKGS=(cecd cec-audio-control inputattach-cec-units)
|
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() {
|
restart_steamos_manager() {
|
||||||
# steamos-manager only offers its HDMI-CEC interface (Steam's CEC
|
# 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.
|
# session, after steamos-manager wrote its config from Steam's settings.
|
||||||
sudo udevadm control --reload
|
sudo udevadm control --reload
|
||||||
sudo udevadm trigger --subsystem-match=cec --action=add
|
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 daemon-reload
|
||||||
systemctl --user enable steamos-manager-configure-cecd.service 2>/dev/null
|
systemctl --user enable steamos-manager-configure-cecd.service 2>/dev/null
|
||||||
if compgen -G "/dev/cec*" >/dev/null; then
|
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 --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
|
systemctl --user disable steamos-manager-configure-cecd.service 2>/dev/null
|
||||||
sudo pacman -Rns --noconfirm "${CEC_PKGS[@]}" 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
|
if [[ -n "$(state_get cec installed_linuxconsole)" ]]; then
|
||||||
sudo pacman -Rns --noconfirm linuxconsole 2>/dev/null
|
sudo pacman -Rns --noconfirm linuxconsole 2>/dev/null
|
||||||
state_clear cec
|
state_clear cec
|
||||||
|
|||||||
@@ -251,6 +251,13 @@ install_valve_led_driver() {
|
|||||||
# Load now, and on every boot.
|
# Load now, and on every boot.
|
||||||
echo leds-valve | sudo tee /etc/modules-load.d/leds-valve.conf >/dev/null
|
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..."
|
info "Loading the leds-valve kernel module..."
|
||||||
if sudo modprobe leds-valve; then
|
if sudo modprobe leds-valve; then
|
||||||
ok "Module loaded."
|
ok "Module loaded."
|
||||||
@@ -361,6 +368,11 @@ machine_status() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
machine_enable() {
|
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; }
|
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_valve_led_driver || { warn "LED driver setup ran into a problem - see errors above."; return 1; }
|
||||||
install_headers_boot_check
|
install_headers_boot_check
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@
|
|||||||
set -uo pipefail
|
set -uo pipefail
|
||||||
|
|
||||||
# Release version, see CHANGELOG.md.
|
# Release version, see CHANGELOG.md.
|
||||||
VERSION=1.1.0
|
VERSION=1.1.1
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user