Compilar el kernel en Debian
Copyright © 21 de Enero de 2003 por Lorenzo Gil Sánchez (lgs)
Estos son los pasos que yo suelo seguir para recompilar el kernel en mi Debian 3.0.
Lo primero es convertirse en superusuario:
lgs@i8100:$ su
Password: contraseña del root
Después hay que instalar las fuentes del kernel. Para ver cuáles estan disponibles en tu máquina haz la siguiente búsqueda:
i8100:/home/lgs# apt-cache search kernel-source
kernel-source-2.2.22 - Linux kernel source for version 2.2.22
kernel-source-2.4.10 - Linux kernel source for version 2.4.10
kernel-source-2.4.14 - Linux kernel source for version 2.4.14
kernel-source-2.4.16 - Linux kernel source for version 2.4.16
kernel-source-2.4.17 - Linux kernel source for version 2.4.17
kernel-source-2.4.17-hppa - Linux kernel source for version 2.4.17 on HPPA
kernel-source-2.4.17-ia64 - Linux kernel source for version 2.4.17 on IA-64
kernel-source-2.4.18-hppa - Linux kernel source for version 2.4.18 on HPPA
kernel-source-2.4.18 - Linux kernel source for version 2.4.18
freeswan - IPSEC utilities for FreeSWan
Esas son las fuentes que yo tengo disponibles, por tanto elijo una y la instalo. En este ejemplo usaremos la 2.4.18.:
i8100:/home/lgs# apt-get install kernel-source-2.4.18
Ahora tenemos un archivo llamado kernel-source-2.4.18.tar.bz2 en /usr/src. Eso es todo lo que ha hecho apt-get en el paso anterior. Por tanto nos movemos a ese directorio y descomprimimos el ficherito (más de 23 megas...):
i8100:/home/lgs# cd /usr/src
i8100:/usr/src# tar -xvjf kernel-source-2.4.18.tar.bz2
Es bastante cómodo tener un enlace directo al nuevo directorio creado y algunos programas antiguos que interactuan con las fuentes del kernel requieren que dicho enlace exista y se llame linux. Ni cien mil palabras más:
i8100:/usr/src# ln -s kernel-source-2.4.18 linux
Ahora viene la parte más peliaguda (y la que menos trata esta receta) que es la de configurar nuestro kernel. Es decir, activar o desactivar opciones, decirle que partes queremos como módulos y que partes queremos integradas en el kernel, etc, etc. Toda una ciencia vamos.
Como algunos sabreis hay 3 interfaces distintas para configurar el kernel. Si escribimos make config, nos sale la más mundana, que consiste en que se nos van haciendo una serie de preguntas y no hay forma de volver atrá sin os equivocamos en alguna. Decididamente no es la mejor.
La segunda forma se obtiene escribiendo make menuconfig. Nos sale un programa hecho con la libreria ncurses mucho más comodo que la opción anterior.
Y por último, para los amantes de las X hay una interfaz con Tcl/Tk que se obtiene poniendo make xconfig.
Nosotros nos contentamos con la segunda opción, para la que hay que seguir los siguientes pasos:
i8100:/usr/src# cd linux
i8100:/usr/src/linux# apt-get install libncurses5-dev
i8100:/usr/src/linux# make menuconfig
El paso de instalar el paquete libncurses5-dev sólo es necesario la primera vez que compilemos el kernel. La configuración del kernel es común a todas las distribuciones y no haré incapie en ella.
Cuando ya lo tengamos todo a punto y estemos listos para recompilar el kernel tendremos que instalar antes un paquete, para hacerlo a la debian-way-of-life:
i8100:/usr/src/linux# apt-get install kernel-package
De esta forma el comando necesario para compilar el kernel es el siguiente:
i8100:/usr/src/linux# make-kpkg kernel_image --revision="21enero2003"
Este comando se encarga de compilar el kernel y dejarlo en un paquete debian. La opción --revision es bastante útil si tenemos varios kernels diferentes o si compilamos un kernel de una forma y a la semana siguiente queremos añadirle algo o cambiarle algo. Yo suelo ponerla fecha del día en que compilo el kernel. Si luego quiero otro kernel distinto, cambio esa cadena, o si quiero modificar el que había compilado, utilizo la misma cadena.
Cuando termine de compilar el kernel, algo que puede durar bastante según sea de rápida tu máquina, tendremos un paquete debian en /usr/src. Ya sólo falta instalarlo:
i8100:/usr/src/linux# cd ..
i8100:/usr/src# dpkg -i kernel-image-2.4.18_21enero2003_i386.deb
Esto nos irá preguntando varias cosas y por último nos preguntará si queremos modificar la configuración del gestor de arranque (lilo es el gestor por defecto en Debian) para que incluya una opción para nuestro nuevo kernel. Le decimos que si y la proxima vez que reiniciemos ya podremos seleccionar nuestro nuevo kernel





