ACPI_FUJITSU(4)
π» acpi_fujitsu β the ACPI_FUJITSU(4) page, bestie edition π
okay so picture this: it's ACPI_FUJITSU(4), from the Kernel Interfaces Manual, and it's literally the Fujitsu Laptop Extras driver. yes that's the whole vibe. let's get into it π¦
β¨ NAME β¨
acpi_fujitsu β Fujitsu Laptop Extras π
πΈ SYNOPSIS πΈ
so if you wanna compile this driver into the kernel (main character energy), you drop this line into your kernel configuration file:
device acpi_fujitsu
or, alternate route bestie, you can load it as a module at boot time instead β in which case you put this line in loader.conf(5):
acpi_fujitsu_load="YES"
π DESCRIPTION π
the acpi_fujitsu driver enables the ACPI-controlled buttons on Fujitsu notebooks. that's it, that's the job. β¨
the button events get sent to userspace via devd(8), and there's also a sysctl(8) interface provided so you can simulate the hardware events yourself. no cap.
using this driver you can control the brightness of the display, the volume of the speakers, and the internal (eraserhead) mouse pointer. three whole sliders of power, honestly iconic π
π§ 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). set it and forget it, bestie π
π₯ 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
like, copy it exactly bestie, those backslashes are doing real work π
π«Ά SEE ALSO π«Ά
acpi(4), sysctl.conf(5), devd(8), sysctl(8)
π HISTORY π
the acpi_fujitsu driver first appeared in FreeBSD 5.4. vintage. a classic. we respect the elders π
π 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>.
this manual page was written by Philip Paeps <philip@FreeBSD.org>.
that's the whole page, no notes π and this lil drop of lore came from Debian, dated February 8, 2010 β on the ACPI_FUJITSU(4) page, slay πβ¨
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- nixpkgs unstable: source
- Copyright (c) 2005 Philip Paeps <philip@FreeBSD.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms