• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

neuen Kernel patchen und installieren? Einige Fragen...

gretchen

Member
Hi,

ich muss meinen Kernel auf eine aktuelle Version bringen da ein Treiber den neuen Kernel benötigt. Ich möchte den aktuellen Kernel von kernel.org 2.6.21 mit den aktuelle Patches 1-5 installieren und habe dabei aber einige Probleme.
Folgendes habe ich bis jetzt gemacht:

cd /usr/src
tar -xvzf /tmp/linux-2.6.21.tar.gz
cd linux-2.6.21/
gunzip -c /tmp/patch-2.6.21.1.gz | patch -p1 --dry-run
gunzip -c /tmp/patch-2.6.21.2.gz | patch -p1 --dry-run
gunzip -c /tmp/patch-2.6.21.3.gz | patch -p1 --dry-run
gunzip -c /tmp/patch-2.6.21.4.gz | patch -p1 --dry-run
gunzip -c /tmp/patch-2.6.21.5.gz | patch -p1 --dry-run

bis hierher gab es keine Fehler...

gunzip -c /tmp/patch-2.6.21.1.gz | patch -p1
gunzip -c /tmp/patch-2.6.21.2.gz | patch -p1

so beim zweiten Pacth kommt dann:

1 out of 1 hunk FAILED -- saving rejects to file Makefile.rej
Reversed (or previously applied) patch detected! Assume -R? [n]

warum kommt diese Meldung und was muss ich den jetzt machen? Dachte eigentlich das ich die patches der Reihe nach einspiele und alles ist gut?
 

towo

Moderator
Teammitglied
Dachte eigentlich das ich die patches der Reihe nach einspiele und alles ist gut?
Tja, Denken ist eben nicht Wissen!
Die Patches sind immer gegen den Ausgangskernel anzuwenden.
Ergo brauchst Du auch nur patch-2.6.21.5 um den Kernel von 2.6.21 auf 2.6.21.5 zu bringen.
 
OP
G

gretchen

Member
towo schrieb:
Dachte eigentlich das ich die patches der Reihe nach einspiele und alles ist gut?
Tja, Denken ist eben nicht Wissen!
Die Patches sind immer gegen den Ausgangskernel anzuwenden.
Ergo brauchst Du auch nur patch-2.6.21.5 um den Kernel von 2.6.21 auf 2.6.21.5 zu bringen.

aha...danke! Komisch nur das fast überall steht das die Patches der Reihe nach eingespielt werden müssen? Und wie ist das wenn ich jetzt den Pacth 2.6.21.5 einspiele und in einem Monat dann wider einen Pacth einspielen möchte da hab ich doch das selbe Problem?
 

towo

Moderator
Teammitglied
Komisch nur das fast überall steht das die Patches der Reihe nach eingespielt werden müssen?
Aha, wo steht das?

Und wie ist das wenn ich jetzt den Pacth 2.6.21.5 einspiele und in einem Monat dann wider einen Pacth einspielen möchte da hab ich doch das selbe Problem?
Dann könnte man einen incrementellen Patch nehmen.
http://kernel.org/pub/linux/kernel/v2.6/incr/
 
OP
G

gretchen

Member
towo schrieb:
Komisch nur das fast überall steht das die Patches der Reihe nach eingespielt werden müssen?
Aha, wo steht das?

Und wie ist das wenn ich jetzt den Pacth 2.6.21.5 einspiele und in einem Monat dann wider einen Pacth einspielen möchte da hab ich doch das selbe Problem?
Dann könnte man einen incrementellen Patch nehmen.
http://kernel.org/pub/linux/kernel/v2.6/incr/

ah ok. Sorry aber ich hab mit Kernel etc. noch nichts zu tun gehabt...

die Anweisung hab ich von da:

http://www.oreilly.de/german/freebooks/rlinux3ger/ch075.html

Zitat: " Die Patches müssen einer nach dem anderen in numerischer Reihenfolge eingespielt werden. Dies ist sehr wichtig."
 
OP
G

