Patchen eines Kernels Beipiel: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 11: | 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 | ||
| Zeile 20: | Zeile 21: | ||
*zcat ../patch-2.4.15.gz | patch -p 1 | *zcat ../patch-2.4.15.gz | patch -p 1 | ||
=Der neue Weg= | =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 | + | *Diese Patches sind nicht inkrementell, das bedeutet, dass beispielsweise der Patch 5.7.3 nicht auf den Patch 5.7.2 angewendet wird. |
| + | *Er wird angewendet 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. | *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 | *Dann hast du den Ausgangszustand des Kernel-Quellcodes 5.7 | ||
*Auf diesen kann man dann den neuen Patch 5.7.3 anwenden. | *Auf diesen kann man dann den neuen Patch 5.7.3 anwenden. | ||
| + | =Vorgehensweise= | ||
| + | |||
| + | ==Ins Verzeichnis wechseln== | ||
| + | *cd ~/linux-5.7.2 | ||
| + | ==Auf Version 5.7 zurück patchen== | ||
| + | *xzcat ../patch-5.7.2.xz | patch -p1 -R | ||
| + | ==Auf Version 5.7.3 patchen== | ||
| + | *xzcat ../patch-5.7.3.xz | patch -R | ||
| + | *cd .. | ||
| + | ==Verzeichnis umbenennen== | ||
| + | *mv linux-5.7.2 linux-5.7.3 | ||
| + | =Aufgaben= | ||
| + | *[[Aufgaben Kernelpatch]] | ||
Aktuelle Version vom 24. Juni 2023, 14:13 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.
- Er wird angewendet 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.
Vorgehensweise
Ins Verzeichnis wechseln
- cd ~/linux-5.7.2
Auf Version 5.7 zurück patchen
- xzcat ../patch-5.7.2.xz | patch -p1 -R
Auf Version 5.7.3 patchen
- xzcat ../patch-5.7.3.xz | patch -R
- cd ..
Verzeichnis umbenennen
- mv linux-5.7.2 linux-5.7.3