Provided by: freebsd-manpages_12.2-1_all bug


     asmc — device driver for the Apple System Management Controller (SMC)


     To compile this driver into the kernel, place the following line in your kernel
     configuration file:

           device asmc

     Alternatively, to load the driver as a module at boot time, place the following line in



     The asmc driver controls the Apple System Management Controller (SMC for short) found on
     Intel Apple systems.

     The SMC is known to be found on the following systems:

              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.

     Variables related to the SMC control and inspection are exported via sysctl(3) under the
     device tree dev.asmc.


     On MacBook Pro systems, you can control the keyboard brightness by writing a value to the
     dev.asmc.%d.light.control sysctl MIB.

     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.


     The number of temperature sensors and their description varies among systems.  You can
     inspect the temperature sensors on your system by traversing the dev.asmc.temp sysctl MIB.

     All values are in degrees celsius.


     The 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.

     All values are in RPM.


     The Sudden Motion Sensor (SMS for short) is a device that detects laptop movement and
     notifies the operating system via an interrupt.  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.

     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.


     ataidle(8) (ports/sysutils/ataidle), devd(8), sysctl(8)


     The asmc driver first appeared in FreeBSD 8.0.


     Rui Paulo <> (Google Summer of Code project)


     Support for the latest models was never tested and is most likely not fully working.