Kernel patchen

Post Reply
Message
Author
Manuel

Kernel patchen

#1 Post by Manuel »

Hi,
also ich wollte mir ein paar kernelpatches einspielen.
dann hab ich mir die also von http://members.optusnet.com.au/ckolivas/kernel/ runtergeladen, aber die sind im bzip2 format.
die zu entpacken ist ja jetzt nicht das problem, aber in der kernel HOWTO steht das ganze nur für .gz files:

zcat patch-2.0.1.gz | patch -p0 2>&1 | tee patch.out

...ich hab da schon ein bisschen mit patch rumgespielt. das wollte aber nie patchen:
can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?

wie geht denn das ganze jetzt...?

Danke
Manuel

Michael

Re: Kernel patchen

#2 Post by Michael »

Folgender Vorschlag:

Spiel den Patch in /usr/src
Gehe dann in Linux
patch -p1 < zcat ../patchname

Cheers

Michael

Manuel

Re: Kernel patchen

#3 Post by Manuel »

also zcat läuft schon mal nicht. weder mit der bzip2 datei, noch mit der entpackten plaintext datei.
logischer weise gibts:
zcat: IrgendeineDate: not in gzip format

hat nochjemand eine idee?

S. Pfeffer

Re: Kernel patchen

#4 Post by S. Pfeffer »

Weniger ist manchmal mehr:

cat patch-2.0.1.gz | patch -p0 2>&1 | tee patch.out

zuvor natürlich den Patch mit bunzip entpacken

MfG

S. Pfeffer

Jochen

Re: Kernel patchen

#5 Post by Jochen »

@S.Pfeffer: ?!? Nein, es ist weder ge-gzip-t noch kann patch meines Wissens mit gezippten Patches direkt umgehen.

Die man-Page von bzip2 ist eigentlich recht gut - mal reinschauen! (Ganz davon abgesehen, dass Unix-like Komprimierer alle die gleichen Optionen für gleiche Zwecke verwenden...)<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">bzip2 -dc < patch.bz2 | patch -p0 2>&1 | tee patch.out</font><hr></pre></blockquote>Die Option "-c" ist (meine ich) sogar doppelt gemoppelt, wenn man die Dateieingabeumlenkung verwendet. Und ob man nun -p0 oder -p1 benötigt, hängt davon ab, wie der Patch erstellt wurde. Meistens funktioniert Michaels Variante: Ins Hauptverzeichnis der Linux-Sourcen gehen und -p1 verwenden, ggf. -p0.

Jochen

Jochen

Re: Kernel patchen

#6 Post by Jochen »

Ach ja, und wenn man sich die Sourcen nicht mit einem fehlerhaft angesetzten Patch zerschiessen will, kann man ja erst mal die Option "--dry-run" zu patch verwenden. Es passiert alles "wie in echt" bis auf das tatsächliche Patchen der Dateien.

Jochen

Marc

Re: Kernel patchen

#7 Post by Marc »

Hi
nicht bzip sondern bunzip verwenden, nur das er nicht durcheinander kommt :)

Gepackte Patches : bunzip2 -cd patchsowieso.bz2 | patch -p1
Nicht gepackt : patch -p1 < patchsowieso
Entfernen : patch -R -p1 < patchsowieso

Es spricht auch nichts dagegen hier ohne Pipe zu arbeiten, also den Patch vorher entpacken und dann patchen wenn man damit besser zurechtkommt, man muß ja nicht immer alles in einem Befehl machen, auch wenn das oft so gemacht wird.

bunzip patchsowieso.bz2
patch -p1 < patchsowieso

Marc

Manuel

Re: Kernel patchen

#8 Post by Manuel »

also

patch -p1 < patchsowieso

läuft im prinzip, der rest nicht.
alle patches werden geskippt...
wieso?

Jochen

Re: Kernel patchen

#9 Post by Jochen »

@Marc: Also entweder "bzip2 -d" oder "bunzip2" - da das so oder so das gleiche Programm ist und der Name "bunzip2" nur als implizit gesetzte "-d"-Option (decompress) gilt...

@Manuel: Deine letzte Aussage ist mehrdeutig. Läuft "patch -p1" jetzt, nur bei anderen Werten für -p läuft es nicht und Du möchtest wissen, wieso? Oder klappt der Aufruf mit dem entpackten Patch, aber es wird immer alles geskippt? patch ist recht geschwätzig; ausser "skipped" sagt er auch meist dabei, was schief gegangen ist. Du kannst auch mal die ersten 10 Zeilen oder so des Patches hier posten. Dann kann man recht leicht sehen, von wo aus mit welchem Wert von -p patch aufgerufen werden muss.

Natürlich bleibt die Möglichkeit, dass der Patch nicht zur Kernelversion passt, die Du verwendest. Alle Patche aus dem Netz gehen meist vom Vanilla-Kernel von <a href="ftp://ftp.kernel.org" target="_blank"><!--auto-->ftp://ftp.kernel.org</a><!--auto--> aus. Wenn Du versuchst, die Patche auf die Sourcen eines Distributionskernels anzuwenden kann das ohne weiteres schiefgehen, weil der Distributor ggf. schon andere Patches übernommen hat, die sich mit Deinem Patch beissen...

Jochen

S. Pfeffer

Re: Kernel patchen

#10 Post by S. Pfeffer »

@Jochen

Sorry C&P Fehler

sollte natürlich bunzip patch-2.0.1.bz2; cat patch-2.0.1 | patch -p0 2>&1 | tee patch.out heissen

Post Reply