gretchen

Member
ja ok da hätt ich vielleicht drauf kommen können :) jetzt hab ich aber das nächste Problem...hab jetzt die Anleitung hier genommen:

http://www.linux-club.de/faq/Kernelbau_unter_SuSE_leicht_gemacht

hab jetzt folgendes gemacht:

cd /usr/src
tar -xvzf /tmp/linux-2.6.21.tar.gz
cd linux-2.6.21/
gunzip -c /tmp/patch-2.6.21.5.gz | patch -p1 --dry-run
gunzip -c /tmp/patch-2.6.21.5.gz | patch -p1
zcat /proc/config.gz > .config
make oldconfig

jetzt kommt das :

* Linux Kernel Configuration
*
*
* Code maturity level options
*
Prompt for development and/or incomplete code/drivers (EXPERIMENTAL) [Y/n/?] y
*
* General setup
*
Local version - append to kernel release (LOCALVERSION) [-default] -default
Automatically append version information to the version string (LOCALVERSION_AUTO) [N/y/?] n
Support for paging of anonymous memory (swap) (SWAP) [Y/n/?] y
System V IPC (SYSVIPC) [Y/n/?] y
IPC Namespaces (IPC_NS) [N/y/?] (NEW) make[1]: *** [oldconfig] Interrupt
make: *** [oldconfig] Interrupt

wollte eigentlich meine vorhandene Kernelkonfiguration für den neuen Kernel übernehmen und möchte selbst nichts konfigurieren. Geht das nicht mit den obigen befehlen?
 

towo

Moderator
Teammitglied
wollte eigentlich meine vorhandene Kernelkonfiguration für den neuen Kernel übernehmen und möchte selbst nichts konfigurieren. Geht das nicht mit den obigen befehlen?
Das geht im Prinzip schon, nur müßte man wissen, welche Distro mit welchem Kernel Du jetzt hast.
 
OP
G

gretchen

Member
towo schrieb:
wollte eigentlich meine vorhandene Kernelkonfiguration für den neuen Kernel übernehmen und möchte selbst nichts konfigurieren. Geht das nicht mit den obigen befehlen?
Das geht im Prinzip schon, nur müßte man wissen, welche Distro mit welchem Kernel Du jetzt hast.

ah ok :) ich habe SuSE 10.2 mit dem mitgelieferten Standardkernel:

Linux test 2.6.18.2-34-default #1 SMP Mon Nov 27 11:46:27 UTC 2006 i686 i686 i386 GNU/Linux
 
OP
G

gretchen

Member
jengelh schrieb:
Wieso nimmst du nicht gleich linux-2.6.21.5.tar.bz2?

Hi,

ok das hatte ich nicht gesehen. Habe aber immer noch das obige Problem...möchte meine aktuelle SuSE Kernelkonfiguration vom Standard 2.6.18 Kernel für den neuen übernehmen.
 
OP
G

gretchen

Member
Hi,

so habe mal etwas im Internet gesucht. Es scheint wohl so zu sein das ich zwar meine vorhandene Kernelconfiguration aus /proc in den neuen Kernel übernehme, aber in dem neuen Kernel gibt es Funktionen die eben im alten nicht definiert sind oder diese es nicht gab.

So jetzt meine Frage. Da mir vieles nichts sagt was da abgefragt wird gibt es so etwas wie eine Standardvorgabe der Funktion? Sprich kann ich bei dem Befehl "make oldconfig" einen Parameter mit dran hängen das alle Fragen die kommen immer mit der Standardvorgabe beantwortet werden?
 
OP
G

gretchen

Member
jengelh schrieb:
Dann nimm doch die linux-2.6.22*.src.rpm aus factory.

Hi,

wo find ich die?

Habe jetzt den Kernel neu gebaut lief so weit ohne Fehler. Habe dann den neuen Kernel mal gebootet und dann findet er meine Festplatte nicht bzw. die Partitionen /dev/sda2 /dev/sda3?
Jemand eine Idee dazu?
 
Oben