ASMC(4)
π ASMC(4) β the kernel interfaces manual, but make it cute π
okay bestie, welcome to the asmc(4) page, the one and only kernel interfaces manual entry for our beloved Apple System Management Controller driver π like literally it's the group chat lore you need.
β¨ NAME β¨
asmc β device driver for the Apple System Management Controller (SMC) π
π SYNOPSIS π
So you wanna compile this driver into the kernel? slay. drop this line into your kernel configuration file:
device asmc
Orrr if you'd rather load it as a module at boot time (lowkey the easy route), put this line in loader.conf(5):
asmc_load="YES"
periodt π
πΈ DESCRIPTION πΈ
The asmc driver runs the Apple System Management Controller (SMC for short, iykyk) that lives on Intel Apple systems.
The SMC is known to be found on the following systems:
- MacBook
- MacBook Pro
- Intel MacMini
- Mac Pro
- MacBook Air
- Intel iMac
With this driver you can configure your keyboard backlight brightness β¨, check temperatures of several sensors π‘οΈ, check the speed of the internal fans π, and check the status of the Sudden Motion Sensor. not me getting everything at once, it's giving full system awareness.
Variables related to the SMC control and inspection are exported via sysctl(3) under the device tree dev.asmc. that's the main character address, remember it π«Ά
π‘ KEYBOARD BACKLIGHT π‘
On MacBook Pro systems, you can control the keyboard brightness by writing a value to the dev.asmc.%d.light.control sysctl MIB. yes bestie, you literally type a number and the vibes change π
The following sysctl MIBs contains the raw value returned by the left and right light sensors: dev.asmc.%d.light.left or dev.asmc.%d.light.right. raw data, no filter, iconic.
π‘οΈ TEMPERATURES π‘οΈ
The number of temperature sensors and their description varies among systems. so like, don't expect yours to match your friend's, every machine is unique and we respect that π
You can inspect the temperature sensors on your system by traversing the dev.asmc.temp sysctl MIB.
All values are in degrees celsius. celsius girlies rise up π₯
π SYSTEM FANS π
The dev.asmc.fan.%d sysctl tree contains the leaf nodes speed, safespeed, minspeed, maxspeed and targetspeed. Each of these leaf nodes represent the current fan speed, the safest minimum fan speed, the minimum speed and the maximum speed respectively. five little leaves, all doing their thing π«
All values are in RPM. spin spin spin.
π¦ SUDDEN MOTION SENSOR π¦
The Sudden Motion Sensor (SMS for short) is a device that detects laptop movement and notifies the operating system via an interrupt. it's literally the klutz alarm, obsessed π
The sysctl MIBs present under dev.asmc.sms all relate to the SMS.
The most interesting usage of this device is to park the disk heads when the laptop is moved harshly. First, you need to install ataidle(8) (ports/sysutils/ataidle) and then configure devd(8) the following way:
notify 0 {
match "system" "ACPI";
match "subsystem" "asmc";
action "/usr/local/sbin/ataidle -s X Y";
};
Do not forget to change the X and Y values in the command above. fr fr, don't leave the placeholders in there, that's not the move π
ββοΈ
Also, please note that parking the disk heads too many times can dramatically reduce your hard drive's life span. π do not rely solely on the SMS to protect your hard drive: good care and common sense can increase your hard drive's life. treat your drive like the queen she is π
π SEE ALSO π
π HISTORY π
The asmc driver first appeared in FreeBSD 8.0. a true veteran, we stan a legacy icon β
π«Ά AUTHORS π«Ά
Rui Paulo <rpaulo@FreeBSD.org> (Google Summer of Code project). thank you for your service, king π
π BUGS π
Support for the latest models was never tested and is most likely not fully working. so like, don't come for her, she's doing her best π
and that's the whole page bestie!! this little gem is from the <strong>Debian</strong> fam, dated <strong>April 2, 2019</strong>, and it lives as <strong>ASMC(4)</strong> in the kernel interfaces manual π bye bye, go touch some sysctls πβ¨
π¦ 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) 2007, 2008, 2009 Rui Paulo <rpaulo@FreeBSD.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms