Fernbedienung - USB X10

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Beschreibung

Diese Fernbedienung ist seit längerer Zeit bei jedem PC vom ALDI dabei. Außerdem wurde sie einige Zeit vom Restposten-Händler Pollin verkauft. Ansonsten einfach mal bei Ebay reinschauen oder bei BSS-Computer. Das tolle an dieser Fernbedienung ist, daß 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].

Bilder

Fernbedienung
USB Empfänger
Rückseite des USB Empfängers

Konfiguration

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 derzeit nicht alle Tasten (Farbtasten und 7 weitere fehlen)

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

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

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

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".

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

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)

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

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

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.

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

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

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

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

Links