SUGERENCIA: Compilación de 06.02.33 y por encima de los granos en Debian Lenny
Así que digamos que usted desea instalar un kernel de Linux 2.6.33 o superior en su sistema Debian Lenny.
Problema
El problema es que después de dar a su costumbre de make-kpkg comando para compilar el kernel de Linux en Debian Lenny verá el siguiente mensaje de error después de algún tiempo en el proceso de compilación:
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
Sólo para mayor abundamiento, el comando que me dio para la compilación anterior fue:
lenny:/usr/src/linux-source-2.6.33# make-kpkg --initrd --append-to-version=-lennycompiletest2633squeeze kernel_image
La razón por la que recibe el mensaje de error anterior se debe a que la gente del kernel decidió cambiar algo en el kernel-package que se encarga de compilar el kernel personalizado.
Solución
La forma más sencilla de solucionar este mensaje de error consiste en modificar el siguiente archivo que se instala al instalar el paquete kernel-package:
# nano /usr/share/kernel-package/ruleset/misc/version_vars.mk
y cambie las líneas siguientes:
UTS_RELEASE_HEADER=$(call doit,if [ -f include/linux/utsrelease.h ]; then \
echo include/linux/utsrelease.h; \
else \
echo include/linux/version.h ; \
fi)
a
UTS_RELEASE_HEADER=$(call doit,if [ -f include/linux/utsrelease.h ]; then \
echo include/generated/utsrelease.h; \
else \
echo include/generated/utsrelease.h ; \
fi)
y ahora volver a compilar el kernel de nuevo por dar a su make-kpkg comando.
En la próxima versión estable de Debian Squeeze, es decir, el archivo cambió de version_vars.mk actual versión estable es decir, Lenny.
root@debian:~# diff version_vars.mk.lenny version_vars.mk.squeeze
Salida:
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:~#
Los cambios no son exactamente los mismos que he mencionado anteriormente, pero sí solucionar el mismo problema. Puede ser que usted debe copiar los cambios (en lugar de la mina desde arriba) de la contracción a su sistema de Lenny como esos cambios son de los mantenedores del kernel reales!
¡Eso es!











03 de junio 2011 a las 3:29 am
hola y gracias :-)
esta "hazaña" no se ejecuta en 2.6.37.6
hay un parche o de otro tipo risolve?
gracias!
Pol
Responder a este comentario
27 de noviembre 2011 a las 12:22 am
¿Tengo que volver a compilar el Kernel fkcing TODO después de hacer esto?? coz Traté de volver después de hacer esto y persiste el error, * ^ & * ^ & $ #!! rm-rf HACER!! arg!
Responder a este comentario
27 de noviembre 2011 a las 12:27 am
ejecutar "make-kpkg clean" al final de este procedimiento, antes de volver a compilar?
Responder a este comentario