ASMC(4) BSD Kernel Interfaces Manual ASMC(4)NAME
asmc — device driver for the Apple System Management Console (SMC)
SYNOPSIS
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 loader.conf(5):
asmc_load="YES"
DESCRIPTION
The asmc driver controls the Apple System Management Console (SMC for
short) found 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.
Variables related to the SMC control and inspection are exported via
sysctl(3) under the device tree dev.asmc.
KEYBOARD BACKLIGHT
On MacBook Pro systems, you can control the keyboard brightness by writ‐
ing 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.
TEMPERATURES
The number of temperature sensors and their description varies among sys‐
tems. You can inspect the temperature sensors on your system by travers‐
ing the dev.asmc.temp sysctl MIB.
All values are in degrees celsius.
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 mininum speed
and the maximum speed respectively.
All values are in RPM.
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. 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 dramati‐
cally 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.
SEE ALSOataidle(8) (ports/sysutils/ataidle), devd(8), sysctl(8)HISTORY
The asmc driver first appeared in FreeBSD 8.0.
AUTHORS
Rui Paulo ⟨rpaulo@FreeBSD.org⟩ (Google Summer of Code project).
BUGS
Support for the latest models was never tested and is most likely not
fully working.
BSD July 27, 2009 BSD