Hab wenig Zeit, muß für ne Prüfung lernen (sonst würd ich evtl. einen Kurztip schreiben). Daher nur: Schau mal hier.
Du solltest noch wissen, daß Patches mit diff hergestellt werden (wohl (fast?) immer mit der Option -C 1 für das Kontext-Format: Eine Zeile davor und danach werden mitgespeichert - korrigiert mich, wenn dies falsch ist). patch kann nun die beiden Versionen mit dem *.diff (oder auch umbenannt in *.patch) ineinander überführen.
CVS und Konsorten setzen auf diff und patch auf.
Außerdem sehe ich gerade, daß ich mir mal das Script /usr/src/linux/scripts/patch-kernel ansehen muß.
Läßt sich übrigends auch alles einfach automatisieren, z.B. mit happypatching.sh :
#!/bin/bash # happypatching v0.1 # im aktuellen Verzeichnis stehen der erste Kernel und die Patches # sollte mit root-Rechten aufgerufen werden # der Linux-Kernel muß in /usr/src/linux liegen # Irgendwas wichtiges haendisch geaendert? Ist danach alles weg PWDIR=`pwd` BASISNUMMER="3" # Mein erster 2.6er ist der linux-2.6.3.tar.bz2 cd /usr/src rm -rf "linux-2.6.$BASISNUMMER" # Der Plan ist, alles neu zu erzeugen # Einstellungen sollten aber erhalten bleiben echo Kernel auspacken tar xjf "$PWDIR/linux-2.6.$BASISNUMMER.tar.bz2" cp linux/.config "linux-2.6.$BASISNUMMER/" # Hoffe, es reicht, die .config zu sichern? rm -rf linux mv linux-2.6.$BASISNUMMER linux i=$((BASISNUMMER+1)) cd linux while [ -e "$PWDIR/patch-2.6.$i.bz2" ] ; do echo patch 2.6.$i bzip2 -dc "$PWDIR/patch-2.6.$i.bz2" | patch -p1 -s i=$(($i+1)) done i=$(($i-1)) j=1 while [ -e "$PWDIR/patch-2.6.$i.$j.bz2" ] ; do echo patch 2.6.$i.$j bzip2 -dc "$PWDIR/patch-2.6.$i.$j.bz2" | patch -p1 -s j=$(($j+1)) done cd "$PWDIR" # viel Spass bei einem kontrollierendem make xconfig
Daher nur:
Schau mal hier.
Du solltest noch wissen, daß Patches mit diff hergestellt werden (wohl (fast?) immer mit der Option -C 1 für das Kontext-Format: Eine Zeile davor und danach werden mitgespeichert - korrigiert mich, wenn dies falsch ist). patch kann nun die beiden Versionen mit dem *.diff (oder auch umbenannt in *.patch) ineinander überführen.
CVS und Konsorten setzen auf diff und patch auf.
Außerdem sehe ich gerade, daß ich mir mal das Script /usr/src/linux/scripts/patch-kernel ansehen muß.
Läßt sich übrigends auch alles einfach automatisieren, z.B. mit happypatching.sh :
#!/bin/bash
# happypatching v0.1
# im aktuellen Verzeichnis stehen der erste Kernel und die Patches
# sollte mit root-Rechten aufgerufen werden
# der Linux-Kernel muß in /usr/src/linux liegen
# Irgendwas wichtiges haendisch geaendert? Ist danach alles weg
PWDIR=`pwd`
BASISNUMMER="3"
# Mein erster 2.6er ist der linux-2.6.3.tar.bz2
cd /usr/src
rm -rf "linux-2.6.$BASISNUMMER"
# Der Plan ist, alles neu zu erzeugen
# Einstellungen sollten aber erhalten bleiben
echo Kernel auspacken
tar xjf "$PWDIR/linux-2.6.$BASISNUMMER.tar.bz2"
cp linux/.config "linux-2.6.$BASISNUMMER/"
# Hoffe, es reicht, die .config zu sichern?
rm -rf linux
mv linux-2.6.$BASISNUMMER linux
i=$((BASISNUMMER+1))
cd linux
while [ -e "$PWDIR/patch-2.6.$i.bz2" ] ; do
echo patch 2.6.$i
bzip2 -dc "$PWDIR/patch-2.6.$i.bz2" | patch -p1 -s
i=$(($i+1))
done
i=$(($i-1))
j=1
while [ -e "$PWDIR/patch-2.6.$i.$j.bz2" ] ; do
echo patch 2.6.$i.$j
bzip2 -dc "$PWDIR/patch-2.6.$i.$j.bz2" | patch -p1 -s
j=$(($j+1))
done
cd "$PWDIR"
# viel Spass bei einem kontrollierendem make xconfig
while [ -e "$PWDIR/patch-2.6.$i.$j.bz2" ] ; do
j=$(($j+1))
done
j=$(($j-1))
echo patch 2.6.$i.$j
bzip2 -dc "$PWDIR/patch-2.6.$i.$j.bz2" | patch -p1 -s
cd "$PWDIR"