Verständnisfrage Kernel-Image

  • Hi!


    Ich habe gerade das neue Kernel-Image 2.4.27-ctvdr-1 installiert. Es scheint auch alles zu laufen. In lilo.conf wird ein symolischer Link auf das Image (init.rd und vmlinuz) gesetzt.
    Wenn ich jetz einen eigenen angepassten Kernel 2.4.27-ctvdr-1 installieren will, muss ich mir die Header und Sourcen runterladen. Das habe ich auch schon getan.
    Dann die .config überarbeiten und den Kernel neu kompilieren.
    Wie müssen dann die Einträge für den neuen Kernel in lilo.conf aussehen und was ist mit den Symlinks.


    Und noch eine Frage. Ich wollte gerade den linuxant driverloader für meine Netgear WG311 v.2 mal ausprobieren. Also das deb-File geladen und installiert. Danach wird während der Konfiguration versucht, ein Modul zu kompilieren. Es wird mit folgender Fehlermeldung abgebrochen:
    "ERROR: /lib/modules/2.4.27-ct-vdr-1/build points to a missing directory
    /lib/modules/2.4.27-ct-vdr-1/build -> /usr/src/kernel-source-2.4.27"


    Soll ich einfach einen neuen symbolischen Link erzeugen, der auf das korrekte Verzeichnis zeigt. Ich glaube, dass bei dieser Aktion gestern nämlich was schief gelaufen ist.


    Gruß


    Thomas

    ct-vdr 5 (1.4.2-1ctvdr2) mit Erweiterungen von tobi, Silverstone LC03, ASUS P4P800-VM, 256 MB, TT 1.5, P4 2 GHZ, Thermalright SLK 947 U, Tagan TG 330, Aopen DVD 1648, Samsung SV1203N, WLAN WG311v2 Netgear

  • Da der ct-vdr auf Debian basiert solltest du dir den Kernel als Debian-Paket zusammenbauen. Beim Installieren dieses Paketes sollten zumindest die Links ohne weiteres Zutun korrekt gesetzt sein.


    - das Paket kernel-package installieren. (apt-get install kernel-package ggf. werden dann weitere Pakete mitinstalliert)
    - eventuell libncurses5-dev installieren (wird für make menuconfig im Kernel benutzt)


    - den Anweisungen in /usr/share/doc/kernel-package/README.gz folgen


    Ulrich

  • Hi,


    die Links sind an sich nicht notwendig. Du kannst auch in der lilo.conf den ganzen Pfad (/boot/...) eintragen. Ich glaube, die Links waren mal dazu gedacht, bei einem Update immer nur die Links umzuhängen.


    Für einen eigenen Kernel machst du am besten einen neuen Eintrag in der lilo.conf. So hast du immernoch den alten Kernel, falls der neue nicht geht. Den Kernel packst du auch nach /boot. In die lilo.conf trägst du den Pfad dorthin ein. Auf eine Ram-Disk (init.rd) würde ich an deiner Stelle verzichten. Wenn dein Kernel auf dein System zugeschnitten ist und zumindest das root-Device (IDE?) angesprochen werden kann, braucht man die Ram-Disk nicht.


    Wenn dein ganz privater Kernel läuft, wäre für dich evtl. auch das Debian-Paket "kernel-package" interessant. Dort sind Scripte enthalten, mit deren Hilfe du mal eben schnell aus den Debian-Kernel-Sourcen ein neues kernel-image-....deb baust, was man dann ganz bequem per dpkg -i installieren kann. Anleitungen, wie das geht, gibts glaube ich mehr als genug.


    Der Link sollte auf die Kernel-Sourcen zeigen. Diese müssen für den Kernel fertig konfiguriert sein, für den die Module gebaut werden sollen. Auf der sicheren Seite bist du, wenn dies auch der aktuell laufende Kernel ist. Wenn der Link nicht existiert oder woandershin zeigt, kann man meistens dem make auch eine andere Location vorgeben. Hierzu mal im Makefile, README oder INSTALL nachschauen.


    EDIT: das mit dem Debian-Paket ist nicht zwingend notwendig und bringt auch außer der einfachen Installation keine weiteren Vorteile. Ein selbstgebauter Kernel tuts auch bei Debian ohne Probleme.


    Gruß
    Mag1c

  • Der fehlerhafte Link ist ein Fehler im ctvdr-Paket. Der wurde bei der Installation so angelegt.
    Der debian-way ist ansonsten über kernel-package. Geht aber auch ohne, das habe ich hier auf meinem normalen PC mit Debian so.
    Nur mit lilo bin ich nicht so vertraut, da ich grub nutze.


    Gruß


    Thomas

    ct-vdr 5 (1.4.2-1ctvdr2) mit Erweiterungen von tobi, Silverstone LC03, ASUS P4P800-VM, 256 MB, TT 1.5, P4 2 GHZ, Thermalright SLK 947 U, Tagan TG 330, Aopen DVD 1648, Samsung SV1203N, WLAN WG311v2 Netgear

  • Zitat

    Original von tommiwe
    Der fehlerhafte Link ist ein Fehler im ctvdr-Paket. Der wurde bei der Installation so angelegt.
    Der debian-way ist ansonsten über kernel-package. Geht aber auch ohne, das habe ich hier auf meinem normalen PC mit Debian so.
    Nur mit lilo bin ich nicht so vertraut, da ich grub nutze.


    Gruß


    Thomas


    Kein Fehler. Der Link ist korrekt. Es fehlen eben nur die Sourcen dazu.


    lilo ist, wenn man denn keine Sonderlocke will, auch nicht so kompliziert. Oberstes Gebot hier: Lieber einmal zuviel lilo aurufen!! lilo speichert die absolute Position der Kernel-Images auf dem Block-Device im Boot-Record.


    Gruß
    Mag1c

  • Warum sollten denn die Sourcen von 2.4.27 installiert werden, wenn das Kernel-Image 2.4.27-ctvdr-1 ist und es dafür ebenfalls die Sourcen gibt. Und wenn ich jetzt die Sourcen von 2.4.27 ziehe, muss ich doch auch daraus einen Kernel backen, oder wie ist das dann zu verstehen? Ich gehe davon aus, dass der ct-Kernel schon besonders angepasst ist.


    Gruß


    Thomas

    ct-vdr 5 (1.4.2-1ctvdr2) mit Erweiterungen von tobi, Silverstone LC03, ASUS P4P800-VM, 256 MB, TT 1.5, P4 2 GHZ, Thermalright SLK 947 U, Tagan TG 330, Aopen DVD 1648, Samsung SV1203N, WLAN WG311v2 Netgear

  • Hi,


    ich baue einen Kernel z.B. aus /usr/src/kernel-source-2.6.10 mit einer speziellen Revision. Dann hat das .deb meine Revision im Namen und der Link zeigt trozdem nach /usr/src/kernel-source-2.6.10.
    Das Paket kernel-source-2.4.27-ctvdr-1 kenne ich nicht. Gibts das wirklich ? Könnte mir vorstellen, daß das von ct gepachte Sourcen sind. Ich würde aber vermuten, daß die trotzdem im Verzeichnis /usr/src/kernel-source-2.4.27 landen. Eine andere Vermutung wäre, daß das nur ein Meta-Paket ist, was noch weitere für den ct-Kernel benötigte Pakete/Patches nach sich zieht.


    Gruß
    Mag1c

  • Zu dem ctvdr Kernel gibt es auch das entsprechende Source-Paket:
    apt-get install kernel-source-2.4.27-ctvdr-1


    Damit hast du den kompletten Kernel-Tree unter
    /usr/src/kernel-source-2.4.27
    der ctvdr Kernels.


    Anschließend kannst du die config des ctvdr Kernles kopieren:
    cp /boot/config-2.4.27-ctvdr-1 /usr/src/kernel-source-2.4.27/.config


    ACHTUNG nun hat der Kernel-Tree aber noch die Version 2.4.27 und nicht 2.4.27-ctvdr-1


    Nun kannst du nachdem du mit
    apt-get install kernel-package
    kernel-package installiert hast, den Kernel konfigurieren und kompilieren:
    cd /usr/src/kernel-source-2.4.27
    make menuconfig
    make-kpkg --append-to-version -ctvdr-1 --initrd kernel_image


    Anschließend sollte dee linuxant driverloader das Modul für den ctvdr-Kernel kompilieren können.

    VDR 1.7.15 - Debian Squeeze/Kernel 2.6.32
    Rebach-Gehäuse, Intel Atom330, Extension HD, Technisat Cablestar2


  • Das sieht bei mir aber anders aus. Ich habe wie oben beschrieben die Kernel-sourcen installiert und mit bunzip2 und tar entpackt. Das Verzeichnis heißt /usr/src/kernel-source-2.4.27-ctvdr-1!



    Danke. Das werde ich dann heute Abend mal ausprobieren. /lib/modules/2.4.27-ctvdr-1/build wird dann aber immer noch auf ein leeres Verzeichnis zeigen, richtig?


    Gruß


    Thomas

    ct-vdr 5 (1.4.2-1ctvdr2) mit Erweiterungen von tobi, Silverstone LC03, ASUS P4P800-VM, 256 MB, TT 1.5, P4 2 GHZ, Thermalright SLK 947 U, Tagan TG 330, Aopen DVD 1648, Samsung SV1203N, WLAN WG311v2 Netgear

  • Zitat

    Original von tommiwe
    Danke. Das werde ich dann heute Abend mal ausprobieren. /lib/modules/2.4.27-ctvdr-1/build wird dann aber immer noch auf ein leeres Verzeichnis zeigen, richtig?


    Wenn es nicht geht, versuche doch den symbolischen Link /lib/modules/2.4.27-ctvdr-1/build auf den Kernel-Source zu setzen.


    Oder du installierst dann einfach den neugebauten Kernel, der unter /usr/src liegt. Aber dann nicht vergessen 'lilo' vor einem Neustart auszuführen!!!

    VDR 1.7.15 - Debian Squeeze/Kernel 2.6.32
    Rebach-Gehäuse, Intel Atom330, Extension HD, Technisat Cablestar2

  • Das Umlinken des /lib/modules/2.4.27/build auf die korrekte kernel-source hat nicht zum Erfolg geführt, da unter /usr/src/kernel-source/2.4.27-ctvdr-1/include/linux/version.h der 2.4.27 deklariert ist.
    Ich habe dann den Kernel mit make-kpkg neu gebacken und jetzt läuft alles korrekt. :)
    Den Driverloader konnte ich dann auch installieren.


    Vielen Dank


    Thomas

    ct-vdr 5 (1.4.2-1ctvdr2) mit Erweiterungen von tobi, Silverstone LC03, ASUS P4P800-VM, 256 MB, TT 1.5, P4 2 GHZ, Thermalright SLK 947 U, Tagan TG 330, Aopen DVD 1648, Samsung SV1203N, WLAN WG311v2 Netgear

Jetzt mitmachen!

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