TIPP: Kompilieren 2.6.33 und höher Kernel auf Debian Lenny
Lassen Sie uns also sagen, Sie wollen einen Linux-Kernel 2.6.33 oder neuer auf Ihrem System Debian Lenny zu installieren.
Problem
Das Problem ist, dass Sie nach Ihrem üblichen make-kpkg-Befehl zu geben, um Linux-Kernel kompilieren unter Debian Lenny wird die folgende Fehlermeldung nach einiger Zeit in der Kompilierung finden Sie unter:
COLUMNS=150 dpkg -l 'gcc*' perl dpkg 'libc6*' binutils make dpkg-dev |\
awk '$1 ~ /[hi]i/ { printf("%s-%s\n", $2, $3) }'> debian/buildinfo
uname -a >> debian/buildinfo
echo using the compiler: >> debian/buildinfo
grep LINUX_COMPILER include/linux/compile.h | \
sed -e 's/.*LINUX_COMPILER "//' -e 's/"$//' >> debian/buildinfo
grep: include/linux/compile.h: No such file or directory
echo kernel source package used: >> debian/buildinfo
echo linux-source-2.6.33 1~experimental.4 >> debian/buildinfo
echo applied kernel patches: >> debian/buildinfo
echo done > debian/stamp/build/kernel
/usr/bin/make -f ./debian/rules debian/stamp/binary/pre-linux-image-2.6.33-lennycompiletest2633squeeze
make[1]: Entering directory `/usr/src/linux-source-2.6.33'
====== making target debian/stamp/install/linux-image-2.6.33-lennycompiletest2633squeeze [new prereqs: ]======
This is kernel package version 11.015.
echo "The UTS Release version in include/linux/version.h"; echo " \"\" "; echo "does not match current version:"; echo " \"2.6.33-lennycompiletest2633squeeze\" "; echo "Please correct this."; exit 2
The UTS Release version in include/linux/version.h
""
does not match current version:
"2.6.33-lennycompiletest2633squeeze"
Please correct this.
make[1]: *** [debian/stamp/install/linux-image-2.6.33-lennycompiletest2633squeeze] Error 2
make[1]: Leaving directory `/usr/src/linux-source-2.6.33'
make: *** [kernel_image] Error 2
Nur der Vollständigkeit halber, war der Befehl, dass ich für die obige Zusammenstellung gab:
lenny:/usr/src/linux-source-2.6.33# make-kpkg --initrd --append-to-version=-lennycompiletest2633squeeze kernel_image
Der Grund, dass wir die obige Fehlermeldung erhalten, ist, weil die Kernel-Leute beschlossen, etwas zu verändern in der Kernel-Paket , das für die Erstellung angepasster Kernel ist.
Lösung
Der einfachste Weg, um diese Fehlermeldung zu beheben, ist die folgende Datei, die bei der Installation von kernel-package Paket installieren wird zu ändern:
# nano /usr/share/kernel-package/ruleset/misc/version_vars.mk
und ändern Sie die folgenden Zeilen:
UTS_RELEASE_HEADER=$(call doit,if [ -f include/linux/utsrelease.h ]; then \
echo include/linux/utsrelease.h; \
else \
echo include/linux/version.h ; \
fi)
zu
UTS_RELEASE_HEADER=$(call doit,if [ -f include/linux/utsrelease.h ]; then \
echo include/generated/utsrelease.h; \
else \
echo include/generated/utsrelease.h ; \
fi)
und jetzt neu kompilieren den Kernel erneut, indem Sie Ihre make-kpkg-Befehl.
In der nächsten stabilen Version von Debian Squeeze dh, die Datei aus version_vars.mk aktuelle stabile Version heißt Lenny geändert.
root@debian:~# diff version_vars.mk.lenny version_vars.mk.squeeze
Ausgang:
141,145c141,147
< UTS_RELEASE_HEADER=$(call doit,if [ -f include/linux/utsrelease.h ]; then \
< echo include/linux/utsrelease.h; \
< else \
< echo include/linux/version.h ; \
< fi)
---
> UTS_RELEASE_HEADER=$(call doit,if [ -f include/generated/utsrelease.h ]; then \
> echo include/generated/utsrelease.h; \
> elif [ -f include/linux/utsrelease.h ]; then \
> echo include/linux/utsrelease.h; \
> else \
> echo include/linux/version.h ; \
> fi)
187,188d188
<
< AM_OFFICIAL := $(call doit,if [ -f debian/official ]; then echo YES; fi )
root@debian:~#
Die Änderungen sind nicht genau die gleiche wie ich oben erwähnt habe, aber sie tut das gleiche Problem zu beheben. Kann sein, sollten Sie die Änderungen (anstelle der Mine von oben) aus dem Squeeze Ihr bestehendes System zu kopieren Lenny als diese Änderungen von den eigentlichen Kernel Maintainer sind!
Das ist es!











3. Juni 2011 um 03.29 Uhr
Hallo und vielen Dank :-)
diese "Exploit" nicht auf 2.6.37.6 laufen
Gibt es einen Patch oder andere zu risolve?
danke!
Pol
Auf diesen Kommentar antworten
27. November 2011 um 12:22 Uhr
Muss ich die GESAMTE fkcing kernal neu kompilieren, nachdem dies vollbracht ist??? coz Ich habe versucht, nachdem dies vollbracht ist und der Fehler weiterhin fortzusetzen, * ^ & * ^ & $ #!! rm-rf MACHEN!! Arg!
Auf diesen Kommentar antworten
27. November 2011 um 12:27 Uhr
"make-kpkg clean" am Ende dieses Verfahrens vor dem Übersetzen?
Auf diesen Kommentar antworten