[Anleitung] Debian 4.0 (Etch) Kernelupdate von kernel.org + Module für lirc + cdfs (+ hg-dvb)

  • Für Debian Etch angepasst.
    So, das wars mit Debian Etch, weiter gehts mit Debian Lenny.


    Sarge Anleitung lassen wir mal so stehen.


    Einführende Worte:
    Kann natürlich nicht garantieren, das das mit jeder Karte oder Hardware funktioniert.
    Sicherung vor größeren Änderungen sollte man auch machen.
    Keine Garantie, dass das System nach Kernelupdate noch funktioniert.
    Alten Kernel nicht löschen und sicherstellen, dass Grub den alten Kernel auch noch starten kann.


    Das ganze ist als Paket zu sehen, möglich das Teile für sich alleine nicht funktionieren.


    Kernel:


    Benötigtes Werkzeug installieren:

    Code
    apt-get install build-essential libncurses5-dev kernel-package bzip2


    Ins Build Verzeichnis wechseln:

    Code
    cd /usr/src


    Kernel von kernel.org holen:

    Code
    wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.9.tar.bz2


    Kernel auspacken:

    Code
    tar xjf linux-2.6.28.9.tar.bz2


    Nach linux verlinken und ins Verzeichnis wechseln:

    Code
    rm linux
    ln -s linux-2.6.28.9 linux
    cd linux


    Config von hier oder z.B. 2.6.18 (Etch Standard je nach CPU) verwenden:

    Code
    cp /boot/config-2.6.18-4-686 .config


    Makefile anpassen, für einen eindeutigen Namen:

    Code
    nano Makefile


    EXTRAVERSION = .9-dvb #(zum Beispiel)


    Konfigurieren des neuen Kernels:

    Code
    make menuconfig


    DVB-Treiber kontrollieren:
    Device Drivers --->
    Multimedia devices --->
    Digital Video Broadcasting Devices --->
    kontrollieren, und eventuell noch benötigte Treiber mit "M" als Modul hinzufügen.


    Framebuffer kontrollieren:
    Device Drivers --->
    Graphics support --->
    <*> Support for frame buffer devices
    [*] VESA VGA graphics support
    Console display driver support --->
    <*> Framebuffer Console support
    [*] Select compiled-in fonts
    [*] VGA 8x8 font
    [*] VGA 8x16 font
    Logo configuration --->
    [*] Bootup logo


    Noch ein paar Einstellungen in der .config:
    CONFIG_VIDEO_STRADIS=n


    Kernel kompilieren:

    Code
    make-kpkg binary --revision=dvb.0 --initrd
    #alternativ:
    #make-kpkg kernel_image kernel_headers kernel_source kernel_doc kernel_manual --revision=dvb.0 --initrd


    Auf ein :prost2 gehen


    Wenn man mal neu kompilieren muss - nach Änderungen z.B.
    Ansonsten nicht ausführen, da sonst Lirc nicht mehr gebaut werden kann.

    Code
    make-kpkg clean


    Kernel installieren:

    Code
    dpkg -i ../linux-image-2.6.28.9-dvb_dvb.0_i386.deb


    Kernel deinstallieren (zuvor mit nem anderen Kernel booten) - natürlich nur, wenn man ihn wieder loswerden will ;)

    Code
    dpkg -P linux-image-2.6.28.9-dvb


    Eintrag in Grub sollte automatisch erfolgen.
    Firmware laden / aktualisieren von linuxtv.org:
    Andere Firmware siehe VDR-Wiki.

    Code
    cd /lib/firmware/
    wget http://www.linuxtv.org/downloads/firmware/dvb-ttpci-01.fw-2622
    ln -sf dvb-ttpci-01.fw-2622 dvb-ttpci-01.fw


    LIRC:


    Es muß bereits der neue Kernel laufen zum kompilieren.


    Anleitung für die Verwendung eines einfachen Empfängers am COM Port.
    Für USB oder sonstige Hardware entsprechend ändern.


    Benötigte Pakete holen

    Code
    apt-get install lirc libusb-dev libasound2-dev libsvga1-dev libirman-dev autotools-dev devscripts dpatch setserial


    Die Datei /var/lib/setserial/autoserial.conf bearbeiten:

    Code
    /dev/ttyS0 uart none
    /dev/ttyS1 uart none


    Falls man die 2. serielle Schnittstelle für etwas anderes benötigt, eventuell nur Eintrag für die Com Schnittstelle erstellen an der der LIRC-Empfänger angeschlossen ist.


    Sourcen holen:

    Code
    cd /usr/src
    wget http://switch.dl.sourceforge.net/sourceforge/lirc/lirc-0.8.4a.tar.bz2


    Auspacken

    Code
    tar xjf lirc-0.8.4a.tar.bz2
    cd lirc-0.8.4a
    ./setup.sh


    Konfigurieren:
    1 Driver configuration
    1 Home-brew (16x50 UART compatible serial port)


    (X) 1 COM1 (0x3f8, 4)
    ( ) 2 COM2 (0x2f8, 3)
    Je nachdem wo Hardware angeschlossen ist.



    [ ] 1 With transmitter diode
    [X] 2 Software generated carrier
    [ ] 3 Igor Cesko's variation


    Weiter mit
    3 Save configuration & run configure


    Code
    make
    cd drivers # Wir brauchen nur die Treiber
    make install


    Die Datei /etc/lirc/hardware.conf muß noch angepasst werden:

    Code
    LOAD_MODULES=true
    DRIVER="default"
    DEVICE="/dev/lirc0"
    MODULES="lirc_dev lirc_serial"


    Bitte kontrollieren, ob nach laden der Treiber wirklich /dev/lirc0 angelegt wurde.


    Lirc selber muß natürlich auch konfiguriert werden.
    Dies ist aber z.B. bei Heise schon gut beschrieben.


    CDFS:


    Variante1 (kompiliert derzeit nicht):
    Benötigte Sachen holen:
    cdfs-src holen wir von Debian Sid, da das Paket von Sarge zu alt ist.

    Code
    apt-get install module-assistant
    wget http://ftp.de.debian.org/debian/pool/main/c/cdfs-src/cdfs-src_2.6.23-3_all.deb
    dpkg -i cdfs-src_2.6.23-3_all.deb


    Bauen des Paketes:

    Code
    module-assistant


    UPDATE - kann nicht schaden
    PREPARE - falls noch Pakete fehlen sollten


    SELECT - zur Auswahl, was gebaut wird.
    [X] cdfs shows the tracks on a CD as normal files


    BUILD - baut das Paket, anschliesend gleich INSTALL laufen lassen - fertig.


    Variante2 (kompiliert derzeit nicht):


    Code
    cd /usr/src
    wget http://trappist.elis.ugent.be/~ronsse/cdfs/download/cdfs-2.6.23.tar.bz2
    tar xjf cdfs-2.6.23.tar.bz2
    cd cdfs-2.6.23
    make
    make install


    Integration ins System (für beide Varianten gleich)
    Um es im VDR Nutzen zu können muß es noch in diverse Dateien integriert werden.


    Die /etc/fstab um diese Zeile ergänzen und /dev/hdX anpassen:
    X durch entsprechendes Laufwerk ersetzen!

    Code
    /dev/hdX /cdfs cdfs ro,noauto,user 0 0


    In /etc/modules "cdfs" eintragen (ohne "")


    Danach /cdfs anlegen:

    Code
    mkdir /cdfs
    chmod 777 /cdfs


    Um jetzt eine Audio-CD abspielen zu können, muss in der mp3sources.conf u.a. folgende Zeile stehen:

    Code
    /cdfs;Audio-CD;1;*.wav


    HG-Treiber:


    Bei Auswahl der DVB Module im Kernel sind die HG Treiber nicht notwendig, außer die Karte ist zu neu für den aktuellen Kernel.


    Installieren von mercurial für den Zugriff auf linuxtv.org

    Code
    apt-get install mercurial


    Mercurial Treiber Sourcen besorgen:

    Code
    cd /usr/src
    hg clone http://linuxtv.org/hg/v4l-dvb


    Treiber anpassen:

    Code
    cd /usr/src/v4l-dvb
    make menuconfig


    Alle Module was man nicht braucht abwählen, dann kompiliert er schneller.
    Oder man hat Zeit und baut alles.

    Code
    make
    #oder
    make all


    Danach noch installieren:

    Code
    make install


    Sollte man mal neu bauen wollen vorher aufräumen:

    Code
    make clean


    Sehr wenig getestet, mein bevorzugter Weg ist der mit den Kernel eigenen Treibern.
    Bitte dazu auch im Wiki nachlesen.


    History:
    12.04.2007 - Änderung auf Kernel 2.6.20.6, Beginn der Etch Serie
    21.04.2007 - Benötigte Pakete überarbeitet (reduziert)
    [...]
    24.03.2009 - Änderung auf Kernel 2.6.28.9

  • Vielen Dank für diese hervorragende Anleitung.


    Vielleicht sollte man noch eine sources.list dazu schreiben.
    Nur um Fehler in der Anwendung auszuschließen


    Beim durcharbeiten der einzelnen Schritte:
    .config wäre nett zu haben - ich mache ein Update von einem älteren System
    http://merkel.debian.org/~jurij/2.6.18.dfsg.1-10/i386/
    DAher kann es auch gezogen werden


    Beim Starten des Kernelbaus gibts aber noch einige Fragen :-((
    ich dachte die .config wäre schon komplett

  • Wenn du davor ein make menuconfig machst und dort speicherst sollte danach nix mehr abgefragt werden.


    Ansonsten werden die neuen Sachen von 2.6.20er Kernel abgefragt.


    Sources.list reicht ne minimale Debian sources.list.
    Will die eher nicht zu der Anleitung dazunehmen.
    Ansonsten wär es eine ohne VDR von Tobi.


    Wegen config:
    Dann könntest doch auch gleich die vom 2.6.20er Kernel verwenden?
    http://merkel.debian.org/~jurij/2.6.20-2/i386/

  • Zitat

    Original von wilderigel
    dpkg -i ../linux-image-2.6.20.7-dvb_dvb.0_i386.deb


    Hallo wilderigel...


    Alles nach Anleitung gemacht, mit der Einschränkung, dass ich es mit den Kernelsourcen 2.6.20.6 versuchte, was hoffentlich nicht kapital falsch war, leider komme ich nicht weiter:


    VDR meldet "no DVB device found"


    Tatsächlich fehlen jegliche /dev/dvb/adaptern/frontendn.


    Könnte es sein, dass es bei Euch funktioniert, weil bei früheren Kernelupgrades (sarge) ein Skript verwendet wurde, welches die dev-Einträge erzeugte?


    Habe gegoogelt, jedoch keine Hinweise gefunden, dass der debian-Standard-Kernel speziell gepatched wurde, um das Erzeugen der /dev/dvb-Einträge zu forcieren...


    Die im 2.6.20.6 mitgelieferten Kerneltreiber scheinen meine Nova-T einwandfrei zu finden, die Ausgaben sind mit denen des debian-Standard-Kernel 2.6.18-6 sind identisch:



    Ich brauch mal dringend nen "Schubser" in die richtige Richtung! :hilfe


    -==[Schubsi]==- :nichtdoof

    WoZi-VDR: yaVDR 0.4 out-of-the-box, Asus M4N78-Pro, AMD 4450e, 2GB, 60GB-SSD, 500GB 2,5", 3x KNC-one-Clone (DVB-C), HDMI->Plasma-TV (Panansonic)

    Einmal editiert, zuletzt von schubsi ()

  • Nö, sollte alles von udev erledigt werden.


    Habs extra auf nen nackten Debian 4.0 Rechner getestet, der neu installiert wurde.
    Die DVB-C Karte funktionierte auf Anhieb.


    Ansonstem leg /dev/dvb mal an mit dem Script von der Sarge Anleitung.


    Edit:
    Und mit dem Etch Standardkernel 2.6.18 funkts?

  • :moin :portal1


    Zitat

    Original von wilderigel
    Nö, sollte alles von udev erledigt werden.


    Leider nicht vollständig...


    Zitat

    Ansonstem leg /dev/dvb mal an mit dem Script von der Sarge Anleitung.


    Nützt nix...


    Zitat

    Edit:
    Und mit dem Etch Standardkernel 2.6.18 funkts?


    Ja.


    Und hier die Lösung, hier gefunden:


    Zitat

    Note: The current kernel, 2.6.20, does not automatically load the cx88-dvb driver when a program like mplayer requests to use it. This problem will most likely be fixed in kernel 2.6.21, but in the mean time, you will either need to load it using: modprobe cx88-dvb


    ... und dieser blöde Bug hat mich satte 4 Tage meines Lebens gekostet :versteck


    (kopfschüttelnd)


    -==[Schubsi]==-

    WoZi-VDR: yaVDR 0.4 out-of-the-box, Asus M4N78-Pro, AMD 4450e, 2GB, 60GB-SSD, 500GB 2,5", 3x KNC-one-Clone (DVB-C), HDMI->Plasma-TV (Panansonic)

  • Zitat

    Original von wilderigel
    Für Kernelbugs kann ich nix. :)


    Sagt ja auch keiner! :)


    Habs vorerst in die /etc/modprobe eingetragen, damits beim nächsten Serverstart kein böses Erwachen gbit.


    Schon merkwürdig, dass das bisher niemand bemerkt hat, ich bilde mir ein, bei Gockel eingermaßen gute Suchbegriffe eingegeben zu haben. Naja, vielleicht hat aufgrund dieses Threads ein anderer User mehr Glück als ich :engel2


    Stolz, die Lösung gefunden zu haben....


    -==[Schubsi]==-

    WoZi-VDR: yaVDR 0.4 out-of-the-box, Asus M4N78-Pro, AMD 4450e, 2GB, 60GB-SSD, 500GB 2,5", 3x KNC-one-Clone (DVB-C), HDMI->Plasma-TV (Panansonic)

  • Zitat

    Original von wilderigel
    Update auf 2.6.21 erfolgt eh mal nach erscheinen dieses Kernels.


    Naja, is zwar schon der 2.6.21.1 erschienen, aber Update der Anleitung machma trotzdem :jb

  • Hallo Igel,
    sehr schöne Anleitung! Und sie trifft mein derzeitiges Problem, nach Update auf debian Etch +Kernel 2.6.21.1 wie die Faust aufs Auge.
    Probieren kann ich leider erst heute Abend, nur eins ist mir schon jetzt nicht klar.


    Warum entfernst Du den gerade frisch gebauten Kernel?


    Zitat

    Kernel deinstallieren (zuvor mit nem anderen Kernel booten) - natürlich nur, wenn man ihn wieder loswerden will …


    Oder ist das ein anderer, vorher laufender Kernel?
    Oder soll das nur der allgemeine Hinweis sein wie man ein solches Kernelpacket elegant wieder los wird?
    Oder … ?


    Der Hinweis, das Lirc nur für den Kernel gebaut werden kann der gerade läuft könnte für mich der entscheidende sein. Evtl. sind daran alle bisherigen Versuche gescheitert. Besten Dank dafür schon mal


    Gruß SkateTux

  • Ja klar ist nur ein Hinweis zum entfernen.
    Genauso wie das make-kpkg clean im Text.


    Edit:
    Dieser Thread ist aber auch kein "wie bekomm ich Lirc zum laufen" Thread.
    Wenn die Module da sind ist hier Lirc abgeschlossen.

  • Hallo Wilderigel,
    das Editieren des makefiles sollte man doch durch Eingabe auf der Komandozeile umgehen können.
    Ich halte die Zeilen immer in Freemind vor, so dass es nur ein "copy and paste" ist.


    Code
    time make-kpkg --initrd --revision=df.1.0 --append-to-version kernel_image


    Das time ist optional und sagt mir wie lange es gedauert hat.


    PS: Auf dieser Maschine habe ich noch kein freeemind, daher habe ich es abgeschrieben und hoffentlich nicht vertippt.
    PS2:Ich gehe immer mit putty in die Linuxbox, dann kann ich (noch) von Windows aus Arbeiten.

    Grüße, Dieter :)

  • Hi,
    bei mir geht lirc problemlos mit der Anleitung von lirc.org auf Sarge (und Etch).

    Grüße, Dieter :)

  • Habe Probleme mit LIRC, Installation ist soweit ich das überblicken kann fehlerfrei durchgelaufen. Die Hardware.conf ist angepasst aber es wird das Verzeichnis /dev/lirc0 nicht angelegt. Reicht hierfür ein Neustart des Rechners oder muß ich die Treiber von Hand laden, wenn ja, wie?

    ASROCK P4i65GV - 2000Mhz CPU - 512MB HS - 250GB HD - Hauppage FF 2.3 - Hauppage FF 1.5 - C't6 Kernelupdate 2.6.21


    testing
    medion pc 2GHz - Hauppauge WinTV-NOVA-s - als reiner server mit debian etch 4 und vdr
    S100-client mit zendeb

  • moin moin,


    erstmal Kompliment für die Anleitung, klappt alles wunderbar!
    Ich wusste leider nicht wo ich sonst fragen sollte und im weitesten Sinne hat meine Frage auch mit diesem Kernelupdate zu tun. Also bitte nicht gleich schlagen :versteck


    Nach dem Update wollte ich VM-Ware installieren und beim kompilieren wird gemeckert, dass unter den Header Files die Datei "linux/version.h" nicht gefunden wird.
    Darauf folgt die Frage : "What is the location of the directory of C header files that match your running kernel?"


    Die Header für meinen alten Kernel 2.6.18-4 habe ich, aber damit kann ich doch jetzt nicht mehr kompilieren(?!).
    Wo bekomme ich also nun die passenden C Header Files zu meinem neu installierten Kernel 2.6.21.4 her?
    Beim Kernelupdate wurde unter /usr/src/ auch ein File linux-headers-2.6.21.4.deb abgelegt. Muss dieser noch mal gesondert installiert werden,
    oder hätte ich mir ein "make-kpkg clean" nach der Installation des neuen Kernels verkneifen sollen?
    Danke schonmal für evtl. Antworten.
    Gruß
    Toaster

  • Wenn du die sourcen vom kompilieren hast brauchst keine extra headers.
    aber mit make-kpkg clean ist das ja weg.
    Also sollten die gesuchten Dateien wohl in linux-headers-2.6.* Paket stecken welches du dann installieren musst.

  • danke erstmal @ wilderigel!
    Ich habe die kernel-headers-2.6.21.4 installiert und das hat auch geholfen.


    Leider bricht die Installation nach dem finden der "version.h" sofort ab was aber mit Problemen von VM-ware mit 2.6.20 zu tun hat.
    ...und weiter gehts mit der Samstag-Abend-Beschäftigung...
    gruß
    toaster

Jetzt mitmachen!

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