HowTo: Lirc Support für Kernel ab 2.6.7 / Patch-maker

  • Hallo liebe Gemeinde,
    ausgehend davon das die IMHO letzen Kernel mit Lirc Support die gentoo-dev-2.6.5 Versionen waren,
    habe ich mir mal Gedanken gemacht wie man ohne viel Mühe zum Lirc Support in neueren Kernelversionen kommt.
    Dazu hab ich ein kleines Shell Script geschrieben welches die Arbeit dazu abnimmt.


    Ihr braucht das Script lirc-patch-maker.sh und
    gentoo-dev-sourcen in der Version 2.6.5.
    Das Script nach /usr/src/ packen,
    chmod 755 auf das Script
    zwei Zeilen im Kopf des Scriptes anpassen,
    das Script mit
    ./lirc-patch-maker.sh aufrufen
    und schon habt ihr den Lirc-Support im Kernel.


    Einige fertige patches gibt es auf meiner HP im DL Bereich.
    Der linux-2.6.7.patch müsste sich auf alle vanilla-2.6.7, auch nicht Gentoo-Kernel, anwenden lassen.


    Patch downloaden nach /usr/src packen,
    cd nach /usr/src/linux und
    patch -p1 < /weg/zum/patch eingeben.


    Viel Spass damit
    hd.brummy

  • Hi,


    hier gibts noch mehr von der Sorte, die unter anderem wegen lirc auf love-sources setzen.


    Gruß Henning

    Hardware: ASUS A8N-E, AMD64 3800 2GB, 2 * 250GB SATA-II Samsung, Siemens DVB-S Rev 1.3, Technisat DVB-S Rev. 1.6, LG 4167 DVD-RW, GF 6300
    Software: Gentoo,2.6.17, GCC 3.4.6 VDR 1.4.3, OSD-Teletext, mp3ng, DVD, image, mplayer, pilotskin, director, femon, osdpip, burn

  • holymoly: jep, das ist auch mein weg momentan... lieber die ungepatchten sourcen und schön emerge lirc... mit automatic module versioning support muss man das ding ja auch quasi nicht neu emergen

    vdr hardware: amd 1.2ghz, 512mb sdram, blaues 128x64 parport-lcd, 160gb hdd
    vdr software: gentoo, 2.6.7-vanilla, vdr 1.3.11, dvbtreiber aus dem kernel, em8300-cvs, lirc-0.7.0pre6, ...
    plugins/addons: dxr3-0.2.3-pre2, dvd-0.3.5b06, mplayer-0.9.2, tvonscreen, osdteletext, vdradmind, ...

    [Blockierte Grafik: http://valor.zapto.org/vdrsmi.png]

  • Hallo,
    im ebuild sollte noch bei den econf options

    Code
    --localstatedir=/var\


    zusaetzlich mit angegeben werden,
    da ansonsten der Pfad fuer das lircd.pid /var/lib/run ist,
    dieser existiert aber nicht ,gibt dann eine Fehlermeldung.
    Mit localstatedir=.. wirds nach /var/run geschrieben zu den anderen pids.
    In der '/etc/init.d/lircd.conf'

    Code
    LIRCD_OPTS="-d /dev/lirc/lirc0"


    stimmt der Pfad zu lirc0 nicht,
    udev legt bei mir /dev/lirc0 an ,
    sollte man dann ebenfalls noch anpassen,
    wird mit devfs wohl aehnlich sein !?
    mfg
    oder aber fuer udev eine Regel z.B
    in der /etc/udev/rules.d/10-local.rules

    Code
    KERNEL="lirc*",		Name="lirc/%k"


    dann passt das auch mit /dev/lirc/lirc0
    beim Neustart bekomme ich allerdings per dmesg eine Meldung
    von lirc-0.7.0
    'no version for unregistering plugin found' ,
    aber egal solange es funktioniert.

  • Ich hab's so gemacht:


    Als erstes das Kernel-Config-Tool emergen, damit das lirc ebuild die Kernelmodule einfügen darf:

    Code
    emerge config-kernel


    damit dann den Schreibzugriff auf die Kernel-Sources erlauben:

    Code
    config-kernel --allow-writable=yes


    nun das aktuellste masked lirc-eBuild installieren, da das als stable markierte noch keinen 2.6er Patch drin hat:

    Code
    ACCEPT_KEYWORDS="~x86" emerge lirc


    danach kann man den Schreibzugriff auf die Kernel-Sources wieder deaktivieren:

    Code
    config-kernel --allow-writable=no


    Ich hab dann noch wie in der co-pro Anleitung beschrieben die Datei /etc/modules.d/lirc erstellt mit dem Inhalt:

    Code
    alias char-major-61 lirc_serial
    alias /dev/lirc* lirc_serial
    options lirc_serial irq=4 io=0x3F8


    und

    Code
    rc-update add lircd default

    ausgeführt.
    Desweiteren musste ich noch den Pfad /var/lib/run anlegen damit lirc dort seine pid ablegen kann. Alternativ kann man auch wie im vorigen Post beschrieben das eBuild ändern.


    Nach einem Reboot konnte ich das ganze dann mit

    Code
    mode2 -d /dev/lirc/0

    testen.


    Ohne den "-d /dev/lirc/0" Parameter ging's leider nicht, obwohl ich in der "/etc/conf.d/lircd" das "/dev/lirc/lirc0" in "/dev/lirc/0" geändert habe. :(

Jetzt mitmachen!

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