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
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2005 Philip Paeps <philip@FreeBSD.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms