3
« am: Juli 08, 2014, 06:51:33 Vormittag »
Hallo Sundtek Team
Ich besitze den Sundtek MediaTV Pro und habe den entsprechenden Linux-Treiber Version Version 01.07.2014 installiert. Für meinem Ubuntu Media Server (LTS 14.04) verwende ich eine Logitech Harmony mit einem RC6 Infrarot Empfänger unter LIRC. Konfiguriert ist die Harmony als Windows Media Center Fernbedienung.
Damit diese Konfiguration (Hardware, Software) funktioniert, muss in der hardware.conf der Eintrag REMOTE_DEVICE auf /dev/lirc0 (REMOTE_DEVICE=/dev/lirc0) eingestellt sein.
Auf meinem System funktioniert meine Konfiguration nicht, weil der Eintrag von REMOTE_DEVICE nach einem Rechnerneustart immer auf REMOTE_DEVICE=/dev/input/eventXX (XX Stellvertreter für Zahl) modifiziert wurde.
Es hat mich nun zwei Tage Fehlersuche gekostet, um eher zufällig die Ursache dafür zu finden: die udev rule "80-remote-eeti.rules" und das dazugehörige Script "lirc.sh" , welche ihr Treiber in /etc/udev und /opt/bin installiert.
Vielleicht wäre eine Abfrage bei der Installation ihrers Treibers sinnvoll, in der der Benutzer des MediaTV Pro gefragt wird, welche Konfiguration von Lirc er verwenden will (Sundtek oder Nicht-Sundtek).
Vielleicht wäre aber auch eine erweiterte Überprüfung der Einträge in /proc/bus/input/devices möglich. Der Eintrag für (m)einen RC6 Infrarot Entfänger lautet:
N: Name="Media Center Ed. eHome Infrared Remote Transceiver (147a:e042)"
---modifizierte lirc.sh---
#!/bin/bash
OTHERDEVICE=`grep "Media Center" /proc/bus/input/devices`
if [ "$OTHERDEVICE" != "" ]; then
echo `date +"%Y-%m-%d %H:%M:%S [$$]"`" RC: disable Sundtek Remote" >> /var/log/mediasrv.log
echo `date +"%Y-%m-%d %H:%M:%S [$$]"`" RC: using Media Center Remote" >> /var/log/mediasrv.log
exit 0;
else
if [ "$1" = "ATTACH" ]; then
if [ -f /proc/bus/input/devices ]; then
INPUTPATH=`grep -A2 Sundtek /proc/bus/input/devices | grep Sysfs | sed 's#.*Sysfs=#/sys#g'`
if [ "$INPUTPATH" = "" ]; then
echo "RC: no remote attached"
exit 0;
fi
EVENT=`ls ${INPUTPATH}/event* -d | sed 's#.*event##g'`
EVENTFILE=/dev/input/event${EVENT}
if [ "$EVENTFILE" = "/dev/input/event" ]; then
echo "RC: no remote attached"
exit 0;
fi
if [ -c $EVENTFILE ]; then
echo `date +"%Y-%m-%d %H:%M:%S [$$]"`" RC: IR Event /dev/input/event${EVENT}" >> /var/log/mediasrv.log
fi
if [ -f /etc/lirc/hardware.conf ]; then
sed -i "s#REMOTE_DEVICE=.*#REMOTE_DEVICE=/dev/input/event${EVENT}#" /etc/lirc/hardware.conf
if [ -f /etc/init.d/lirc ]; then
echo `date +"%Y-%m-%d %H:%M:%S [$$]"`" RC: Restarting LIRC" >> /var/log/mediasrv.log
/etc/init.d/lirc restart
fi
fi
fi
elif [ "$1" = "REMOVE" ]; then
echo `date +"%Y-%m-%d %H:%M:%S [$$]"`" RC: detached remote control" >> /var/log/mediasrv.log
else
echo "Syntax: $0 [ATTACH|REMOVE]"
fi
fi
------
Freundliche Grüsse, R.Wegmann