12f5aa587SSascha Wildner.\" 22f5aa587SSascha Wildner.\" Copyright (c) 2005 Philip Paeps <philip@FreeBSD.org> 32f5aa587SSascha Wildner.\" All rights reserved. 42f5aa587SSascha Wildner.\" 52f5aa587SSascha Wildner.\" Redistribution and use in source and binary forms, with or without 62f5aa587SSascha Wildner.\" modification, are permitted provided that the following conditions 72f5aa587SSascha Wildner.\" are met: 82f5aa587SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright 92f5aa587SSascha Wildner.\" notice, this list of conditions and the following disclaimer. 102f5aa587SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright 112f5aa587SSascha Wildner.\" notice, this list of conditions and the following disclaimer in the 122f5aa587SSascha Wildner.\" documentation and/or other materials provided with the distribution. 132f5aa587SSascha Wildner.\" 142f5aa587SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 152f5aa587SSascha Wildner.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 162f5aa587SSascha Wildner.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 172f5aa587SSascha Wildner.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 182f5aa587SSascha Wildner.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 192f5aa587SSascha Wildner.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 202f5aa587SSascha Wildner.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 212f5aa587SSascha Wildner.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 222f5aa587SSascha Wildner.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 232f5aa587SSascha Wildner.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 242f5aa587SSascha Wildner.\" SUCH DAMAGE. 252f5aa587SSascha Wildner.\" 262f5aa587SSascha Wildner.\" $FreeBSD: src/share/man/man4/acpi_fujitsu.4,v 1.1 2008/08/21 00:40:55 rpaulo Exp $ 272f5aa587SSascha Wildner.\" 282f5aa587SSascha Wildner.Dd November 11, 2009 292f5aa587SSascha Wildner.Dt ACPI_FUJITSU 4 302f5aa587SSascha Wildner.Os 312f5aa587SSascha Wildner.Sh NAME 322f5aa587SSascha Wildner.Nm acpi_fujitsu 332f5aa587SSascha Wildner.Nd Fujitsu Laptop Extras 342f5aa587SSascha Wildner.Sh SYNOPSIS 352f5aa587SSascha WildnerTo compile this driver into the kernel, 362f5aa587SSascha Wildnerplace the following line in your 372f5aa587SSascha Wildnerkernel configuration file: 382f5aa587SSascha Wildner.Bd -ragged -offset indent 392f5aa587SSascha Wildner.Cd "device acpi_fujitsu" 402f5aa587SSascha Wildner.Ed 412f5aa587SSascha Wildner.Pp 422f5aa587SSascha WildnerAlternatively, to load the driver as a 432f5aa587SSascha Wildnermodule at boot time, place the following line in 442f5aa587SSascha Wildner.Xr loader.conf 5 : 452f5aa587SSascha Wildner.Bd -literal -offset indent 462f5aa587SSascha Wildneracpi_fujitsu_load="YES" 472f5aa587SSascha Wildner.Ed 482f5aa587SSascha Wildner.Sh DESCRIPTION 492f5aa587SSascha WildnerThe 502f5aa587SSascha Wildner.Nm 512f5aa587SSascha Wildnerdriver enables the ACPI-controlled buttons on Fujitsu notebooks. 522f5aa587SSascha WildnerThe button events are sent to userspace via 532f5aa587SSascha Wildner.Xr devd 8 , 542f5aa587SSascha Wildnerand a 552f5aa587SSascha Wildner.Xr sysctl 8 562f5aa587SSascha Wildnerinterface is provided to simulate the hardware events. 572f5aa587SSascha Wildner.Pp 582f5aa587SSascha WildnerUsing this driver, one can control the brightness of the display, the volume 592f5aa587SSascha Wildnerof the speakers, and the internal (eraserhead) mouse pointer. 602f5aa587SSascha Wildner.Sh SYSCTL VARIABLES 612f5aa587SSascha WildnerThese sysctls are currently implemented: 622f5aa587SSascha Wildner.Bl -tag -width indent 632f5aa587SSascha Wildner.It Va hw.acpi.fujitsu.lcd_brightness 642f5aa587SSascha WildnerMakes the LCD backlight brighter or dimmer. 652f5aa587SSascha Wildner.It Va hw.acpi.fujitsu.pointer_enable 662f5aa587SSascha WildnerEnables or disables the internal mouse pointer. 672f5aa587SSascha Wildner.It Va hw.acpi.fujitsu.volume 682f5aa587SSascha WildnerControls the speaker volume. 692f5aa587SSascha Wildner.It Va hw.acpi.fujitsu.mute 702f5aa587SSascha WildnerMutes the speakers. 712f5aa587SSascha Wildner.El 722f5aa587SSascha Wildner.Pp 732f5aa587SSascha WildnerDefaults for these sysctls can be set in 742f5aa587SSascha Wildner.Xr sysctl.conf 5 . 752f5aa587SSascha Wildner.Sh EXAMPLES 762f5aa587SSascha WildnerThe following can be added to 772f5aa587SSascha Wildner.Xr devd.conf 5 782f5aa587SSascha Wildnerin order to pass button events to a 792f5aa587SSascha Wildner.Pa /usr/local/sbin/acpi_oem_exec.sh 802f5aa587SSascha Wildnerscript: 812f5aa587SSascha Wildner.Bd -literal -offset indent 822f5aa587SSascha Wildnernotify 10 { 832f5aa587SSascha Wildner match "system" "ACPI"; 842f5aa587SSascha Wildner match "subsystem" "FUJITSU"; 852f5aa587SSascha Wildner action "/usr/local/sbin/acpi_oem_exec.sh $notify fujitsu"; 862f5aa587SSascha Wildner}; 872f5aa587SSascha Wildner.Ed 882f5aa587SSascha Wildner.Pp 892f5aa587SSascha WildnerA possible 902f5aa587SSascha Wildner.Pa /usr/local/sbin/acpi_oem_exec.sh 912f5aa587SSascha Wildnerscript might look like: 922f5aa587SSascha Wildner.Bd -literal -offset indent 932f5aa587SSascha Wildner#!/bin/sh 942f5aa587SSascha Wildner# 952f5aa587SSascha Wildnerif [ "$1" = "" -o "$2" = "" ] 962f5aa587SSascha Wildnerthen 972f5aa587SSascha Wildner echo "usage: $0 notify oem_name" 982f5aa587SSascha Wildner exit 1 992f5aa587SSascha Wildnerfi 1002f5aa587SSascha WildnerNOTIFY=`echo $1` 1012f5aa587SSascha WildnerLOGGER="logger" 1022f5aa587SSascha WildnerCALC="bc" 1032f5aa587SSascha WildnerBC_PRECOMMANDS="scale=2" 1042f5aa587SSascha WildnerECHO="echo" 1052f5aa587SSascha WildnerCUT="cut" 1062f5aa587SSascha WildnerMAX_LCD_BRIGHTNESS=7 1072f5aa587SSascha WildnerMAX_VOLUME=16 1082f5aa587SSascha WildnerOEM=$2 1092f5aa587SSascha WildnerDISPLAY_PIPE=/tmp/acpi_${OEM}_display 1102f5aa587SSascha Wildner 1112f5aa587SSascha Wildnercase ${NOTIFY} in 1122f5aa587SSascha Wildner 0x00) 1132f5aa587SSascha Wildner LEVEL=`sysctl -n hw.acpi.${OEM}.mute` 1142f5aa587SSascha Wildner if [ "$LEVEL" = "1" ] 1152f5aa587SSascha Wildner then 1162f5aa587SSascha Wildner MESSAGE="volume muted" 1172f5aa587SSascha Wildner else 1182f5aa587SSascha Wildner MESSAGE="volume unmuted" 1192f5aa587SSascha Wildner fi 1202f5aa587SSascha Wildner ;; 1212f5aa587SSascha Wildner 0x01) 1222f5aa587SSascha Wildner LEVEL=`sysctl -n hw.acpi.${OEM}.pointer_enable` 1232f5aa587SSascha Wildner if [ "$LEVEL" = "1" ] 1242f5aa587SSascha Wildner then 1252f5aa587SSascha Wildner MESSAGE="pointer enabled" 1262f5aa587SSascha Wildner else 1272f5aa587SSascha Wildner MESSAGE="pointer disabled" 1282f5aa587SSascha Wildner fi 1292f5aa587SSascha Wildner ;; 1302f5aa587SSascha Wildner 0x02) 1312f5aa587SSascha Wildner LEVEL=`sysctl -n hw.acpi.${OEM}.lcd_brightness` 1322f5aa587SSascha Wildner PERCENT=`${ECHO} "${BC_PRECOMMANDS} ; \\ 1332f5aa587SSascha Wildner ${LEVEL} / ${MAX_LCD_BRIGHTNESS} * 100" |\\ 1342f5aa587SSascha Wildner ${CALC} | ${CUT} -d . -f 1` 1352f5aa587SSascha Wildner MESSAGE="brightness level ${PERCENT}%" 1362f5aa587SSascha Wildner ;; 1372f5aa587SSascha Wildner 0x03) 1382f5aa587SSascha Wildner LEVEL=`sysctl -n hw.acpi.${OEM}.volume` 1392f5aa587SSascha Wildner PERCENT=`${ECHO} "${BC_PRECOMMANDS} ; \\ 1402f5aa587SSascha Wildner ${LEVEL} / ${MAX_VOLUME} * 100" | \\ 1412f5aa587SSascha Wildner ${CALC} | ${CUT} -d . -f 1` 1422f5aa587SSascha Wildner MESSAGE="volume level ${PERCENT}%" 1432f5aa587SSascha Wildner ;; 1442f5aa587SSascha Wildner *) 1452f5aa587SSascha Wildner ;; 1462f5aa587SSascha Wildner esac 1472f5aa587SSascha Wildner ${LOGGER} ${MESSAGE} 1482f5aa587SSascha Wildner if [ -p ${DISPLAY_PIPE} ] 1492f5aa587SSascha Wildner then 1502f5aa587SSascha Wildner ${ECHO} ${MESSAGE} >> ${DISPLAY_PIPE} & 1512f5aa587SSascha Wildner fi 1522f5aa587SSascha Wildnerexit 0 1532f5aa587SSascha Wildner.Ed 1542f5aa587SSascha Wildner.Sh SEE ALSO 1552f5aa587SSascha Wildner.Xr acpi 4 , 1562f5aa587SSascha Wildner.Xr sysctl.conf 5 , 1572f5aa587SSascha Wildner.Xr devd 8 , 1582f5aa587SSascha Wildner.Xr sysctl 8 1592f5aa587SSascha Wildner.Sh HISTORY 1602f5aa587SSascha WildnerThe 1612f5aa587SSascha Wildner.Nm 1622f5aa587SSascha Wildnerdriver first appeared in 1632f5aa587SSascha Wildner.Fx 5.4 . 1642f5aa587SSascha WildnerIt was then ported to 1652f5aa587SSascha Wildner.Dx 2.5 . 1662f5aa587SSascha Wildner.Sh AUTHORS 1672f5aa587SSascha Wildner.An -nosplit 1682f5aa587SSascha WildnerThe 1692f5aa587SSascha Wildner.Nm 1702f5aa587SSascha Wildnerdriver was written by 171*b2a6f486SFranco Fichtner.An Sean Bullington Aq Mt shegget@gmail.com , 172*b2a6f486SFranco Fichtner.An Anish Mistry Aq Mt mistry.7@osu.edu , 1732f5aa587SSascha Wildnerand 174*b2a6f486SFranco Fichtner.An Marc Santcroos Aq Mt marks@ripe.net . 1752f5aa587SSascha Wildner.Pp 1762f5aa587SSascha WildnerThis manual page was written by 177*b2a6f486SFranco Fichtner.An Philip Paeps Aq Mt philip@FreeBSD.org . 178