[Anleitung] ctvdr/Debian 3.1 (Sarge) Kernelupdate von kernel.org + lirc + cdfs (+ hg-dvb + ivtv)

  • So, das wars mit Debian Sarge, weiter gehts mit Debian Etch.


    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 oder Lilo den alten Kernel auch noch starten können.


    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 dpkg-dev gcc g++ libc6-dev make patch debhelper bzip2 kernel-package sudo


    Nur für ctvdr5 und ab Kernel 2.6.18 erforderlich:
    /etc/apt/sources.list:

    Code
    # backports.org
    deb http://www.backports.org/debian/ sarge-backports main


    Code
    apt-get update
    apt-get -t sarge-backports install kernel-package


    yaird Paket bauen:

    Code
    cd /usr/src
    wget http://ftp.debian.org/debian/pool/main/y/yaird/yaird_0.0.12-18.dsc http://ftp.debian.org/debian/pool/main/y/yaird/yaird_0.0.12.orig.tar.gz http://ftp.debian.org/debian/pool/main/y/yaird/yaird_0.0.12-18.diff.gz
    apt-get install cdbs quilt patchutils cdbs dh-buildinfo xmlto
    # falls die obrigen Pakete nicht mehr verfügbar, Sourcen von da: http://packages.debian.org/testing/source/yaird
    dpkg-source -x yaird_0.0.12-18.dsc
    cd yaird-0.0.12
    dpkg-buildpackage -tc
    dpkg -i ../yaird*.deb


    für alle weiter:


    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.20.15.tar.bz2


    Kernel auspacken:

    Code
    tar xjf linux-2.6.20.15.tar.bz2


    Nach linux verlinken und ins Verzeichnis wechseln:

    Code
    rm linux
    ln -s linux-2.6.20.15 linux
    cd linux


    Config von z.B. 2.6.16-ct-1 verwenden:

    Code
    cp /boot/config-2.6.16-ct-1 .config


    Makefile anpassen, für einen eindeutigen Namen:

    Code
    nano Makefile


    EXTRAVERSION = .15-dvb #(zum Beispiel)


    Configurieren des neuen Kernels:

    Code
    make menuconfig


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


    Framebuffer aktivieren:
    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 is not set


    Kernel kompilieren:

    Code
    make-kpkg kernel_image kernel_headers kernel_source kernel_doc --revision=dvb.0 --initrd


    kernel_headers kernel_source kernel_doc kann man auch weglassen. Ist nur interesant, falls man die Sourcen mal löschen will, und danach Änderungen am Kernel vornehmen muß.
    Auf ein :prost2 gehen


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

    Code
    make-kpkg clean


    Kernel installieren:
    (bei ctvdr5 heisst der Kernel wegen Mischung mit Debian testing linux-*)

    Code
    dpkg -i ../kernel-image-2.6.20.15-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 kernel-image-2.6.20.15-dvb


    Eintrag in Grub sollte automatisch erfolgen.
    Ansonsten folgenden Eintrag in /boot/grub/menu.lst hinzufügen:

    Code
    title           Debian GNU/Linux, kernel 2.6.20.15-dvb
    root            (hd0,0)
    kernel          /boot/vmlinuz-2.6.20.15-dvb root=/dev/hda1 ro
    initrd          /boot/initrd.img-2.6.20.15-dvb
    savedefault
    boot


    Falls lilo verwendet wird /etc/lilo.conf ändern und danach lilo aufrufen:

    Code
    image = /boot/vmlinuz-2.6.20.15-dvb
      label = Linux-26
      root = /dev/hda1
      initrd = /boot/initrd.img-2.6.20.15-dvb
      append = "apm=power-off noapic acpi=off"
      read-only


    Firmware laden / aktualisieren von linuxtv.org:
    Andere Firmware siehe VDR-Wiki.

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


    Eventuell auch etwas mit vdr-wiki kombinieren, bzw querlesen.


    Falls nur Kernel 2.4 installiert ist:
    Für 2.6er Kernel erforderlich:

    Code
    apt-get install module-init-tools


    Debian Sarge pur:
    /dev/dvb mit folgenden Script anlegen.
    devdvb-erstellen:


    Für meine TT FF DVB-C 2.1 Karte ist es nicht notwendig, ein Ladescript zu erstellen, könnte bei anderen Karten erforderlich sein.


    Falls die Module nicht automatisch geladen werden kann man diese auch in /etc/modules eintragen und danach
    update-modules aufrufen. Sollte man aber nur dann machen wenn es nicht automatisch klappt.


    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 autoconf libtool automake1.9 help2man man2html setserial dialog


    Bei setserial config:
    Welche Art der automatischen Port-Konfiguration? auf "autosave once" stehen lassen.


    Danach 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://mesh.dl.sourceforge.net/sourceforge/lirc/lirc-0.8.1.tar.bz2


    Auspacken

    Code
    tar xjf lirc-0.8.1.tar.bz2
    cd lirc-0.8.1
    ./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, die funktionieren auch noch mit lirc 0.8.1
    make install


    Lirc installieren, falls noch nicht geschehen:

    Code
    apt-get install lirc


    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 kontrolieren, 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.4.20.a+2.6.18-1_all.deb
    dpkg -i cdfs-src_2.4.20.a+2.6.18-1_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:


    Code
    cd /usr/src
    wget http://trappist.elis.ugent.be/~ronsse/cdfs/download/cdfs-2.6.19.tar.bz2
    tar xjf cdfs-2.6.19.tar.bz2
    cd cdfs-2.6.19
    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, ausser die Karte ist zu neu für den aktuellen Kernel.


    In /etc/apt/sources.list folgende Zeile ergänzen:

    Code
    deb http://www.backports.org/debian/ sarge-backports main


    Paketquellen updaten nach Änderung in sources.list:

    Code
    apt-get update


    Installieren von mercurial für den Zugriff auf linuxtv.org
    backports.org in der sources.list wieder auskomentieren oder löschen.

    Code
    apt-get -t sarge-backports 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.


    ivtv-Treiber:


    Wollte aus gegebenen Anlass ja noch ne ivtv Anleitung dazumachen.
    Das ist aber so einfach, dass ich nur auf das ivtv Wiki verweise.
    http://ivtvdriver.org/index.php/Howto


    16.06.2006 - Änderung auf Kernel 2.6.16.20
    17.06.2006 - Hinzufügen der HG Treiber Sektion.
    [...]
    08.06.2007 - Änderung auf Kernel 2.6.20.15

  • Hab nach längerer Zeit nur mal getestet, ob die alte Anleitung noch funktioniert mit dem neueren Kernel.


    Und da man ja die alten Threads nimma editieren kann ausser den ersten Beitrag hab ich halt alles zusammengefasst und aktualisiert neu eingestellt.


    Was die Zukunft bringt wird sich weisen, hoffe der nächste Rang ist nicht "Mensch ohne Leben"

  • funktioniert auf jeden fall. habs grad mal wieder gemacht.
    leider hab ich immer noch keine ahnung wo man hier den framebuffer suchen darf ?
    eine ausgabe auf dem tft (konsole) gibt es, aber kein /dev/fb0 ???
    sondern nur /dev/.static/dev/fb0
    wie soll man da graphtft nur zum laufen bringen ?
    :rolleyes:

  • vga=0x311 hast aber in deiner Menu.conf?


    Wenn du alles nach Anleitung gemacht hast wär ja der Treiber schon fix im Kernel.


    Wo war dein ursprünglicher Thread ncohmal, gehört ja irgendwie nicht hier rein ;)

  • Zitat

    Original von hotzenplotz5
    perfekte ergänzung wäre eine erklärung zum installieren der neuesten
    treiber ?


    Done, musst nur mehr das Testkaninchen spielen ;)

  • ahh perfekt !!
    auf jeden fall braucht man halt die kernelheader vom installierten kernel !!!!
    ein make distclean im treiberverzeichnis biegt das dann auf das richtige verzeichnis. zumindest hat es mir geholfen :D
    aber so schon sehr gut !!!!

  • Habe how-to so durchgeführt


    ich hab leider nur boot/config-2.6.12-ct-1 statt boot/config-2.6.16-ct-1
    kann mir das jemand zur Verfügung stellen?


    Problem nach dem booten finde ich diese dmesg


    dvb-ttpci: could not load firmware, file not found: dvb-ttpci-01.fw
    dvb-ttpci: usually this should be in /usr/lib/hotplug/firmware or /lib/firmware
    dvb-ttpci: and can be downloaded from http://www.linuxtv.org/download/dvb/firmware/


    Firmware korrekt und im /usr/lib/hotplug/firmware abgelegt

  • Du hast recht wilderigel es liegt nicht daran.


    Hab den kernel noch mal backen. Gleiches Problem. Boote ich mit ct 2.6.12 kernel funkionierts. Habe leider noch eine Nova S Plus daher wollte ich auf den neueren Kernel updaten.


    Sonst noch eine Idee wo ich suchen soll?

  • Kein Hotplug installiert?
    grep FIRMWARE_DIRS /etc/hotplug/firmware.agent
    Pfad passt?


    Ansonsten such mal nach firmware nicht geladen, irgendwo hab ich schon mal sowas gelesen, aber weis ned obs ne Lösung dafür gab.

  • Hallo wilderigel,


    vielen Dank für die großartige Anleitung! Damit habe ich gestern auf den Kernel 2.6.17 in den Griff bekommen. Und noch eine gute Nachricht für alle angenervten Intel E1000-Besitzer: WOL funktioniert in dieser Kernelversion wieder auf anhieb! :bounce1
    Endlich kann ich ohne Kompromisse auf den neuesten Kernel umsteigen.


    Gruß,
    DrSat

  • Hallo all,


    ich hab da ein problem und ich würde mich freuen wenn mir jemand weiterhelfen könnte:


    wenn ich die obige anleitung auf meinem ctvdr5 system verwende (ok, ich habe das bootlogo nicht aktiviert) kriege ich vor beginn des kompilierens folgende meldung:


    Code
    ctvdr5b:/usr/src/linux# make-kpkg kernel_image kernel_headers kernel_source kernel_doc --revision=dvb.0 --initrd
    Warning: You are using the initrd option, that may not
    work, depending on your kernel version and architecture,
    unless you have applied the initrd cramfs patch to
    the kernel, or modified mkinitrd not to use cramfs by
    default. The  cramfs initrd patch, is included in the
    Debian supplied kernel sources. New kernels on most
    architectures do work fine.
    By default, I assume you know what you are doing, and I
    apologize for being so annoying. Should I abort[Ny]?


    wenn ich den fertigen kernel installieren will beschwert er sich wegen fehlender initrd tools, die ich aber nicht installieren kann...


    Code
    ctvdr5b:/usr/src/linux# apt-get install initrd-tools
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut... Fertig
    Sie möchten wahrscheinlich »apt-get -f install« aufrufen, um dies zu korrigieren:
    Die folgenden Pakete haben nichterfüllte Abhängigkeiten:
      initrd-tools: Hängt ab: cramfsprogs (>= 1.1-4) soll aber nicht installiert werden
    E: Nichterfüllte Abhängigkeiten. Versuchen Sie »apt-get -f install« ohne jeglich Pakete (oder geben Sie eine Lösung an).


    was ist zu tun?

  • Erste Meldung ist normal.


    Hast schon mal gemacht was apt dir vorschlägt?
    apt-get -f install
    aber genau beobachten was da gemacht werden soll.


    Oder installier yaird, das wurde hier schon irgendwo automatisch mitinstalliert.


    also zuerst mal Kernel deinstallieren:
    apt-get remove linux-image-2.6.17.1-dvb (oder wie du ihn genannt hast)


    dann apt-get install yaird

  • Ich hab jetzt mal hemacht was apt vorschlägt (damit bi ich eigentlich immer vorsichtig, da das oftmals auch in die Hise geht). Hat alles funktioniert.


    wilderigel


    kannst du einem laien noch kurz erklären welche nebenwirkungen der wechsel des kernels hat (gibt es noch was ausser lirc und cdfs dass ich dann neu machen muss?)


    Und noch ne kleine frage: wenn ich den kernel der installcd austauschen will (z.b.: ctvdr5) weil da evtl. ein treiberproblem gefixed wurde, kann ich da einfach den frischgebacken nach /install/vmlinuz kopieren, oder wie könnte das gehen?

  • Ausser den Treibern für Geräte (es gäbe auch noch andere wie z.B. WLAN, DXR3 oder was weiss ich) muss danach nix erneuert werden.


    Wegen neubauen der CD:
    Einfaches Austauschen geht mal sicher nicht, auch die Scripte und dergleichen müssen angepasst werden, und neue Prüfsummen generiert werden.


    Irgendjemand hat schon mal den VDR auf ner ctvdr CD aktualisiert, weis aber nicht mehr wer.
    Edit: MAK wars

  • Hi,


    erstmal Danke für die Klasse Anleitung, aber leider komm ich net weiter...


    bei make menuconfig bekomm ich mehrere fehlermeldungen:


    Code
    make[2]: *** [scripts/kconfig/lxdialog/checklist.o] Error1
    make[1]: *** [menuconfig] Error 2
    make: *** [menuconfig] Error 2


    vorher meldet er:

    Code
    In file included from scripts/Kconfig/lxdialog/checklist.c:24:
    scripts/kconfig/lxdialog/dialog.h:31:20: curses.h: No such file or directory


    was mach ich denn falsch??? ;(

Jetzt mitmachen!

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