Настраиваем ПДУ в Linux Mint 19 и Ubuntu 18.04 (I386, AMD64).

Опубликовано пользователем admin в . Опубликовано в Linux

В материале "Как настроить ПДУ в Linux" я рассказывал как настроить дистанционное управление в Linux, но с выходом Linux Mint 19 и Ubuntu 18.04, ПДУ перестал работать и пользуясь этой инструкцией настроить его уже не удаётся.

Связано это с тем, что в новых ядрах Linux, начиная с 4.10 и выше модуль lirc_serial отсутствует, вместо него теперь используется модуль serial_ir.
Кроме того, в новой версии Lirc 0.10.0-2, а именно эта версия теперь используется в Linux Mint 19 и Ubuntu 18.04, изменились настройки, полностью отказались от файла конфигурации hardware.conf и вместо него теперь используется файл настроек Lirc с названием lirc_options.conf.

В связи с этим, теперь, чтобы заставить работать ПДУ придется разобраться с новыми настройками.
Итак поехали:

Setserial, здесь без изменений.

Устанавливаем пакет Setserial,который нужен для для настройки и/или получения информации о конфигурации последовательного интерфейса.Установить его можно, выполнив в терминале следующую команду:

sudo apt-get install setserial

или же через менеджер пакетов Synaptic.

serserial

После установки пакета смотрим,что у нас получилось, введя в терминале команду:

sudo setserial -g /dev/ttyS*

setserial2

Видим,что в наличии присутствует один последовательный порт - СОМ1, где (ttyS0 - это СОМ1,ttyS1- это СОМ2 и т.д). Подсоединяем ИК приемник к СОМ1 и переходим в папку /var/lib/setserial,где от имени администратора открываем файл autoserial.conf, удаляем все содержимое в нем и прописываем:

/dev/ttyS0 uart none

Копируем этот файл в папку /etc или можно сделать тоже самое, набрав в терминале команду:

sudo cp /var/lib/setserial/autoserial.conf /etc/serial.conf

После этого устанавливаем пакет Lirc,который позволяет принимать и передавать инфракрасные сигналы в операционной системе Linux.Установить его также можно через терминал,введя команду:

sudo apt-get install lirc

или же через менеджер пакетов Synaptic.

В новой версии Lirc программа конфигуратор не запускается, просто устанавливается пакет, без возможности задать какие либо настройки.

Теперь приступаем к настройке собственно Lirc.
Переходим в папку etc и открываем от имени Root папку modprobe.d, в ней создаём файл serial_ir.conf с таким содержанием:

#COM1 equivalent, /dev/ttyS0
options serial_ir irq=4 io=0x3f8
#COM2 equivalent, /dev/ttyS1
#options lirc_serial irq=3 io=0x2f8

Сохраняем изменение и переходим в /etc/lirc.

В этой папке удаляем всё, оставляем только файл lirc_options.conf, в который внесём изменения.
В итоге содержимое этого файла для системы I386 должно быть таким:

# These are the default options to lircd, if installed as
# /etc/lirc/lirc_options.conf. See the lircd(8) and lircmd(8)
# manpages for info on the different options.
#
# Some tools including mode2 and irw uses values such as
# driver, device, plugindir and loglevel as fallback values
# in not defined elsewhere.

[lircd]
nodaemon = False
driver = default
device = /dev/lirc0
output = /var/run/lirc/lircd
pidfile = /var/run/lirc/lircd.pid
plugindir = /usr/lib/i386-linux-gnu/lirc/plugins
permission = 666
allow-simulate = No
repeat-max = 600
#effective-user =
#listen = [address:]port
#connect = host[:port]
#loglevel = 6
#release = true
#release_suffix = _EVUP
#logfile = ...
#driver-options = ...

[lircmd]
uinput = False
nodaemon = False

[modinit]
code1 = /sbin/rmmod serial_ir
code2 = /bin/setserial /dev/ttyS0 uart none
code3 = /sbin/modprobe serial_ir

# [lircd-uinput]
# add-release-events = False
# release-timeout = 200
# release-suffix = _EVUP

Для системы AMD64 таким:

# These are the default options to lircd, if installed as
# /etc/lirc/lirc_options.conf. See the lircd(8) and lircmd(8)
# manpages for info on the different options.
#
# Some tools including mode2 and irw uses values such as
# driver, device, plugindir and loglevel as fallback values
# in not defined elsewhere.

[lircd]
nodaemon = False
driver = default
device = /dev/lirc0
output = /var/run/lirc/lircd
pidfile = /var/run/lirc/lircd.pid
plugindir = /usr/lib/x86_64-linux-gnu/lirc/plugins
permission = 666
allow-simulate = No
repeat-max = 600
#effective-user =
#listen = [address:]port
#connect = host[:port]
#loglevel = 6
#release = true
#release_suffix = _EVUP
#logfile = ...
#driver-options = ...

[lircmd]
uinput = False
nodaemon = False

[modinit]
code1 = /sbin/rmmod serial_ir
code2 = /bin/setserial /dev/ttyS0 uart none
code3 = /sbin/modprobe serial_ir

# [lircd-uinput]
# add-release-events = False
# release-timeout = 200
# release-suffix = _EVUP

Сохраняем изменения.

Также в папку lirc необходимо поместить файл конфигурации вашего пульта lircd.conf и файл lircrc с командами управления вашими приложениями.

Более подробно об этом я рассказывал в материалах "Как настроить ПДУ в Linux" и "Как настроить управление приложениями с помощью ПДУ."

После всего сделанного перезагружаем компьютер и проверяем работоспособность ПДУ.

Вернуться на сайт.

Комментарии (2)

  • vovlev

    |

    Настроил, но при нажатии на любую кнопку происходит залипание. Смотрю в irw, нажимаю, например, 0, пишет код кнопки, а дальше бесконечно печатает нули... В чем может быть причина?

    Отзыв

    • admin

      |

      Хм, не знаю, не встречал такого ни разу, файл конфигурации вашего пульта правильный?
      Посмотрите в базе ваш пульт: http://lirc-remotes.sourceforge.net/remotes-table.html

      У меня выглядит так:

      Отзыв

Оставить комментарий

Вы должны авторизироваться для комментирования.