Known Issue of LIRC on ODROID-C2
During booting, the operation of loading LIRC modules fails frequently, so you can see IR operation doesn't work.
Under this situation, the following message comes and there is no input event from IR.
- target
$ irw connect: Connection refused
It seems lirc is stpped by systemd caused by an unknown reason and it causes abnormal termination of lirc process.
We are trying to fix it and you can use one of the following workarounds until we've done it.
Workaround (1)
Add sleep count at the following point.
load_modules() of /etc/init.d/lirc
modprobe $mod 2> /dev/null || MODULES_MISSING=true** sleep 1
$ vi /etc/init.d/lirc ..... ..... load_modules () { MODULES_MISSING=false log_daemon_msg "Loading LIRC modules" for mod in $*; do if [ $mod = "udev" ]; then log_end_msg 0 log_success_msg "Restarted via udev, don't reload modules" break else modprobe $mod 2> /dev/null || MODULES_MISSING=true sleep 1 fi done log_end_msg $? if $MODULES_MISSING; then log_failure_msg "Unable to load LIRC kernel modules. Verify your" log_failure_msg "selected kernel modules in /etc/lirc/hardware.conf" START_LIRCMD=false START_LIRCD=false fi }
Workaround (2)
Restart lirc service after booting makes LIRC normal.
- target
root@odroid64:/home/odroid# irw connect: Connection refused root@odroid64:/home/odroid# service lirc restart root@odroid64:/home/odroid# irw 000000004db2738c 00 KEY_ENTER lircd.conf 000000004db29966 01 KEY_LEFT lircd.conf 000000004db2837c 01 KEY_RIGHT lircd.conf
You can add auto start daemon as following.
- target
- auto execution "service lirc restart" odroid@odroid64:~$ su root@odroid64:/home/odroid# cd /etc/init.d root@odroid64:/etc/init.d# vi restartlirc #!/bin/sh service lirc restart root@odroid64:/etc/init.d# chmod 755 restartlirc root@odroid64:/etc/init.d# cd ../rcS.d root@odroid64:/etc/rcS.d# ln -s ../init.d/restartlirc S90restartlirc root@odroid64:/etc/rcS.d# reboot