1. A probléma
Az X-Fi HD hardvere maga nem tud semmiféle hangerőszabályzást, viszont van rajta egy szép nagy hangerőgomb, amit jó volna használni, de Linux alatt alapesetben abszolút semmit nem csinál.
2. A megoldás
A tekerő USB HID device-ként látszik, a LIRC meg remekül kezel ilyen eszközöket. Nosza!
LIRC konfig:
Az /etc/lirc/hardware.conf-ba:
DRIVER="devinput"
DEVICE="/dev/input/by-id/usb-Creative_Technology_USB_Sound_Blaster_HD_000004Jt-event-if05"
(Ahogy néztem, a hardware.conf formátuma éppen update alatt van, szóval lehet, hogy a megfelelő kulcsszabak a REMOTE_DRIVER és a REMOTE_DEVICE lesznek, de ez úgyis elég feltünő.)
A konkrét device-t mindenki nézze meg magának a /dev/input/by-id könyvtárba (mivel a névben benne van a gyári szám is, ezért mindenkinek más), könnyű lesz megismerni
Az /etc/lirc/lircd.conf-ot lecserélni erre a file-ra.
Az /etc/lirc/lircrc-be meg ezt:
# X-Fi HD Volume Knob
begin
prog = irexec
remote = devinput
button = KEY_VOLUMEDOWN
repeat = 1
config = amixer -c HD sset 'PCM' 1-
end
begin
prog = irexec
remote = devinput
button = KEY_MUTE
repeat = 1
config = if [ -n "$(amixer -c HD cget name='PCM Playback Switch' |grep 'values=on')" ] ; then amixer -c HD cset name='PCM Playback Switch' off ; else amixer -c HD cset name='PCM Playback Switch' on ; fi
end
begin
prog = irexec
remote = devinput
button = KEY_VOLUMEUP
repeat = 1
config = amixer -c HD sset 'PCM' 1+
end
Egy /etc/init.d/lirc restart után minden remekül megy.