Autor Thema: Alternative Fernbedienung unter Linux  (Gelesen 14808 mal)

der-bub

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
Alternative Fernbedienung unter Linux
« am: April 17, 2011, 05:25:52 Nachmittag »
Durch Zufall habe ich herausgefunden, dass bei einem Standard-Mythbuntu 10.10 eine (rudimentäre) Unterstützung des IR-Receivers direkt Out-of-the-box funktioniert. Wenn ich bei meiner Anlage lauter oder leiser stelle (per Fernbedienung), dann reagiert mein Mythbuntu-Rechner ebenfalls darauf. Er emuliert Pfeil-Link / Pfeil-Rechts.

Jetzt würde ich gerne wissen, wie ich die Fernbedienung konfigurieren kann. Zum einen möchte ich beim lauter/leiser schalten meiner Anlage, dass nur die Anlage reagiert und nicht auch noch Mythbuntu. Zum andern würde ich Mythbuntu gerne fernbedienen können.

Wer ist denn für die emulierten Tastatureingaben verantwortlich? Lirc scheint es nicht zu sein. Denn nach einem "sudo /etc/init.d/lirc stop" geht es immer noch. Macht das der Sundtek-Treiber evtl. selbst? Wenn ja: Wie kann ich ihn konfigurieren? Ist evtl. /opt/bin/sundtekremote dafür verantwortlich (wobei das nie ausgeführt habe)? Oder war ich einfach zu blöd, Lirc gescheit zu stoppen und es kommt doch von Lirc?

In den Release Notes des Beta-Treibers steht unter Roadmap "supporting alternative remotes". Was ist da geplant?

pinguin74

  • Full Member
  • ***
  • Beiträge: 110
    • Profil anzeigen
Re:Alternative Fernbedienung unter Linux
« Antwort #1 am: April 18, 2011, 07:05:23 Vormittag »
Hallo,

was heißt "wenn ich die Anlage lauter mache, reagiert Mythbuntu"? Heißt das, wenn du deine Stereoanlage mit deren Fernbedienung steuerst, reagiert dein Linuxrechner? Lösche (vorher sichern !) mal die
/etc/lirc/lircd.conf dann dürfte Lirc eigentlich nicht mehr auf die FB der Stereoanlage reagieren. In der lircd.conf ist die Fernbedienung definiert, bzw. man kann auch mehrere FBs dort einrichten.

Ich habe sundtekremote zugunsten von Lirc aufgegeben, mit Lirc hat man einfach unendlich viele Möglichkeiten. Ich habe diesen Effekt auch beobachtet, ich hatte kein lircd und kein sundtekremote am Laufen und trotzdem konnte ich mit der FB die Lautstärke steuern. Das ist echt geisterhaft... Ich vermute, die Libraries von Lirc greifen irgendwie immer die Signale ab, selbst wenn der Daemon nicht läuft.

Gruß
Malte

der-bub

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
Re:Alternative Fernbedienung unter Linux
« Antwort #2 am: April 18, 2011, 07:46:54 Vormittag »
Ja, so meinte ich es: Wenn ich mit der Fernbedieung meiner Stereoanlage selbige lauter oder leiser stelle, dann reagiert sowohl die Stereoanlage als auch mein Mythbuntu-Rechner. Auf letzterem passiert das gleiche, wie wenn ich auf der Tastatur Pfeil-Links (bei lauter) bzw. Pfeil-Rechts (bei leiser) gedrückt hätte.

"/etc/lirc/lircd.conf" enthält bei mir nur Kommentare. Ich habe die Datei trotzdem mal gelöscht und den Rechner dann neu gestartet. Das Verhalten ist immer noch gleich. Dann kann es ja wohl kaum an lirc liegen, oder?

pinguin74

  • Full Member
  • ***
  • Beiträge: 110
    • Profil anzeigen
Re:Alternative Fernbedienung unter Linux
« Antwort #3 am: April 18, 2011, 08:05:03 Vormittag »
Hm, dann liegt es vielleicht am Sundtek Treiber, vielleicht wertet der immer Tastendrücke aus. Das müssten die Sundtek Leute (sind das überhaupt mehrere  ;) ) beantworten können.

Ob der Lirc Daemon wirklich nicht läuft kannst du so testen: ps aux | grep lircd in einer Konsole eingeben.

Gruß
Malte

