Hi, I have spent the last two night trying to get my new MCE(1039) remote working. The good think about the remote is that there is plenty of information on how to get it working under linux, but still I fail.
The remote is detected in "dmesg" and "lsusb", I can run "lircd -n" and connect with "irw" that will present the correct pressed keys. Rebooting the frontend(CRTL-ALT-BACKSLASH) and it's working in MythTV(!).
But the trouble is to get KnoppMyth to start "lircd" at boot!
Since I have installed my own version of lirc, i have changed to path to the daemon in /etc/init.d/lirc from /usr/sbin/lircd to /usr/local/sbin/lircd. I have tried both with and without "$ARGS..." after lircd, but still it fails to load.
Running "/usr/sbin/update-rc.d lirc defaults" will only result in "System startup links for /etc/init.d/lirc already exist."
So, any ideas why this could be failing? It feels like I'm so close to solving this, frustrating.
Here is my "lirc" and "hardware.con"-files. Could anyone send me there working copies?
Code:
#! /bin/sh
#
#
load_modules ()
{
local MODULES_MISSING=false
for mod in $*
do
modprobe -k $mod 2> /dev/null || MODULES_MISSING=true
done
if $MODULES_MISSING; then
echo "#####################################################"
echo "## I couldn't load the required kernel modules ##"
echo "## You should install lirc-modules-source to build ##"
echo "## kernel support for your hardware. ##"
echo "#####################################################"
echo "## If this message is not appropriate you may set ##"
echo "## LOAD_MODULES=false in /etc/lirc/hardware.conf ##"
echo "#####################################################"
START_LIRCMD=false
START_LIRCD=false
fi
}
build_args ()
{
local ARGS="$*"
if [ -n "$DEVICE" ] && [ "$DEVICE" != "none" ]; then
if [ -d /dev/lirc ] && [ "$DEVICE" = "/dev/lirc" ];then
#new device names
DEVICE="/dev/lirc/0"
fi
ARGS="--device=$DEVICE $ARGS"
fi
if [ -n "$DRIVER" ] && [ "$DRIVER" != "none" ]; then
ARGS="--driver=$DRIVER $ARGS"
fi
echo $ARGS
}
test -f /usr/local/sbin/lircd || exit 0
test -f /usr/local/sbin/lircmd || exit 0
#test -f /etc/lirc/lircd.conf || exit 0
#test -f /etc/lirc/lircmd.conf || exit 0
START_LIRCMD=true
START_LIRCD=true
if [ ! -f /etc/lirc/lircd.conf ] \
|| grep -q "^#UNCONFIGURED" /etc/lirc/lircd.conf;then
if [ "$1" = "start" ]; then
echo "##################################################"
echo "## LIRC IS NOT CONFIGURED ##"
echo "## ##"
echo "## read /usr/share/doc/lirc/html/configure.html ##"
echo "##################################################"
fi
START_LIRCD=false
START_LIRCMD=false
fi
if [ ! -f /etc/lirc/lircmd.conf ] \
|| grep -q "^#UNCONFIGURED" /etc/lirc/lircmd.conf;then
START_LIRCMD=false
fi
if [ -f /etc/lirc/hardware.conf ];then
. /etc/lirc/hardware.conf
fi
case "$1" in
start)
if [ "$LOAD_MODULES" = "true" ] && [ "$START_LIRCD" = "true" ]; then
load_modules $MODULES
fi
echo -n "Starting lirc daemon:"
if $START_LIRCD; then
echo -n " lircd"
LIRCD_ARGS=`build_args $LIRCD_ARGS`
start-stop-daemon --start --quiet --exec /usr/local/sbin/lircd \
< /dev/null
fi
if $START_LIRCMD; then
echo -n " lircmd"
start-stop-daemon --start --quiet --exec /usr/local/sbin/lircmd \
< /dev/null
fi
echo "."
;;
stop)
echo -n "Stopping lirc daemon:"
echo -n " lircmd"
start-stop-daemon --stop --quiet --exec /usr/local/sbin/lircmd
echo -n " lircd"
start-stop-daemon --stop --quiet --exec /usr/local/sbin/lircd
echo "."
;;
reload|force-reload)
if $START_LIRCD; then
start-stop-daemon --stop --quiet --signal 1 --exec /usr/local/sbin/lircd
fi
if $START_LIRCMD; then
start-stop-daemon --stop --quiet --signal 1 --exec /usr/local/sbin/lircmd
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/lircd {start|stop|reload|restart|force-reload}"
exit 1
esac
exit 0
Code:
# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS=""
#Don't start lircmd even if there seems to be a good config file
START_LIRCMD=false
#Try to load appropriate kernel modules
LOAD_MODULES=true
# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
# automatically used instead
DEVICE="/dev/lirc"
MODULES="lirc_dev lirc_mceusb2"