Patchen eines Kernels Beipiel: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 4: Zeile 4:
 
*Man wollte weniger Daten herunterladen.
 
*Man wollte weniger Daten herunterladen.
 
;Beides ist obsolet.
 
;Beides ist obsolet.
=Sie haben diesen Kernel=
+
=Der alte Weg=
 +
==Sie haben diesen Kernel==
 
*wget https://mirrors.edge.kernel.org/pub/linux/kernel/v2.4/linux-2.4.14.tar.gz
 
*wget https://mirrors.edge.kernel.org/pub/linux/kernel/v2.4/linux-2.4.14.tar.gz
 
;Der kernel liegt entpackt mit tar -C /usr/src -xvzf linux-2.4.14.tar.gz
 
;Der kernel liegt entpackt mit tar -C /usr/src -xvzf linux-2.4.14.tar.gz
Zeile 10: Zeile 11:
 
;Sie wollen einen Kermelupdate auf 2.4.15 machen.
 
;Sie wollen einen Kermelupdate auf 2.4.15 machen.
 
;Nun haben sie die Möglichkeit den Kompleten 2.4.15 Kernel runter zuladen oder einen Patch auf 2.4.15
 
;Nun haben sie die Möglichkeit den Kompleten 2.4.15 Kernel runter zuladen oder einen Patch auf 2.4.15
 
+
==Runterladen des Patches=
=Runterladen des Patches=
 
 
*wget https://mirrors.edge.kernel.org/pub/linux/kernel/v2.4/patch-2.4.15.gz
 
*wget https://mirrors.edge.kernel.org/pub/linux/kernel/v2.4/patch-2.4.15.gz
 
=In Kernel Verzeichnis wechseln=
 
=In Kernel Verzeichnis wechseln=
 
*cd linux
 
*cd linux
=Eine Trockenübung=
+
==Eine Trockenübung==
 
*zcat  ../patch-2.4.15.gz | patch -p 1 --dry-run
 
*zcat  ../patch-2.4.15.gz | patch -p 1 --dry-run
 
=Der Patch=
 
=Der Patch=
 
*zcat  ../patch-2.4.15.gz | patch -p 1
 
*zcat  ../patch-2.4.15.gz | patch -p 1
 +
=Der neue Weg=
 +
*Diese Patches sind nicht inkrementell, das bedeutet, dass beispielsweise der Patch 5.7.3 nicht auf den Patch 5.7.2 angewendet wird, sondern auf die Grundversion des Kernel-Quellcodes 5.7.
 +
*Um den Patch 5.7.3 auf den vorhandenen Kernel-Quellcode 5.7.2 anzuwenden, musst du zuerst den Patch 5.7.2 rückgängig machen.
 +
*Dann hast du den Ausgangszustand des Kernel-Quellcodes 5.7
 +
*Auf diesen kann man dann den neuen Patch 5.7.3 anwenden.

Version vom 24. Juni 2023, 14:02 Uhr

Geschichte

Man hat früher Kernel aus 2 Gründen gepatcht
  • Man wollte eine Funktion hinzufügen.
  • Man wollte weniger Daten herunterladen.
Beides ist obsolet.

Der alte Weg

Sie haben diesen Kernel

Der kernel liegt entpackt mit tar -C /usr/src -xvzf linux-2.4.14.tar.gz
unter /usr/src/linux#
Sie wollen einen Kermelupdate auf 2.4.15 machen.
Nun haben sie die Möglichkeit den Kompleten 2.4.15 Kernel runter zuladen oder einen Patch auf 2.4.15

=Runterladen des Patches

In Kernel Verzeichnis wechseln

  • cd linux

Eine Trockenübung

  • zcat ../patch-2.4.15.gz | patch -p 1 --dry-run

Der Patch

  • zcat ../patch-2.4.15.gz | patch -p 1

Der neue Weg

  • Diese Patches sind nicht inkrementell, das bedeutet, dass beispielsweise der Patch 5.7.3 nicht auf den Patch 5.7.2 angewendet wird, sondern auf die Grundversion des Kernel-Quellcodes 5.7.
  • Um den Patch 5.7.3 auf den vorhandenen Kernel-Quellcode 5.7.2 anzuwenden, musst du zuerst den Patch 5.7.2 rückgängig machen.
  • Dann hast du den Ausgangszustand des Kernel-Quellcodes 5.7
  • Auf diesen kann man dann den neuen Patch 5.7.3 anwenden.