PS: eben habe ich es mal bei mir probiert, mein Rechner reagiert auch auf meine Onkyo Fernbedienung  :) interessantes Problem: wie schließt man eine Fernbedienung aus.
« Letzte Änderung: April 18, 2011, 08:07:22 Vormittag von pinguin74 »

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8514
    • Profil anzeigen
Re:Alternative Fernbedienung unter Linux
« Antwort #4 am: April 18, 2011, 08:47:42 Vormittag »
Die Fernbedienung wird ohne Lirc als "Keyboard" Gerät registriert.

Wenn nun Lirc verwendet wird, werden die Keycodes auf Lirc umgeleitet.

Wie schließt man eine andere Fernbedienung aus, indem man eine FB mit einem anderen Protokol verwendet (dafür muss man natürlich die Fernbedienung auswechseln)

Zitat
/opt/bin/mediaclient -l
Using device: /dev/mediainput0
supported remote control protocols:
id   protocol name
0 .. NEC IR Protocol (active)
1 .. RC5 IR Protocol
2 .. RC6 Mode0 IR Protocol
3 .. RC6 Mode6A IR Protocol
Failure is a good thing! I'll fix it

der-bub

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
Re:Alternative Fernbedienung unter Linux
« Antwort #5 am: April 18, 2011, 07:03:21 Nachmittag »
OK, vielen Dank für die Infos. Ich bin nun etwas weiter. :)

Ich habe den Sundtek-Treiber mit /opt/bin/mediaclient --setrc=1 auf ein anderes Protokoll umgebogen (damit er nicht mehr auf die FB meiner Anlage reagiert). Außerdem habe ich den IR-Empfänger meines zweiten Sundtek-Sticks mit /opt/bin/mediaclient --disablerc=/dev/mediainput1 deaktiviert (damit nicht alles doppelt kommt). Dann habe ich bei meiner Universal-Fernbedienung eine Philips-Belegung rausgesucht. Und siehe da, wenn ich mit /opt/bin/mediaclient --pollrc auf Codes lausche, dann kommen da brav die Codes raus wenn ich auf der FB herumdrücke.

