staging.inyokaproject.org

Fernsteuerung für DVB USB Stick geht nicht

Status: Gelöst | Ubuntu-Version: Ubuntu 8.10 (Intrepid Ibex)
Antworten |

Heinrich_Schwietering Team-Icon

Wikiteam
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11288

Hi!

Angeblich sind in der "Standard"-lircd.conf für die devinput-Geräte (REMOTE_LIRCD_CONF="generic/devinput.conf" in der hardware.conf, lircd.conf wie im Wiki-Artikel als Beispiel angegeben; also nur

 include /usr/share/lirc/remotes/generic/devinput.conf

) alle möglichen (also im Sinne von allen existierenden) Tasten vorgesehen; kannst du das mal versuchen? (Oder war das am Anfang schon mal so?...)

so long
hank

EDIT: Mir fällt gerade auf, dass in der von dir geposteten hardware.conf

REMOTE_LIRCD_CONF="generic/devinput-conf"

mit BINDESTRICH stand, nicht mit PUNKT!!! Also wirklich nochmal damit probieren (mit Punkt natürlich) ...

ulkuli

(Themenstarter)

Anmeldungsdatum:
4. Februar 2007

Beiträge: 53

Hallo,

hab es nochmal mit generic/devinput.conf probiert, hardware.conf sah so aus:

# /etc/lirc/hardware.conf
#
#Chosen Remote Control
REMOTE="Hauppauge Nova-T 500"
REMOTE_MODULES=""
REMOTE_DRIVER="devinput"
REMOTE_DEVICE="/dev/input/by-path/pci-5-1--event-ir"
REMOTE_LIRCD_CONF="generic/devinput.conf"
#REMOTE_LIRCD_CONF="/etc/lirc/lircd.conf"
REMOTE_LIRCD_ARGS=""

#Chosen IR Transmitter
TRANSMITTER="None"
TRANSMITTER_MODULES=""
TRANSMITTER_DRIVER=""
TRANSMITTER_DEVICE=""
TRANSMITTER_LIRCD_CONF=""
TRANSMITTER_LIRCD_ARGS=""

#Enable lircd
START_LIRCD="true"

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD="false"

#Try to load appropriate kernel modules
LOAD_MODULES="true"

# Default configuration files for your hardware if any
LIRCMD_CONF=""

#Forcing noninteractive reconfiguration
#If lirc is to be reconfigured by an external application
#that doesn't have a debconf frontend available, the noninteractive
#frontend can be invoked and set to parse REMOTE and TRANSMITTER
#It will then populate all other variables without any user input
#If you would like to configure lirc via standard methods, be sure
#to leave this set to "false"
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
START_LIRCMD=""

Ergebnis war wieder gleich, die Tasten, die mit irrecord erfasst werden konnten liefern ein Resultat die anderen wandern ins Syslog. Tasten die funktionieren sind :

# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.4a(devinput) on Tue Feb 24 20:14:38 2009
#
# contributed by 
#
# brand:                       /tmp/terratec-usb-xxs2
# model no. of remote control: 
# devices being controlled by this remote:
#

begin remote

  name  terratec-usb-xxs
  bits           16
  eps            30
  aeps          100

  one             0     0
  zero            0     0
  pre_data_bits   16
  pre_data       0x1
  gap          404001
  toggle_bit_mask 0x80000000

      begin codes
          Home                     0x0034
          1                        0x0182
          2                        0x0177
          3                        0x0073
          4                        0x0002
          5                        0x0003
          6                        0x0004
          7                        0x0072
          8                        0x0005
          9                        0x0006
          AV                       0x0007
          0                        0x0192
          A-B                      0x0008
          DVD                      0x00A7
          Video                    0x0163
          Arrow_Up                 0x0193
          Arrow_Down               0x0071
          Arrow_Left               0x0195
          Ok                       0x000B
          EPG                      0x000A
          Info                     0x016B
          Music                    0x0000
          Delete                   0x00A4
          TV                       0x004C
          Stop                     0x019A
      end codes

end remote

die Lircd.conf sieht jetzt so aus:

#This configuration has been automatically generated via
#the Ubuntu LIRC package maintainer scripts.
#
#It includes the default configuration for the remote and/or
#transmitter that you have selected during package installation.
#
#Feel free to add any custom remotes to the configuration
#via additional include directives or below the existing
#Ubuntu include directives from your selected remote and/or
#transmitter.

#Configuration for the Hauppauge Nova-T 500 remote:
#include "/usr/share/lirc/remotes/hauppauge/lircd.conf.hauppauge_novat500"
include "/etc/lirc/terratec-usb-xxs"

