neuen kernel kompilieren

apexero

Lieutenant
Registriert
Aug. 2001
Beiträge
564
also da ich ja nun keine agp unterstützung habe mit meinem nforce board will ich mir nun n neuen kernel kompilieren und konfigurieren

dazu muss ich aber erstmal wissen :

1. welche kernel version ich mir von kernel.org besorgen soll
und

2. welche patches ich noch brauche

.....für alles weitere hab ich glaub ich schon n tut oder sowas da

danke
 
Zu 1:
Ich würde zwar sagen, dass du die aktuelle Stable nehmen solltest (2.4.22), allerdings ist die
Development-Branch ziemlich stabil und schnell, weshalb du ruhig beide ausprobieren kannst.

Zu 2:
Patches sind meist nicht nötig, aber:
Für nForce Boards könnte der mm-Patch von Andrew Morton interessant sein, da er das "forcedeth" Modul enthält, welches ein Treiber für die Onboard-NIC des nForce 1-3 ist.
Natürlich nur, wenn du Onboard LAN nutzt. Abgesehen davon, enthält das mm-Patchset noch mehrere Optimierungen in Sachen I/O-Code, sollte also vielleicht etwas performanter laufen, als der ohnehin schon schnelle Development-Kernel, der ja durch sein IDE-Code rewrite mit superber Performance glänzt.

Falls du dich auf Messers Schneide bewegen möchtest, kannst du auch den aktuellen Development-Kernel nehmen und den dann noch mit dem neuesten Develshot patchen.
(Läuft bei mir übrigens ohne Probleme. ;))

Hier das Announcement:
http://kerneltrap.org/node/view/1616

Hier das Patchset:
http://www.kernel.org/pub/linux/kernel/people/akpm/

Für die, die es interessiert, das "post-halloween document" in Deutsch:
http://www.kubieziel.de/computer/halloween-german.html
 
Zuletzt bearbeitet:
also ...die 2.6.0. test 9 mm3 hab ich jetz

is das die einzige datei die ich brauch ? .... bei den links die ich hier bekommen hab war das immer nur die selbe datei

scheint mir erstmal so als ob das so alles is was ich brauche

falls nich .....bitte ne info hierhin

ich mach mich dann morgen oder so mal daran das ding zu basteln ....ich sag das wird lustig
 
