[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
    1. 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
    1. # backports.org
    2. deb http://www.backports.org/debian/ sarge-backports main


    Code
    1. apt-get update
    2. apt-get -t sarge-backports install kernel-package


    yaird Paket bauen:

    Code
    1. cd /usr/src
    2. 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
    3. apt-get install cdbs quilt patchutils cdbs dh-buildinfo xmlto
    4. # falls die obrigen Pakete nicht mehr verfügbar, Sourcen von da: http://packages.debian.org/testing/source/yaird
    5. dpkg-source -x yaird_0.0.12-18.dsc
    6. cd yaird-0.0.12
    7. dpkg-buildpackage -tc
    8. dpkg -i ../yaird*.deb


    für alle weiter:


    Ins Build Verzeichnis wechseln:

    Code
    1. cd /usr/src


    Kernel von kernel.org holen:

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


    Kernel auspacken:

    Code
    1. tar xjf linux-2.6.20.15.tar.bz2


    Nach linux verlinken und ins Verzeichnis wechseln:

    Code
    1. rm linux
    2. ln -s linux-2.6.20.15 linux
    3. cd linux


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

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


    Makefile anpassen, für einen eindeutigen Namen:

    Code
    1. nano Makefile


    EXTRAVERSION = .15-dvb #(zum Beispiel)


    Configurieren des neuen Kernels:

    Code
    1. 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
    1. 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
    1. make-kpkg clean


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

    Code
    1. 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
    1. 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
    1. title Debian GNU/Linux, kernel 2.6.20.15-dvb
    2. root (hd0,0)
    3. kernel /boot/vmlinuz-2.6.20.15-dvb root=/dev/hda1 ro
    4. initrd /boot/initrd.img-2.6.20.15-dvb
    5. savedefault
    6. boot


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

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


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

    Code
    1. cd /usr/lib/hotplug/firmware/
    2. wget http://www.linuxtv.org/downloads/firmware/dvb-ttpci-01.fw-2622
    3. 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
    1. 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
    1. 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
    1. /dev/ttyS0 uart none
    2. /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
    1. cd /usr/src
    2. wget http://mesh.dl.sourceforge.net/sourceforge/lirc/lirc-0.8.1.tar.bz2


    Auspacken

    Code
    1. tar xjf lirc-0.8.1.tar.bz2
    2. cd lirc-0.8.1
    3. ./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
    1. make
    2. cd drivers # Wir brauchen nur die Treiber, die funktionieren auch noch mit lirc 0.8.1
    3. make install


    Lirc installieren, falls noch nicht geschehen:

    Code
    1. apt-get install lirc


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

    Code
    1. LOAD_MODULES=true
    2. DRIVER="default"
    3. DEVICE="/dev/lirc0"
    4. 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
    1. apt-get install module-assistant
    2. wget http://ftp.de.debian.org/debian/pool/main/c/cdfs-src/cdfs-src_2.4.20.a+2.6.18-1_all.deb
    3. dpkg -i cdfs-src_2.4.20.a+2.6.18-1_all.deb


    Bauen des Paketes:

    Code
    1. 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
    1. cd /usr/src
    2. wget http://trappist.elis.ugent.be/~ronsse/cdfs/download/cdfs-2.6.19.tar.bz2
    3. tar xjf cdfs-2.6.19.tar.bz2
    4. cd cdfs-2.6.19
    5. make
    6. 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
    1. /dev/hdX /cdfs cdfs ro,noauto,user 0 0


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


    Danach /cdfs anlegen:

    Code
    1. mkdir /cdfs
    2. chmod 777 /cdfs


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

    Code
    1. /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
    1. deb http://www.backports.org/debian/ sarge-backports main


    Paketquellen updaten nach Änderung in sources.list:

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


    Mercurial Treiber Sourcen besorgen:

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


    Treiber anpassen:

    Code
    1. cd /usr/src/v4l-dvb
    2. make menuconfig


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

    Code
    1. make
    2. #oder
    3. make all


    Danach noch installieren:

    Code
    1. make install


    Sollte man mal neu bauen wollen vorher aufräumen:

    Code
    1. 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 ;)

  • 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
    1. ctvdr5b:/usr/src/linux# make-kpkg kernel_image kernel_headers kernel_source kernel_doc --revision=dvb.0 --initrd
    2. Warning: You are using the initrd option, that may not
    3. work, depending on your kernel version and architecture,
    4. unless you have applied the initrd cramfs patch to
    5. the kernel, or modified mkinitrd not to use cramfs by
    6. default. The cramfs initrd patch, is included in the
    7. Debian supplied kernel sources. New kernels on most
    8. architectures do work fine.
    9. By default, I assume you know what you are doing, and I
    10. 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
    1. ctvdr5b:/usr/src/linux# apt-get install initrd-tools
    2. Paketlisten werden gelesen... Fertig
    3. Abhängigkeitsbaum wird aufgebaut... Fertig
    4. Sie möchten wahrscheinlich »apt-get -f install« aufrufen, um dies zu korrigieren:
    5. Die folgenden Pakete haben nichterfüllte Abhängigkeiten:
    6. initrd-tools: Hängt ab: cramfsprogs (>= 1.1-4) soll aber nicht installiert werden
    7. 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
    1. make[2]: *** [scripts/kconfig/lxdialog/checklist.o] Error1
    2. make[1]: *** [menuconfig] Error 2
    3. make: *** [menuconfig] Error 2


    vorher meldet er:

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


    was mach ich denn falsch??? ;(