Fernbedienung - USB X10 mit Kerneltreibern
Hulk (Diskussion | Beiträge) K |
Epse (Diskussion | Beiträge) (→Kernel / Modul) |
||
Zeile 25: | Zeile 25: | ||
Als nächstes ersetzen wir die Originaldatei mit einer modifizierten ati_remote.c, die die fehlenden Tasten unterstützt.<br> | Als nächstes ersetzen wir die Originaldatei mit einer modifizierten ati_remote.c, die die fehlenden Tasten unterstützt.<br> | ||
<br> | <br> | ||
− | [http://www.xtremeweb.de/external/vdr/ati_remote.c Download] | + | [http://www.xtremeweb.de/external/vdr/ati_remote.c Download]<br> |
+ | <br> | ||
+ | Altenativ habe ich (epse) für Fernbedienungen mit Wechselcode folgende ati_remote.c erstellt. Sie basiert auf der vorherigen ati_remote.c <br> | ||
+ | <br> | ||
+ | [http://web20.653.bces.de/ati-remote/ati_remote.c Download]<br> | ||
<br> | <br> | ||
Als nächstes sollte man sich das Verzeichniss /usr/src/linux/drivers/input/misc genauer anschauen:<br> | Als nächstes sollte man sich das Verzeichniss /usr/src/linux/drivers/input/misc genauer anschauen:<br> | ||
Zeile 56: | Zeile 60: | ||
Wir testen dies durch '''modprobe ati_remote''' | Wir testen dies durch '''modprobe ati_remote''' | ||
<br> | <br> | ||
− | |||
== VDR anpassen == | == VDR anpassen == |
Version vom 9. März 2009, 23:59 Uhr
Die Nutzung dieser Fernbedienung unter Verwendung von lirc erwies sich als schwierig.
Konfiguration Medion USB X10 mit LIRC
Es kam öfters dazu, dass der VDR nicht mehr auf Eingabe durch die Fernbedienung reagierte.
Es liess sich jedoch nicht eindeutig isolieren, ob es direkt am lirc lag, oder der VDR nicht
gut genug mit lirc zusammenarbeiten konnte.
Aus diesem Grunde suchte ich nach einer anderen Möglichkeit meine Fernbedienung nutzen zu können.
Mein VDR Rechner läuft mit einem 2.6 Kernel. Dieser bietet bereits Support für diese Fernbedienung
mit dem Kernel Module ati_remote an. Leider sind jedoch nicht alle Tasten der Fernbedienung nutzbar,
da im Sourcecode des Treibers nicht alle Tasten eingetragen sind.
Dieses Problem lässt sich jedoch lösen.
Kernel / Modul
Im folgenden also eine kleine Anleitung, wie man den Kerneltreiber verwenden kann, und trotzdem alle Tasten der Fernbedienung nutzen kann.
Ich setze voraus, dass ein aktueller 2.6 Kernel Source tree unter /usr/src/linux zu finden ist.
Das Originalmodul befindet sich im Verzeichniss /usr/src/linux/drivers/input/misc
Wir sichern dies zuerst durch:
cp /usr/src/linux/drivers/input/misc/ati_remote.c /usr/src/linux/drivers/input/misc/ati_remote.c.org
Als nächstes ersetzen wir die Originaldatei mit einer modifizierten ati_remote.c, die die fehlenden Tasten unterstützt.
Download
Altenativ habe ich (epse) für Fernbedienungen mit Wechselcode folgende ati_remote.c erstellt. Sie basiert auf der vorherigen ati_remote.c
Download
Als nächstes sollte man sich das Verzeichniss /usr/src/linux/drivers/input/misc genauer anschauen:
ll -h /usr/src/linux/drivers/input/misc
Sind hier schon die Dateien
.ati_remote.ko.cmd
.ati_remote.mod.o.cmd
.ati_remote.o.cmd
vorhanden, so bedeutet dies, dass das Modul (mit dem "alten" Sourcecode) bereits übersetzt wurde.
Man kann dies auch an den Timestamps der Dateien erkennen.
Um später beim Compilieren zu Erreichen, dass das Modul erneut übersetzt wird, sollte man die
"neuen" Dateien weglöschen. Die Auswahl, welche Dateien zu löschen sind, trifft man anhand des
Timestamps und der Endung der Datei.
Gelöscht werden können die Dateien mit den Endungen:
*.cmd *.ko *.o
Nun sollte das Verzeichniss präpariert sein.
Nun wechseln wir ins Verzeichniss des Kernels mittels
cd /usr/src/linux/ und starten make menuconfig
Wir aktivieren hier den Support für die Fernbedienung, indem wir ein Modul bauen lassen.
Zu finden unter:
Device Drivers ---> Input device support ---> Miscellaneous devices ---> <M> ATI / X10 USB RF remote control
Nachdem man mittels Exit wieder in der Shell ist, nun das Compilieren anstossen mittels:
make
Wenn dies erledigt ist, müssen die Module installiert werden mittels:
make modules_install
Jetzt sollte das Modul installiert sein.
Wir testen dies durch modprobe ati_remote
VDR anpassen
Mich hat immer gestört, dass bei USB Geräten nicht sicher davon ausgegangen werden konnte, dass der VDR
das richtige Inputdevice anspricht, nachdem man ein anderes USB Gerät an oder abgesteckt hat.
Beim nächsten Neustart konnte man nicht sicher sein, dass die Fernbedienung immer noch z.B. /dev/input/event4 ist.
Eine leichte Modifikation des Skriptes runvdr hilft mir bei diesem Problem:
Folgenden 3zeiler in die runvdr mit einfügen (am Besten eine Zeile vor while (true) do)
ln -sf $(for x in `ls /dev/input/event*` ; do
if [ -n "$(udevinfo -a -p `udevinfo -q path -n $x` | grep 'X10 Wireless Technology')" ] ; then
echo $x; fi ; done) /dev/input/tmx10
Das remote Plugin des VDR nutzt nun /dev/input/tmx10
-P 'remote -i /dev/input/tmx10'
gestartet.
Durch den 3zeiler wurde ein Symlink von /dev/input/tmx10 auf das korrekte Inputdevice gelegt.
Wenn man die Fernbedienung neu anlernen möchte (man hat ja nun die Farbtasten), den VDR stoppen, die remote.conf
löschen und danach den VDR neu starten.