Heinrich Schwietering schrieb:

lircd.conf wie im Wiki-Artikel als Beispiel angegeben; also nur

 include /usr/share/lirc/remotes/generic/devinput.conf

soll das include alleine in der lircd.conf stehen? vermutlich zusätzlich oder ? sonst wäre das Tastenmapping unbekannt. Ich packe es rein und probiere nochmal.

Grüße, ulkuli.

ulkuli

(Themenstarter)

Anmeldungsdatum:
4. Februar 2007

Beiträge: 53

Hallo,

mit 2 includes mag er nicht, dann gehen nicht mal die Tasten, die er zuvor erkannt hatte.

Grüße, ulkuli.

ulkuli

(Themenstarter)

Anmeldungsdatum:
4. Februar 2007

Beiträge: 53

Hallo,

stelle gerade fest hab einen Fehler gemacht, der Pfad im include muß in " Zeichen, Ausgabe mit irw klappt jetzt wieder, allerdings ist die 2. Zeile der Ausgabe nun geändert:

0000000000010005 00 8 terratec-usb-xxs
0000000000010005 00 4 linux-input-layer

vorher:

0000000000010006 00 9 terratec-usb-xxs
0000000000010006 00 9 terratec-usb-xxs

Wenn ich mich richtig erinnere waren die Beispiele in einem der How-tos auch so (2. Zeile = Linux input layer)

Grüße, ulkuli.

Heinrich_Schwietering Team-Icon

Wikiteam
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11288

Hi!

Na, dann funktionieren die linux-input-layer Anweisungen grundsätzlich? Du brauchst natürlich nur ein include, sonst gibt's ggf. Konfusion, und du bekommst, wie du siehst, zwei Ausgaben, eine für "deine" lircd.conf (die du mit irrecord" erstellt hast) und die "linux-input-layer"-Version. (Das mit den fehlenden Anführungsstrichen hatte ich schon verbaselt, sorry...)

Die Beispielkonfiguration aus dem Wiki-Artikel besteht ja eigentlich nur aus der einen include-Zeile; alles andere sind Kommentare...

Gehen denn alle Tasten mit der linux-input-layer-Konfiguration? Oder tauchen da auch Sachen nur im syslog auf?

so long
hank

EDIT: Ich weiß nicht wie relevant das ist, aber wenn du "linux-input-layer" verwendest, sollte in der hardware.conf

REMOTE="Linux input layer (/dev/input/eventX)"

stehen.

ulkuli

(Themenstarter)

Anmeldungsdatum:
4. Februar 2007

Beiträge: 53

Hallo,

mit der linux-input-layer-Konfiguration gehen auch nur dieselben Tasten, der Rest taucht im Syslog auf. Gemäß dem v4l-dvb Wiki habe ich v4l-dvb hinzugefügt, allerdings wurden erst wieder zuverlässig FB Eingaben übernommen, nachdem ich, wie Du vorgeschlagen hast, REMOTE="Linux input layer (/dev/input/eventX)" eingebaut habe.

Ich habe noch das hier gefunden http://www.linuxtv.org/wiki/index.php/TerraTec_Cinergy_T_USB_XXS und übersetzte gerade nochmal neu.

Grüße, ulkuli.

PS: Die Anzahl der richtig übertragenen FB Tasten ist unverändert.

Heinrich_Schwietering Team-Icon

Wikiteam
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11288

Hi!

Ja, den link hatte ich weiter oben schon mal erwähnt; das wird vorgeschlagen, dass du in linux/drivers/media/dvb/dvb-usb/dib0700_devices.c statt der Nova-T-Karte die Terratec einsetzt, danach musst du dann allerdings wieder neu kompilieren...

Dass du die Unterstützung für TerraTec MyTV verlierst, ist wohl eher ein Fehler, es geht wohl mehr um die Hauppauge.Karte, aber den Support brauchst du auch nicht...

so long
hank

ulkuli

(Themenstarter)

Anmeldungsdatum:
4. Februar 2007

Beiträge: 53

Hallo,

keine Änderung im Umfang der erkannten Tasten, im Gegenteil ich habe das Gefühl, daß seit dem Umstieg auf v4l-dvb die Fehlerrate beim Erkennen der bekannten Tasten angestiegen ist.

Meines Erachtens liegt die Ursache nicht bei Lirc sondern irgendwo früher, da "unbekannte Zeichen" im Syslog landen. Hatte schon mal so einen ähnlichen Fall an einem anderen Laptop bei dem Funktionstasten nicht erkannt wurden weil sie in einer Übersetzungstabelle gefehlt haben. Leider keine Ahnung wo anfangen mit dem Suchen.