Allerdings werden nun keine Tastureingaben mehr simuliert. :(

Frage 1: Wo kann ich einstellen, bei welchem Code welche Taste simuliert werden soll?

Frage 2: Ist das nun die "sundtekremote", von dem in den anderen Threads die Rede ist oder ist das wieder etwas anderes?

Frage 3: Gibt es eigentlich irgendwo Doku zu den Sundtek-Produkten? Oder ist dieses Forum die einzige Quelle der Erleuchtung?

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8514
    • Profil anzeigen
Re:Alternative Fernbedienung unter Linux
« Antwort #6 am: April 18, 2011, 08:25:19 Nachmittag »
Wir werden versuchen das morgen soweit einzubauen.

Die Tasten auf der Fernbedienung können ja individuell gemapped werden und müssen nicht unbedingt einem Keyboardlayout entsprechen. Auf jeden Fall wird dafür dann eine Konfigurationsdatei benötigt.
Sobald --pollrc Werte Ausgibt zeigt dies aber bereits das die Fernbedienung mit dem Stick funktioniert.
Failure is a good thing! I'll fix it

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8514
    • Profil anzeigen
Re:Alternative Fernbedienung unter Linux
« Antwort #7 am: April 20, 2011, 03:44:04 Vormittag »
Alternativer Support wurde soweit für RC5 implementiert, NEC und die anderen Protokolle werden in der kommenden Woche fertiggestellt.

Zitat
$ /opt/bin/mediaclient --dumprc
0x01 KEY_SELECT
0x02 KEY_3
0x03 KEY_EXIT
0x04 KEY_1
0x05 KEY_5
0x06 KEY_6
0x07 KEY_CHANNELDOWN
0x08 KEY_2
0x09 KEY_CHANNELUP
0x0a KEY_9
0x0b KEY_ZOOM
0x0c KEY_7
0x0d KEY_8
0x0e KEY_VOLUMEUP
0x0f KEY_4
0x10 KEY_BACK
0x11 KEY_0
0x12 KEY_ENTER
0x13 KEY_VOLUMEDOWN
0x14 KEY_RECORD
0x15 KEY_STOP
0x16 KEY_PLAY
0x17 KEY_MUTE
0x18 KEY_UP
0x19 KEY_DOWN
0x1a KEY_LEFT
0x1b KEY_RIGHT
0x1c KEY_RED
0x1d KEY_GREEN
0x1e KEY_YELLOW
0x1f KEY_BLUE
0x43 KEY_POWER

Um die Terratec Keymap zu Laden:
Zitat
$ wget http://sundtek.de/support/keymap_terratec
$ /opt/bin/mediaclient --setrcmap=keymap_terratec
Loading new keymap:
0x41 KEY_HOME (0x66)
0x01 KEY_POWER (0x74)
0x42 KEY_MENU (0x8b)
0x02 KEY_1 (0x2)
0x03 KEY_2 (0x3)
0x04 KEY_3 (0x4)
0x43 KEY_SUBTITLE (0x172)
0x05 KEY_4 (0x5)
0x06 KEY_5 (0x6)
0x07 KEY_6 (0x7)
0x44 KEY_TEXT (0x184)
0x08 KEY_7 (0x8)
0x09 KEY_8 (0x9)
0x0a KEY_9 (0xa)
0x45 KEY_DELETE (0x6f)
0x0b KEY_TUNER (0x182)
0x0c KEY_0 (0xb)
0x0d KEY_MODE (0x175)
0x46 KEY_TV (0x179)
0x47 KEY_DVD (0x185)
0x49 KEY_VIDEO (0x189)
0x4b KEY_AUX (0x186)
0x10 KEY_UP (0x67)
0x11 KEY_LEFT (0x69)
0x12 KEY_OK (0x160)
0x13 KEY_RIGHT (0x6a)
0x14 KEY_DOWN (0x6c)
0x0f KEY_EPG (0x16d)
0x16 KEY_INFO (0x166)
0x4d KEY_BACKSPACE (0xe)
0x1c KEY_VOLUMEUP (0x73)
0x4c KEY_PLAY (0xcf)
0x1b KEY_CHANNELUP (0x192)
0x1e KEY_VOLUMEDOWN (0x72)
0x1d KEY_MUTE (0x71)
0x1f KEY_CHANNELDOWN (0x193)
0x17 KEY_RED (0x18e)
0x18 KEY_GREEN (0x18f)
0x19 KEY_YELLOW (0x190)
0x1a KEY_BLUE (0x191)
0x58 KEY_RECORD (0xa7)
0x48 KEY_STOP (0x80)
0x40 KEY_PAUSE (0x77)
0x54 KEY_LAST (0x195)
0x4e KEY_REWIND (0xa8)
0x4f KEY_FASTFORWARD (0xd0)
0x5c KEY_NEXT (0x197)

Um eine alternative Fernbedienung beim Starten des Treibers zu laden:
Zitat
$ /opt/bin/mediaclient -e
**** List of Media Hardware Devices ****
device 0: [ Sundtek MediaTV Pro]  DVB-C, DVB-T, ANALOG-TV, FM-RADIO, REMOTE-CONTROL, OSS-AUDIO, RDS
  [SERIAL]:
     ID: 0110416185342
  [DVB-C]:
     FRONTEND: /dev/dvb/adapter0/frontend0
     DVR: /dev/dvb/adapter0/dvr0
     DMX: /dev/dvb/adapter0/demux0
  [DVB-T]:
     FRONTEND: /dev/dvb/adapter0/frontend0
     DVR: /dev/dvb/adapter0/dvr0
     DMX: /dev/dvb/adapter0/demux0
  [ANALOG-TV]:
     VIDEO0: /dev/video1
     VBI0: /dev/vbi0
  [FM-RADIO]:
     RADIO0: /dev/radio0
     RDS: /dev/rds0
  [REMOTECONTROL]:
     INPUT0: /dev/mediainput0
  [OSS]:
     OSS0: /dev/dsp0

$ cat /etc/sundtek.conf
[0110416185342]
rcmap=/etc/keymap_terratec

Keys welche nicht festgelegt sind erkennen:
Zitat
$ /opt/bin/mediaclient --pollrc
-> 08eb1400
-> 08eb1400
-> 08eb1400
-> 08eb1400
-> 08eb1400
-> 08eb1400
nächste Taste auf der Fernbedienung gedrückt:
-> 09eb1400
-> 09eb1400
-> 09eb1400
-> 09eb1400
-> 09eb1400
-> 09eb1400
-> 09eb1400
...
wieder eine weitere Taste:
-> 15eb1400
-> 15eb1400
-> 15eb1400
-> 15eb1400
-> 15eb1400
-> 15eb1400
etc.

Die erste Zahl stellt einen Hexadezimalen Code dar, dieser kann mit der Fernbedienungskonfiguration verwendet werden

z.B:
0x08 KEY_UP
0x09 KEY_DOWN
0x15 KEY_ENTER

*) Terratec Remote Control Layout
http://sundtek.de/support/keymap_terratec
« Letzte Änderung: April 20, 2011, 05:00:55 Vormittag von Sundtek »
Failure is a good thing! I'll fix it

