xref: /dflybsd-src/share/man/man4/acpi_thinkpad.4 (revision 20befb6e66424ec48be9a2db4b8611ff54a0873c)
1f2948e36SHasso Tepper.\" Copyright (c) 2005 Christian Brueffer
2f2948e36SHasso Tepper.\" Copyright (c) 2005 Markus Brueffer
3f2948e36SHasso Tepper.\" All rights reserved.
4f2948e36SHasso Tepper.\"
5f2948e36SHasso Tepper.\" Redistribution and use in source and binary forms, with or without
6f2948e36SHasso Tepper.\" modification, are permitted provided that the following conditions
7f2948e36SHasso Tepper.\" are met:
8f2948e36SHasso Tepper.\" 1. Redistributions of source code must retain the above copyright
9f2948e36SHasso Tepper.\"    notice, this list of conditions and the following disclaimer.
10f2948e36SHasso Tepper.\" 2. Redistributions in binary form must reproduce the above copyright
11f2948e36SHasso Tepper.\"    notice, this list of conditions and the following disclaimer in the
12f2948e36SHasso Tepper.\"    documentation and/or other materials provided with the distribution.
13f2948e36SHasso Tepper.\"
14f2948e36SHasso Tepper.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15f2948e36SHasso Tepper.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16f2948e36SHasso Tepper.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17f2948e36SHasso Tepper.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18f2948e36SHasso Tepper.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19f2948e36SHasso Tepper.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20f2948e36SHasso Tepper.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21f2948e36SHasso Tepper.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22f2948e36SHasso Tepper.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23f2948e36SHasso Tepper.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24f2948e36SHasso Tepper.\" SUCH DAMAGE.
25f2948e36SHasso Tepper.\"
26*20befb6eSPierre-Alain TORET.\" $FreeBSD: head/share/man/man4/acpi_ibm.4 358333 2020-02-26 14:26:36Z kaktus $
27f2948e36SHasso Tepper.\"
28*20befb6eSPierre-Alain TORET.Dd June 1, 2020
2921041a1aSSascha Wildner.Dt ACPI_THINKPAD 4
30f2948e36SHasso Tepper.Os
31f2948e36SHasso Tepper.Sh NAME
32f2948e36SHasso Tepper.Nm acpi_thinkpad
33*20befb6eSPierre-Alain TORET.Nd "ThinkPad ACPI extras driver"
34f2948e36SHasso Tepper.Sh SYNOPSIS
35f2948e36SHasso TepperTo compile this driver into the kernel,
36f2948e36SHasso Tepperplace the following line in your
37f2948e36SHasso Tepperkernel configuration file:
38f2948e36SHasso Tepper.Bd -ragged -offset indent
39f2948e36SHasso Tepper.Cd "device acpi_thinkpad"
40f2948e36SHasso Tepper.Ed
41f2948e36SHasso Tepper.Pp
42f2948e36SHasso TepperAlternatively, to load the driver as a
43f2948e36SHasso Teppermodule at boot time, place the following line in
44f2948e36SHasso Tepper.Xr loader.conf 5 :
45f2948e36SHasso Tepper.Bd -literal -offset indent
46f2948e36SHasso Tepperacpi_thinkpad_load="YES"
47f2948e36SHasso Tepper.Ed
48f2948e36SHasso Tepper.Sh DESCRIPTION
49f2948e36SHasso TepperThe
50f2948e36SHasso Tepper.Nm
51*20befb6eSPierre-Alain TORETdriver provides support for hotkeys and other components of ThinkPad laptops.
52f2948e36SHasso TepperThe main purpose of this driver is to provide an interface,
53f2948e36SHasso Tepperaccessible via
548dfecc5fSSascha Wildner.Xr sysctl 8
55b82fb0eeSHasso Tepperand
56b82fb0eeSHasso Tepper.Xr devd 8 ,
57f2948e36SHasso Tepperthrough which applications can determine the status of
58f2948e36SHasso Teppervarious laptop components.
59b82fb0eeSHasso Tepper.Pp
60b82fb0eeSHasso TepperWhile the
61b82fb0eeSHasso Tepper.Xr sysctl 8
62b82fb0eeSHasso Tepperinterface is enabled automatically after loading the driver, the
63b82fb0eeSHasso Tepper.Xr devd 8
64b82fb0eeSHasso Tepperinterface has to be enabled explicitly, as it may alter the default action of
65b82fb0eeSHasso Teppercertain keys.
66b82fb0eeSHasso TepperThis is done by setting the
67b82fb0eeSHasso Tepper.Va events
68b82fb0eeSHasso Teppersysctl as described below.
69b82fb0eeSHasso TepperSpecifying which keys should generate events is done by setting a bitmask,
70b82fb0eeSHasso Tepperwhereas each bit represents one key or key combination.
71b82fb0eeSHasso TepperThis bitmask, accessible via the
72b82fb0eeSHasso Tepper.Va eventmask
73b82fb0eeSHasso Teppersysctl, is set to
74b82fb0eeSHasso Tepper.Va availmask
75b82fb0eeSHasso Tepperby default, a value representing all possible keypress events on the specific
76b82fb0eeSHasso TepperThinkPad model.
77*20befb6eSPierre-Alain TORET.Ss Xr devd 8 Events
78b82fb0eeSHasso TepperHotkey events received by
79b82fb0eeSHasso Tepper.Xr devd 8
80b82fb0eeSHasso Tepperprovide the following information:
81b82fb0eeSHasso Tepper.Pp
82b82fb0eeSHasso Tepper.Bl -tag -width "subsystem" -offset indent -compact
83b82fb0eeSHasso Tepper.It system
84b82fb0eeSHasso Tepper.Qq Li ACPI
85b82fb0eeSHasso Tepper.It subsystem
86b82fb0eeSHasso Tepper.Qq Li THINKPAD
87b82fb0eeSHasso Tepper.It type
88b82fb0eeSHasso TepperThe source of the event in the ACPI namespace.
89b82fb0eeSHasso TepperThe value depends on the model.
90b82fb0eeSHasso Tepper.It notify
91b82fb0eeSHasso TepperEvent code (see below).
92b82fb0eeSHasso Tepper.El
93b82fb0eeSHasso Tepper.Pp
94b82fb0eeSHasso TepperDepending on the ThinkPad model, event codes may vary.
95b82fb0eeSHasso TepperOn a ThinkPad T41p these are as follows:
96b82fb0eeSHasso Tepper.Pp
97b82fb0eeSHasso Tepper.Bl -tag -width "subsystem" -offset indent -compact
98b82fb0eeSHasso Tepper.It Li 0x01
99b82fb0eeSHasso TepperFn + F1
100b82fb0eeSHasso Tepper.It Li 0x02
101b82fb0eeSHasso TepperFn + F2
102b82fb0eeSHasso Tepper.It Li 0x03
103b82fb0eeSHasso TepperFn + F3 (LCD backlight)
104b82fb0eeSHasso Tepper.It Li 0x04
105b82fb0eeSHasso TepperFn + F4 (Suspend to RAM)
106b82fb0eeSHasso Tepper.It Li 0x05
107b82fb0eeSHasso TepperFn + F5 (Bluetooth)
108b82fb0eeSHasso Tepper.It Li 0x06
109b82fb0eeSHasso TepperFn + F6
110b82fb0eeSHasso Tepper.It Li 0x07
111b82fb0eeSHasso TepperFn + F7 (Screen expand)
112b82fb0eeSHasso Tepper.It Li 0x08
113b82fb0eeSHasso TepperFn + F8
114b82fb0eeSHasso Tepper.It Li 0x09
115b82fb0eeSHasso TepperFn + F9
116b82fb0eeSHasso Tepper.It Li 0x0a
117b82fb0eeSHasso TepperFn + F10
118b82fb0eeSHasso Tepper.It Li 0x0b
119b82fb0eeSHasso TepperFn + F11
120b82fb0eeSHasso Tepper.It Li 0x0c
121b82fb0eeSHasso TepperFn + F12 (Suspend to disk)
122b82fb0eeSHasso Tepper.It Li 0x0d
123b82fb0eeSHasso TepperFn + Backspace
124b82fb0eeSHasso Tepper.It Li 0x0e
125b82fb0eeSHasso TepperFn + Insert
126b82fb0eeSHasso Tepper.It Li 0x0f
127b82fb0eeSHasso TepperFn + Delete
128b82fb0eeSHasso Tepper.It Li 0x10
129b82fb0eeSHasso TepperFn + Home (Brightness up)
130b82fb0eeSHasso Tepper.It Li 0x11
131b82fb0eeSHasso TepperFn + End (Brightness down)
132b82fb0eeSHasso Tepper.It Li 0x12
133b82fb0eeSHasso TepperFn + PageUp (ThinkLight)
134b82fb0eeSHasso Tepper.It Li 0x13
135b82fb0eeSHasso TepperFn + PageDown
136b82fb0eeSHasso Tepper.It Li 0x14
137b82fb0eeSHasso TepperFn + Space (Zoom)
138b82fb0eeSHasso Tepper.It Li 0x15
139b82fb0eeSHasso TepperVolume Up
140b82fb0eeSHasso Tepper.It Li 0x16
141b82fb0eeSHasso TepperVolume Down
142b82fb0eeSHasso Tepper.It Li 0x17
143b82fb0eeSHasso TepperMute
144b82fb0eeSHasso Tepper.It Li 0x18
145*20befb6eSPierre-Alain TORETAccess THINKPAD Button
146b82fb0eeSHasso Tepper.El
147*20befb6eSPierre-Alain TORET.Ss Xr led 4 Interface
148e9283513SSascha WildnerThe
149e9283513SSascha Wildner.Nm
150e9283513SSascha Wildnerdriver provides a
151e9283513SSascha Wildner.Xr led 4
152e9283513SSascha Wildnerinterface for the ThinkLight.
153e9283513SSascha WildnerThe ThinkLight can be made to blink by writing
154e9283513SSascha Wildner.Tn ASCII
155e9283513SSascha Wildnerstrings to the
156e9283513SSascha Wildner.Pa /dev/led/thinklight
157e9283513SSascha Wildnerdevice.
158f2948e36SHasso Tepper.Sh SYSCTL VARIABLES
159f2948e36SHasso TepperThe following sysctls are currently implemented:
160f2948e36SHasso Tepper.Bl -tag -width indent
161*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.initialmask
162f2948e36SHasso Tepper(read-only)
163f2948e36SHasso TepperBitmask of ACPI events before the
164f2948e36SHasso Tepper.Nm
165f2948e36SHasso Tepperdriver was loaded.
166*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.availmask
167f2948e36SHasso Tepper(read-only)
168f2948e36SHasso TepperBitmask of all supported ACPI events.
169*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.events
170f2948e36SHasso TepperEnable ACPI events and set the
171f2948e36SHasso Tepper.Va eventmask
172f2948e36SHasso Tepperto
173f2948e36SHasso Tepper.Va availmask .
174f2948e36SHasso TepperWithout the
175f2948e36SHasso Tepper.Nm
176f2948e36SHasso Tepperdriver being loaded, only the Fn+F4 button generates an ACPI event.
177*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.eventmask
178f2948e36SHasso TepperSets the ACPI events which are reported to
1792f5aa587SSascha Wildner.Xr devd 8 .
180f2948e36SHasso TepperFn+F3, Fn+F4 and Fn+F12 always generate ACPI events, regardless which value
181f2948e36SHasso Tepper.Va eventmask
182f2948e36SHasso Tepperhas.
183f2948e36SHasso TepperDepending on the ThinkPad model, the meaning of different bits in the
184f2948e36SHasso Tepper.Va eventmask
185f2948e36SHasso Teppermay vary.
186f2948e36SHasso TepperOn a ThinkPad T41p this is a bitwise OR of the following:
187f2948e36SHasso Tepper.Pp
188f2948e36SHasso Tepper.Bl -tag -width indent-two -compact
189f2948e36SHasso Tepper.It Li 1
190f2948e36SHasso TepperFn + F1
191f2948e36SHasso Tepper.It Li 2
192f2948e36SHasso TepperFn + F2
193f2948e36SHasso Tepper.It Li 4
194f2948e36SHasso TepperFn + F3 (LCD backlight)
195f2948e36SHasso Tepper.It Li 8
196f2948e36SHasso TepperFn + F4 (Suspend to RAM)
197f2948e36SHasso Tepper.It Li 16
198f2948e36SHasso TepperFn + F5 (Bluetooth)
199f2948e36SHasso Tepper.It Li 32
200f2948e36SHasso TepperFn + F6
201f2948e36SHasso Tepper.It Li 64
202f2948e36SHasso TepperFn + F7 (Screen expand)
203f2948e36SHasso Tepper.It Li 128
204f2948e36SHasso TepperFn + F8
205f2948e36SHasso Tepper.It Li 256
206f2948e36SHasso TepperFn + F9
207f2948e36SHasso Tepper.It Li 512
208f2948e36SHasso TepperFn + F10
209f2948e36SHasso Tepper.It Li 1024
210f2948e36SHasso TepperFn + F11
211f2948e36SHasso Tepper.It Li 2048
212f2948e36SHasso TepperFn + F12 (Suspend to disk)
213f2948e36SHasso Tepper.It Li 4096
214f2948e36SHasso TepperFn + Backspace
215f2948e36SHasso Tepper.It Li 8192
216f2948e36SHasso TepperFn + Insert
217f2948e36SHasso Tepper.It Li 16384
218f2948e36SHasso TepperFn + Delete
219f2948e36SHasso Tepper.It Li 32768
220f2948e36SHasso TepperFn + Home (Brightness up)
221f2948e36SHasso Tepper.It Li 65536
222f2948e36SHasso TepperFn + End (Brightness down)
223f2948e36SHasso Tepper.It Li 131072
224f2948e36SHasso TepperFn + PageUp (ThinkLight)
225f2948e36SHasso Tepper.It Li 262144
226f2948e36SHasso TepperFn + PageDown
227f2948e36SHasso Tepper.It Li 524288
228f2948e36SHasso TepperFn + Space (Zoom)
229f2948e36SHasso Tepper.It Li 1048576
230f2948e36SHasso TepperVolume Up
231f2948e36SHasso Tepper.It Li 2097152
232f2948e36SHasso TepperVolume Down
233f2948e36SHasso Tepper.It Li 4194304
234f2948e36SHasso TepperMute
235f2948e36SHasso Tepper.It Li 8388608
236*20befb6eSPierre-Alain TORETAccess THINKPAD Button
237f2948e36SHasso Tepper.El
238*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.hotkey
239f2948e36SHasso Tepper(read-only)
240f2948e36SHasso TepperStatus of several buttons.
241f2948e36SHasso TepperEvery time a button is pressed, the respecting bit is toggled.
242f2948e36SHasso TepperIt is a bitwise OR of the following:
243f2948e36SHasso Tepper.Pp
244f2948e36SHasso Tepper.Bl -tag -width indent-two -compact
245f2948e36SHasso Tepper.It Li 1
246f2948e36SHasso TepperHome Button
247f2948e36SHasso Tepper.It Li 2
248f2948e36SHasso TepperSearch Button
249f2948e36SHasso Tepper.It Li 4
250f2948e36SHasso TepperMail Button
251f2948e36SHasso Tepper.It Li 8
252*20befb6eSPierre-Alain TORETAccess THINKPAD Button
253f2948e36SHasso Tepper.It Li 16
254f2948e36SHasso TepperZoom
255f2948e36SHasso Tepper.It Li 32
256f2948e36SHasso TepperWireless LAN Button
257f2948e36SHasso Tepper.It Li 64
258f2948e36SHasso TepperVideo Button
259f2948e36SHasso Tepper.It Li 128
260f2948e36SHasso TepperHibernate Button
261f2948e36SHasso Tepper.It Li 256
262f2948e36SHasso TepperThinkLight Button
263f2948e36SHasso Tepper.It Li 512
264f2948e36SHasso TepperScreen Expand
265f2948e36SHasso Tepper.It Li 1024
266f2948e36SHasso TepperBrightness Up/Down Button
267f2948e36SHasso Tepper.It Li 2048
268f2948e36SHasso TepperVolume Up/Down/Mute Button
269f2948e36SHasso Tepper.El
270*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.lcd_brightness
271f2948e36SHasso TepperCurrent brightness level of the display.
272*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.volume
273f2948e36SHasso TepperSpeaker volume.
274*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.mute
275f2948e36SHasso TepperIndicates, whether the speakers are muted or not.
276*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.mic_mute
277*20befb6eSPierre-Alain TORETIndicates, whether the microphone led (present on some model) is on or not.
278*20befb6eSPierre-Alain TORETNote that this does not mean that the microphone input is muted.
279*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.thinklight
280f2948e36SHasso TepperIndicates, whether the ThinkLight keyboard light is activated or not.
281*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.bluetooth
282f2948e36SHasso TepperToggle Bluetooth chip activity.
283*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.wlan
284f2948e36SHasso Tepper(read-only)
285f2948e36SHasso TepperIndicates whether the WLAN chip is active or not.
286*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.fan
287f2948e36SHasso TepperIndicates whether the fan is in automatic (1) or manual (0) mode.
288f2948e36SHasso TepperDefault is automatic mode.
289f2948e36SHasso TepperThis sysctl should be used with extreme precaution, since disabling automatic
290f2948e36SHasso Tepperfan control might overheat the ThinkPad and lead to permanent damage if the
291f2948e36SHasso Tepper.Va fan_level
292f2948e36SHasso Tepperis not set accordingly.
293*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.fan_level
294f2948e36SHasso TepperIndicates at what speed the fan should run when being in manual mode.
295f2948e36SHasso TepperValues are ranging from 0 (off) to 7 (max).
296f2948e36SHasso TepperThe resulting speed differs from model to model.
297f2948e36SHasso TepperOn a T41p this is as follows:
298f2948e36SHasso Tepper.Pp
299f2948e36SHasso Tepper.Bl -tag -width indent-two -compact
300f2948e36SHasso Tepper.It Li 0
301f2948e36SHasso Tepperoff
302f2948e36SHasso Tepper.It Li 1, 2
303f2948e36SHasso Tepper~3000 RPM
304f2948e36SHasso Tepper.It Li 3, 4, 5
305f2948e36SHasso Tepper~3600 RPM
306f2948e36SHasso Tepper.It Li 6, 7
307f2948e36SHasso Tepper~4300 RPM
308f2948e36SHasso Tepper.El
309*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.fan_speed
3102f5aa587SSascha Wildner(read-only)
3112f5aa587SSascha WildnerFan speed in rounds per minute.
3122f5aa587SSascha WildnerA few older ThinkPads report the fan speed in levels ranging from 0 (off)
3132f5aa587SSascha Wildnerto 7 (max).
314*20befb6eSPierre-Alain TORET.It Va hw.acpi.thermal
3152f5aa587SSascha Wildner(read-only)
3162f5aa587SSascha WildnerShows the readings of up to eight different temperature sensors.
317f2948e36SHasso TepperMost ThinkPads include six or more temperature sensors but
318f2948e36SHasso Tepperonly expose the CPU temperature through
319f2948e36SHasso Tepper.Xr acpi_thermal 4 .
320f2948e36SHasso TepperSome ThinkPads have the below sensor layout which might vary depending on the
321f2948e36SHasso Tepperspecific model:
322f2948e36SHasso Tepper.Pp
323f2948e36SHasso Tepper.Bl -enum -compact
324f2948e36SHasso Tepper.It
325f2948e36SHasso TepperCPU
326f2948e36SHasso Tepper.It
327f2948e36SHasso TepperMini PCI Module
328f2948e36SHasso Tepper.It
329f2948e36SHasso TepperHDD
330f2948e36SHasso Tepper.It
331f2948e36SHasso TepperGPU
332f2948e36SHasso Tepper.It
333f2948e36SHasso TepperBuilt-in battery
334f2948e36SHasso Tepper.It
335f2948e36SHasso TepperUltraBay battery
336f2948e36SHasso Tepper.It
337f2948e36SHasso TepperBuilt-in battery
338f2948e36SHasso Tepper.It
339f2948e36SHasso TepperUltraBay battery
340f2948e36SHasso Tepper.El
341*20befb6eSPierre-Alain TORET.It Va dev.acpi_thinkpad.<node>.handlerevents
342a31756d0SMarkus Pfeiffer.Xr devd 8
343a31756d0SMarkus Pfeifferevents handled by
344a31756d0SMarkus Pfeiffer.Nm
345a31756d0SMarkus Pfeifferwhen
346a31756d0SMarkus Pfeiffer.Va events
347a31756d0SMarkus Pfeifferis set to 1.
348a31756d0SMarkus PfeifferEvents are specified as a whitespace-separated list of event code in
349a31756d0SMarkus Pfeifferhexadecimal or decimal form.
350a31756d0SMarkus PfeifferNote that the event may be handled twice (eg. Brightness up/down) if ACPI BIOS
351a31756d0SMarkus Pfeifferalready handled the event.
3522f5aa587SSascha Wildner.It Va hw.sensors.acpi_thinkpad0.tempX
3532f5aa587SSascha WildnerShow the readings of up to eight different temperature sensors.
354f2948e36SHasso Tepper.It Va hw.sensors.acpi_thinkpad0.fan0
355f2948e36SHasso TepperFan speed in rounds per minute.
356f2948e36SHasso Tepper.\" A few older ThinkPads report the fan speed in levels ranging from 0 (off)
357f2948e36SHasso Tepper.\" to 7 (max).
358f2948e36SHasso Tepper.El
359f2948e36SHasso Tepper.Pp
360f2948e36SHasso TepperDefaults for these sysctls can be set in
361f2948e36SHasso Tepper.Xr sysctl.conf 5 .
362f2948e36SHasso TepperSensors can be monitored by
363f2948e36SHasso Tepper.Xr sensorsd 8 .
364e9283513SSascha Wildner.Sh FILES
365e9283513SSascha Wildner.Bl -tag -width ".Pa /dev/led/thinklight"
366e9283513SSascha Wildner.It Pa /dev/led/thinklight
367e9283513SSascha WildnerThinkLight
368e9283513SSascha Wildner.Xr led 4
369e9283513SSascha Wildnerdevice node
370e9283513SSascha Wildner.El
371b82fb0eeSHasso Tepper.Sh EXAMPLES
372b82fb0eeSHasso TepperThe following can be added to
373b82fb0eeSHasso Tepper.Xr devd.conf 5
374b82fb0eeSHasso Tepperin order to pass button events to a
375b82fb0eeSHasso Tepper.Pa /usr/local/sbin/acpi_oem_exec.sh
376b82fb0eeSHasso Tepperscript:
377b82fb0eeSHasso Tepper.Bd -literal -offset indent
378b82fb0eeSHasso Teppernotify 10 {
379b82fb0eeSHasso Tepper        match "system"          "ACPI";
380*20befb6eSPierre-Alain TORET        match "subsystem"       "THINKPAD";
381*20befb6eSPierre-Alain TORET        action "/usr/local/sbin/acpi_oem_exec.sh $notify thinkpad";
382b82fb0eeSHasso Tepper};
383b82fb0eeSHasso Tepper.Ed
384b82fb0eeSHasso Tepper.Pp
385b82fb0eeSHasso TepperA possible
386b82fb0eeSHasso Tepper.Pa /usr/local/sbin/acpi_oem_exec.sh
387b82fb0eeSHasso Tepperscript might look like:
388b82fb0eeSHasso Tepper.Bd -literal -offset indent
389b82fb0eeSHasso Tepper#!/bin/sh
390b82fb0eeSHasso Tepper#
391b82fb0eeSHasso Tepperif [ "$1" = "" -o "$2" = "" ]
392b82fb0eeSHasso Tepperthen
393b82fb0eeSHasso Tepper        echo "usage: $0 notify oem_name"
394b82fb0eeSHasso Tepper        exit 1
395b82fb0eeSHasso Tepperfi
396b82fb0eeSHasso TepperNOTIFY=`echo $1`
397b82fb0eeSHasso TepperLOGGER="logger"
398b82fb0eeSHasso TepperCALC="bc"
399b82fb0eeSHasso TepperBC_PRECOMMANDS="scale=2"
400b82fb0eeSHasso TepperECHO="echo"
401b82fb0eeSHasso TepperCUT="cut"
402b82fb0eeSHasso TepperMAX_LCD_BRIGHTNESS=7
403b82fb0eeSHasso TepperMAX_VOLUME=14
404b82fb0eeSHasso TepperOEM=$2
405b82fb0eeSHasso TepperDISPLAY_PIPE=/tmp/acpi_${OEM}_display
406b82fb0eeSHasso Tepper
407b82fb0eeSHasso Teppercase ${NOTIFY} in
408b82fb0eeSHasso Tepper        0x05)
409*20befb6eSPierre-Alain TORET                LEVEL=`sysctl -n dev.acpi_${OEM}.0.bluetooth`
410b82fb0eeSHasso Tepper                if [ "$LEVEL" = "1" ]
411b82fb0eeSHasso Tepper                then
412*20befb6eSPierre-Alain TORET                        sysctl dev.acpi_${OEM}.0.bluetooth=0
413b82fb0eeSHasso Tepper                        MESSAGE="bluetooth disabled"
414b82fb0eeSHasso Tepper                else
415*20befb6eSPierre-Alain TORET                        sysctl dev.acpi_${OEM}.0.bluetooth=1
416b82fb0eeSHasso Tepper                        MESSAGE="bluetooth enabled"
417b82fb0eeSHasso Tepper                fi
418b82fb0eeSHasso Tepper                ;;
419b82fb0eeSHasso Tepper        0x10|0x11)
420*20befb6eSPierre-Alain TORET                LEVEL=`sysctl -n dev.acpi_${OEM}.0.lcd_brightness`
421b82fb0eeSHasso Tepper                PERCENT=`${ECHO} "${BC_PRECOMMANDS} ; \\
422b82fb0eeSHasso Tepper                         ${LEVEL} / ${MAX_LCD_BRIGHTNESS} * 100" |\\
423b82fb0eeSHasso Tepper                         ${CALC} | ${CUT} -d . -f 1`
424b82fb0eeSHasso Tepper                MESSAGE="brightness level ${PERCENT}%"
425b82fb0eeSHasso Tepper                ;;
426b82fb0eeSHasso Tepper        0x12)
427*20befb6eSPierre-Alain TORET                LEVEL=`sysctl -n dev.acpi_${OEM}.0.thinklight`
428b82fb0eeSHasso Tepper                if [ "$LEVEL" = "1" ]
429b82fb0eeSHasso Tepper                then
430b82fb0eeSHasso Tepper                        MESSAGE="thinklight enabled"
431b82fb0eeSHasso Tepper                else
432b82fb0eeSHasso Tepper                        MESSAGE="thinklight disabled"
433b82fb0eeSHasso Tepper                fi
434b82fb0eeSHasso Tepper                ;;
435b82fb0eeSHasso Tepper        0x15|0x16)
436*20befb6eSPierre-Alain TORET                LEVEL=`sysctl -n dev.acpi_${OEM}.0.volume`
437b82fb0eeSHasso Tepper                PERCENT=`${ECHO} "${BC_PRECOMMANDS} ; \\
438b82fb0eeSHasso Tepper                        ${LEVEL} / ${MAX_VOLUME} * 100" | \\
439b82fb0eeSHasso Tepper                         ${CALC} | ${CUT} -d . -f 1`
440b82fb0eeSHasso Tepper                MESSAGE="volume level ${PERCENT}%"
441b82fb0eeSHasso Tepper                ;;
442b82fb0eeSHasso Tepper        0x17)
443*20befb6eSPierre-Alain TORET                LEVEL=`sysctl -n dev.acpi_${OEM}.0.mute`
444b82fb0eeSHasso Tepper                if [ "$LEVEL" = "1" ]
445b82fb0eeSHasso Tepper                then
446b82fb0eeSHasso Tepper                        MESSAGE="volume muted"
447b82fb0eeSHasso Tepper                else
448b82fb0eeSHasso Tepper                        MESSAGE="volume unmuted"
449b82fb0eeSHasso Tepper                fi
450b82fb0eeSHasso Tepper                ;;
451*20befb6eSPierre-Alain TORET        0x1b)
452*20befb6eSPierre-Alain TORET                LEVEL=`sysctl -n dev.acpi_${OEM}.0.mic_led`
453*20befb6eSPierre-Alain TORET                if [ $LEVEL -eq 0 ]; then
454*20befb6eSPierre-Alain TORET                        sysctl dev.acpi_${OEM}.0.mic_led=1
455*20befb6eSPierre-Alain TORET                        mixer rec 0
456*20befb6eSPierre-Alain TORET                fi
457*20befb6eSPierre-Alain TORET                if [ $LEVEL -eq 1 ]; then
458*20befb6eSPierre-Alain TORET                        sysctl dev.acpi_${OEM}.0.mic_led=0
459*20befb6eSPierre-Alain TORET                        mixer rec 30
460*20befb6eSPierre-Alain TORET                fi
461*20befb6eSPierre-Alain TORET                ;;
462b82fb0eeSHasso Tepper        *)
463b82fb0eeSHasso Tepper                ;;
464b82fb0eeSHasso Tepperesac
465b82fb0eeSHasso Tepper${LOGGER} ${MESSAGE}
466b82fb0eeSHasso Tepperif [ -p ${DISPLAY_PIPE} ]
467b82fb0eeSHasso Tepperthen
468b82fb0eeSHasso Tepper        ${ECHO} ${MESSAGE} >> ${DISPLAY_PIPE} &
469b82fb0eeSHasso Tepperfi
470b82fb0eeSHasso Tepperexit 0
471b82fb0eeSHasso Tepper.Ed
472a31756d0SMarkus Pfeiffer.Pp
473a31756d0SMarkus PfeifferThe following example specify that event code 0x04 (Suspend to RAM),
474a31756d0SMarkus Pfeiffer0x10 (Brightness up) and 0x11 (Brightness down) are handled by
475a31756d0SMarkus Pfeiffer.Nm .
476a31756d0SMarkus Pfeiffer.Bd -literal -offset indent
477*20befb6eSPierre-Alain TORETsysctl dev.acpi_thinkpad.0.handlerevents='0x04 0x10 0x11'
478a31756d0SMarkus Pfeiffer.Ed
479a31756d0SMarkus Pfeiffer.Pp
480a31756d0SMarkus Pfeifferin
481a31756d0SMarkus Pfeiffer.Xr sysctl.conf 5 :
482a31756d0SMarkus Pfeiffer.Bd -literal -offset indent
483a31756d0SMarkus Pfeifferhw.acpi.thinkpad.handlerevents=0x04\\ 0x10\\ 0x11
484a31756d0SMarkus Pfeiffer.Ed
485f2948e36SHasso Tepper.Sh SEE ALSO
486f2948e36SHasso Tepper.Xr acpi 4 ,
487e9283513SSascha Wildner.Xr led 4 ,
488f2948e36SHasso Tepper.Xr sysctl.conf 5 ,
489b82fb0eeSHasso Tepper.Xr devd 8 ,
490f2948e36SHasso Tepper.Xr sensorsd 8 ,
491f2948e36SHasso Tepper.Xr sysctl 8
492f2948e36SHasso Tepper.Sh HISTORY
493f2948e36SHasso TepperThe
494f2948e36SHasso Tepper.Nm
495f2948e36SHasso Tepperdevice driver first appeared in
496f2948e36SHasso Tepper.Fx 6.0
497f2948e36SHasso Tepperand was imported into
498f2948e36SHasso Tepper.Dx 2.1 .
499f2948e36SHasso Tepper.Sh AUTHORS
500f2948e36SHasso Tepper.An -nosplit
501f2948e36SHasso TepperThe
502f2948e36SHasso Tepper.Nm
503f2948e36SHasso Tepperdriver was written by
504b2a6f486SFranco Fichtner.An Takanori Watanabe Aq Mt takawata@FreeBSD.org
505f2948e36SHasso Tepperand later mostly rewritten by
506b2a6f486SFranco Fichtner.An Markus Brueffer Aq Mt markus@FreeBSD.org .
507f2948e36SHasso TepperThis manual page was written by
508b2a6f486SFranco Fichtner.An Christian Brueffer Aq Mt brueffer@FreeBSD.org
509f2948e36SHasso Tepperand
510b2a6f486SFranco Fichtner.An Markus Brueffer Aq Mt markus@FreeBSD.org .
511