Grüße, ulkuli.

ulkuli

(Themenstarter)

Anmeldungsdatum:
4. Februar 2007

Beiträge: 53

Hallo,

leider streikt nun meine Fernbedienung (scheint defekt zu sein, da keine Zeichen mehr im Syslog ankommen, mit einer Fernseh FB klappts), aber ich habe noch ein interessantes Link gefunden: http://www.ureader.de/msg/125922198.aspx . Im Post vom: "Datum: Wed, 25 Jun 2008 19:43:48 +0200 Autor: M. Hagedorn", wird beschrieben, daß man eine Debug Ausgabe einschalten kann und dann versuchen muß die Key Translation Tabelle zu ermitteln. Die Debug Ausgabe kann bei mir im File dib0700_device.c, Zeile 601 und 606 durch entfernen von /* bzw */ eingeschaltet werden.

Da meine FB leider kaputt ist, kann ich zZ. nicht weitermachen. Melde mich aber wieder wenn ich eine Neue habe.

Grüße, ulkuli.

Heinrich_Schwietering Team-Icon

Wikiteam
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11288

Hi!

Leider streikt nun meine Fernbedienung

Mal die Batterien gewechselt? 😉

Ruf dir mal

man setkeycodes

auf, ich könnte mir vorstellen, dass das das ist, was du brauchst...

Vielleicht geht auch dieses: inputlirc; aber das weiß ich auch nicht so genau...

so long
hank

ulkuli

(Themenstarter)

Anmeldungsdatum:
4. Februar 2007

Beiträge: 53

Hallo,

nachdem ich eine neue FB bekommen habe, ging garnichts mehr, weder irw noch das syslog hat irgendwas ausgespuckt. Ich habe daraufhin v4l-dvb rausgeworfen, - ich meine im LIRC Wiki steht auch irgendwo, daß für 8.10 v4l-dvb schon im Kernel drin ist.

Mit setkeycodes habe ich auch experiementiert, aber hat nicht hingehauen, es steht auch irgendwo in der man page, daß es mit dem Tastaturtreiber zusammenarbeitet.

Habe mir mal die im Syslog angemahnten Codes notiert zB.:

Taste FB Code

blau 06 7c

gelb 0e 7e

grün 01 42

rot 0b 40

Im File /usr/include/linux/input.h hören die Key Definitionen bei mir bei 0x1ff auf, die angemeckerten Codes sind teilweise deutlich höher. Vermutlich wird einen Erweiterung dieser Datei nichts bringen oder? da sie nur bei kompilieren benützt wird?

Grüße, ulkuli

Heinrich_Schwietering Team-Icon

Wikiteam
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11288

ulkuli schrieb:

Hallo,

nachdem ich eine neue FB bekommen habe, ging garnichts mehr, weder irw noch das syslog hat irgendwas ausgespuckt. Ich habe daraufhin v4l-dvb rausgeworfen, - ich meine im LIRC Wiki steht auch irgendwo, daß für 8.10 v4l-dvb schon im Kernel drin ist.

Yupp, das ist so.

Mit setkeycodes habe ich auch experiementiert, aber hat nicht hingehauen, es steht auch irgendwo in der man page, daß es mit dem Tastaturtreiber zusammenarbeitet.

Hm. irgendwo hatte ich etwas zum Umschreiben der keymaps gelesen, dann geht das vielleicht mis sytkeycodes auch nicht... Schade!

Habe mir mal die im Syslog angemahnten Codes notiert zB.:

Taste FB Code

blau 06 7c

TastenNr. 1670 😀

gelb 0e 7e

3710... 😲

grün 01 42

322, sollt gehen

rot 0b 40

2880..... 🤣

Im File /usr/include/linux/input.h hören die Key Definitionen bei mir bei 0x1ff auf, die angemeckerten Codes sind teilweise deutlich höher. Vermutlich wird einen Erweiterung dieser Datei nichts bringen oder? da sie nur bei kompilieren benützt wird?

Theoretisch sollte das gehen, du müsstest dazu aber wohl den Kernel neu kompilieren (und davon hab ich zumindest keine Ahnung...)

Damit scheidet aber die Version inputlirc zu nutzen wohl auch aus...

Irgendwo hatte ich aber was vielversprechendes gesehen, ich such nochmal...

so long
hank

Heinrich_Schwietering Team-Icon

Wikiteam
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11288

Hi!

