Harden OXP startup under Secure Boot

This commit is contained in:
ps1x 2026-08-03 19:51:27 +03:00
parent f5eae5c97e
commit 1a654d52d6
4 changed files with 22 additions and 3 deletions

View file

@ -90,6 +90,21 @@ To install through DKMS:
make dkms
```
### Secure Boot
DKMS signs `oxp-sensors`, but Secure Boot will reject it until the DKMS Machine
Owner Key is enrolled. On Fedora, check the key after `make dkms` with:
```shell
sudo mokutil --test-key /var/lib/dkms/mok.pub
```
If it is not enrolled, queue it with `sudo mokutil --import
/var/lib/dkms/mok.pub`, reboot, and choose **Enroll MOK** in the firmware screen.
The one-time password entered at the `mokutil` prompt is required there. The OXP
services limit their retries if the key is missing, so this condition does not
create a boot-time restart storm.
## Install On Linux
Install the client tools, fan-control service, and GNOME extension:

View file

@ -25,7 +25,10 @@ sudo install -Dm644 "$REPO_DIR/oxp-fan-control.service" /etc/systemd/system/oxp-
sudo install -Dm644 "$REPO_DIR/contrib/power/oxp-turbo-tdp.service" /etc/systemd/system/oxp-turbo-tdp.service
sudo install -Dm644 "$REPO_DIR/contrib/power/oxp-idle-power.service" /etc/systemd/system/oxp-idle-power.service
sudo install -Dm755 "$REPO_DIR/contrib/power/oxp-idle-power-resume" /usr/lib/systemd/system-sleep/oxp-idle-power
sudo install -Dm644 "$REPO_DIR/oxp-sensors.conf" /etc/modules-load.d/oxp-sensors.conf
# The fan and Turbo services load oxp-sensors themselves. Keeping it in
# modules-load makes a Secure Boot signature problem fail the global
# systemd-modules-load service during boot.
sudo rm -f /etc/modules-load.d/oxp-sensors.conf
sudo install -Dm644 "$REPO_DIR/oxp-fan-profile.rules" /etc/polkit-1/rules.d/49-oxp-fan-profile.rules
sudo install -Dm644 "$REPO_DIR/oxp-rgb-hid.rules" /etc/udev/rules.d/99-oxp-rgb-hid.rules
sudo install -Dm644 "$REPO_DIR/contrib/power/80-oxp-disable-fingerprint.rules" /etc/udev/rules.d/80-oxp-disable-fingerprint.rules

View file

@ -2,13 +2,15 @@
Description=OXP SuperX Fan Control Daemon
After=systemd-modules-load.service
Wants=systemd-modules-load.service
StartLimitIntervalSec=60
StartLimitBurst=3
[Service]
Type=simple
ExecStartPre=/usr/sbin/modprobe oxp-sensors
ExecStartPre=/bin/sh -c 'for i in $(seq 1 20); do for d in /sys/class/hwmon/hwmon*; do [ -r "$d/name" ] || continue; [ "$(cat "$d/name")" = "oxpec" ] && exit 0; done; sleep 0.5; done; echo "oxpec hwmon device not found after loading oxp-sensors" >&2; exit 1'
ExecStart=/usr/local/bin/oxp-fan-control.py
Restart=always
Restart=on-failure
RestartSec=5
[Install]

View file

@ -1 +0,0 @@
oxp-sensors