Настраиваем ПДУ в 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.
После установки пакета смотрим,что у нас получилось, введя в терминале команду:
sudo setserial -g /dev/ttyS*
Видим,что в наличии присутствует один последовательный порт - СОМ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
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
46 | 연합 수련회 | 아빠 | 2024.07.30 | 192 |
45 | 더뉴카니발 사이드미러 품번 | 아빠 | 2024.06.17 | 330 |
44 | 그대 아무 걱정 하지 말아요(캘리연습) | 아빠 | 2022.09.04 | 478 |
43 | raspberry pi zero를 이용한 Home Switch 프로그램 | 아빠 | 2022.01.05 | 895 |
42 | python2에서 python3으로 바뀌면서 pi relay board 코드 수정 | 아빠 | 2021.05.03 | 1295 |
41 | 봄이 지나 철쭉이 피지만 | 아빠 | 2021.04.22 | 1201 |
40 | 네트워크 기능이 없는 프린터 raspberry pi + cups + xinetd를 이용하여 9100 포트 생성하기 | 아빠 | 2021.04.22 | 20662 |
39 | 더뉴카니발 와이퍼 리필 고무 품번 | 아빠 | 2021.01.05 | 1406 |
38 | 서버 오류 수리 완료 | 아빠 | 2020.12.01 | 1340 |
37 | 삼식이가 하늘로 가다 | 아빠 | 2020.09.10 | 1300 |
36 | 카니발 주행거리 | 아빠 | 2020.07.06 | 1330 |
35 | 더뉴카니발 YP2020 트위터 케이블 [1] | 아빠 | 2020.07.06 | 1451 |
34 | 라즈베리 파이를 이용한 경고등 켜지게 하는 프로그램 [3] | 아빠 | 2020.06.15 | 1437 |
33 | 전화(노트8) 통화 먹통 | 아빠 | 2020.05.08 | 1329 |
32 | 카봇퍼즐 | 아빠 | 2019.12.15 | 1464 |
31 | 서버 하드가 망가졌어요 | 아빠 | 2019.12.15 | 1436 |
30 | 세탁기 소스 | 아빠 | 2019.11.27 | 16809 |
29 | Adios! Amigo! Bonjour enchate! [1] | 아빠 | 2019.09.20 | 25203 |
28 | 싱크대 조명 | 아빠 | 2019.08.28 | 1637 |
27 | 약 3일동안의 미세먼지 | 아빠 | 2019.07.15 | 1630 |
그간 고생이 이 한단어로 해결 되었다.
/etc/modprobe.d/serial_ir.conf
지금까지 ttyS0 포트만 고집하는 줄 알았는데 위 환경파일만 해주면 내가 원하는 포트로 설정이 가능 한 것이었다.
그럼 이제 18.04 에서도 lirc 가 잘 작동 될까?
내일 IR_Blaster 가지고 와서 테스트 해 봐야 겠다.
환경 파일 설정한 후 dmesg 내용이다.
--------------------------------
dmesg | grep serial
[ 322.670557] serial_ir serial_ir.0: auto-detected active high receiver
[ 322.774594] rc rc0: Serial IR type home-brew as /devices/platform/serial_ir.0/rc/rc0
[ 322.774660] input: Serial IR type home-brew as /devices/platform/serial_ir.0/rc/rc0/input6
[ 322.774949] lirc lirc0: lirc_dev: driver ir-lirc-codec (serial_ir) registered at minor = 0
root@home-server1810:/etc/modprobe.d# lsmod | grep lirc
ir_lirc_codec 16384 2
lirc_dev 16384 2 ir_lirc_codec
rc_core 36864 6 lirc_dev,ir_lirc_codec,ir_rc6_decoder,rc_rc6_mce,serial_ir
root@home-server1810:/etc/modprobe.d# ls /dev/lirc0
/dev/lirc0