ACPI_FUJITSU(4)

✨ acpi_fujitsu β€” Fujitsu Laptop Extras ✨

okay bestie, gather round πŸ’– this is acpi_fujitsu(4) from the Kernel Interfaces Manual and it is literally the little driver that makes your Fujitsu laptop's fancy buttons actually do stuff. iconic behavior fr fr.


🌸 SYNOPSIS 🌸

so you wanna compile this driver into your kernel? first things first, drop this line into your kernel configuration file:

device acpi_fujitsu

ORRRR, if you'd rather load it as a module at boot time (lowkey the easier route ngl), put this in loader.conf(5):

acpi_fujitsu_load="YES"

pick your fighter, both slay πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

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. yes bestie, you can poke the hardware events by hand, no cap.

Using this driver, one can control the brightness of the display, the volume of the speakers, and the internal (eraserhead) mouse pointer. πŸŽ€ that's right β€” the tiny lil nub mouse. we love her. her name is eraserhead and she's the moment.


πŸ‘‘ SYSCTL VARIABLES πŸ‘‘

These sysctls are currently implemented:

  • hw.acpi.fujitsu.lcd_brightness β€” Makes the LCD backlight brighter or dimmer. 🌈 your screen, your vibes, your rules.
  • hw.acpi.fujitsu.pointer_enable β€” Enables or disables the internal mouse pointer. 🫢 turning the nub on and off, as one does.
  • hw.acpi.fujitsu.volume β€” Controls the speaker volume. πŸ”Š yes queen, turn it up.
  • hw.acpi.fujitsu.mute β€” Mutes the speakers. 🀫 shhh. silenced. periodt.

Defaults for these sysctls can be set in sysctl.conf(5). πŸ’œ set it once, forget it forever, that's the dream.


πŸ’€ 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
not me copy-pasting a whole shell script into a man page but honestly? she ate. πŸ”₯

🌟 SEE ALSO 🌟


πŸ“œ HISTORY πŸ“œ

The acpi_fujitsu driver first appeared in FreeBSD 5.4. ✨ a classic. a legend. she's been here since 5.4 and she's still serving.


πŸ’– AUTHORS πŸ’–

The acpi_fujitsu driver was written by Sean Bullington <shegget@gmail.com>, Anish Mistry <mistry.7@osu.edu>, and Marc Santcroos <marks@ripe.net>. 🫢 absolute icons, every single one.

This manual page was written by Philip Paeps <philip@FreeBSD.org>. πŸŽ€ thank you for your service king.


and that's the whole page bestie!! πŸ’… from the Debian crew, dated February 8, 2010, shipped as part of ACPI_FUJITSU(4) β€” go forth and press ur lil buttons, mwah πŸ’‹πŸŒˆβ­

πŸ“¦ where this page comes from