ACPI_THERMAL(4)
β¨ acpi_thermal β ACPI thermal management subsystem π
okay bestie, welcome to ACPI_THERMAL(4), straight out of the Kernel Interfaces Manual π β this is the page about the driver that keeps your machine from literally cooking itself π₯. it's giving "your laptop's personal bodyguard," no cap.
πΈ NAME πΈ
acpi_thermal β the ACPI thermal management subsystem. yes, the whole vibe is "temperature, but make it handled."
π SYNOPSIS π
device acpi
that's it. that's the whole summoning ritual π
π¦ DESCRIPTION π¦
so the acpi_thermal driver is the part of the ACPI module that does the thermal management glow-up. it comes with two whole interfaces, and honestly, obsessed:
the sysctls spill all the tea about every ACPI thermal zone object's properties. β¨
here's the thing β a system can have multiple thermal zones, like, a lot of them. for example, every CPU and the enclosure could each be their own separate thermal zone, and each one has its own setpoints and its own cooling devices. main character energy for every zone, fr fr. thermal zones get numbered sequentially in the order they show up in the AML. π’
and the driver doesn't just sit there being cute β it also activates the active cooling system according to each thermal zone's setpoints. it's doing the work. π
π SYSCTL VARIABLES π
hw.acpi.thermal.min_runtimeβ how many seconds to keep active cooling going once it's already started. a new active cooling level won't get picked until this interval has fully expired. like, let the fans finish their moment. πhw.acpi.thermal.polling_rateβ how many seconds between polls of the current temperature. that's the vibe check interval. π‘οΈhw.acpi.thermal.user_overrideβ if you set this to1, you're allowed to override the various setpoints listed below. the original values for these settings come from the BIOS, so changing them means system overheating and possible damage could occur π β yes, actual hardware damage, this is not a drill. default is0(no override). don't be messy with this one.hw.acpi.thermal.tz%d.activeβ the current active cooling system state. if this is non-negative, the appropriate_AC%dobject is running. set this value to the active cooling level you want to force the corresponding fan object to that level. you're literally the DJ of the fans. ποΈhw.acpi.thermal.tz%d.passive_coolingβ if set to1, passive cooling is enabled. this is the chill-but-fanless route: it does its cooling usingcpufreq(4)as the mechanism for controlling CPU speed. default is enabled fortz0, where it's available. π’hw.acpi.thermal.tz%d.thermal_flagsβ the current thermal zone status. these are bit-masked values. π³οΈhw.acpi.thermal.tz%d.temperatureβ the current temperature for this zone. the moment of truth. πhw.acpi.thermal.tz%d._PSVβ the temperature that starts passive cooling by throttling down the CPU, etc. this value can be overridden by the user. βοΈhw.acpi.thermal.tz%d._HOTβ the temperature that starts critical suspend to disk (S4). this value can be overridden by the user. π€hw.acpi.thermal.tz%d._CRTβ the temperature that starts critical shutdown (S5). this value can be overridden by the user. πhw.acpi.thermal.tz%d._ACxβ the temperatures at which to switch to the corresponding active cooling level. the lower the_ACxvalue, the higher the cooling power. so like, tiny number = big fan energy. ππ₯
all temperatures are printed in Celsius. you can set values in Celsius by giving a trailing "C", or in Kelvin by leaving off any trailing letter. and listen β when you're setting a value via sysctl(8), do not put a trailing decimal. it's 90C, not 90.0C. keep it clean, bestie. π§Ό
π NOTIFIES π
notifies get passed to userland via devd(8). peep /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 ASL.notifyβ an integer designating the event:0x80β the 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β a non-standard notify meaning the system will shut down if the temperature stays above_CRTor_HOTfor one more poll cycle. π¨ like, this is the "last warning, bestie" notification. genuinely scary. take it seriously.
π«Ά SEE ALSO π«Ά
π AUTHORS π
Michael Smith
this manual page was written by Takanori Watanabe.
lowkey the whole point of this page: your thermal zones have setpoints, your fans have levels, and the BIOS had opinions before you did. respect the defaults unless you know what you're doing π
and that's the page, bestie β this one came from the Debian crew and it's dated March 17, 2007 π, so give it the little nostalgic kiss it deserves. stay cool (literally), and don't touch user_override unless you mean it. mwah ππ¦β¨
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2003 Takanori Watanabe
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms