# uname -or FreeBSD 11.0-RELEASE-p9
Для настройки управления громкостью с USB-клавитуры необходимо:
# usbhidctl -f /dev/uhid0 -l -a Generic_Desktop:System_Control.Generic_Desktop:System_Power_Down=0 Generic_Desktop:System_Control.Generic_Desktop:System_Sleep=0 Generic_Desktop:System_Control.Generic_Desktop:System_Wake_Up=0 Consumer:Consumer_Control.Consumer:AL_Email_Reader=0 Consumer:Consumer_Control.Consumer:AC_Home=0 Consumer:Consumer_Control.Consumer:AC_Bookmarks=0 Consumer:Consumer_Control.Consumer:AC_Search=0 Consumer:Consumer_Control.Consumer:AC_Refresh=0 Consumer:Consumer_Control.Consumer:AC_Stop=0 Consumer:Consumer_Control.Consumer:AC_Forward=0 Consumer:Consumer_Control.Consumer:AC_Back=0 Consumer:Consumer_Control.Consumer:AL_Consumer_Control_Configuration=0 Consumer:Consumer_Control.Consumer:Play/Pause=0 Consumer:Consumer_Control.Consumer:Stop=0 Consumer:Consumer_Control.Consumer:Scan_Previous_Track=0 Consumer:Consumer_Control.Consumer:Scan_Next_Track=0 Consumer:Consumer_Control.Consumer:Volume_Increment=0 Consumer:Consumer_Control.Consumer:Volume_Decrement=0 Consumer:Consumer_Control.Consumer:Mute=0 Consumer:Consumer_Control.Consumer:AL_Local_Machine_Browser=0 Consumer:Consumer_Control.Consumer:AL_Calculator=0 Consumer:Consumer_Control.Consumer:AL_Internet_Browser=0 Consumer:Consumer_Control.Consumer:AL_Terminal_Lock/Screensaver=0 Consumer:Consumer_Control.Consumer:Record=0 Consumer:Consumer_Control.Consumer:Rewind=0 Consumer:Consumer_Control.Consumer:AC_Minimize=0 Consumer:Consumer_Control.Consumer:Eject=0
При нажатии на клавиши клавиатуры отвечающие за громкость, соответсвующие значения меняются на 1
Consumer:Consumer_Control.Consumer:Volume_Increment=0
Consumer:Consumer_Control.Consumer:Volume_Decrement=1
Consumer:Consumer_Control.Consumer:Mute=0
Создаём файл /etc/usbhidaction.conf следующего содержания:
# cat /etc/usbhidaction.conf Consumer:Volume_Increment 1 0 mixer vol +5 Consumer:Volume_Decrement 1 0 mixer vol -5 Consumer:Mute 1 0 mixer vol 0
При изменении значения Consumer:Volume_Increment с 0=>1 выполняется команда mixer vol +5, при Consumer:Volume_Decrement 0=>1 выполняется mixer vol -5 и т.д.
Далее необходимо запустить
/usr/bin/usbhidaction -f /dev/uhid0 -c /etc/usbhidaction.conf
и/или добавить его в автозагрузку
# cat /usr/local/etc/devd/mixer.conf attach 100 { device-name "uhid[0-9]+"; action "/usr/bin/usbhidaction -f $device-name -c /etc/usbhidaction.conf"; }; # /etc/rc.d/devd restart