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:
o MacBook
o MacBook Pro
o Intel MacMini
o Mac Pro
o MacBook Air
o Intel iMac
With this driver, you can configure your keyboard backlight brightness, check temperatures of several sensors, check the speed of the inter-
nal 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 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.
TEMPERATURES
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.
SYSTEM FANS
The dev.asmc.fan.%d sysctl tree contains the leaf nodes speed, safespeed, minspeed, maxspeed and targetspeed. Each of these leaf nodes rep-
resent 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 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.
SEE ALSO ataidle(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
Check Out this Related Man Page
AIBS(4) BSD Kernel Interfaces Manual AIBS(4)NAME
aibs -- ASUSTeK AI Booster ACPI ATK0110 voltage, temperature and fan sensor
SYNOPSIS
To compile this driver into the kernel, place the following line in your kernel configuration file:
device aibs
Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):
aibs_load="YES"
DESCRIPTION
The aibs driver provides support for the voltage, temperature and fan sensors available through the ATK0110 ASOC ACPI device on ASUSTeK moth-
erboards. The number of sensors of each type, as well as the description of each sensor, varies according to the motherboard.
The driver supports an arbitrary set of sensors, provides descriptions regarding what each sensor is used for, and reports the current values
as well as the supposed range specifications of each sensor's input as defined by the motherboard manufacturer through ACPI.
The range specifications are as follows:
o Voltage sensors have a lower and an upper range specification.
o Temperature sensors have two upper specifications.
o Fan sensors may either have only the lower specification, or, depending on the DSDT, one lower and one upper specification.
Sensor readings and the range specifications are made available through the sysctl(3) interface, and can be monitored with sysctl(8). For
example, on an ASUS V3-P5G965 barebone:
> sysctl dev.aibs.0.{volt,temp,fan}
dev.aibs.0.volt.0: 1192 850 1600
dev.aibs.0.volt.1: 3312 2970 3630
dev.aibs.0.volt.2: 5017 4500 5500
dev.aibs.0.volt.3: 12302 10200 13800
dev.aibs.0.temp.0: 28.0C 80.0C 95.0C
dev.aibs.0.temp.1: 55.0C 60.0C 95.0C
dev.aibs.0.fan.0: 878 600 7200
dev.aibs.0.fan.1: 0 700 7200
> sysctl -d dev.aibs.0.{volt,temp,fan}
dev.aibs.0.volt:
dev.aibs.0.volt.0: Vcore Voltage
dev.aibs.0.volt.1: +3.3 Voltage
dev.aibs.0.volt.2: +5 Voltage
dev.aibs.0.volt.3: +12 Voltage
dev.aibs.0.temp:
dev.aibs.0.temp.0: CPU Temperature
dev.aibs.0.temp.1: MB Temperature
dev.aibs.0.fan:
dev.aibs.0.fan.0: CPU FAN Speed
dev.aibs.0.fan.1: CHASSIS FAN Speed
Generally, sensors provided by the aibs driver may also be supported by certain other drivers or utilities that access the ISA / LPC or I2C /
SMBus devices directly. The precise collection of aibs sensors is comprised of the sensors specifically utilised in the motherboard design,
which may be supported through a combination of one or more physical hardware monitoring chips.
The aibs driver, however, provides the following advantages when compared to the native hardware monitoring drivers or other utilities:
o Sensor values from aibs are expected to be more reliable. For example, voltage sensors in many hardware monitoring chips can only sense
voltage from 0 to 2 or 4 volts, and the excessive voltage is removed by the resistors, which may vary with the motherboard and with the
voltage that is being sensed. In aibs, the required resistor factors are provided by the motherboard manufacturer through ACPI; in the
native drivers, the resistor factors are encoded into the driver based on the chip manufacturer's recommendations. In essence, sensor
values from aibs are very likely to be identical to the readings from the Hardware Monitor screen in the BIOS.
o Sensor descriptions from aibs are more likely to match the markings on the motherboard.
o Sensor range specifications are supported by aibs. The range specification is reported for each individual sensor as suggested by the
motherboard manufacturer. For example, the threshold for the CPU temperature sensor is likely to be significantly higher than that for
the chassis temperature sensor.
o Support for newer chips in aibs. Newer chips may miss a native driver, but should be supported through aibs regardless.
SEE ALSO sysctl(3), acpi(4), sysctl(8)HISTORY
The aibs driver first appeared in OpenBSD 4.7, DragonFly 2.5, NetBSD 6.0 and FreeBSD 9.0.
An earlier version of the driver, acpi_aiboost, first appeared in FreeBSD 7.0 and NetBSD 5.0.
AUTHORS
The aibs driver was written for OpenBSD, DragonFly, NetBSD and FreeBSD by Constantine A. Murenin <cnst@FreeBSD.org>, Raouf Boutaba Research
Group, David R. Cheriton School of Computer Science, University of Waterloo.
An earlier version of the driver, named acpi_aiboost, was written for FreeBSD by Takanori Watanabe.
BSD April 4, 2010 BSD