Задействуем регулятор громкости и пульт на внешней звуковой карте Creative X-Fi Pro
(Краткое руководство)
Предисловие.Купив полгода назад внешнюю USB-карточку, я долго искал в интернете информацию о том, как задействовать колесо регулятора громкости и пульт ДУ, но не нашел толкового руководства на русском языке, и мне пришлось долго трудиться, просматривая разные форумы, а также с помощью "метода тыка", таки настроить пульт и регулятор громкости. (Всё нижеописанное проверялось на Ubuntu 10.04 и 13.04.)
1 Установка пакетовУстанавливаем пакеты lirc и pulseaudio-module-lirc через менеджер пакетов или через терминал:
sudo apt-get install lirc
sudo apt-get install pulseaudio-module-lirc(во время установки lirc Вам будет предложено выбрать приёмник и передатчик, оствте всё как есть)
Для полной функциональности (например, возможности эмуляции событий клавиатуры и мыши с помощью пульта) рекомендуется также поставить пакет lirc-x.
2 Настройка lircРедактируем с привелегиями суперпользователя файл /etc/lirc/hardware.conf
(для этого можно например ввести в терминале:
sudo gedit /etc/lirc/hardware.conf)
В самом файле устанавливаем соответствующие параметры приёмника:
REMOTE="Creative_RM820"
REMOTE_MODULES=""
REMOTE_DRIVER="alsa_usb"
REMOTE_DEVICE="hw:Pro"
REMOTE_SOCKET=""
REMOTE_LIRCD_CONF="creative/lircd.conf.alsa_usb"
REMOTE_LIRCD_ARGS=""
а также
START_LIRCD="true"
после чего сохраняем файл и выходим из редактора.
Колёсико задействовано уже в alsa_usb, но чтобы работал пульт надо сделать следующее:
в папке /etc/lirc есть также файл lircd.conf, открываем его в редакторе с правами суперпользователя (
sudo gedit /etc/lirc/lircd.conf) и пишем:
include "/usr/share/lirc/remotes/creative/lircd.conf.alsa_usb"
begin remote
name Creative_RM820
bits 8
eps 30
aeps 100
one 0 0
zero 0 0
gap 103993
toggle_bit_mask 0x0
begin codes
KEY_DOWN 0x32
KEY_UP 0x31
KEY_LEFT 0x27
KEY_RIGHT 0x28
KEY_OK 0x30
KEY_VOLUMEUP 0x2B
KEY_VOLUMEDOWN 0x2C
KEY_MUTE 0x2A
KEY_POWER 0x29
KEY_MENU 0x1B
KEY_FASTFORWARD 0x36
KEY_REWIND 0x35
KEY_PLAYPAUSE 0x2F
KEY_SHUFFLE 0x3B
KEY_EXIT 0x1A
KEY_REDO 0x3C
KEY_NEXT 0x34
KEY_PREV 0x33
end codes
end remote
сохраняем этот файл и выходим из редактора.
Теперь надо перезапустить lirc, для этого в терминале вводим:
sudo /etc/init.d/lirc restart
Чтобы проверить, как всё работает, нужно ввести в терминале команду irw, после чего покрутить колёсико регулятора громкости, нажать на него, понажимать на кнопки пульта ДУ, и при этом следить за тем, что будет в терминале.
Если всё настроено верно, то при вращении регулятора громкости будет выходить нечто подобное:
0000000000000010 00 vol+ RM-1500
0000000000000010 01 vol+ RM-1500
000000000000000f 00 vol- RM-1500
000000000000000f 00 vol- RM-1500
а при нажатии на регулятор
000000000000000d 00 mute RM-1500
000000000000000d 00 mute RM-1500
а при нажимании на кнопки пульта:
000000000000002b 00 KEY_VOLUMEUP Creative_RM820
000000000000002c 00 KEY_VOLUMEDOWN Creative_RM820
000000000000002a 00 KEY_MUTE Creative_RM820
0000000000000029 00 KEY_POWER Creative_RM820
0000000000000027 00 KEY_LEFT Creative_RM820
0000000000000031 00 KEY_UP Creative_RM820
0000000000000028 00 KEY_RIGHT Creative_RM820
0000000000000032 00 KEY_DOWN Creative_RM820
0000000000000030 00 KEY_OK Creative_RM820
000000000000003c 00 KEY_REDO Creative_RM820
000000000000003b 00 KEY_SHUFFLE Creative_RM820
000000000000001a 00 return RM-1500
0000000000000035 00 KEY_REWIND Creative_RM820
0000000000000035 00 KEY_REWIND Creative_RM820
000000000000002f 00 KEY_PLAYPAUSE Creative_RM820
0000000000000036 00 KEY_FASTFORWARD Creative_RM820
0000000000000036 00 KEY_FASTFORWARD Creative_RM820
3. Настройка PuiseAudio для регулировки громкости.После того, как мы установили модуль pulseaudio-module-lirc нам надо его задействоваль.
Для этого, с правами суперпользователя, открываем в редакторе файл /etc/pulse/default.pa (для этого можно ввести в терминале sudo gedit /etc/pulse/default.pa).
Просматриваем его, и если не находим там упоминание о lirc, то добавляем в конце строчку:
load-module module-lirc
Сохраняем файл и выходим из редактора.
4. Связываем сервер lirc и систему PulseAudioВ своём домашнем каталоге создаём (если ещё не создан) файл .lircrc
Открываем его и пишем:
begin
remote = *
prog = PulseAudio
config = volume-down
button = vol-
repeat = 1
end
begin
remote = *
prog = PulseAudio
config = volume-up
button = vol+
repeat = 1
end
begin
remote = *
prog = PulseAudio
config = mute-toggle
button = mute
end
begin
remote = *
prog = PulseAudio
config = volume-down
button = KEY_VOLUMEDOWN
repeat = 1
end
begin
remote = *
prog = PulseAudio
config = volume-up
button = KEY_VOLUMEUP
repeat = 1
end
begin
remote = *
prog = PulseAudio
config = mute-toggle
button = KEY_MUTE
end
Здесь же пишем подобные связки для других программ, работающих с lirc. Напоминаем, чтобы посмотреть название той или иной кнопки, опять же вводим в терминале irw и нажимаем интересующую нас кнопку, направив пульт ДУ на приёмник.
В виндузном варианте, к штатному софту для нашей звуковой карточки прилагался виндузный видеоплеер PowerDVD, в нашем варианте для Linux, тоже не мешало бы иметь возможность управлять просмотром кино дистанционно, например, лёжа на диване/кровати.
Наиболее популярный в видеоплеер в Linux, это скорее всего VLC, поэтому рассмотрим сперва его:
Для начала включим в vlc поддержку lirc, для этого запускаем vlc, идём в меню "Инструменты" -> "Настройки", в открывшимся окне выбираем внизу слева "все", в открывшемся списке переходим "Интерфейс" -> "Интерфейсы управления", ставим галку "Интерфейс управления с ИК-пульта", если она ещё не отмечена, нажимаем кнопку "Сохранить" и закрываем VLC (процедура включения lirc в настройках vlc может отличаться для разных версий, здесь описано на примере версии 2.0.
.
Далее добавляем в файл .lircrc следующее:
begin
button = KEY_POWER
prog = vlc
config = key-quit
end
begin
button = KEY_REWIND
prog = vlc
config = key-jump-medium
end
begin
button = KEY_FASTFORWARD
prog = vlc
config = key-jump+medium
end
begin
button = KEY_REDO
prog = vlc
config = key-jump-long
end
begin
button = KEY_SHUFFLE
prog = vlc
config = key-jump+long
end
begin
remote = *
prog = vlc
config = key-play-pause
button = KEY_PLAYPAUSE
repeat = 1
end
begin
remote = *
prog = vlc
config = key-next
button = KEY_NEXT
repeat = 1
end
begin
remote = *
prog = vlc
config = key-prev
button = KEY_PREV
repeat = 1
end
Здесь на кнопку Return положен небольшой возврат назад (если, например, пропустили что-то интересное), а на кнопки Repeat и Shuffle большие скачки назад и вперёд соответственно (например для поиска нужного фрагмента в фильме).
Стоит заметить, что при однократном коротком нажатии на кнопки "|<<" и ">>|" посылаются команды KEY_PREV и KEY_NEXT - предыдущая и следующая дорожки, а при длительном нажатии KEY_REWIND и KEY_FASTFORWARD - перемотка назад и вперёд, а при отпускании после такого зажатия повторяются команды KEY_REWIND и KEY_FASTFORWARD соответственно.
5. Перезагружаемся.После перезагрузки всё должно работать.
Напоминаем, что после редактирования каких либо настроечных файлов сервера lirc, чтобы изменения вступили в силу, нужно перезапустить lirc командой в терминале:
sudo /etc/init.d/lirc restartесли после этого регулятор громкости перестанет действовать перезагрузим и PulseAudio командой:
pulseaudio -kТеперь все возможности внешней звуковой карты Creative X-Fi Pro задействованы.
6. Дополнение.Помимо VLC и PulseAudio с lirc напрямую может работать и множество других программ, например известный медиаплеер Banshee (должен быть установлен и включён lirc-плагин для Banshee):
begin
prog = banshee
remote = *
button = KEY_PLAYPAUSE
config = pause
end
begin
prog = banshee
remote = *
button = KEY_NEXT
config = next
end
begin
prog = banshee
remote = *
button = KEY_PREV
config = previous
end
К сожалению, не все программы умеют работать с lirc, но это не беда, если программа управляется, с помощью консольных команд поможет утилита irexec, чтобы она запускалась автоматически в конец файла .profile, лежащий в Вашей домашней папке, строку
irexec --daemonЧтобы задействовать из lirc с помощью irexec какую либо программу нужно указать в описании кнопки:
prog = irexec
config = ВАША_НУЖНАЯ_КОНСОЛЬНАЯ_КОМАНДА
Например, вот так можно задействовать с нашего пульта замечательный музыкальный плеер "Guayadeque":
begin
remote = *
prog = irexec
config = dbus-send --print-reply --type=method_call --dest=org.mpris.guayadeque /Player org.freedesktop.MediaPlayer.Pause
button = KEY_PLAYPAUSE
repeat = 1
end
begin
remote = *
prog = irexec
config = dbus-send --print-reply --type=method_call --dest=org.mpris.guayadeque /Player org.freedesktop.MediaPlayer.Next
button = KEY_FASTFORWARD
repeat = 1
end
begin
remote = *
prog = irexec
config = dbus-send --print-reply --type=method_call --dest=org.mpris.guayadeque /Player org.freedesktop.MediaPlayer.Prev
button = KEY_REWIND
repeat = 1
end
Или же популярный аудиоплеер Amarok:
begin
button = KEY_PLAYPAUSE
prog = irexec
repeat = 1
config = dbus-send --type=method_call --dest=org.kde.amarok /Player org.freedesktop.MediaPlayer.Pause
end
begin
button = KEY_NEXT
prog = irexec
repeat = 1
config = dbus-send --type=method_call --dest=org.kde.amarok /Player org.freedesktop.MediaPlayer.Next
end
begin
button = KEY_PREV
prog = irexec
repeat = 1
config = dbus-send --type=method_call --dest=org.kde.amarok /Player org.freedesktop.MediaPlayer.Prev
end
Если Вы привыкли управляться Вашими приложениями через мультимедийные клавиши, то их нажатие можно эмулировать с помощью утилиты xdotool (предварительно нужно установить пакет xdotool):
begin
remote = *
prog = irexec
config = xdotool key XF86AudioPlay
button = KEY_PLAYPAUSE
repeat = 0
end
begin
remote = *
prog = irexec
config = xdotool key XF86AudioNext
button = KEY_NEXT
repeat = 0
end
begin
remote = *
prog = irexec
config = xdotool key XF86AudioPrev
button = KEY_PREV
repeat = 0
end
С помощью irexec можно также управлять громкостью любого устройства.
Например, эти комбинации позволят плавно регулировать громкость на устройстве №1, при зажатии и удерживании клавиш со стрелками:
begin
remote = *
prog = irexec
delay = 2
config = pactl set-sink-volume 1 -- +2%
button = KEY_RIGHT
repeat = 1
end
begin
remote = *
prog = irexec
delay = 2
config = pactl set-sink-volume 1 -- -2%
button = KEY_LEFT
repeat = 1
end
Также доступно много манипуляций со звуковой системой, через irexec и консольную утилиту pactl (см. документацию к pactl).
С помощью пульта можно также эмулировать события клавиатуры и мыши, для этого существует утилита irxevent, которую также нужно запускать при старте системы, если Вам необходима эмуляция событий клавиатуры и мыши. Но здесь мы не будем говорить об этом, ибо кнопок у нас на пульте и так маловато. Кстати, подключая плеер VLC к нашему пульту, мы не задействовали кнопки со стрелками (KEY_DOWN KEY_UP KEY_LEFT KEY_RIGHT), кнопку "ок" (KEY_OK) и кнопку "menu" (start), но Вы их можете настроить самостоятельно по Вашему вкусу, список команд для VLC выглядит примерно так:
Fullscreen -> key-toggle-fullscreen
Play/Pause -> key-play-pause
Pause only -> key-pause
Play only -> key-play
Faster -> key-faster
Slower -> key-slower
Next -> key-next
Previous -> key-prev
Stop -> key-stop
Position -> key-position
Very short backwards jump -> key-jump-extrashort
Very short forward jump -> key-jump+extrashort
Short backwards jump -> key-jump-short
Short forward jump -> key-jump+short
Medium backwards jump -> key-jump-medium
Medium forward jump -> key-jump+medium
Long backwards jump -> key-jump-long
Long forward jump -> key-jump+long
Activate -> key-nav-activate
Navigate up -> key-nav-up
Navigate down -> key-nav-down
Navigate left -> key-nav-left
Navigate right -> key-nav-right
Go to the DVD menu -> key-disc-menu
Select previous DVD title -> key-title-prev
Select next DVD title -> key-title-next
Select prev DVD chapter -> key-chapter-prev
Select next DVD chapter -> key-chapter-next
Quit -> key-quit
Volume up -> key-vol-up
Volume down -> key-vol-down
Mute -> key-vol-mute
Subtitle delay up -> key-subdelay-up
Subtitle delay down -> key-subdelay-down
Audio delay up -> key-audiodelay-up
Audio delay down -> key-audiodelay-down
Cycle audio track -> key-audio-track
Cycle subtitle track -> key-subtitle-track
Cycle source aspect ratio -> key-aspect-ratio
Cycle video crop -> key-crop
Cycle deinterlace modes -> key-deinterlace
Show interface -> key-intf-show
Hide interface -> key-intf-hide
Take video snapshot -> key-snapshot
Go back in browsing history -> key-history-back
Go forward in browsing history -> key-history-forward
Record -> key-record
Dump -> key-dump
Crop one pixel from the top of the video -> key-crop-top
Uncrop one pixel from the top of the video -> key-uncrop-top
Crop one pixel from the left of the video -> key-crop-left
Uncrop one pixel from the left of the video -> key-uncrop-left
Crop one pixel from the bottom of the video -> key-crop-bottom
Uncrop one pixel from the bottom of the video -> key-uncrop-bottom
Crop one pixel from the right of the video -> key-crop-right
Uncrop one pixel from the right of the video -> key-uncrop-right
Set playlist bookmark 1 -> key-set-bookmark1
Set playlist bookmark 2 -> key-set-bookmark2
Set playlist bookmark 3 -> key-set-bookmark3
Set playlist bookmark 4 -> key-set-bookmark4
Set playlist bookmark 5 -> key-set-bookmark5
Set playlist bookmark 6 -> key-set-bookmark6
Set playlist bookmark 7 -> key-set-bookmark7
Set playlist bookmark 8 -> key-set-bookmark8
Set playlist bookmark 9 -> key-set-bookmark9
Set playlist bookmark 10 -> key-set-bookmark10
Play playlist bookmark 1 -> key-play-bookmark1
Play playlist bookmark 2 -> key-play-bookmark2
Play playlist bookmark 3 -> key-play-bookmark3
Play playlist bookmark 4 -> key-play-bookmark4
Play playlist bookmark 5 -> key-play-bookmark5
Play playlist bookmark 6 -> key-play-bookmark6
Play playlist bookmark 7 -> key-play-bookmark7
Play playlist bookmark 8 -> key-play-bookmark8
Play playlist bookmark 9 -> key-play-bookmark9
Play playlist bookmark 10 -> key-play-bookmark10
Доступные команды lirc обычно приводятся в документации той или иной программы, поддерживающей lirc.
Надеюсь, эта инфа будет кому-нибудь полезна...