acpi_fujitsu(4)

acpi_fujitsu4

Fujitsu laptop extras

Usage

device acpi_fujitsu

Overview

The acpi_fujitsu driver enables the ACPI-controlled buttons on Fujitsu notebooks. The button events are sent to userspace via devd(8), and a sysctl(8) interface is provided to simulate the hardware events.

Using this driver, one can control the brightness of the display, the volume of the speakers, and the internal (eraserhead) mouse pointer.

Sysctl variables

These sysctls are currently implemented:

hw.acpi.fujitsu.lcd_brightness

Makes the LCD backlight brighter or dimmer.

hw.acpi.fujitsu.pointer_enable

Enables or disables the internal mouse pointer.

hw.acpi.fujitsu.volume

Controls the speaker volume.

hw.acpi.fujitsu.mute

Mutes the speakers.

Defaults for these sysctls can be set in sysctl.conf(5).

Examples

The following can be added to devd.conf(5) in order to pass button events to a /usr/local/sbin/acpi_oem_exec.sh script:

notify 10 {
        match "system"		"ACPI";
        match "subsystem"	"FUJITSU";
        action "/usr/local/sbin/acpi_oem_exec.sh $notify fujitsu";
};

A possible /usr/local/sbin/acpi_oem_exec.sh script might look like:

#!/bin/sh
#
if [ "$1" = "" -o "$2" = "" ]
then
        echo "usage: $0 notify oem_name"
        exit 1
fi
NOTIFY=`echo $1`
LOGGER="logger"
CALC="bc"
BC_PRECOMMANDS="scale=2"
ECHO="echo"
CUT="cut"
MAX_LCD_BRIGHTNESS=7
MAX_VOLUME=16
OEM=$2
DISPLAY_PIPE=/tmp/acpi_${OEM}_display
case ${NOTIFY} in
        0x00)
                LEVEL=`sysctl -n hw.acpi.${OEM}.mute`
                if [ "$LEVEL" = "1" ]
                then
                        MESSAGE="volume muted"
                else
                        MESSAGE="volume unmuted"
                fi
                ;;
        0x01)
                LEVEL=`sysctl -n hw.acpi.${OEM}.pointer_enable`
                if [ "$LEVEL" = "1" ]
                then
                        MESSAGE="pointer enabled"
                else
                        MESSAGE="pointer disabled"
                fi
                ;;
        0x02)
                LEVEL=`sysctl -n hw.acpi.${OEM}.lcd_brightness`
                PERCENT=`${ECHO} "${BC_PRECOMMANDS} ; \
			 ${LEVEL} / ${MAX_LCD_BRIGHTNESS} * 100" |\
			 ${CALC} | ${CUT} -d . -f 1`
                MESSAGE="brightness level ${PERCENT}%"
                ;;
        0x03)
                LEVEL=`sysctl -n hw.acpi.${OEM}.volume`
                PERCENT=`${ECHO} "${BC_PRECOMMANDS} ; \
			${LEVEL} / ${MAX_VOLUME} * 100" | \
			 ${CALC} | ${CUT} -d . -f 1`
                MESSAGE="volume level ${PERCENT}%"
                ;;
        *)
                ;;
        esac
        ${LOGGER} ${MESSAGE}
        if [ -p ${DISPLAY_PIPE} ]
        then
                ${ECHO} ${MESSAGE} >> ${DISPLAY_PIPE} &
        fi
exit 0

History

The acpi_fujitsu driver first appeared in FreeBSD 5.4.

Authors

The acpi_fujitsu driver was written by Sean Bullington ⟨[email protected]⟩, Anish Mistry ⟨[email protected]⟩, and Marc Santcroos ⟨[email protected]⟩.

This manual page was written by Philip Paeps ⟨[email protected]⟩.

From freebsd-manpages 6.0-5 in Debian 4.0 (Etch). Parsed by carta from the page's mdoc source.