X10 Ohne Lirc

  • Hi ich habe gerade das Wiki überarbeitet und einen Patch für das ati-remote kernelmodule erstellt bzw erweitert.


    Benötigt das überhaupt noch jemand oder benutzt Ihr alle LIRC? ;)


    Vor allem habe ich eine Lösung für das Problem eingebaut (Ansatz bei linux.tv gefunden und mit einer Option eingebaut) dass man die Tasten bei manchen Fernbedienungen doppelt drücken muss.


    Vielleicht kann es ja jemand ausser mir brauchen :)


    http://vdr-wiki.de/wiki/index.…SB_X10_mit_Kerneltreibern


    Jetzt kann man auch das remote Plugin mit allen möglichen X10ern benutzen welches ich lirc vorziehe.

  • Hi,


    ich hab bei meiner X10 (q-Sonic war doch X10 oder?) Das problem gehabt, das ich Tasten teilweise sehr lange drücken musste...


    Wollte nun deinen Patch ausprobieren, Compilieren hat auch alles geklappt, leier bekomm ich ihn nich dazu die Fernbedienung über den Kernel an zu sprechen, beim einstecken wird immer Lirc_atiusb geladen, und die Fernbedienung nicht als eventX erkannt...

  • Hi,


    dann musst Du das lirc_atiusb Modul von Hand entladen.


    rmmod lirc-atiusb
    rmmod lirc-dev
    modprobe ati-remote


    falls das Modul noch nicht installiert ist:


    insmod /usr/src/linux-2.6..../drivers/input/misc/ati_remote.ko


    falls das modul nur kopiert wurde mach mal als root


    depmod -a


    lirc-atiusb und ati-remote kommen sich da etwas in die quere. Das Modul welches zuerst geladen wird bekommt auch den Vorrang.


    Im Wiki ist noch ein kleiner Fehler bezüglich der Modifikation der runvdr.


    Das wollte ich morgen Abend angehen... ich habe morgen Früh eine Klausr...

  • Hab ich auch schon probiert, ati_remote wird auch richtig geladen, aber das event wird nich generiert..


    ud wenn ich amzieh, und neu ansteck, wird wieder lirc_atiusb geladen...


    viel glück für die klausur ^^

  • ...setze mal in die /etc/modprobe.d/blacklist folgendes ein


    blacklist lirc_atiusb


    dann wird der lirc treiber definitiv nicht mehr geladen.


    poste mal Die Ausgabe von dmesg wenn Du den ati_remote treiber von hand lädst. (lirc schon entladen)


    nicht alles! nur die letzten 10 Zeilen oder so müsste etwa so aussehen:


    [105867.811252] input: X10 WTI RF receiver as /class/input/input7
    [105867.827109] ati_remote: Weird data, len=1 ff 00 00 00 00 00 ...
    [105867.852160] usbcore: registered new interface driver ati_remote
    [105867.852167] ati_remote: Registered USB driver ATI/X10 RF USB Remote Control v. 2.2.1


    Wenn Du das hat geh mal ins Verzeichnis /dev/input und mach ein ls


    dann probier Dich Durch mit


    udevinfo -a -p `udevinfo -q path -n /dev/input/event0` | grep X10
    udevinfo -a -p `udevinfo -q path -n /dev/input/event1` | grep X10
    ...
    usw


    wenn bei einem eventX folgendes erscheint:


    ATTRS{name}=="X10 WTI RF receiver"
    ATTRS{manufacturer}=="X10 WTI"


    Dann hat alles geklappt.


    So und jetzt setz ich mich nochmal hinter meine Bücher! ;)

  • Ok, zumindest läd er das Lirc module nichtmehr (obwohl ich den modprobe blacklistseit gestern schon drin hatte)


    Jetz wird die Fernbedienung durch ATI_remote erkannt....
    Leider immer noch nicht unter eventX


    Gefunden hab ich sie nun unter Folgenden geräten...


    Code
    vdr01 ~ # udevinfo -a -p `udevinfo -q path -n /dev/usbdev2.2_ep81` | grep X10
        ATTRS{manufacturer}=="X10 Wireless Technology Inc"
    vdr01 ~ # udevinfo -a -p `udevinfo -q path -n /dev/usbdev2.2_ep02` | grep X10
        ATTRS{manufacturer}=="X10 Wireless Technology Inc"
    vdr01 ~ # udevinfo -a -p `udevinfo -q path -n /dev/usbdev2.2_ep00` | grep X10
        ATTRS{manufacturer}=="X10 Wireless Technology Inc"


    Hier noch die letzten Info's vom Dmesg... (wenn alles benötigt wird, einfach bescheid sagen...)


    Code
    lirc_atiusb[2]: usb remote disconnected
    usbcore: registered new interface driver ati_remote
    drivers/input/misc/ati_remote.c: Registered USB driver ATI/X10 RF USB Remote Control v. 2.2.1
  • ...hmm


    mach auch mal ein


    Code
    lsusb


    bei mir sieht es so aus:


    Code
    Bus 003 Device 008: ID 0bc7:0006 X10 Wireless Technology, Inc. Wireless Transceiver (ACPI-compliant)


    wenn ich den enpfänger abziehe und wieder einstecke bekomme ich diese Meldung mit dmesg


    Code
    [142663.086335] input: X10 WTI RF receiver as /class/input/input10
    [142663.102144] ati_remote: Weird data, len=1 ff 03 04 00 03 00 ...
    [142663.128325] usb 3-4.4.3: New USB device found, idVendor=0bc7, idProduct=0006
    [142663.128331] usb 3-4.4.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [142663.128334] usb 3-4.4.3: Product: RF receiver
    [142663.128336] usb 3-4.4.3: Manufacturer: X10 WTI


    Das ist nur der output für den USB-Empfänger.


    Vendor und Product ID von Dir würden mich mal interessieren. Vielleicht gibt es da unstimmigkeiten.


    Und eine Ausgabe von lsmod von Dir noch dazu.

  • lsusb:


    Code
    Bus 001 Device 001: ID 1d6b:0002
    Bus 002 Device 002: ID 0bc7:0005 X10 Wireless Technology, Inc.
    Bus 002 Device 001: ID 1d6b:0001


    dmesg ist bei mir nich besonders spektakulär oO


    Code
    usb 2-7: USB disconnect, address 2
    usb 2-7: new low speed USB device using ohci_hcd and address 3
    usb 2-7: configuration #1 chosen from 1 choice


    nebst ein paar (vielen) einträgen wie


    Code
    stb6100_get_bandwidth: Bandwidth=5200000


    die vermutlich vom "s2-liplianin" Treiber kommen, weil ich gestern auf Kernel 2.6.28.7 geupdated hab (und natürlich den patch neu installiert hab)


    lsmod:




    Hier mal ein lsusb -v für die vendorid und mehr :)



    Edit:


    Nachdem du das mit dem idVendor / idProduct erwänt hast, hab ich mit grad mal die ati_remote.c angeschaut... hab einfach mal (probeweiser) eine der idProduct variablen geändert (passend auf meine), und siehe da... das event5 ist plötzlich generiert worden :)


    Doch zu früh gefreut...


    evtest /dev/input/event5 erkennt zwar offensichtlich alle tasten richtig, beim druck auf der remote funktioniert allerdings nur die Maus emulation.


    und im message-log taucht bei nicht erkannten tasten sowas auf.:


    Code
    Mar 13 10:41:24 [kernel] usb 2-7: Weird data, len=5 20 ee 11 52 ad 00 ...


    ich probier jetzt noch die andren versionen aus, sollten die nich gehen, kannst du mir evtl verraten, wie ich die andre productid selber einhacke? (Programmierkenntnisse vorhanden, wenn auch nur wenig auf c basis ^^)

  • öhm... also das ist auch mein erster selber gemachter Patch für ein Kernelmodul. Ich hab mir alles aus dem Netz besorgt was ich in den Patch gestellt habe. (Ausser der option mit dem keychange)


    Wenn Du das modul so wie Du es jetzt hast (also mit der geänderten pid) mit debug=1 lädst... was spuckt er dann aus? (Vor allem beim Tastendrücken)


    Im grunde müsste es reichen eine Zeile oben in der ati_remote.c einzufügen


    also
    In Zeile 106


    Code
    #define MCE_REMOTE_PRODUCT_ID 0x005


    (Wir nennen sie jetzt mal MCE Remote...)
    und in Zeile 152 ergänzen


    Code
    { USB_DEVICE(ATI_REMOTE_VENDOR_ID, MCE_REMOTE_PRODUCT_ID) },


    Damit definierst Du den Remotetyp im Treiber.


    Jetzt kann es natürlich sein, dass man eine komplett neue keymap erstellen muss. Das liesse sich recht einfach erledigen... mit einer if schleife die selektiert welches USB-Gerät angeschlossen ist und danach dann die keymap auswählt.


    Nur brauche ich dafür so eine Remote. Oder Deine Hilfe ;)

  • Fernbedienung wird nach wie vor, ohne probleme erkannt, nur die Tastenbelegung stimmt immer noch nicht...


    im /var/log/messages steht immernoch filgendes:


    Taste 1 - 0

    Code
    Mar 13 14:49:23 [kernel] usb 2-7: Weird data, len=5 20 ee 11 82 7d 20 ...
    Mar 13 14:49:26 [kernel] usb 2-7: Weird data, len=5 20 ee 11 42 bd 20 ...
    Mar 13 14:49:38 [kernel] usb 2-7: Weird data, len=5 20 ee 11 c2 3d 20 ...
    Mar 13 14:49:55 [kernel] usb 2-7: Weird data, len=5 20 ee 11 22 dd 20 ...
    Mar 13 14:49:59 [kernel] usb 2-7: Weird data, len=5 20 ee 11 a2 5d 20 ...
    Mar 13 14:50:02 [kernel] usb 2-7: Weird data, len=5 20 ee 11 62 9d 20 ...
    Mar 13 14:50:05 [kernel] usb 2-7: Weird data, len=5 20 ee 11 e2 1d 20 ...
    Mar 13 14:50:06 [kernel] usb 2-7: Weird data, len=5 20 ee 11 12 ed 20 ...
    Mar 13 14:50:07 [kernel] usb 2-7: Weird data, len=5 20 ee 11 92 6d 20 ...
    Mar 13 14:50:09 [kernel] usb 2-7: Weird data, len=5 20 ee 11 02 fd 20 ...


    Ich hab jetzt mal versucht die ati_remote.c anzupassen, und bei Taste 1 0x82, 0x7d ein zu tragen, leider ohne erfolg...


    bei cat /dev/input/eventX wird genau wie bei evtest /dev/input/eventX nur die emulierte maus erkannt...

  • Wie du bereits vermutet hast, kompilieren hat nicht geklappt...


    Ich werd jetz mal probieren, mit der aus der version von pastbin zu ersetzen, und schauen ob sich was tut...


    Hier die Compiler fehler:


    Edit:


    So einfach scheints nich zu werden -.-
    Jetzt erkennt er keine einzige taste mehr...

  • ich hab grade angefangen das zu debugen... sind so wie aussieht ne menge gcc probleme...


    Das schaff ich aber heute nicht mehr ;)


    Ich übernehme mal ein paar Zeilen Code aus der Pastebinseite und prüfe ob sie das auch anderst einbauen lässt.

  • Alles klar :)


    Danke das du dir für mein problem so viel Mühe machst!!


    Wenn du dir die Mühe echt machen willst, lass dir zeit, ich hab übers Wochenende eh Besuch von meiner Freundin, so das ich nur recht sporadisch ins Forum schauen werde, und evtl. mal kurz kompilier...


    Nochmals danke :)

  • ... so jetzt hab ich den halben tag damit verbracht irgendeine lösung zu finden und es tut sich noch nicht wirklich was...


    Das ist schon viel für einen "Einsteiger" wie mich ;)


    ich muss das mit der remote mal auf eis legen. Hab am Mi noch nen wichtigen Termin auf den ich mich ausgiebig vorbereiten muss. Dann gehts evtl weiter.


    Ich hab auch mal einem eine Email geschrieben der das mal angeleiert hat. Evtl. gibts da noch einen aktuelleren Patch.

  • Hi,


    also... ich habe einen Angeschrieben der schonmal was für die 0005er gemacht hat. s.o.


    Er kuckt sich mal das was ich gemacht habe an und schickt mir seine sachen... bei Zeiten...


    Jetzt muss ich nur warten :)


    Mal sehen... wir werden noch maintainer für das Modul ;)

  • So... es ist schon wieder eine Weile her und ich komme immer noch nicht mit dem Modul vorran. Also weiter als vor 4 Monaten bin ich ;)


    Ich bin jetzt etwas tiefer in die C Materie eingestiegen allerdings habe ich noch einige Probleme. Vielleicht schaffe ich es den nächsten Monat eine erste auch für deine FB lauffähige Version hinzubekommen (zumindest zum testen) ;)


    Falls Du hier noch liest und überhaupt noch Interesse daran hast ^^ ich brauch ja dann jemand der das testet ^^


    Grüsse

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!