der-bub

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
Re:Alternative Fernbedienung unter Linux
« Antwort #8 am: April 23, 2011, 01:04:25 Nachmittag »
Wann wird denn die neue Version des Treibers mit den genannten Änderungen veröffentlicht?

Im Treiber-Forum ist die neueste Version vom 14.04., die Ankündigung der Änderung war am 20.04.

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8514
    • Profil anzeigen
Re:Alternative Fernbedienung unter Linux
« Antwort #9 am: April 23, 2011, 05:36:52 Nachmittag »
Beta Treiber verwenden, dort ist es seit der Ankündigung vorhanden.
Failure is a good thing! I'll fix it

der-bub

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
Re:Alternative Fernbedienung unter Linux
« Antwort #10 am: April 24, 2011, 04:17:52 Nachmittag »
Das funktioniert mit meiner Fernbedienung so nicht.

Hier ein paar Beispiele, welche Codes /opt/bin/mediaclient --pollrc bei mir ausspuckt:
0x00010000 KEY_1
0x00020000 KEY_2
0x00030000 KEY_3
0x002b1100 KEY_PLAY
0x001f1100 KEY_REWIND
0x001e1100 KEY_FASTFORWARD

Wobei das letzte Byte immer zwischen 00 und 80 wechselt. D.h. wenn ich mehrmals "Play" drücke, dann kommt immer abwechselnd 002b1100 und 002b1180.

D.h. bei meiner Fernbedieung reicht das erste Byte nicht aus - dieses ist immer 00. Zur Erkennung wären die ersten drei Bytes wichtig.

Ich habe nun die folgenden Varianten probiert:

1. Variante:

keymap-Datei:
0x0001 KEY_1
0x0002 KEY_2
0x0011 KEY_LEFT
0x0010 KEY_RIGHT

Ausgabe von /opt/bin/mediaclient --setrcmap:
Zitat
Loading new keymap:
0x0001 KEY_1 (0x2)
0x0002 KEY_2 (0x3)
0x0011 KEY_LEFT (0x69)
0x0010 KEY_RIGHT (0x6a)

2. Variante:

keymap-Datei:
0x01 KEY_1
0x02 KEY_2
0x11 KEY_LEFT
0x10 KEY_RIGHT

Ausgabe von /opt/bin/mediaclient --setrcmap:
Zitat
Loading new keymap:
0x01 KEY_1 (0x2)
0x02 KEY_2 (0x3)
0x11 KEY_LEFT (0x69)
0x10 KEY_RIGHT (0x6a)

3. Variante:

keymap-Datei:
0x000100 KEY_1
0x000200 KEY_2
0x001100 KEY_LEFT
0x001000 KEY_RIGHT

Ausgabe von /opt/bin/mediaclient --setrcmap:
Zitat
Loading new keymap:
0x0100 KEY_1 (0x2)
0x0200 KEY_2 (0x3)
0x1100 KEY_LEFT (0x69)
0x1000 KEY_RIGHT (0x6a)

Ergebnis:

Bei keiner dieser Varianten wird danach beim Drücken von "1", "2", "links" oder "rechts" die entsprechende Tastatur-Eingabe emuliert.

Was mache ich falsch?

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8514
    • Profil anzeigen
Re:Alternative Fernbedienung unter Linux
« Antwort #11 am: April 24, 2011, 04:48:26 Nachmittag »
Das ist doch eine RC5 Fernbedienung?
Aktuell funktioniert nur NEC, wir haben RC5 bereits vorbereitet wird aber erst in 1-2 Tagen freigeschalten werden. Im Grunde muss hierzu lediglich das zweite Zahlenpaar für die Keymap verwendet werden - dies muss jedoch auch intern im Treiber so ausgewertet werden.
Zur Zeit wird nur das erste Zahlenpaar ausgewertet.
Failure is a good thing! I'll fix it

der-bub

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
Re:Alternative Fernbedienung unter Linux
« Antwort #12 am: April 24, 2011, 08:06:36 Nachmittag »
Ja es handelt sich um eine RC5-Fernbedienung.

