¿Alguien me podría guiar en cómo empezar para recompilar el Kernel?
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]
¿Cómo puedo parchear el Kernel?
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]
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?
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".