Was passiert, wenn du die codes, die du bekommst, in /usr/share/lirc/remotes/generic/devinput.conf einbaust, also in der Art

GREEN   0x10142
YELLOW  0x10e7e
RED     0x10b40
BLUE    0x1067c

etc. für alle Tasten, die du so nicht verwenden kannst? Ist natürlich ein bisschen mühsam, alle rauszuschreiben; und du müsstest eventuell checken, ob die codes nicht schon anderweitig vergeben sind - der von GREEN taucht beispielsweise als

BTN_TOOL_BRUSH       0x10142

auf; solche dann ggf. auskommentieren, wenn du sie nicht brauchst.

Wenn du dann in deiner hardware.conf als REMOTE="Linux input layer (/dev/input/eventX)", REMOTE_DRIVER="devinput", REMOTE_LIRCD_CONF="generic/devinput.conf" und dein "REMOTE_DEVICE" verwendest, und als lircd.conf auf generic/devinput.conf verweist (also die Einstellungen verwendest, die ich in Lirc als Beispielkonfigurationen verwendet habe), könnte es vielleicht klappen.

Oder du versuchst, die aus dem syslog ermittelten codes direkt in deine lircd.conf mit aufzunehmen, also so:

GREEN   0x0142
YELLOW  0x0e7e
RED     0x0b40
BLUE    0x067c

Das wäre noch einfacher; beides wäre einfacher, als den Kernel neu zu kompilieren...

Was mir noch einfiele, wäre die Belegungen in input.h aufzunehmen

1
2
3
4
#define KEY_GREEN		0x142
#define KEY_YELLOW		0xe7e
#define KEY_RED		0xb40
#define KEY_BLUE		0x67c

etc. und dann inputlirc neu zu kompilieren und zu verwenden; es greift auf input.h zurück (aber ich weiß nicht, ob das so funktionieren würde).

good luck!

so long
hank

ulkuli

(Themenstarter)

Anmeldungsdatum:
4. Februar 2007

Beiträge: 53

Hallo,

ich habs hinbekommen, hat sich doch rentiert früher mal bein bißchen C gelernt zu haben ☺

unter ' <dein home>/v4ldvd/linux/drivers/media/dvb/dvb-usb ' ist die Datei dib0700_devices.c zu finden. Jenachdem welche Firmware eingesetzt wird, kann entweder in der Funktion dib0700_rc_query_v1_20 oder der Funktion dib0700_rc_query_legacy (Firmware < 1.20) durch entfernen der Kommentarzeichen /* und */ um den Befehl:

info("%d: %2X %2X %2X %2X",dvb_usb_dib0700_ir_proto,(int)key[3-2],(int)key[3-3],(int)key[3-1],(int)key[3]);

eine weiter Debugausgabe mit den zugeordneten Tastencodes eingeschaltet werden. Die ersten beiden Zahlenpaare definieren den Tastencode.

In der Definition der Stuktur:

static struct dvb_usb_rc_key dib0700_rc_keys[] = {

bei mir ca. ab Zeile 683, können die über Debugausgabe oder über das Syslog ermittelten nicht definierten Tastencodes entsprechend geändert werden. Beispiel: für die rote Taste vorher { 0xeb, 0x17, KEY_RED } geändert in { 0x0b, 0x40, KEY_RED } führt dazu, daß die Taste dann mit irw korrekt angezeigt wird.

Natürlich muß nach jeder Änderung des C-Files v4l-dvd neu kompiliert und installiert werden. An sich benötige ich vermutlich nur den Treiber dvb_usb_dib0700.ko und es würde vielleicht ausreichend sein anstatt das komplette v4l-dvd Paket zu installieren nur diesen Treiber mit modprobe auszutauschen, aber hier kenne ich mich leider nicht gut aus.

Die in Deinem letzten Beitrag beschriebenen Maßnahmen greifen vermutlich nicht, da die Funktion dib0700_rc_query des Treibers m.E. direkt von der Schnittstelle des Devices einliest und nur diejenigen Zeichen weitergibt, die in der Struktur dvb_usb_rc_key zu finden sind. Für alles was nicht gefunden wird nur eine Fehlermeldung ausgegeben aber nichts an irw oder andere darüberliegende Prozesse.

Werde nochmal probieren ob es reicht nur den kompilierten Treiber auszutauschen und melde mich wieder.

Viele Grüße, ulkuli.

Heinrich_Schwietering Team-Icon

Wikiteam
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11288

Hi!

Na, alles wird gut. 👍 ..

Aber vielleicht ist das ganze noch viel einfacher, schau hier mal... 😉

so long
hank