Zitat
/opt/bin/mediaclient -l
Using device: /dev/mediainput0
supported remote control protocols:
id   protocol name
0 .. NEC IR Protocol
1 .. RC5 IR Protocol (active)
2 .. RC6 Mode0 IR Protocol
3 .. RC6 Mode6A IR Protocol

Wie gesagt: Das zweite Byte alleine reicht auch nicht aus. Man muss die Bytes 2 und 3 betrachten.

Beispiel:
0x00371200 KEY_RECORD
0x00370000 KEY_RED

Ich denke am besten wäre, wenn man einen regulären Ausdruck oder sowas einstellen könnte, also z.B. 003700..
« Letzte Änderung: April 24, 2011, 08:09:11 Nachmittag von der-bub »

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8514
    • Profil anzeigen
Re:Alternative Fernbedienung unter Linux
« Antwort #13 am: April 25, 2011, 08:01:39 Vormittag »
Wie sehen denn die Rohwerte der Tasten aus (pollrc)? Sofern möglich bitte alle Tasten angeben.

Unsere RC5 Fernbedienungen funktionieren soweit.

Was für eine Fernbedienung ist das eigentlich?
« Letzte Änderung: April 25, 2011, 08:03:25 Vormittag von Sundtek »
Failure is a good thing! I'll fix it

der-bub

  • Newbie
  • *
  • Beiträge: 9
    • Profil anzeigen
Re:Alternative Fernbedienung unter Linux
« Antwort #14 am: April 27, 2011, 09:28:24 Vormittag »
Wie sehen denn die Rohwerte der Tasten aus (pollrc)? Sofern möglich bitte alle Tasten angeben.

Hier sind die Rohdaten:
Legende:
?  Taste nicht auf Fernbedienung
!  Taste bringt Keycode für 0


0x00000000 KEY_0 (0xb)
0x00010080 KEY_1 (0x2)
0x00020000 KEY_2 (0x3)
0x00030000 KEY_3 (0x4)
0x00040000 KEY_4 (0x5)
0x00050000 KEY_5 (0x6)
0x00060000 KEY_6 (0x7)
0x00070000 KEY_7 (0x8)
0x00080000 KEY_8 (0x9)
0x00090000 KEY_9 (0xa)

0x00200000 KEY_UP (0x67)
0x00210000 KEY_DOWN (0x6c)
0x00110000 KEY_LEFT (0x69)
0x00100000 KEY_RIGHT (0x6a)
0x003b0000 KEY_MENU (0x8b)
0x000e0000 KEY_OK (0x160)
0x003b0000 KEY_BACKSPACE (0xe)

0x00200000 KEY_CHANNELUP (0x192)
0x00210000 KEY_CHANNELDOWN (0x193)
0x00100000 KEY_VOLUMEUP (0x73)
0x00110000 KEY_VOLUMEDOWN (0x72)
0x000d0000 KEY_MUTE (0x71)
0x000c0000 KEY_POWER (0x74)

0x002b1100 KEY_PLAY (0xcf)
0x001f1100 KEY_REWIND (0xa8)
0x001e1100 KEY_FASTFORWARD (0xd0)
? KEY_LAST (0x195)
? KEY_NEXT (0x197)
0x00371200 KEY_RECORD (0xa7)
0x00251100 KEY_PAUSE (0x77)
0x00261000 KEY_STOP (0x80)

0x00370000 KEY_RED (0x18e)
0x00360000 KEY_GREEN (0x18f)
0x00320000 KEY_YELLOW (0x190)
0x00340000 KEY_BLUE (0x191)
0x000b0000 (purple)

? KEY_DELETE (0x6f)
? KEY_HOME (0x66)
? KEY_INFO (0x166)
? KEY_MODE (0x175)
! KEY_EPG (0x16d)
0x003c0000 KEY_TEXT (0x184)
? KEY_SUBTITLE (0x172)

? KEY_AUX (0x186)
? KEY_DVD (0x185)
? KEY_TUNER (0x182)
? KEY_TV (0x179)
? KEY_VIDEO (0x189)

Zitat von: Sundtek
Unsere RC5 Fernbedienungen funktionieren soweit.

Wie sieht eure Konfiguration aus?

Zitat von: Sundtek
Was für eine Fernbedienung ist das eigentlich?

Es ist eine Universal-Fernbedienung, bei der ich eine Philips-Belegung eingestellt habe.
« Letzte Änderung: April 27, 2011, 11:00:22 Vormittag von der-bub »