Skip to content

Surface Book 2 fan control not supported by surface_fan #2244

Description

@toor11

Surface Book 2 has SSAM device d01c03t01i00f01 instead of d01c05t01i01f01. surface_fan module loads but creates no hwmon device

uname -r: 6.19.8-arch1-3-surface
SSAM device: d01c03t01i00f01
Expected: d01c05t01i01f01
Result: No fan hwmon, no thermal control

╭─user@garuda in ~/Projects via  v3.14.7 took 0s
[[]|[🔴]] => 🔴ERROR × modinfo surface_fan 2>/dev/null
filename: /lib/modules/6.19.8-arch1-3-surface/kernel/drivers/hwmon/surface_fan.ko.zst
license: GPL
description: Fan Driver for Surface System Aggregator Module
author: Ivor Wanders ivor@iwanders.net
srcversion: C7724B51792D0F150344A74
alias: ssam:d01c05t01i01f01
depends: surface_aggregator
intree: Y
name: surface_fan
retpoline: Y
vermagic: 6.19.8-arch1-3-surface SMP preempt mod_unload
sig_id: PKCS#7
signer: Build time autogenerated kernel key
sig_key: 49:F2:4D:21:B0:3B:16:62:55:38:B5:F7:DD:AB:10:2B:E0:45:29:BF
sig_hashalgo: sha512
signature: 30:65:02:30:40:27:F1:D5:B6:11:7A:35:DA:0F:1E:55:72:34:22:00:
D5:38:BC:AE:6C:4A:87:14:60:E2:C7:D1:B8:B0:35:26:30:50:21:06:
BB:93:66:53:B7:A7:52:91:CA:83:9F:EB:02:31:00:89:27:99:DA:DB:
61:4A:44:F6:FC:C3:C9:FC:54:09:AB:AD:29:B4:BC:91:D0:2E:B3:58:
3C:E3:50:AE:DC:3B:8E:88:F6:F0:E5:72:11:27:69:3B:B0:06:58:4D:
86:41:2E

╭─user@garuda in ~/Projects via  v3.14.7 took 0s
╰─λ sudo modprobe surface_fan
[sudo] password for user:

╭─user@garuda in ~/Projects via  v3.14.7 as 🧙 took 3s
╰─λ lsmod | grep surface_fan
surface_fan 12288 0
surface_aggregator 196608 5 surface_acpi_notify,surface_fan,surface_dtx,surface_platform_profile,surface_aggregator_registry

╭─user@garuda in ~/Projects via  v3.14.7 as 🧙 took 0s
╰─λ ls /sys/class/hwmon/
lrwxrwxrwx - root 25 Aug 04:37 hwmon0 -> ../../devices/platform/ACPI0003:00/power_supply/ADP1/hwmon0
lrwxrwxrwx - root 25 Aug 04:37 hwmon1 -> ../../devices/virtual/thermal/thermal_zone0/hwmon1
lrwxrwxrwx - root 25 Aug 04:37 hwmon2 -> ../../devices/pci0000:00/0000:00:1d.0/0000:03:00.0/nvme/nvme0/hwmon2
lrwxrwxrwx - root 25 Aug 04:37 hwmon3 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT1/hwmon3
lrwxrwxrwx - root 25 Aug 04:37 hwmon4 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:01/power_supply/BAT2/hwmon4
lrwxrwxrwx - root 25 Aug 04:37 hwmon5 -> ../../devices/virtual/thermal/thermal_zone15/hwmon5
lrwxrwxrwx - root 25 Aug 04:37 hwmon6 -> ../../devices/platform/coretemp.0/hwmon/hwmon6

╭─user@garuda in ~/Projects via  v3.14.7 as 🧙 took 0s
╰─λ cat /sys/class/hwmon/hwmon*/name 2>/dev/null
File: /sys/class/hwmon/hwmon0/name
ADP1

File: /sys/class/hwmon/hwmon1/name
acpitz

File: /sys/class/hwmon/hwmon2/name
nvme

File: /sys/class/hwmon/hwmon3/name
BAT1

File: /sys/class/hwmon/hwmon4/name
BAT2

File: /sys/class/hwmon/hwmon5/name
pch_skylake

File: /sys/class/hwmon/hwmon6/name
coretemp

╭─user@garuda in ~/Projects via  v3.14.7 as 🧙 took 0s
╰─λ find /sys -name "fan" -path "surface" 2>/dev/null
/sys/bus/surface_aggregator/drivers/surface_fan
/sys/module/surface_aggregator/holders/surface_fan
/sys/module/surface_fan
/sys/module/surface_fan/drivers/surface_aggregator:surface_fan

╭─user@garuda in ~/Projects via  v3.14.7 as 🧙 took 0s
[🔴] × find /sys/bus/surface_aggregator/devices/ -type l | xargs -I{} sh -c 'echo "{}: $(cat {}/modalias 2>/dev/null) $(cat {}/name 2>/dev/null)"'
/sys/bus/surface_aggregator/devices/01:03:01:00:01: ssam:d01c03t01i00f01

╭─user@garuda in ~/Projects via  v3.14.7 as 🧙 took 0s
╰─λ grep -r "d01c05t01i01f01" /sys/bus/surface_aggregator/ 2>/dev/null

╭─user@garuda in ~/Projects via  v3.14.7 as 🧙 took 0s
[🔴] × sudo dmesg | grep -i "surface_fan|fan" | tail -20

╭─user@garuda in ~/Projects via  v3.14.7 as 🧙 took 0s
[[]|[🔴]|[]] => ╰─λ

sb2-fan-logs-20260825-045053.tar.gz

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions