DEBIAN --> Kernel komplilieren

  • Hallo!


    Suche jemanden mit Debian + VDR, der mir seine .config für einen schönen
    schlanken Kernel (nur das nötigste!) zur Verfügung stellen kann.


    Vielen Dank!


    Grüsse,
    frix

  • frix


    Hmm, ich setze Debian 3.0r1 (Woody) mit VDR ein. Aber ich verwende die Standard .config von 2.4.18-bf2.4. Damit ist der Kernel eigentlich sehr schlank, da mehr als 50% der Treiber per Module geladen werden. Ohne Module ist also nur das nötigste drin. Gut ein bischen Balast gibt es immer, aber es macht keinen Unterschied ob Dein Kernel-Image 623KB oder 632KB hat.


    Ich selbst habe mir mal vor langer Zeit die Arbeit gemacht und das Image auf ~520KB heruntergedrückt. es ist die Arbeit nicht wert!


    Leider bleibt Dir unter Woody mit 2.4.18-bf2.4 das neukompilieren nicht erspart, da die DVB-S Module Probleme mit der "-bf2.4" Extension haben. Sie kompilieren, lassen sich dann aber nicht installieren... Ich habe leider noch keinen anderen Weg gefunden, als mit der zugehörigen config den gleichen Kernel ohne diese String-Extension in der Version zu bauen. Gut ich mache mir die Mühe und ändere noch den Prozessor auf meinen PIII, aber das wars.....


    Bis dann
    Frank

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Zitat

    Original von hummingbird_de
    Leider bleibt Dir unter Woody mit 2.4.18-bf2.4 das neukompilieren nicht erspart, da die DVB-S Module Probleme mit der "-bf2.4" Extension haben. Sie kompilieren, lassen sich dann aber nicht installieren... Ich habe leider noch keinen anderen Weg gefunden, als mit der zugehörigen config den gleichen Kernel ohne diese String-Extension in der Version zu bauen.
    Frank


    Hi, ich benutze auch Debian. Ich habe zwar meinen Kernel selber kompiliert, aber auch mit einer standard-config, so wie Du. Da das ein "initrd"-Kernel ist ist er sehr schlank, und alles läßt sich als Module laden. Das ist perfekt.


    Allerdings habe ich die DVB-Module gar nicht installiert, sondern rufe bei jedem Start ein Skript auf, daß in das Verzeichnis der DVB-Treiber wechselt und "make insmod" ausführt. So kann man sich auch das neukompileren des Kernels sparen, denn dann ist es dem Treiber egal, ob dein Kernel die Endung -k7 oder sonstwas hat. Das gute daran ist: Wenn ich einen neuen Treiber installiere, muß ich nur den symlink DVB anpassen und schon habe ich beim nächsten Start autmatisch den aktuellen Treiber.



    Viele Grüße,
    coco.

  • Hi,


    nutze auch debian, aber warum willst denn einen schlanken kernel????


    Ich habe so viel wie möglich in der kernel rein gebacken, denn damit startet er schneller, weil er nicht erst suchen muß welches Modul zu laden ist... natürlich auch nur das rein was drin sein muß... bin noch dabei das cdfs zu integrieren, aber das sträubt sich noch etwas und der Entwickler meldet sich leider nicht auf meine mail (na mal warten, ist ja Urlaubszeit).


    Ansonsten, je weniger module zu laden sind, um so schneller ist der vdr bereit... geht zwar auf die möglichen einsatzgebiete, aber wer wechselt schon ständig die Hardware???

    Gruß Martin (linuxdep)

  • linuxdep


    Genau, das meinte ich. Es ist doch gut wenn die Maschine alles mögliche kann, das macht die Wartung leichter (USB Disk etc.). Die Maschine wird mit einem "kleineren" Kernel Image nicht schneller. Den schlanken Kernel benötige ich vielleicht bei einem Handheld wie Palm etc. wo der Speicher arg knapp ist :]


    Aber im VDR haben wir ja ausreichend Speicher..... :D


    coco


    Tja, genau das make insmod schlägt fehl. Er mault dann an der Extension -bf2.4 rum .... :(


    Kind regards
    Frank

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Zitat

    Original von hummingbird_de
    coco


    Tja, genau das make insmod schlägt fehl. Er mault dann an der Extension -bf2.4 rum .... :(


    Hmm, das wundert mich. Ich kompiliere meine Kernel auch immer mit Endungen, wie z.b. -k7 und bei mir gehts... Vielleicht ist der /usr/src/linux symlink nicht korrekt? Aber Hauptsache es läuft :)


    ---
    An alle:


    Also das mit den Modulen ist doch eine gute Sache. Falls man mal was neues in den Computer einbaut muß man nicht den Kernel neu kompilieren, sondern einfach ein Modul nachladen. Dass der Computer schneller startet, wenn er keine Module laden muss stimmt nicht unbedingt:


    Falls man im Skript /etc/init.d/modutils statt
    "depmod -a" -> "depmod -A" einträgt, werden die module-dependencies nicht jedes mal neu berechnet, sondern nur beim starten eines _anderen_ Kernels. Das geht dann schon ziemlich fix!


    Viele Grüße,
    coco.

  • Hi..


    Zitat

    eider bleibt Dir unter Woody mit 2.4.18-bf2.4 das neukompilieren nicht erspart, da die DVB-S Module Probleme mit der "-bf2.4" Extension haben. Sie kompilieren, lassen sich dann aber nicht installieren... Ich habe leider noch keinen anderen Weg gefunden, als mit der zugehörigen config den gleichen Kernel ohne diese String-Extension in der Version zu bauen. Gut ich mache mir die Mühe und ändere noch den Prozessor auf meinen PIII, aber das wars.....


    Das problem hab ich glaub ich auch grad... !
    Das MAKE im dvb/driver Verzeichniss klappt, und auch das ./makedev.napi klappt! Aber beim make insmod meckert er dann das die KERNEL MODULE VERSION MISSMATCH! Da ja angeblich der Kernel 2.4.18.bf2.4 in nutzung ist und nicht 2.4.18 !!!


    Wie bekomme ich das Problem behoben!


    Den Kernel neu Kompiliet hab ich ja.. aber ich hab das mak bzImage weg gelassen! Da ich eigendlich nur das BUILD Verzeichniss brauchte und deshaln nen neuen Kernl Kompiliert habe!


    Grüße
    _Austin_

  • coco
    Das make insmod in deinem Script kannst du dir eigentlich sparen.
    Debian hat da schon einen Mechanismus für vorgesehen.


    Und zwar gibt es die Datei /etc/modules dort trägst du einfach in jede Zeile einen Modulnamen ein und diese Module werden dann automatisch geladen.


    anstelle von 'insmod $MODULNAME' würde ich auch 'modprobe $MODULNAME' benutzen.
    Das läd dann automatisch abhängige Module mit.


    Zu dem Problem mit dem -bf2.4 kann ich leider nichts sagen.

  • Hi,


    Zitat

    Das MAKE im dvb/driver Verzeichniss klappt, und auch das ./makedev.napi klappt! Aber beim make insmod meckert er dann das die KERNEL MODULE VERSION MISSMATCH! Da ja angeblich der Kernel 2.4.18.bf2.4 in nutzung ist und nicht 2.4.18 !!!


    Wie bekomme ich das Problem behoben!


    Hmm, das hatte ich doch am WE am Testrechner auch, zwar Knoppix 2.4.19-xfs, aber gleiches Fehlerbild mit nachinstallierten Kernelsourscen 2.4.19 von kernel.org.


    Habe dann in /usr/src/linux/include/linux/version.h die Variable 'UTS_RELEASE' auf den akt. Kernel angepasst also hier "2.4.19-xfs", dann DVB-Treiber neu kompiliert, dann ging es.

  • Hi!


    Habs auch angepasst... auf bei mir.. 2.4.18-bf2.4 und es lief ohne oben genannten Fehler durch! Allerdings kommt beim make insmod nun folgendes....


    er arbeitet und irgendwann kommt dann diese zeile...



    Mmh.. hat einer eine Idee was das nun schon wieder ist?!?!?!?
    Danke schonmal..


    Grüße
    _Austin_

  • @ _Austin_


    Hört sich so an, als ob Du den Kern nach guter SuSE Tradition gebaut hast. Das funktioniert auch bei Debian, aber es gibt wie bei vielen anderen Dingen einen sehr eleganten Weg bei Debian. Sieh mal hier:


    http://channel.debian.de/faq/ch-dpkgundco.html#s-makekpkg


    Das mit den unresolved symbols deutet darauf hin, das beim kompilieren der Module etwas schief gelaufen ist. Dafür kann es (zu) viele Ursachen geben, daher die Empfehlung den 2.4.18-bf2.4 wieder starten/installieren und nach o.a. Debian Art nochmal einen bauen (ohne -bf2.4 Extension). Anschließend baust Du die Module nochmal. Bitte vorher unbedingt einen


    Code
    make clean


    im Quellverzeichnis ausführen.


    Für alle die Fragen zu Debian haben, folgende links als Basis Lektüre (deutsch):


    http://www.openoffice.de/linux/buch
    http://channel.debian.de/faq/


    Diese Links benutze ich mit Debian immer wieder als Nachschlagwerk.


    Bis dann
    Frank

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • hummingbird_de hat absolut recht, du solltest es nach dem 'debian way' versuchen :]


    Wenn ein Kernel mal nicht booten will, oder sonstige Macken hat (unresolved...), dann
    solltest du vor einem erneuten 'make menuconfig' folgendes ausführen:

    Code
    cd /usr/src/linux
    cp .config ../Config-Versuch-XY-was-weiss-ich
    make mrproper
    rm -R  stamp-debian  stamp-kernel-configure stamp-configure stamp-image debian
    cp ../Config-Versuch-XY-was-weiss-ich .config


    Damit hast du wirklich alle Relikte des alten Kernelbaus vernichtet.
    Der Befehl 'make mrproper' löscht auch jeweils die aktuelle .config , deswegen sicherst du die vorher weg.


    viel erfolg!

  • Hi!


    MMh..
    Hab den Kernel 2.4.18 neu gesaugt! Entpackt und nach der DEBIAN Art Installiert!
    Er ist auch im Systtem! Nur mit den Modulen hab ch noch so mein Problem!


    Habe zuletzt ....
    % dpkg -i /usr/src/kernel-image-VERSION_meinkernel.01_i386.deb


    gemacht und somit den kernel Installiert! Beim Booten läuft auch alles hoch.. aber natürlich kann er einige dinge nicht laden weil die Module fehlen!


    Wie bekomme ich die hin!?


    Und an welchem Punkt genau muß ich das MAKE CLEAN machen?!


    Gruß
    _Austin_

  • schau mal in /etc/modules dort sind einige auszukommentierende Module noch von der Installaiton vermerkt.
    Die hast du wahrscheinlich eh fest in den Kernel eingebunden, oder?


    Make clean bzw. mrproper führst du durch, bevor du den Kernel mit geänderter .config nocheinmal backst.

  • @ _Austin_


    Wenn Du den 2.4.18 gebaut hast und es fehlen jetzt gegenüber 2.4.18-bf2.4 Module, dann hast Du die .config gegenüber dem Original deutlich abgeändert.


    Meiner Meinung nach ist die .config von Debian 2.4.18-bf2.4 sehr gut, da die wichtigen Sachen einkompiliert sind und (fast) alles andere als Modul zur Verfügung steht. Also entweder wie von Thorsten geschrieben die /etc/modules anpassen oder die Config aus /boot/config-2.4.18-bf2.4 nach /usr/src/linux/.config (siehe FAQ). Anschließend mit make menuconfig noch den Prozessor anpassen und Kernel nach Debian Art bauen.


    Wenn Du noch ein kleines, leicht zu implementierendes Schmankerl willst, installierst Du:


    Code
    #/> apt-get install kernel-patch-debianlogo


    Anschließend:


    Code
    #/> cd /usr/src/linux
    #/> /usr/src/kernel-patches/all/apply/debianlogo


    Bis dann
    Frank

    HowTo: APT pinning

  • Das kommt raus - seit Tagen - ich ging nach obigen Tipps vor
    vielleicht kann mich jeamnd erleuchten



    gcc -D__KERNEL__ -I/usr/src/kernel-source-2.4.18/include -Wall -Wstrict-prototyp
    es -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pip
    e -mpreferred-stack-boundary=2 -march=athlon -DKBUILD_BASENAME=ksyms -DEXPOR
    T_SYMTAB -c ksyms.c
    In file included from ksyms.c:50:
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:72:30: missing terminating
    " character
    In file included from ksyms.c:50:
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h: In function `ip_fast_csum'
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:73: error: parse error befo
    re "movl"
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:75:17: invalid suffix "f" o
    n integer constant
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:82:17: invalid suffix "b" o
    n integer constant
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:90:13: missing terminating
    " character
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:105:17: missing terminating
    " character
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h: In function `csum_fold':
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:106: error: parse error bef
    ore "addl"
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:108:17: missing terminating
    " character
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:121:13: missing terminating
    " character
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h: In function `csum_tcpudp_n
    ofold':
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:122: error: parse error before "addl"
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:126:9: missing terminating
    " character
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:128: error: `__x' undeclare
    d (first use in this function)
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:128: error: (Each undeclare
    d identifier is reported only once
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:128: error: for each functi
    on it appears in.)
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h: At top level:
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:128: error: parse error bef
    ore ')' token
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:161:17: missing terminating
    " character
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h: In function `csum_ipv6_mag
    ic':
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:162: error: parse error bef
    ore "addl"
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:173:17: missing terminating
    " character
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:176: error: `__x' undeclare
    d (first use in this function)
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:176: Warnung: no return sta
    tement in function returning non-void
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h: At top level:
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:176: error: parse error bef
    ore ')' token
    /usr/src/kernel-source-2.4.18/include/asm/checksum.h:176: error: parse error bef
    ore "__u32"
    make[3]: *** [ksyms.o] Fehler 1
    make[3]: Leaving directory `/usr/src/kernel-source-2.4.18/kernel'
    make[2]: *** [first_rule] Fehler 2
    make[2]: Leaving directory `/usr/src/kernel-source-2.4.18/kernel'
    make[1]: *** [_dir_kernel] Fehler 2
    make[1]: Leaving directory `/usr/src/kernel-source-2.4.18'
    make: *** [stamp-build] Fehler 2

  • Man muß sich einen aktuell gepatchten Kernel bauen um in den Genuß der Epia
    Hardware zu kommen. Und das geht so:


    Ins Verzeichnis wechseln


    cd /usr/src


    Kernel saugen von Kernel.org


    wget http://www.kernel.org/pub/linu…v2.4/linux-2.4.22.tar.bz2


    dann den pre patch und Epia patch


    wget http://www.kernel.org/pub/linu…ing/patch-2.4.23-pre7.bz2


    Entpacken


    tar xjvf linux-2.4.22.tar.bz2 /usr/src


    Verzeichniss umbenennen


    mv /usr/src/linux-2.4.22 /usr/src/linux-2.4.23-pre7-epia1


    Ins Verzeichnis wechseln


    cd /usr/src/linux-2.4.23-pre7-epia1


    Auf Prekernel patchen


    bzip2 -dc ../patch-2.4.23-pre7.bz2|patch -p1


    Auf Epiakernel patchen (Download hier: http://blade5.bvu.edu/wiki/tik…e_gallery.php?galleryId=3)


    gzip -dc ../patch-2.4.23-pre7-epia1.gz | patch -p1



    Die im Anhang liegende .config Datei nach /usr/src/linux-2.4.23-pre7-epia1 kopieren


    Wichtig ist das alle Pakete installiert sind die für ein Kernelbau nötig sind
    s. auch


    http://www.vdrportal.de/board/thread.php?threadid=6498&sid=


    make clean dep bzImage modules modules_install bzlilo


    Das wars


    Happy looking

    Server: CPU J1900 | 1x CineS2 | Debian Bullseye headless| VDR 2.6.3
    Client: 2x Himbeere mit vdr

Jetzt mitmachen!

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