lirc mit udev und es fehlen die device nodes

  • Ich versuche jetzt schon seit längerem Lirc zum laufen zu bekommen. Basis war ein veraltetes 2004.3 System. Mit emerge sync und -u wolrd das System auf den neusten Stand gebracht und die die auf 2005.0 neu verlinkt. Somit wäre in der Theorie der Umzug auf ein 2.6er System vollzogen.
    Nun den Kernel 2.6.13-rc2 emerged die aktuellen cvs DVB-Treiber geholt, beides mit makelinks verknüpft. Dann noch emerge genkernel und mit genkernel --udev --menuconfig all den Kernel gebacken. Dann die alte Kernel config geladen und Genkernel macht sein Aufgabe. Jetzt noch die benötigten udev Abhängigkeiten erfüllen und dann man nen Neustart. Das System läuft. Nun ran an Lirc. Mit LIRC_OPTS=”--with-driver=serial --without-soft-carrier --with-transmitter --with-irq=4 --with-port=0x3F8”emerge lirc Lirc emerget. Version ist glaube ich 0,7.0-pre1 oder so. Hat ja wunderbar funktioniert. Zur sicherheit noch nen etc-update und dann nen reboot. Und siehe da Lirc geht nicht.


    Woran liegt es, dass die Lirc nodes nicht erstellt werden? Müsste bei einem aufruf von lsmod nicht irgendwo lirc_serial stehen?


    Nachtrag:
    Ich hab mich zur Lirc Installation an http://www.vdr-wiki.de/wiki/in…#Lirc_fertig_installieren gehalten

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

    Einmal editiert, zuletzt von AmTraX ()

  • AmTraX:
    Hallo!
    Mit udev funktioniert das automatische Laden der Module beim Zugriff auf das Gerät nicht, du musst lirc_serial explizit laden.


    Einfach "lirc_serial" in /etc/modules.autoload.d/kernel-2.6 eintragen.


    Gruß
    Zzam

  • also nur lirc_serial oder muss da auch noch der kram mit setserial uart.....

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

  • Also normalerweise nur lirc_serial.
    Wenn du jetzt aber den seriellen Treiber im Kernel drin hast muss vorher noch setserial sein.
    Am einfachsten ist es wenn der serielle Treiber auch als Modul compiliert ist und dann nach lirc_serial geladen wird.


    Sonst wäre es z.B. möglich in /etc/modules.d/ eine datei anzulegen mit inhalt:


    Code
    pre-install lirc_serial setserial uart ...


    und dann update-modules aufrufen.


    Gruß
    Zzam

  • Hi,


    ich hab das jetzt so eingetragen. Wenn ich dann damit boote, kommt die Meldung lirc_serial module load failed dürfte ja auch nicht gehen, da ich keine kernel module habe. ich habe doch nur emerge lirc gemacht. Da wird ja am kernel nix geändert.


    dmseg gibt einen symbol error in der datei lirc_dev und lirc_serial aus. Wenn ich das richtig weiss, sind das die beiden Treiber. Brauch ich für den Vanilla Kernel irgendwelche Patches?

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

    Einmal editiert, zuletzt von AmTraX ()

  • Hallo,


    mit emerge LIRC werden die kernel module erstellt.
    Den Eintrage in der make.conf


    LIRC_OPTS="--with-driver=serial --with-irq=4 --with-port=0x3F8"


    hattest Du vor dem emergen erstellt?


    Du brauchst dann noch bei UDEV , je nach Version, ein File


    /etc/udev/rules.d/20-local.rules


    mit folgendem Inhalt


    KERNEL="lirc*", NAME="lirc/%k", OWNER="vdr", GROUP="video", MODE="0660"


    Damit werden die devices ertstellt, wenn die lirc modules geladen werden.


    /bin/joerg

  • Hi,


    ja hab ich. Da ich zur Sorte fauler Mensch gehöre, hab ich das in make.conf gepackt um mir unnötige Tipparbeit zu ersparen.


    Also setz ich jetzt eine # vor die Zeile mache einmal emerge lirc und dann wird die Zeile wieder aktiv gemacht und dann nochmal emerge lirc?

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

  • hallo,


    selbst habe ich nur
    KERNEL="lirc*", NAME="lirc/%k" in der rules ,
    lirc funktioniert hier auch mit den standart permissions.
    Musste aber in der /etc/conf.d/lircd
    # Options to pass to the lircd process
    LIRCD_OPTS="-d /dev/lirc0"
    auf
    LIRCD_OPTS="-d /dev/lirc/lirc0"
    abaendern.
    mfg

  • Hallo,


    brauchst nicht mit # neu zu übersetzten. Wenn die Einträgen in der make.conf sind ist das schon i.O.


    Wichtig ist bei udev der von mir oder Holymoly angeführte Eintrag in
    /etc/udev/rules.d/20-local.rules.
    In der /etc/conf.d/lircd stimmen meine Einträge mit der von Holymoly überein. Überprüfen!


    Als modul wird bei mir geladen
    lirc_dev
    lirc_serial
    .
    Sonst nichts weiter von dem serial krempel.
    Bei Aufruf von lsmod erscheinen auch nur die beiden Module, abgesehen von anderen nicht zu Lirc gehörenden Moulen.


    Die Module müsstest Du unter
    /lib/modules/Kernelversion/misc/*
    finden.


    Zu genkernel kann ich nicht viel sagen; aus meiner Beobachtung heraus soll es da aber schon mal Leute gegeben haben,
    bei denen es anstandslos functioniert hat :)
    Es geht halt nichts über einen 'handgepressten' Kernel :)


    Was kommt denn im syslog wenn Du versuchst die module per Hand zu laden?
    modprobe lirc_serial


    Gruss
    /bin/joerg

  • Ich hab jetzt mal eure Tipss befolgt und nach nem Neustart sehe ich beim booten

    Code
    load lirc_serial
    lirc_serial failed


    Danach habe ich ein modprobe lirc_serial ausprobiert und dann kommt dass das nicht geht und ich soll mir dmesg anschauen.


    dmesg liefert zweimal direkt hintereinander

    Code
    lirc_dev unknown symbol class_simple_device_add
    lirc_dev unknown symbol class_simple_destroy
    lirc_dev unknown symbol class_simple_device_remove
    lirc_dev unknown symbol class_simple_create
    lirc_serial unknown symbol lirc_unregister_plugin
    lirc_serial unknown symbol lirc_register_plugin


    Mittlerweile bin ich mit meinem Latein am Ende und überlege mir gerade ernsthaft (im Zorn, warum alles bis auf Lirc geht) die Distribution zu wechseln.

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

    Einmal editiert, zuletzt von AmTraX ()

  • Die Idee klingt zwar gut, ich hab aber keine Ahnung, wie ich das machen soll. Gibts da irgendwo ne passende Howto dafür?

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

  • Ok, wenn das nicht geht, war die ganze arbeit ja fürn a****. Dann stellt sich mir die nächste Frage, wie kann ich ältere Treiber via cvs ziehen? Also wie lautet der Befehl denn genau?


    Grml, ärgerlich und ich zweifel da schon seit fast 4 Tagen an meinem Wissen und Können.

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

  • Das Problem mit lirc betrifft alle Kernel ab Version >=2.6.12. Hat damit zu tun, dass es Änderungen an devfs gab. Ich hab dann den Kernel 2.6.10-gentoo-r6 genommen, lirc zur Sicherheit nochmal neu übersetzt und siehe da, es geht.


    Unter bug #97200 gibts theoretisch eine gepatchte lirc Version, die sich allerdings beim emergen nicht runterladen lässt.


    Die CVS Version konnte ich nicht testen, da mein Router (AVM Fritz!Box Fon WLAN) besser gesagt die Firewall es nicht gestattet, die Daten via cvs zu holen.


    Je mehr Technik, desto mehr ärger.

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

    Einmal editiert, zuletzt von AmTraX ()

  • Hallo,
    lirc funktioniert hier unter den gentoo-sources bestens,
    bis zur 2.6.12-gentoo-r5 gibts da keine Probleme.


    Habe heute mal die vanilla-sources-2.6.13-rc3 per emerge installiert,
    und mit lirc-0.7.2(cvs) getestet,
    da gabs auch die 'unresolved symbols' .


    mfg

  • Hi,


    dann hab ich jetzt Pech gehabt :D Das System läuft wieder so wie es soll und never change a running system ist ja auch nicht so verkehrt :D


    cu

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

  • Hi AmTrax,


    ist schon Mist wenn die DL Uri für das .diff in dem ebuild unstabil ist. :(


    Ich hab das ebuild mal so angepasst das es den Patch aus der files DIR zieht.


    Wenn Du willst kannst Du es testen.
    Im Anhang... => lirc.tgz
    Ich habe es mit meinen jetzigen Kernel mm-sources-2.6.11-mm4 ohen Probs zum laufen gebracht, da gab es aber auch mit der alten Lirc Version no Problems.


    Ich werde jetzt noch die neuesten mm-sources testen, hoffe es functioniert.
    Muss erst noch mal ne neuen Kernel backe, in 1/2 Stunde gibts mehr dazu.


    /bin/joerg


    // Edit
    hab das lirc ebuild nochmal, zur besseren Erkennbarkeit, neu gepackt und im *.tgz die Versionsnummer mit einfliessen lassen.
    Kleine Syntaktische Unschönheit hab ich auch gleich korrigiert. :)

  • Hi hd.brummy,


    danke für die Arbeit. Werd ich dann mal heute gegen Nachmittag mal testen. Ich nehm mir mal den Kernel 2.6.13_rc3 vor.
    Bericht folgt, sobald es läuft oder auch nicht.


    Grüß Amtrax

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

Jetzt mitmachen!

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