Fernbedienung - USB X10
K (→Beschreibung) |
Hulk (Diskussion | Beiträge) K (Hob den Schutz von „Fernbedienung - USB X10“ auf) |
||
| (2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 152: | Zeile 152: | ||
Dazu ist z.B. ein Eintrag in der /etc/modules.conf notwendig:<br> | Dazu ist z.B. ein Eintrag in der /etc/modules.conf notwendig:<br> | ||
*options lirc_atiusb mask=0xffff<br> | *options lirc_atiusb mask=0xffff<br> | ||
| + | |||
| + | Unter ubuntu karmic gibt es die modules.conf nicht mehr. Es muss eine neue Datei unter /etc/modprobe.d/ angelegt werden. Es empfiehlt sich den Namen des Moduls, also lirc_atiusb.conf, zu nutzen. In dieser Datei den options Eintrag erstellen und im Anschluss funktionieren die Kanäle auch unter karmic. | ||
| + | |||
In diesem Beispiel werden alle Kanäle akzeptiert, was der Default-Einstellung des Moduls entspricht. | In diesem Beispiel werden alle Kanäle akzeptiert, was der Default-Einstellung des Moduls entspricht. | ||
| Zeile 488: | Zeile 491: | ||
(Zitat Hibbelharry) | (Zitat Hibbelharry) | ||
http://www.vdrportal.de/board/thread.php?postid=857795#post857795 | http://www.vdrportal.de/board/thread.php?postid=857795#post857795 | ||
| + | |||
| + | ==Fehlerbehebung:== | ||
| + | * wenn irw nicht funktioniert und im syslog etwas wie "lircd-0.8.3[12187]: couldn't claim USB interface: Device or resource busy" erscheint, habt ihr wahrscheinlich die oben bei Varianten stehenden Möglichkeiten vermischt, z.B. dürft ihr '''NICHT''' bei Debian in der hardware.conf DRIVER="atilibusb" stehen haben und lirc_atiusb laden! | ||
==Links== | ==Links== | ||
Aktuelle Version vom 23. Februar 2011, 18:19 Uhr
[Bearbeiten] Beschreibung
Diese Fernbedienung ist seit längerer Zeit bei jedem PC vom ALDI dabei. Außerdem wird sie seit einiger Zeit vom Restposten-Händler Pollin.de verkauft. Ansonsten einfach mal bei Ebay reinschauen oder bei BSS-Computer. Das tolle an dieser Fernbedienung ist, dass diese mit Funk und nicht mit Infrarot arbeitet. Die Reichweite ist ungefähr 10 m. Durch eine Ziegelwand (nicht Stahlbetondecke) geht sie auch noch.
Beschriftung auf der X10 Rückseite der Fernbedienung: RF Remote Control, P/N 20017670, FCC ID: B4S20016398, CE0536, Made in China by X10
Es gibt mehrere Fernbedienungen, welche mit demselben Treiber unter Linux laufen. Eine davon mit integriertem Mini-Joystick für Mausbedienungen wurde zusammen mit der ATI "All-In-Wonder" Grafikkarte verkauft (Fernbedienung - ATI USB Remote Wonder). Eine andere Variante ist unter dem Namen "Lola" bekannt [1].
[Bearbeiten] Bilder
[Bearbeiten] Konfiguration
[Bearbeiten] Varianten
Es gibt insgesamt drei Möglichkeiten die Fernbedienung unter Linux zu verwenden
- LIRC über das Kernel Modul lirc_atiusb
- LIRC über den Treiber --driver=atilibusb
- Kernel Modul ati_remote (ohne LIRC), unterstützt mit dem original Kernel Modul derzeit nicht alle Tasten (Kernel Modul mit allen Tasten hier)
Im folgenden wird die erste Variante beschrieben. Diese hat den Vorteil, dass man das Verhalten über die Module-Parameter sehr flexibel einstellen kann. Welche das genau sind siehe
modinfo lirc_atiusb
[Bearbeiten] Kompilieren von mind. LIRC 0.7.0
LIRC 0.7.0 runterladen und entpacken anschließend in Verzeichnis wechseln
- tar –xzvf lirc-0.7.0.tar.gz
- cd lirc-0.7.0
im LIRC Verzeichnis:
- ./autogen.sh
- ./setup.sh
-> grafisches Tool für Treiber
Folgendes auswählen:
- 1 - Driver configuration
- 8 - USB devices
- 1 - ATI/NVIDIA/X10
- 4 - Save configuration & configure
ACHTUNG notwendig fürs kompilieren: Der Symbollink /usr/src/linux muß auf die Kernel-Sourcen des (verwendeten) Kernels weisen. Die Kernel-Sourcen sind unter /usr/src/<Versionsnummer des Kernels> (weiß jetzt nicht ob dies Distributionsabhängig ist). Ohne Kernel-Sourcen kann nicht kompiliert werden. Eventuell müssen diese runtergeladen und ggf. kompiliert werden.
SUSE: Installation mit Yast: suche "kernel-source" und ggf "kernel-update-tool"
Debian basierte: siehe http://linuxger.ircland.de/index.php/Kernel_Module_Build_Environment_unter_Debian_einrichten
ctvdr 4.5: Auswahl von lirc bei der Installation (vor dem kompilieren) ist sinnvoll, auch wenn man dort noch kein USB auswählen kann. Später in der /etc/lirc/hardware.conf den Aufruf der richtigen Module (lirc_dev und lirc_atiusb) kontrollieren. Auswahl bei lirc 0.8 setup.sh ebenfalls
- 1/ATI.
Einen symbolischen Link kann man mit folgendem Befehl erstellen:
- cd /usr/src
- ln –s linux-VersionsnameKernel linux
Beispiel bei mir (anzeigen mit ls -l):
linux -> linux-2.4.29
Kompilieren und Installieren:
- make
- make install
[Bearbeiten] Module laden
Einfach in ein Skript eintragen, welches bei jedem Start ausgeführt wird (z.B. SuSE /etc/init.d/boot.local)
- modprobe lirc_dev
- modprobe lirc_atiusb
ACHTUNG: Es muß USB und input laufen.
->Beim Kernel kompilieren: Unter „input core support“ müssen die Optionen „input core support“ und „event interface support“ aktiviert sein
In neueren Kerneln (2.6er Reihe) darf NICHT "Device Drivers / USB support / <M> ATI / X10 USB RF remote control" ausgewählt werden
(bei 2.6.23.11 Device drivers / Input device support / Miscellaneous devices / ATI / X10 USB...)
[Bearbeiten] LIRC Konfiguration
Hinweis: Wenn keine passende Konfigurations-Datei (lircd.conf) vorhanden ist, so kann diese mit dem von LIRC mitgelieferten Programm „irrecord“ erstellt werden. Dazu:
- cd /usr/local/bin
- ./irrecord output_lircd.conf
Für die Medion USB Fernbedieung habe ich die lircd.conf bereits erstellt (siehe Anhang) ihr braucht diese nur noch nach /etc/lircd.conf kopieren.
Bei der Erstellung eigener lircd.conf: Leerzeichen z.B. im Namen der Fernbedienung "Medion X 10" führen zu "Nichtakzeptanz" der ganzen Konfiguration also "Medion_X_10".
[Bearbeiten] Programm lirc ausführen:
- lircd –d /dev/lircd –c /etc/lircd.conf
Dieser lircd-Aufruf sollte so nicht funktionieren; laut http://www.lirc.org/html/lircd.html dient -c zur Kontaktierung eines lircd-Servers im Netzwerk, aber nicht zur Angabe der Konfigurationsdatei. Ein einfaches lircd reicht zum Start.
ACHTUNG: Wenn alle Anwender auf das Lirc-Device Zugriff haben sollen, so müssen die Rechte von /dev/lircd entsprechend angepasst werden:
- chmod 666 /dev/lircd
[Bearbeiten] Versuchsphase
Mit dem ebenfalls mitgelieferten Programm „irw“ könnt ihr überprüfen ob alles funktioniert. Führt dazu einfach dieses Programm aus und betätigt ein paar Tasten eurer Fernbedienung. Darauf müsste eine Ausgabe am Bildschirm erscheinen.
- cd /usr/local/bin
- ./irw
Anschließend ist ein "Anlernen" des vdr erforderlich. Dazu remote.conf und remote.LIRC.conf in /var/lib/vdr umbenennen. Beim nächsten Start fragt vdr (am Fernseher!) nach den notwendigen Tastenbelegungen. Wenn nur remote.conf gelöscht oder umbenannt wird so versucht vdr zunächst aus einer remote.KBD.conf (KeyBorD) und remote.LIRC.conf eine "neue" remote.conf zu generieren. Dies ist auch der einfachste Weg die Dateien zu editieren: lirc.conf ausdrucken und anhand dieser die remote.LIRC.conf anpassen. Anschließend Remote.conf umbenenen und das ganze neu starten. Vdr findet die geänderte remote.LIRC.conf und baut eine neue remote.conf.(Achte auf Groß- und Kleinschreibung)
[Bearbeiten] Programme und Skripte ausführen
Wird durch den Daemon irexec ermöglicht (zu finden unter /usr/local/bin)
Siehe hierzu den nächsten Punkt lircrc
[Bearbeiten] Konfiguration der lircrc zum Ausführen von Aktionen
Konfigurations-Datei lircrc wird unter /etc/lircrc oder unter /home/anwendername/.lircrc abgespeichert.
Beispielhafter Aufbau der lircrc:
begin prog = irexec # Daemon für Skript- und Programmausführungen button = tastenName # tastenName ist in der lircd.conf definiert config = /sbin/shutdown -h now # Auszuführendes Programm mode = modusName # Modus: Schaltet Modus ein oder aus (siehe weiter unten) repeat = 0 # Wiederholung an oder aus (0 oder 1) remote = Medion_X10 # Name der Fernbedienung in der lircd.conf end
Beispielhafter Aufbau für einen Modus in der lircrc:
begin modusName begin prog = ... ... end end
[Bearbeiten] Tasten-Wiederholungsrate einstellen
Über den lirc_atiusb Kernel-Module Parameter repeat kann man die Verzögerung für die Tasten-Wiederholungsrate einstellen. In /etc/modules.conf dazu folgenden Eintrag vornehmen (in 1/100 Sekunden, default ist 10 was etwas schnell ist)
options lirc_atiusb repeat=25
Bei aktuellen Linux Distribution dürfen die Änderungen nicht direkt in /etc/modules.conf vorgenommen werden sondern es gibt für LIRC eine eigene Datei unter /etc/modules.d/lirc. Nach Änderungen in dieser Datei muss die Datei /etc/modules.conf durch Aufruf von update-modules aktualisiert werden.
Wer das Problem der "doppelten" Reaktion auf einen Tastendruck hat, sollte auch mal prüfen, ob das nicht evtl. daran liegt wie er den VDR aufruft. Eventuell übergibt man dem VDR schon das LIRC-Device als Parameter ("--lirc=/dev/lircd"), da man diesen auch mit LIRC-Unterstützung kompiliert hat und ruft gleichzeitig das remote-Plugin mit dem LIRC-Device auf ("-l /dev/lircd"), da man diesen Eintrag, warum auch immer, noch drin hat. Das Ergebnis dieser Konstellation ist, dass auf jeden Tastenruck die doppelte Reaktion folgt, also immer 2 Kanäle geschaltet werden und das Menü beim Aufrufen gleich wieder verlassen wird...
[Bearbeiten] Kanäle - Mehrere FB's gleichzeitig nutzen
Einstellen eines Kanals an der Fernbedienung
1. Setup(S)-Taste an der Fernbedienung drücken bis die LED erlischt
->Daraufhin blinkt die LED
->Die Anzahl des Blinkens entspricht dem momentan eingestellten Code
2. Code eingeben: 1 bis 16
3. Setup(S)-Taste an der Fernbedienung drücken
->Die LED blinkt erneut
->Die Anzahl des Blinkens entspricht dem neu eingestellten Code
Sollte die Fernbedienung nicht wie beschrieben reagieren helfen ggfs. frische Batterien.
Anpassen der Einstellungen für das lirc_atiusb Kernel-Modul
Um festzulegen, welche Kanäle von LIRC ausgewertet werden sollen, muss die 'channel acceptance bit mask' festgelegt werden.
Jeder Kanal für den in der 16-bit Maske eine 1 gesetzt wird, wird ausgewertet.
Wird eine 0 gesetzt, wird der enstsprechende Kanal ignoriert.
Das Setzen der Maske wird über den Parameter 'mask' des lirc_atiusb Moduls realisiert.
Dazu ist z.B. ein Eintrag in der /etc/modules.conf notwendig:
- options lirc_atiusb mask=0xffff
Unter ubuntu karmic gibt es die modules.conf nicht mehr. Es muss eine neue Datei unter /etc/modprobe.d/ angelegt werden. Es empfiehlt sich den Namen des Moduls, also lirc_atiusb.conf, zu nutzen. In dieser Datei den options Eintrag erstellen und im Anschluss funktionieren die Kanäle auch unter karmic.
In diesem Beispiel werden alle Kanäle akzeptiert, was der Default-Einstellung des Moduls entspricht.
mask-Werte für die einzelnen Kanäle:
1: 0x0001 2: 0x0002 3: 0x0004 4: 0x0008 5: 0x0010 6: 0x0020 7: 0x0040 8: 0x0080 9: 0x0100 10: 0x0200 11: 0x0400 12: 0x0800 13: 0x1000 14: 0x2000 15: 0x4000 16: 0x8000
Um mehrere Kanäle freizuschalten, werden einfach die einzelnen gewünschten Kanäle mit den Werten der obigen Tabelle addiert.
Beispiele:
Alle geradzahligen Kanäle:
- mask=0xaaaa
Alle ungeradzahligen Kanäle:
- mask=0x5555
Kanäle von 1-8:
- mask=0x00ff
Kanäle 1,6,8 und 13:
- mask=0x10a1
[Bearbeiten] Meine lircd.conf für die Medion USB X10
# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.7.0(atiusb) on Fri Feb 18 01:53:46 2005
#
# contributed by FUX 2005-02-17
#
# brand: Medion
# model no. of remote control: RF Remote Control
# FCC ID: B4S20016398
# devices being controlled by this remote:
#
begin remote
name Medion_X10
bits 16
eps 30
aeps 100
one 0 0
zero 0 0
pre_data_bits 8
pre_data 0x14
post_data_bits 16
post_data 0x0
gap 227928
toggle_bit 0
begin codes
3 0x000000000000E40F
2 0x000000000000E30E
1 0x000000000000E20D
4 0x000000000000E510
5 0x000000000000E611
6 0x000000000000E712
7 0x000000000000E813
8 0x000000000000E914
9 0x000000000000EA15
0 0x000000000000EC17
ok 0x000000000000F31E
up 0x000000000000EF1A
down 0x000000000000F722
right 0x000000000000F41F
left 0x000000000000F21D
del 0x000000000000F520
ren 0x0000000000000B36
red 0x0000000000000732
green 0x0000000000000833
yellow 0x0000000000000934
blue 0x0000000000000A35
txt 0x000000000000EB16
ch- 0x000000000000E10C
ch+ 0x000000000000E00B
vol+ 0x000000000000DE09
vol- 0x000000000000DD08
mute 0x000000000000D500
tv 0x000000000000012C
vcr 0x000000000000022D
dvd 0x000000000000D904
music 0x000000000000DB06
radio 0x000000000000032E
photo 0x000000000000DA05
preview 0x000000000000042F
list 0x0000000000000530
desktop 0x0000000000000631
setup 0x000000000000F01B
snapshot 0x000000000000ED18
acquire 0x0000000000000C37
play 0x000000000000FA25
reward 0x000000000000F924
forward 0x000000000000FB26
stop 0x000000000000FD28
rec 0x000000000000FC27
pause 0x000000000000FE29
skipr 0x000000000000F621
skipf 0x000000000000F823
dvdmenu 0x000000000000EE19
dvdaudio 0x0000000000000F3A
off 0x000000000000D702
chsearch 0x000000000000F11C
fullscreen 0x0000000000000E39
editimage 0x0000000000000D38
end codes
end remote
[Bearbeiten] lircd.conf für die USB X10 bei doppeltasten problem
Manche X10 Modelle senden unterschiedliche Codes bei kurzem bzw. langem tastendruck, dies kann im vdr dazu führen, das die fernbedienungstaste zweimal gedrückt werden muß, um eine Aktion zu erhalten:
Abhilfe: beide Codes unter dem selben Eintrag in der lircd.conf
# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.3pre1(default) on Sun Dec 30 19:49:15 2007
#
# contributed by
#
# brand: lircneu6.txt
# model no. of remote control:
# devices being controlled by this remote:
#
begin remote
name X10_doppel
bits 16
eps 30
aeps 100
one 0 0
zero 0 0
pre_data_bits 8
pre_data 0x14
post_data_bits 16
post_data 0x0
gap 235996
toggle_bit_mask 0x80800000
begin codes
up 0x6F9A
up 0xEF1A
down 0x77A2
down 0xF722
left 0x729D
left 0xF21D
right 0x749F
right 0xF41F
ok 0x739E
ok 0xF31E
rec 0x6D98
rec 0xED18
sch 0x86B1
sch 0x0631
playlist 0x719C
playlist 0xF11C
auge 0x5984
auge 0xD904
menu 0x709B
menu 0xF01B
stumm 0x5580
stumm 0xD500
v+ 0x5E89
v+ 0xDE09
v- 0x5D88
v- 0xDD08
p+ 0x608B
p+ 0xE00B
p- 0x608B
p- 0xE10C
p- 0x618C
play 0xFA25
play 0x7AA5
l- 0xF621
l- 0x76A1
l+ 0xF823
l+ 0x78A3
l-- 0xF924
l-- 0x79A4
l++ 0xFB26
l++ 0x7BA6
stop 0xFD28
stop 0x7DA8
pause 0xFE29
pause 0x7EA9
record 0xFC27
record 0x7CA7
1 0xE20D
1 0x628D
2 0xE30E
2 0x638E
3 0x648F
3 0xE40F
4 0xE510
4 0x6590
5 0xE611
5 0x6691
6 0xE712
6 0x6792
7 0xE813
7 0x6893
8 0xE914
8 0x6994
9 0xEA15
9 0x6A95
0 0xEC17
0 0x6C97
* 0x0C37
* 0x8CB7
# 0x0D38
# 0x8DB8
enter 0x0B36
enter 0x8BB6
clear 0x0530
clear 0x85B0
power 0xD702
power 0xD702
red 0x0732
red 0x87B2
green 0x0833
green 0x88B3
gelb 0x0934
gelb 0x89B4
blau 0x0A35
blau 0x8AB5
tt 0xEB16
tt 0x6B96
back 0xF520
back 0x75A0
info 0x042F
info 0x84AF
end codes
end remote
[Bearbeiten] lircd.conf Medion MD1 NBC
# brand: Medion MD1 NBC
# Made in China X10)
# Medion Remote Control
# * FCC ID: B4S20018268
#
begin remote
name lircd.conf
bits 16
eps 30
aeps 100
one 0 0
zero 0 0
pre_data_bits 8
pre_data 0x14
post_data_bits 16
post_data 0x0
gap 219967
toggle_bit_mask 0x80800000
begin codes
1 0xE20D
2 0x638E
3 0xE40F
4 0x6590
5 0xE611
6 0x6792
7 0xE813
8 0x6994
9 0xEA15
0 0x6C97
Play 0xFA25
Pause 0x7EA9
Stop 0xFD28
Record 0x7CA7
SkipNext 0xF823
SkipPrior 0x76A1
Forward 0xFB26
Rewind 0x79A4
snapshot 0xED18
red 0x87B2
yellow 0x0934
blue 0x8AB5
green 0x0833
Mute 0x5580
return 0xF11C
VolUp 0x5E89
VolDown 0xDD08
ChanUp 0x608B
ChanDown 0xE10C
menu 0x6E99
back 0xF520
Left 0x729D
Right 0xF41F
Up 0xCDF8
Down 0x4570
tv 0x81AC
Videos 0x022D
DVD 0x5984
Guide 0xEB16
Music 0x5B86
Radio 0x032E
book 0x86B1
Pictures 0xDA05
info 0x84AF
Power 0xD702
ok 0x709B
enter 0xF31E
end codes
end remote
[Bearbeiten] Kanal der USB X10 (Pollin) ändern
"Das geht je nach X10 Modell etwas unterschiedlich.
Bei der verbreiteten Pollin X10 geht das z.B. so: "Welt-Taste" eine Weile gedrückt halten. Nach einem kurzen Moment blinkt das Lämpchen der Fernbedienung. Die Anzahl der Blinks ist der Kanal. Dann neuen Kanal eingeben, geht glaub ich bis 13, abschließend noch einmal die Welt Taste drücken." (Zitat Hibbelharry) http://www.vdrportal.de/board/thread.php?postid=857795#post857795
[Bearbeiten] Fehlerbehebung:
- wenn irw nicht funktioniert und im syslog etwas wie "lircd-0.8.3[12187]: couldn't claim USB interface: Device or resource busy" erscheint, habt ihr wahrscheinlich die oben bei Varianten stehenden Möglichkeiten vermischt, z.B. dürft ihr NICHT bei Debian in der hardware.conf DRIVER="atilibusb" stehen haben und lirc_atiusb laden!