Página siguiente Página anterior Índice general

5. Compilación del Kernel

5.1 Cómo compilar el Kernel

PREGUNTA

¿Alguien me podría guiar en cómo empezar para recompilar el Kernel?

RESPUESTA

Sencillo. Por pasos:

cd /usr/src/linux
make [config | menuconfig | xconfig]
make dep
make clean
make [zImage | zdisk | zlilo | bzlilo | bzImage]
make modules
cp -R /lib/modules/`uname -r` /lib/modules/`uname -r`-old
rm -r /lib/modules/`uname -r`
make modules_install
depmod -a

make config te pedirá que contestes a una serie de preguntas que definen tu kernel. También puedes hacer make menuconfig para configurar el kernel de una manera más cómoda. Cuantos menos dispositivos innecesarios soporte, más pequeño y rápido será, al ocupar menos memoria. make zImage suele ser un proceso largo, desde diez minutos en un Pentium con 16Mb hasta tres o cuatro horas en un 386/4Mb.

Ya está! Tienes el nuevo kernel en archive/i386/boot/zImage. Lo copias a tu /vmlinuz o donde sea que tienes tu imagen de arranque y a rodar! Otras alternativas son make zlilo (si utilizas LILO en el arranque del sistema), make bzlilo si el kernel es muy grande, o make zdisk si arrancas desde disquete, en vez de make zImage.

Ah! Me dejaba lo más importante: Leerte el HOWTO-Kernel. Es muy informativo y está muy bien explicado.

[1]

5.2 Parcheado del Kernel

PREGUNTA

¿Cómo puedo parchear el Kernel?

RESPUESTA

Sigue los siguientes pasos:

cd /usr/src/linux
make clean

Copiar el o los ficheros que contienen los patch a /usr/src.

Ahora haremos una copia de seguridad de la instalación actual.

cd ..
tar cvfz old-tree.tar.gz linux
zcat patch-2.0.xx.gz | patch -p0 -s

patch-2.0.xx.gz es el fichero del patch. Si tuvieras varios ficheros de patch, repite el proceso con cada uno de ellos. Se pueden meter cuantos parches se quieran, correlativos por supuesto.

También hay otra forma de parchear el Kernel, que es usando un script que ya viene incluido con los fuentes del kernel. En el directorio /usr/src/linux/scripts/ puedes encontrar dicho script, se llama patch-kernel. Si no tiene atributo de ejecutable, solo tienes que dárselo con la orden:

chmod +x patch-kernel
Una vez hecho esto, tendrás que copiar todos los parches que quieras aplicar al directorio /usr/src/linux/ y desde ahí ejecutar el script de la siguiente forma:
cd /usr/src/linux
./scripts/patch-kernel
Y el mismo script irá pillando todos los parches uno por uno.

Comprueba si ha quedado algún fichero con extensión '*.rej'. Eso significaría que ha habido algún problema. Si has sido hábil y tienes el backup que hicimos antes, no habría problema en volver atrás.

Si todo va bien, limpiamos.

cd linux
find . -name '*.rej' -print
find . -name '*.orig' -print -exec rm {} \;
make clean

Recompilar el Kernel, yo sustituyo el make zImage por make zdisk. De este modo, metiendo un disquete en la disquetera A:, me carga la nueva imagen del kernel en él, y puedo arrancar con el disquete y probar; si va bien lo pongo donde debe estar. En caso contrario a empezar de nuevo.

[1]

5.3 Error compilando el kernel

PREGUNTA

Cuando voy a compilar el kernel, el make me da este error:

make: as86: Command not found
¿Qué programa es el as86 y de donde lo saco?

RESPUESTA

El as86 es el compilador de ensamblador para arqutectura x86. Debes instalar el paquete "binutils" para poder compilar el kernel. Si usas Debian, el paquetes que debes instalar es "bin86".


Página siguiente Página anterior Índice general