Werden Eure USB-Lirc Empfänger bei 3.0.2 erkannt und die Module dazu geladen? Für den Start von lircd habe ich mir das Upstart-Init Skript von yaVDR angesehen und versucht es an unsere Bedingungen anzupassen.
Dazu habe ich rc.functions um diese zwei Einträge erweitert.load_lirc_modules()
{
MODULES_MISSING=false
for mod in $*; do
modprobe $mod 2> /dev/null || MODULES_MISSING=true
done
if $MODULES_MISSING; then
exit 0
fi
}
build_remote_args()
{
REMOTE_ARGS="$*"
#For remote only detection support, we need
#both REMOTE_DEVICE and TRANSMITTER_DEVICE undefined
if [ -z "$REMOTE_DEVICE" ] && [ -z "$TRANSMITTER_DEVICE" ] && [ -c $dev ]; then
REMOTE_DEVICE="$dev"
fi
#If we have a REMOTE_DEVICE or REMOTE_DRIVER defined (either because no devices
#were defined, OR if we explicitly did), then populate REMOTE_ARGS
if [ ! -z "$REMOTE_DEVICE" ] || [ ! -z "$REMOTE_DRIVER" ]; then
if [ -n "$REMOTE_DEVICE" ] && [ "$REMOTE_DEVICE" != "none" ]; then
REMOTE_ARGS="--device=$REMOTE_DEVICE $REMOTE_ARGS"
fi
if [ -n "$REMOTE_DRIVER" ] && [ "$REMOTE_DRIVER" != "none" ]; then
REMOTE_ARGS="--driver=$REMOTE_DRIVER $REMOTE_ARGS"
fi
#Now, if we ALSO have a transmitter defined, add some args
#To make the first lircd listen up
if [ ! -z "$TRANSMITTER_DEVICE" ] || [ ! -z "$TRANSMITTER_DRIVER" ]; then
REMOTE_ARGS="$REMOTE_ARGS --listen"
fi
REMOTE_ARGS="--output=$REMOTE_SOCKET.$$ $REMOTE_ARGS"
fi
echo $REMOTE_ARGS
}
Es werden die Dateien lircd.conf und hardware.conf aus /etc/lirc (gibt es in MLD bisher nicht) ausgewertet.
Das eigentliche Startsript sieht im Moment so aus.#!/bin/sh
# Startet den lirc demon
case "$1" in
start | resume)
. /etc/init.d/rc.functions
. /etc/lirc/hardware.conf
test -f /usr/sbin/lircd || exit 0
if [ -f /etc/lirc/hardware.conf ];then
. /etc/lirc/hardware.conf
fi
if [ ! -f /etc/lirc/lircd.conf ] ||
grep -q "^#UNCONFIGURED" /etc/lirc/lircd.conf ||
[ "x$START_LIRCD" = "xfalse" ]; then
exit 0
fi
if [ "$LOAD_MODULES" = "true" ]; then
load_lirc_modules $REMOTE_MODULES
fi
REMOTE_SOCKET=/var/run/lirc/lircd
build_remote_args
REMOTE_LIRCD_ARGS=`build_remote_args $REMOTE_LIRCD_ARGS`
if [ -z "$REMOTE_LIRCD_ARGS" ]; then
exit 0
fi
exec /usr/sbin/lircd --nodaemon $REMOTE_LIRCD_ARGS
if [ ! -f /etc/lirc/lircd.conf ] ||
grep -q "^#UNCONFIGURED" /etc/lirc/lircd.conf ||
[ "x$START_LIRCD" = "xfalse" ]; then
exit 1
fi
;;
stop | halt)
. /etc/init.d/rc.functions
echo "Stopping lirc daemon"
killall lircd || failed
rm -r /dev/lircd
unload_modules lirc
update_setting "VDR_RCU" ""
update_setting "VDR_SXFE_ARGS" "${VDR_SXFE_ARGS% --lirc}"
check_status
;;
restart)
$0 stop
$0 start
;;
init)
start=1
resume=1
halt=1
after=eventlircd
before=vdr
;;
*)
echo "Usage $0 {start | stop | restart}" >&2
exit 1
esac
Es werden keine Module in der hardware.conf automatisch eingetragen und das WbIf müsste sicherlich auch umgeschrieben werden. Es ist nur ein bescheidener Versuch der als eventuelle Arbeitsvorlage dienen könnte.
@Claus,
es wäre nett wenn Du Dich der Sache annehmen würdest. Es sollte unterschieden werden ob es ein Serail-Empfänger ohne udev oder ein USB-Empfänger mit Udev-Unterstützung ist. Weiterhin sollten die lircd.conf an die einheitliche remote.conf angepasst werden können.
Siehe Dir auch bitte die obigen Skripte an, ob damit eine vorläufige lircd Funktion möglich ist und gegebenenfalls