summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/asmc.4 3.html
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:43 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:43 -0400
commitac5e55f5f2af5b92794c2aded46c6bae85b5f5ed (patch)
tree9367490586c84cba28652e443e3166d66c33b0d9 /static/freebsd/man4/asmc.4 3.html
parent253e67c8b3a72b3a4757fdbc5845297628db0a4a (diff)
docs: Added All FreeBSD Manuals
Diffstat (limited to 'static/freebsd/man4/asmc.4 3.html')
-rw-r--r--static/freebsd/man4/asmc.4 3.html164
1 files changed, 164 insertions, 0 deletions
diff --git a/static/freebsd/man4/asmc.4 3.html b/static/freebsd/man4/asmc.4 3.html
new file mode 100644
index 00000000..94a058c9
--- /dev/null
+++ b/static/freebsd/man4/asmc.4 3.html
@@ -0,0 +1,164 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">ASMC(4)</td>
+ <td class="head-vol">Device Drivers Manual</td>
+ <td class="head-rtitle">ASMC(4)</td>
+ </tr>
+</table>
+<div class="manual-text">
+<section class="Sh">
+<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
+<p class="Pp"><code class="Nm">asmc</code> &#x2014; <span class="Nd">device
+ driver for the Apple System Management Controller (SMC)</span></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
+<p class="Pp">To compile this driver into the kernel, place the following line
+ in your kernel configuration file:</p>
+<div class="Bd Pp Bd-indent"><code class="Cd">device asmc</code></div>
+<p class="Pp">Alternatively, to load the driver as a module at boot time, place
+ the following line in <a class="Xr">loader.conf(5)</a>:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>asmc_load=&quot;YES&quot;</pre>
+</div>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<p class="Pp">The <code class="Nm">asmc</code> driver controls the Apple System
+ Management Controller (SMC for short) found on Intel Apple systems.</p>
+<p class="Pp">The SMC is known to be found on the following systems:</p>
+<p class="Pp"></p>
+<ul class="Bl-bullet Bd-indent Bl-compact">
+ <li>MacBook</li>
+ <li>MacBook Pro</li>
+ <li>Intel MacMini</li>
+ <li>Mac Pro</li>
+ <li>MacBook Air</li>
+ <li>Intel iMac</li>
+</ul>
+<p class="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.</p>
+<p class="Pp">Variables related to the SMC control and inspection are exported
+ via <a class="Xr">sysctl(3)</a> under the device tree
+ <var class="Va">dev.asmc</var>.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="KEYBOARD_BACKLIGHT"><a class="permalink" href="#KEYBOARD_BACKLIGHT">KEYBOARD
+ BACKLIGHT</a></h1>
+<p class="Pp">On MacBook Pro systems, you can control the keyboard brightness by
+ writing a value to the <var class="Va">dev.asmc.%d.light.control</var>
+ sysctl MIB or with <a class="Xr">backlight(8)</a> utility.</p>
+<p class="Pp">The following sysctl MIBs contains the raw value returned by the
+ left and right light sensors: <var class="Va">dev.asmc.%d.light.left</var>
+ or <var class="Va">dev.asmc.%d.light.right</var>.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="TEMPERATURES"><a class="permalink" href="#TEMPERATURES">TEMPERATURES</a></h1>
+<p class="Pp">The number of temperature sensors and their description varies
+ among systems. You can inspect the temperature sensors on your system by
+ traversing the <var class="Va">dev.asmc.temp</var> sysctl MIB.</p>
+<p class="Pp">All values are in degrees celsius.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYSTEM_FANS"><a class="permalink" href="#SYSTEM_FANS">SYSTEM
+ FANS</a></h1>
+<p class="Pp">The <var class="Va">dev.asmc.fan.%d</var> sysctl tree contains the
+ leaf nodes <var class="Va">speed</var>, <var class="Va">safespeed</var>,
+ <var class="Va">minspeed</var>, <var class="Va">maxspeed</var> and
+ <var class="Va">targetspeed</var>. Each of these leaf nodes represent the
+ current fan speed, the safest minimum fan speed, the minimum speed and the
+ maximum speed respectively.</p>
+<p class="Pp">All values are in RPM.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="RAW_SMC_KEY_ACCESS"><a class="permalink" href="#RAW_SMC_KEY_ACCESS">RAW
+ SMC KEY ACCESS</a></h1>
+<p class="Pp">When the kernel is compiled with the
+ <code class="Dv">ASMC_DEBUG</code> option, a set of sysctl nodes is provided
+ under <var class="Va">dev.asmc.%d.raw</var> for reading and writing
+ arbitrary SMC keys by name.</p>
+<p class="Pp"></p>
+<dl class="Bl-tag Bl-compact">
+ <dt id="dev.asmc._d.raw.key"><var class="Va">dev.asmc.%d.raw.key</var></dt>
+ <dd>Set the 4-character SMC key name to access (e.g., &#x201C;AUPO&#x201D;).
+ Setting this automatically queries the key's length and type.</dd>
+ <dt id="dev.asmc._d.raw.value"><var class="Va">dev.asmc.%d.raw.value</var></dt>
+ <dd>Read or write the key's value as a hex string.</dd>
+ <dt id="dev.asmc._d.raw.len"><var class="Va">dev.asmc.%d.raw.len</var></dt>
+ <dd>The auto-detected value length in bytes (read-only).</dd>
+ <dt id="dev.asmc._d.raw.type"><var class="Va">dev.asmc.%d.raw.type</var></dt>
+ <dd>The 4-character SMC type string (e.g., &#x201C;ui8&#x201D;,
+ &#x201C;flt&#x201D;) (read-only).</dd>
+</dl>
+<p class="Pp">Example usage:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>sysctl dev.asmc.0.raw.key=AUPO
+sysctl dev.asmc.0.raw.value
+sysctl dev.asmc.0.raw.value=01</pre>
+</div>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SUDDEN_MOTION_SENSOR"><a class="permalink" href="#SUDDEN_MOTION_SENSOR">SUDDEN
+ MOTION SENSOR</a></h1>
+<p class="Pp">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 <var class="Va">dev.asmc.sms</var> all relate to
+ the SMS.</p>
+<p class="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
+ <a class="Xr">ataidle(8)</a>
+ (<span class="Pa">ports/sysutils/ataidle</span>) and then configure
+ <a class="Xr">devd(8)</a> the following way:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>notify 0 {
+ match &quot;system&quot; &quot;ACPI&quot;;
+ match &quot;subsystem&quot; &quot;asmc&quot;;
+ action &quot;/usr/local/sbin/ataidle -s X Y&quot;;
+};</pre>
+</div>
+<p class="Pp">Do not forget to change the <var class="Ar">X</var> and
+ <var class="Ar">Y</var> values in the command above.</p>
+<p class="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.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1>
+<dl class="Bl-tag Bl-compact">
+ <dt><span class="Pa">/dev/backlight/asmc0</span></dt>
+ <dd>Keyboard <a class="Xr">backlight(8)</a> device node.</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
+ ALSO</a></h1>
+<p class="Pp"><a class="Xr">ataidle(8)</a>
+ (<span class="Pa">ports/sysutils/ataidle</span>),
+ <a class="Xr">backlight(8)</a>, <a class="Xr">devd(8)</a>,
+ <a class="Xr">sysctl(8)</a></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
+<p class="Pp">The <code class="Nm">asmc</code> driver first appeared in
+ <span class="Ux">FreeBSD 8.0</span>.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
+<p class="Pp"><span class="An">Rui Paulo</span>
+ &lt;<a class="Mt" href="mailto:rpaulo@FreeBSD.org">rpaulo@FreeBSD.org</a>&gt;
+ (Google Summer of Code project)</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
+<p class="Pp">Support for the latest models was never tested and is most likely
+ not fully working.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">March 29, 2026</td>
+ <td class="foot-os">FreeBSD 15.0</td>
+ </tr>
+</table>