Um den Patch zu nutzen, musst du die aktuelle Development-Branch haben:
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.0-test9.tar.bz2
Wenn du den mm-3 (http://www.kernel.org/pub/linux/ker...6.0-test9/2.6.0-test9-mm3/2.6.0-test9-mm3.bz2)
gezogen hast, entpackst du den Kernel wie gewohnt und kopierst den Patch in das - durch den Kernel - neu erzeugte Verzeichnis und "cd'st" auch dort hinein.
Ein bunzip2 -dc 2.6.0-test9-mm3.bz2 | patch -p1 patcht den Kernel und du kannst ihn dann mit make menuconfig, make xconfig oder make gconfig wie gewohnt konfigurieren.
 
gut danke für die info

wie gewohnt klingt schon lustig wenn mans noch nie gemacht hat ....weder das entpacken noch das kompilieren

kann ich jetz noch fix um ne kleine erläuterung für dieses " | " (senkrechter strich bei befehlen) bitten ?.......das sieht immer so seltsam aus und sagt mir nich wasses bedeuten soll
 
Bei bunzip2 -dc 2.6.0-test9-mm3.bz2 | patch -p1
werden die Befehle sozusagen "getrennt".

Zuerst wird per bunzip2 -dc das Archiv entpackt und danach unmittelbar per patch -p1 gepatcht, würde man das | löschen, dann würde bunzip2 denken, dass patch -p1 noch zu bunzip2 gehören würde.
Das ergäbe dann ein
Code:
bunzip2: Bad flag `-p1'

Dasselbe bei dmesg | egrep '^agp', zuerst wird per dmesg der "kernel ring buffer" ausgegeben und per egrep '^agp' wird nach "agp" gegreppt (In diesem Fall nur, wenn "agp" am Anfang der Zeile steht, wegen des "^", aber das hat dann wieder mit Regulären Ausdrücken zu tun)
 
okee

mein erster versuch schlug wohl so richtig kläglich fehl ........

zuerst....die wonne des entpackens der kernelsourcen mit bz2 endung
über konsole natürlich

also so in der art bunzip2 -dc <filename>........man möchte ja meinen nun wirds entpackt in das standartverz.

aber anstelle dessen hab ich dann in der konsole n haufen quelltext undzahlentabellen gesehn.....mehrere minuten lang
entpackt wurde da nix ........glaub ich zumindest , da ich ja nichma weiss wo das standartverz. is ......ich knall immer alles in lib/modules/ rein

- dorthin hab ich die bz2 dann auch manuell hinentpackt

soweit erstmal.......dann das patchen .......
hätte ich ne bz2 gehabt hätte ich wohl das selbe prob gehabt........
......ich hatte aber ne gz.....also das selbe mit gunzip (-dc wieder)

das hat irgendwie dann die blanke datei ohne endung mit mm3 hinten entpackt ...wie is mir n rätsel
gepatcht hat da aber nix .......oder doch ......oder nich ?---hm

nunja .....ich bin von nein ausgegangen (erschien mir irgendwie plausibler :D)

danach folgten einige experimente mit dem befehl patch .......der wollte aber kein zielverz. annehmen also hab ich die patch datei ins hauptverz. von den sourcen reinkopiert

dortdrin hab ich dann einfach ma patch -p1 <patchfile> eingegeben ......

daraufhin kam dann nichmehr wie sonst immer

root@localwasweissich>

nein dann kam garnix .....der cursor war ganz links am bildrand.....nun nahm ich an das jetz gepatcht wird.............nach 3 minuten in denen nichts mehr passiert war erste zweifel
...nach 5 stärkere........nach 10 der abbruch

also .......

gehen wir davon aus das ich die kernelsourcen entpackt hab und die mitsamt internem verz.baum in nem verzeichnis liegen welches 2.6.0-test9 heisst

dortdrin is auch die patchdatei

wie tu ich die nu patchen .....wäre meine frage

mfg
der geknechtete
 
Ok, ich gehe mal davon aus, dass du die Datei linux-2.6.0-test9.tar.bz2 in dein home oder /usr/src/ Verzeichnis mit tar -xjvf linux-2.6.0-test9.tar.bz2 entpackt hast (wobei das keine Rolle spielt).

Dann kopierst du den Patch, also die Datei 2.6.0-test9-mm3.bz2 , in das Verzeichnis linux-2.6.0-test9, dass gerade eben erzeugt wurde.
Jetzt wechselst du per "cd" in das Verzeichnis linux-2.6.0-test9 und führst bunzip2 -dc 2.6.0-test9-mm3.bz2 | patch -p1 aus (wobei ich anmerken muss, dass es ja nicht unbedingt notwendig ist den Kernel zu patchen...).

Danach lädst du noch die module-init-tools herunter (falls du sie nicht hast, müsste auch ein .rpm geben), da der neue Development-Kernel diese benötigt (sie lösen die alten modutils ab, die älteren Kernel benutzt wurden).

Jetzt kannst du als root im Verzeichnis make menuconfig, make gconfig oder make xconfig ausführen und den Kernel konfigurieren.

Da du das ja zum ersten mal machst, wäre es vielleicht leichter, einfach die aktuelle stable - die 2.4.22 - zu nehmen und die .config von deinem alten Kernel zu übernehmen, falls du mal nicht weißt, welche Flags jetzt benötigt werden und welche nicht.

So werden die beiden Kernel kompiliert:
Bei dem aktuellen stable Kernel 2.4.22, führst du ein
Code:
make dep && make clean bzImage modules modules_install
aus
und bei dem Development-Kernel genügt ein
Code:
make && make modules_install

/edit:
Der bunzip2 Befehl zählt nur für *.bz2 Archive, aber nicht für *.tar.bz2.
In diesem Thread, wird es etwas näher erleutert:
https://www.computerbase.de/forum/threads/tgz-src.47743/

Außerdem könnte http://www.kernelnewbies.org/ recht interessant sein.
 
Zuletzt bearbeitet:
gut also kann ich annehmen das der durch den parameter -dc gemeinte standartpfad

immer das verz. is wo sich die datei auch gerade befindet , ja ?
 
Genau, wenn du also ein Archiv entpackst, erstellt es meist einfach ein neues Verzeichnis im aktuellen Pfad, wo sich dann die Dateien befinden.

Wenn Du beispielsweise in deinem $HOME (/home/$USER, oder wenn du root bist: /root) den Linux-Kernel entpackst, findest du nach der Prozedur ein neues Verzeichnis, das dann linux-2.x.xx lauten sollte (z.B. /home/$USER/linux-2.6.0-test9).
 
Zuletzt bearbeitet:
äh...ja ...also..irgendwie .....ging das mit dem patchen nu doch - kurze erläuterung:

ich hatte also die tar.bz2 file entpackt ...... ins home/{me}/Kernel/2.6-test9 verz.

so ...da lagen die nu...mit all ihren unterordnern ......da ich von dem patch keine bz2 hatte .......dacht ich .....kopierst die auch dort ins 2.6-test9 verz. .....denn dort würde sie laut diesem doppelbefehl wo dann hinten steht | patch -p1 auch gebraucht werden

ja das ergebnis hatte ich ja schon .....cursor blieb links vorn stehn und nix passierte innnerhalb von 2 stunden (man wusste ja nich wie lang son patchvorgang dauern würde) *geduldigwar*

dann: ...schnauze voll nix is passiert abbruch ......die patch datei von hand nochma selber mit bz2 gepackt in ne .bz2 .......nu lag sone datei also im 2.6-test9 verz. rumm

diese dann korrekt ausgeführt mit bunzip2 -dc alöasdf.bz2 | patch -p1

und auf einma hatter gepatcht........großes fragezeichen

ich kapiert den vorgang nich ....... wenn die datei schon da liegt kanner se nur mit patch nich verarbeiten........bloß wennse dann frisch und live vorher entpackt wird genau an die selbe stelle eigentlich dann kanner auf einma patch

kanner mir das wer erklären ??

ok andere sache
-------------------------

ich hab da ja dann son schönes menü vor mir und keine ahnung was ich davon brauche .....kann ich mir aus m aktuellen kernel die einstellungen auslesen lassen und in ne config datei abspeichern ? ..das wäre sehr hilfreich und würde zeit sparen

möglicherweise kann ich anhand dieser einstellungen dann auch gleich mein isdn problem lösen ...vielleicht *hoff*

edit

noch eins .......... die sourcen die ich gestern entpackt habe die wurden warum auch immer vom user 1017 erstellt..........und nur dieser kann se auch wieder löschen ......ja nichma als root kann man die löschen

wie krieg ich n die weg die datein ? brauch se ja nichmehr
 
Wegen des Patches:
Wie gesagt, ist nicht unbedingt nötig. Ach ja, heute ist das mm4 Patchset released worden. :D ;)

Wenn du keine .bz2 (weshalb auch immer) von dem Patch hattest, sondern die normale .patch oder .diff, dann wird diese mit dem Befehl patch -p1 < 2.6.0-test9-mm4 genutzt.

Ok, egal, der Patch ist nicht unbedingt von nöten, gehen wir über zum normalen Vanilla Kernel.
Ich weiß, die ganzen Optionen können einem am Anfang ganz schön erschlagen.
Ich habe auch erst lieber zu viel als zu wenig mit einkompiliert und im Laufe der Zeit immer ein paar "Optionen/Flags" herausgeworfen, getestet was benötigt wird, was nicht, was mehr Performance bringt und was nicht, bis ich dann meine "perfekte" .config hatte. :)

Ok, du kannst dich jetzt entscheiden:
  • Entweder Du nimmst den Development-Kernel und hast damit einen schnellen Kernel, der wohl die zur Zeit beste Hardware-Unterstütztung bietet.
    Musst dafür aber auch etwas mit den Optionen herumspielen, da viele umbenannt wurden oder neu hinzugekommen sind, das heißt:
    Alte config-Dateien werden wohl nicht so sauber funktionieren, da eben viel geändert wurde.
  • Oder du nimmst den Kernel, der bei deiner Distribution dabei liegt (oder auch den aktuellen 2.4.22 von kernel.org, macht wohl kaum einen Unterschied, da die aktuellen Distribution wohl einen 2.4.21'er o.ä verwenden werden)
    Das gute für dich wäre, dass du die alte .config von deinem Kernel übernehemen kannst (bei den meisten Distributionen liegt die .config auf der /boot Partition, z.B. bei Debian), ohne sich viel sorgen zu machen, dass etwas schief laufen könnte.

Wenn deine Hardware sowieso komplett unterstützt wird, würde ich dir zum stable raten, da es wohl weniger Aufwand ist und du die .config des alten Kernels fast 1:1 übernehmen kannst.

Danach kannst du immernoch ein Dualboot zwischen deinem aktuell funktionierendem und dem Development-Kernel erstellen, um mit der Devel-Branch etwas zu testen, bis er dann vielleicht auch perfekt läuft.

/edit:
Normalerweise würde ein rm -rf Verzeichnis als root das nicht mehr benötigte Verzeichnis löschen.
 
Zuletzt bearbeitet:
so der kernel ist ( zum 2. mal) kompiliert - ...beim ersten mal war ich nich root und somit konnte nach abschluss der kram nich gespeichert werden wohl ...naja


gut ich denke ma also das vollendete zeugs liegt nu in usr/src/linux2.4.22 rumm oder so in der art - zumindest is dort sowas

nun ...wie konfiguriere ich denn lilo das ich sozusagen die wahl habe mit welchem kernel ich booten will ....

aber nich über diskette ......meine laufwerk hab ich rausgeschmissen schon ewig
 
Wenn du das bzImage von /usr/src/linux-2.4.22/arch/i386/boot/bzImage nach /boot kopiert hast, öffnest du die /etc/lilo.conf in dem Editor deines vertrauens, z.B. Vim und schreibst folgendes hinein:

Code:
image=/boot/bzImage # Fallls du dein Kernel-Image umbenannt hast, natürlich anpassen
  label=Linux-2.4.22 # Namen deiner Wahl

Ich glaube das wäre alles; ich nutze Grub, kenne mich nicht so aus mit LiLo, aber das sollte funktionieren.

Dann noch als root "lilo" ausführen und booten.
 
hm...ich bin mir nich sicher aber ich hab gestenr schonmal in dem verz geguckt ....weil ich von sonem pdf buch das gelesen hatte wo das image sein sollte......

ich will jetz nich die hand ins feuer legen aber ich würde doch sagen das ich da keine bzimage datei gefunden hab ....

kann beim kompilieren was schief gegangen sein ? .....ich mein so recht sieht man ja während des vorgangs nich durch und ne fehlermeldung hab ich auch nich gehabt am ende .....
falls ich doch kein image haben sollte .......kann ich was anderes tun außer das kompilieren nochma zu wiederholen ?

edit: nochma was zu den schön fasst vergessenen module init tools für die neue 2.6'er version vom kernel .....
dioe neuen sollte ich laden.......was sind die neuen ?..ich hab jetz 0.9.14 und die 0.9.15pre4 geladen ........aber als tar.gz....wie installier ich die denn .....meine experimente mit make install und so die waren nich besonders erfolgreich

ne rpm hab ich auch gesucht ...aber nur die 15pre4 glaub ich wars gefunden .......allerdings will ich die nich so installieren da der dann verlangt erstmal fasst alles zu killen........xfree open office und so weiter ...habich nich so bock drauf das dann alles wieder zusammenzusuchen
 
Zuletzt bearbeitet:
Die module-init-tools benötigt man nur für den 2.5/2.6, aber du hast ja den 2.4.22, also erstmal unnötig.

Wie hast du den Kernel kompiliert ?
Mit
Code:
make dep && make clean bzImage modules modules_install
sollte eigentlich ein bzImage erzeugt werden.
 
nee ...ich hatte vergessen das ich die sources 2 mal drauf hatte .....

konnte den kernel dann also hinzufügen und hab ihm die selben settings gegeben wie dem normalen 2.4.21'er den ich ja von anfang an hab

dann aber beim booten als ich ihn in lilo ausgewählt hatte :

erstmal n dummes pinguin bild ...dann viele zeilen busybox und was dahinter

dann ERROR: /bin/insmod exited abnormally
und drunter
mount: error 19 mounting ext3 flags Kernel panic: no init found. Try passing init= opt. to Kernel

dann kam nix mehr ........nur der reset half.......

irgendwas stimmt also nich ......fragt sich nur was ..... - die settings die die lilo.conf noch hatte weiss ich jetz nich ....nur das letzte war acpi=off .......möglicherweise gelten die alten dinger nichmehr für den neueren kernel
 
Welchen Kernel hattest du vorher ?
Hast du die config des alten Kernel geladen ?

Was ist mit ext3, wenn du Partitionen benutzt die ext3 nutzen, musst du natürlich auch den support mit einkompilieren. Müsste irgendwo unter "File system" zu finden sein.
 
vorher hatte ich den 2.4.21mdk irgendwie so .......und genau dessen configfile hab ich auch genutzt

versionsnummermäßig is also nich viel unterschid zur jetzigen .22 'er

ext3 da guck ich jetz nochma .....an denpartitionen hab ich glaub ich eigentlihc nix gemacht
 
Hm, zwischen dem 2.4.21mdk und 2.4.22 sollten eigentlich keine großen Unterschiede sein.

Wegen den Partitionen: Damit meinte ich, dass du auch den Support des jeweiligen Dateisystems mit einkompilieren musst, auch nicht als Modul, sondern fest.

Sollte dann aber anscheinend nicht der Fall sein ,wenn du sie übernommen hast.

/edit:
Vielleicht hilft es auch, nach den Fehlermeldungen zu googlen.
Hattest du auch ein "Kernel panic: VFS: unable to mount root fs on xx" oder so etwas in der Art ?
 
Zuletzt bearbeitet:
Zurück
Oben