Problem mit dem IgorPlug-USB suche Lösung oder alternativen USB Empfänger

  • Hallo @ all,


    ich habe hier ein Problem mit dem IgorPlug-USB ich habe mehrere dieser Emfänger im Betrieb aber an einem ION Laptop macht dieser Probleme. Ich habe an dem Gerät den Emfänger schon länger mit alten Debian in Betrieb und es gab schon immer gelegentlich diese Abstürze. Jetzt habe ich ein Debian Stretch installiert und die Abstürze kommen jetzt sehr schnell so das man nicht mehr damit arbeiten kann. Ich habe schon eine ganze Menge probiert unter anderem verschiedene Kernelversionen durchgetestet.


    Teilweise kommt der folgende Fehler:


    Machmal kommt auch nur:

    Code
    1. ohci-pci 0000:00:04.0: frame counter not updating; disabled
    2. ohci-pci 0000:00:04.0: HC died; cleaning up


    Mit rmmod ehci-pci und modprobe ehci-pci kann man das ganze für eine kurze Zeit wiederbeleben bis dann wieder der Fehler kommt



    An meinen anderen Systemen habe ich teilweise zwar auch Fehlermeldungen z.B. "igorplugusb 1-5:1.0: receive overflow, at least 31 lost" aber da stürzt das ganze nicht ab

    Hab schon verschiedene Igor Adapter probiert aber an dem Laptop kommt immer der gleiche Fehler. Im BIOS des Laptops hab ich auch schon einiges probiert. Ich glaube mittlerweile das der USB Controller auf dem ION System und der IgorPlug nicht stabil funktionieren. Falls jemand noch eine Idee hat immer her damit, ansonsten suche ich eine günstige alternative um meine Hauppauge Fernbedienung mit RC5 Codec an dem Laptop weiterhin zu verwenden. Welchen IRDA Emfänger mit USB der mindestens RC5 Codec kann, möglichst günstig ist und gut von Linux unterstützt wird, könnt Ihr noch emfehlen ?


    Vielen Dank schon einmal Gruß


    Dile :)

  • Wie kann ich das denn im Treiber aktivieren ?

    Hab mal geschaut ob es eine Modul Option gibt aber ich habe nur bei usbcore die folgende Option gefunden und das ist glaube ich etwas anderes:

    initial_descriptor_timeout:initial 64-byte descriptor request timeout in milliseconds (default 5000 - 5.0 seconds) (int)



    Gruß Dile

  • Oje das bedeutet ja ich müsste einen neuen Kernel bauen. :-(


    Ich hab nochmal geschaut aber das Modul igorplugusb hat keine Optionen

    Code
    1. modinfo igorplugusb
    2. filename: /lib/modules/4.9.0-4-amd64/kernel/drivers/media/rc/igorplugusb.ko
    3. license: GPL
    4. author: Sean Young <sean@mess.org>
    5. description: IgorPlug-USB IR Receiver
    6. alias: usb:v03EBp21FEd*dc*dsc*dp*ic*isc*ip*in*
    7. alias: usb:v03EBp0002d*dc*dsc*dp*ic*isc*ip*in*
    8. depends: usbcore,rc-core
    9. intree: Y
    10. vermagic: 4.9.0-4-amd64 SMP mod_unload modversions


    Unter dem folgenden Link ist der Quellcode von dem Treiber leider übersteigt es meine Kenntnisse was dort geändert werden müsste. Vielleicht könntest du mir da auch einen Tip geben.


    https://github.com/torvalds/li…rs/media/rc/igorplugusb.c


    Vielen Dank Gruß Dile

  • Du nutzt also nicht LIRC, sondern die Remote Control Treiber des Kernels - wobei mich wundert, dass das da noch nicht angepasst sein soll (Der USB Watchdog ist mit Kernel 3.17 oder so gekommen und das ist ja schon eine ganze Weile her und ich kann mir nicht vorstellen dass das bisher niemand ausprobiert hat).

    Die einzige Stelle, die danach aussieht ist Zeile 214:

    rc->timeout = MS_TO_NS(100);

    aber alle anderen Treiber in diesem Verzeichnis haben auch 100ms als Timeout eingestellt.

    Welche Kernel-Versionen nutzt Du denn auf Deinen Systemen?

  • Also ich habe sowohl über LIrc als auch direkt mit Remote Control Treiber probiert und jeweils die Abstürze. Teilweise kommen die Abstürze ja sogar ohne das ich die Fernbedienung nutze und nur etwas warte.

    Auf meinem Haswell und Kaby Lake System läuft es ohne Abstürze mit einem 4.9 Kernel (früher auch mit älteren Kernel). Auf dem Laptop mit dem ION und Intel Atom läuft ein 32 Bit Stretch. Ich habe bereits einen 3.16. / 4.7 / 4.9 und 4.12 Kernel probiert. Vorher hatte ich noch ältere Kernel mit älteren Debian auf dem Gerät da gab es zwar auch schon diese Abstürze aber Sie traten nur selten auf so das ich das Gerät halbwegs nutzen konnte. Glaub auch nicht an einen grundsätzlichen Fehler da der Controller an anderen Systemen auch ohne Abstürze funktioniert.

  • Deine Fehlerbeschreibung und die Fehlermeldung stimmt mit meinen überein, die ich mit yausbir und dem USB watchdog hatte, allerdings müsste das dann bei allen Kernel mit USB watchdog (IIRC 3.17+) auftreten. An einen HW-Fehler glaube ich auch nicht.

    Leider konnte ich bisher nicht finden, wo die USB-Routinen zum Lesen mit Timeout aufgerufen werden, aber vielleicht liest Du oder jemand anderes sich ja in den Quelltext ein und findet den/die Call(s).

  • Tja der Fehler kommt auch mit einem 3.16 Kernel vielleicht doch ein anderes Problem:


    Vielleicht sollte ich mich doch nach einem anderen Empfänger für das Gerät umschauen.

  • Welchen IR Emfänger mit USB der mindestens RC5 Codec kann, möglichst günstig ist und gut von Linux unterstützt wird, könnt Ihr noch emfehlen ?

    IRMP-STM32-USB-IR-Empfänger/Einschalter


    Oder mal igord, ein schneller lirc-Ersatz für den IgorPlugUSB und RC5 Empfang ausprobieren.

  • Ich hab jetzt mal den igord ausprobiert. Die Kernelmeldungen kommen nachdem die Fernbedienung etwas benutzt wird zwar trotzdem, aber die Fernbedienung funktioniert danach weiter.



    Ich schaue mal über längere Zeit ob ich das trotz der Meldungen stabil benutzen kann. Ansonsten schaue ich mir das mit dem STM32 an.


    Hab noch eine Frage zum IGORD. Die Länge der Key's scheint begrenzt zu sein. KEY_PREVIOUSSONG funktioniert nicht da es zu lang ist. Wenn ich einen Buchstaben weniger habe funktioniert es. Was muss ich da denn anpassen damit das klappt ?


    Vielen Dank und Gruß


    dile

  • Die char Key und mapKey habe ich schon angepasst und für die anderen Tasten klappt das auch. Nur für die PREVIOUSSONG klappt es nicht. Es läßt sich übersetzen aber die Taste funktioniert nicht. Wenn ich den Namen ein Zeichen kürzer mache dann klappt es. In IRW sieht man das der Code nicht mehr übertragen wird sobald es mehr wie 15 Zeichen sind. Vielleicht passt in die Variable nicht mehr rein ? Ich habe auch schon mit und ohne OFA probiert aber das macht keinen Unterschied.


    Code
    1. irw
    2. 1e25 0 KEY_OK OFA
    3. 1e25 1 KEY_OK OFA
    4. 1e0d 0 KEY_MENU OFA
    5. 1e0d 1 KEY_MENU OFA
    6. 1e24 0 KEY_PREVIOUSSON
    7. 1e24 1 KEY_PREVIOUSSON
    8. 1e1e 0 KEY_NEXTSONG OFA
    9. 1e1e 1 KEY_NEXTSONG OFA



    Code
    1. irw
    2. 1e25 0 KEY_OK OFA
    3. 1e25 1 KEY_OK OFA
    4. 1e0d 0 KEY_MENU OFA
    5. 1e0d 1 KEY_MENU OFA
    6. 0 KEY_PREVIOUSSONG
    7. 1 KEY_PREVIOUSSONG
    8. 1e1e 0 KEY_NEXTSONG OFA
    9. 1e1e 1 KEY_NEXTSONG OFA
  • Sorry

    die char mapKey[16]; hatte ich noch nicht angepasst.


    Jetzt klappt es auch :-)


    Schon mal vielen Dank bis hierher. Ich schau mal wie stabil das über einen längeren Zeitraum läuft.


    Igord macht auf jeden Fall einen guten Eindruck und die Fernbedienung läuft viel direkter. Ich glaub das richte ich auch an den anderen Systemen ein :-)


    Schöne Grüße


    Dile