summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/asmc.4
blob: 9b42d021e1aaffdb33463ff12b8c65408d3adf75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
.\"-
.\" Copyright (c) 2007, 2008, 2009 Rui Paulo <rpaulo@FreeBSD.org>
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
.\" DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
.\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd March 29, 2026
.Dt ASMC 4
.Os
.Sh NAME
.Nm asmc
.Nd device driver for the Apple System Management Controller (SMC)
.Sh SYNOPSIS
To compile this driver into the kernel, place the following line in your
kernel configuration file:
.Bd -ragged -offset indent
.Cd "device asmc"
.Ed
.Pp
Alternatively, to load the driver as a
module at boot time, place the following line in
.Xr loader.conf 5 :
.Bd -literal -offset indent
asmc_load="YES"
.Ed
.Sh DESCRIPTION
The
.Nm
driver controls the Apple System Management Controller (SMC for short)
found on Intel Apple systems.
.Pp
The SMC is known to be found on the following systems:
.Pp
.Bl -bullet -offset indent -compact
.It
MacBook
.It
MacBook Pro
.It
Intel MacMini
.It
Mac Pro
.It
MacBook Air
.It
Intel iMac
.El
.Pp
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.
.Pp
Variables related to the SMC control and inspection are exported via
.Xr sysctl 3
under the device tree
.Va dev.asmc .
.Sh KEYBOARD BACKLIGHT
On
.Tn MacBook Pro
systems, you can control the keyboard brightness by writing a value to
the
.Va dev.asmc.%d.light.control
sysctl MIB or with
.Xr backlight 8
utility.
.Pp
The following sysctl MIBs contains the raw value returned by the left
and right light sensors:
.Va dev.asmc.%d.light.left
or
.Va dev.asmc.%d.light.right .
.Sh TEMPERATURES
The number of temperature sensors and their description varies among
systems.
You can inspect the temperature sensors on your system by traversing
the
.Va dev.asmc.temp
sysctl MIB.
.Pp
All values are in degrees celsius.
.Sh SYSTEM FANS
The
.Va dev.asmc.fan.%d
sysctl tree contains the leaf nodes
.Va speed ,
.Va safespeed ,
.Va minspeed ,
.Va maxspeed
and
.Va targetspeed .
Each of these leaf nodes represent the current fan speed, the safest
minimum fan speed, the minimum speed and the maximum speed
respectively.
.Pp
All values are in RPM.
.Sh RAW SMC KEY ACCESS
When the kernel is compiled with the
.Dv ASMC_DEBUG
option, a set of sysctl nodes is provided under
.Va dev.asmc.%d.raw
for reading and writing arbitrary SMC keys by name.
.Pp
.Bl -tag -width "dev.asmc.%d.raw.value" -compact
.It Va dev.asmc.%d.raw.key
Set the 4-character SMC key name to access (e.g.,\&
.Dq AUPO ) .
Setting this automatically queries the key's length and type.
.It Va dev.asmc.%d.raw.value
Read or write the key's value as a hex string.
.It Va dev.asmc.%d.raw.len
The auto-detected value length in bytes (read-only).
.It Va dev.asmc.%d.raw.type
The 4-character SMC type string (e.g.,\&
.Dq ui8 ,
.Dq flt )
(read-only).
.El
.Pp
Example usage:
.Bd -literal -offset indent
sysctl dev.asmc.0.raw.key=AUPO
sysctl dev.asmc.0.raw.value
sysctl dev.asmc.0.raw.value=01
.Ed
.Sh 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
.Va dev.asmc.sms
all relate to the SMS.
.Pp
The most interesting usage of this device is to park the disk heads
when the laptop is moved harshly.
First, you need to install
.Xr ataidle 8 Pq Pa ports/sysutils/ataidle
and then configure
.Xr devd 8
the following way:
.Bd -literal -offset indent
notify 0 {
	match "system"		"ACPI";
	match "subsystem"	"asmc";
	action			"/usr/local/sbin/ataidle -s X Y";
};
.Ed
.Pp
Do not forget to change the
.Ar X
and
.Ar Y
values in the command above.
.Pp
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.
.Sh FILES
.Bl -tag -width ".Pa /dev/backlight/asmc0" -compact
.It Pa /dev/backlight/asmc0
Keyboard
.Xr backlight 8
device node.
.Sh SEE ALSO
.Xr ataidle 8 Pq Pa ports/sysutils/ataidle ,
.Xr backlight 8 ,
.Xr devd 8 ,
.Xr sysctl 8
.Sh HISTORY
The
.Nm
driver first appeared in
.Fx 8.0 .
.Sh AUTHORS
.An Rui Paulo Aq Mt rpaulo@FreeBSD.org
(Google Summer of Code project)
.Sh BUGS
Support for the latest models was never tested and is most likely not
fully working.