ACPI_THERMAL(4)
π acpi_thermal β like, the ACPI thermal management subsystem, bestie
okay so this is acpi_thermal(4) from the Kernel Interfaces Manual (section 4, for the record) and honestly? she's the one keeping your laptop from literally melting. let's get into it β¨
πΈ NAME πΈ
acpi_thermal β the ACPI thermal management subsystem. yes queen, temperature cop of the kernel π₯
π SYNOPSIS π
device acpi
that's it. that's the whole vibe. one line, iconic.
π¦ DESCRIPTION π¦
so the acpi_thermal driver is the whole thermal-management situation of the ACPI module. she comes with a sysctl(8) interface and a devd(8) notification interface β double threat, no cap. the sysctls export the properties of every ACPI thermal zone object π
heads up: a system can have multiple thermal zones. like, each CPU and the enclosure could all be their own separate thermal zones, each one with its own setpoints and its own cooling devices. main character energy per zone, honestly. thermal zones get numbered sequentially in the order they show up in the AML π
and yeah β the acpi_thermal driver also activates the active cooling system according to each thermal zone's setpoints. she's proactive like that π«Ά
β¨ SYSCTL VARIABLES β¨
hw.acpi.thermal.min_runtimeβ how many seconds to keep active cooling going once it's started. a new active cooling level won't get picked until this interval expires. respect the cooldown period πhw.acpi.thermal.polling_rateβ seconds between polling the current temperature. basically how often she checks in on you πhw.acpi.thermal.user_overrideβ if you set this to1, you're allowed to override various setpoints (the ones listed below). the original values for these settings come from the BIOS, so lowkey changing them could cause system overheating and possible damage. default is0(no override).
bestie please be careful with this one π the BIOS gave you those numbers for a reason.
hw.acpi.thermal.tz%d.activeβ current active cooling system state. if this is non-negative, the appropriate_AC%dobject is running. set this value to the desired active cooling level to force the corresponding fan object to the appropriate level. manual fan control, we love to see it π¬οΈhw.acpi.thermal.tz%d.passive_coolingβ if set to1, passive cooling is enabled. that's cooling without fans, usingcpufreq(4)as the mechanism for controlling CPU speed. default is enabled for tz0 where it is available. silent but deadly π§hw.acpi.thermal.tz%d.thermal_flagsβ current thermal zone status. these are bit-masked values π’hw.acpi.thermal.tz%d.temperatureβ current temperature for this zone. the number we're all here for π‘οΈhw.acpi.thermal.tz%d._PSVβ temperature to start passive cooling by throttling down the CPU, etc. this value can be overridden by the user.hw.acpi.thermal.tz%d._CR3β temperature to start critical suspend to RAM (S3). this value can be overridden by the user.hw.acpi.thermal.tz%d._HOTβ temperature to start critical suspend to disk (S4). this value can be overridden by the user.hw.acpi.thermal.tz%d._CRTβ temperature to start critical shutdown (S5). this value can be overridden by the user. scary one, ngl πhw.acpi.thermal.tz%d._ACxβ temperatures at which to switch to the corresponding active cooling level. the lower the_ACxvalue, the higher the cooling power. so small number = big chill, iykyk βοΈ
all temperatures are printed in Celsius π values can be set in Celsius (by providing a trailing "C") or Kelvin (by leaving off any trailing letter). and when you're setting a value by sysctl(8), do not specify a trailing decimal β so like 90C instead of 90.0C, bestie. the decimal is not invited to the party π
π NOTIFIES π
notifies get passed to userland via devd(8). check /etc/devd.conf and devd.conf(5) for examples. the acpi_thermal driver sends events with these attributes:
systemβACPIsubsystemβThermaltypeβ the fully qualified thermal zone object path as in the ASLnotifyβ an integer designating the event:0x80β current temperature has changed.0x81β one or more trip points (_ACx,_PSV) have changed.0x82β one or more device lists (_ALx,_PSL,_TZD) have changed.0xccβ non-standard notify that the system will shutdown if the temperature stays above_CRTor_HOTfor one more poll cycle.
0xcc is genuinely the "girl put the laptop on a hard surface Right Now" notification π
π SEE ALSO π
acpi(4), cpufreq(4), acpidump(8)
go read them, they're all slaying in their own lanes π
π AUTHORS π
Michael Smith
and this manual page was written by Takanori Watanabe.
mwah π that's the whole page! this cutie came to you from the Debian crew, dated November 21, 2022 β ACPI_THERMAL(4), periodt. stay cool out there bestie, and i mean that literally πΈπ
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- nixpkgs unstable: source
- Copyright (c) 2003 Takanori Watanabe
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms