fixed hardware_db and improved stability and robustness of generic sal

This commit is contained in:
2026-02-26 15:52:44 +01:00
parent f87efa1d24
commit 073414a25e
13 changed files with 488 additions and 225 deletions

View File

@@ -1,5 +1,5 @@
[metadata]
version = "1.0.0"
version = "1.1.0"
updated = "2026-02-26"
description = "Hardware and Conflict Database for ember-tune Thermal Engine"
@@ -29,6 +29,14 @@ severity = "Medium"
fix_action = "SuspendService"
help_text = "Auto-cpufreq interferes with deterministic Silicon Knee identification."
[[conflicts]]
id = "dell_fan_collision"
services = ["i8kmon.service"]
contention = "Dell SMM Fan Control"
severity = "High"
fix_action = "SuspendService"
help_text = "i8kmon fights with ember-tune for SMM fan duty cycles. Suspend during benchmark."
# manufacturer wide logic
[ecosystems.dell]
@@ -38,6 +46,7 @@ drivers = ["dell_smm_hwmon"]
fan_manual_mode_cmd = "dell-bios-fan-control 0"
fan_auto_mode_cmd = "dell-bios-fan-control 1"
safety_register = "0x1FC" # BD PROCHOT MSR
help_text = "Dell systems often require 'SMM Security Mitigation' disabled in BIOS for fan control."
[ecosystems.lenovo]
vendor_regex = "LENOVO"
@@ -60,6 +69,13 @@ fan_boost_path = "/sys/devices/platform/hp-wmi/hwmon/hwmon*/pwm1_enable"
vendor_regex = "Framework"
ec_tool = "ectool"
optimization = "Direct-FFI-SMC"
polling_cap_ms = 500
[ecosystems.surface]
vendor_regex = "Microsoft Corporation"
product_regex = "Surface.*"
drivers = ["surface_acpi"]
profiles_path = "/sys/bus/platform/devices/surface_performance/platform_profile"
# quirks: model quirks and fixes
@@ -85,6 +101,7 @@ id = "asus_fan_hex_support"
issue = "Custom Hex Curve Interface"
target_path = "/sys/devices/platform/asus-nb-wmi/fan_curve"
format = "HexPair16"
action = "ManualFanControlRequired"
[[quirks]]
model_regex = "Spectre x360"
@@ -92,15 +109,23 @@ id = "hp_rapl_lockout"
issue = "Hardware MSR Lockout"
action = "WarnUserMSRLocked"
[[quirks]]
model_regex = "Framework.*"
id = "framework_prochot_stuck"
issue = "BD PROCHOT wedged at 200MHz"
monitor_msr = "0x1FC"
reset_bit = 0
action = "ClearBitOnSafeTemp"
# heuristic discovery
[discovery.sensors]
temp_labels = ["Package id 0", "Tdie", "Tctl", "CPU Temperature"]
fan_labels = ["CPU Fan", "GPU Fan", "System Fan"]
hwmon_priority = ["coretemp", "zenpower", "k10temp", "dell_smm"]
temp_labels = ["Package id 0", "Tdie", "Tctl", "CPU Temperature", "Core 0", "Composite"]
fan_labels = ["CPU Fan", "GPU Fan", "System Fan", "Processor Fan"]
hwmon_priority = ["coretemp", "zenpower", "k10temp", "dell_smm", "thinkpad", "asus"]
[discovery.actuators]
rapl_paths = ["intel-rapl:0", "package-0"]
rapl_paths = ["intel-rapl:0", "package-0", "intel-rapl:1"]
amd_energy_paths = ["zenpower/energy1_input", "k10temp/energy1_input"]
governor_files = ["energy_performance_preference", "energy_performance_hint", "scaling_governor"]
@@ -113,5 +138,10 @@ fail_help = "Add 'msr.allow_writes=on' to kernel parameters to allow power limit
[[preflight_checks]]
name = "Kernel Lockdown Status"
check_cmd = "cat /sys/kernel/security/lockdown | grep -q '\\[none\\]'"
check_cmd = "cat /sys/kernel/security/lockdown | grep -q '\\[none\\]' || ! [ -f /sys/kernel/security/lockdown ]"
fail_help = "Kernel Lockdown is enabled. MMIO/MSR actuators are restricted by the Linux Security Module."
[[preflight_checks]]
name = "Intel P-State Check"
check_cmd = "[ -d /sys/devices/system/cpu/intel_pstate ] || [ -d /sys/devices/system/cpu/cpufreq/policy0 ]"
fail_help = "CPU Frequency scaling driver not detected. Ensure intel_pstate or acpi-cpufreq is loaded."