¿Por qué querría alguien compilar un nuevo núcleo? La mayoría de las veces no será necesario puesto que el núcleo estándar entregado con Debian gestiona la mayoría de configuraciones. Además, Debian ofrece habitualmente varios núcleos alternativos. Así, debería comprobar si hay un paquete de imagen de núcleo alternativa que se ajuste mejor a su hardware. En cualquier caso es útil compilar un nuevo núcleo para:
tratar necesidades especiales de hardware, o conflictos de los mismos con núcleos predeterminados.
utilizar opciones del núcleo que no están soportadas en los núcleos preparados, como puede ser el caso del soporte de memoria elevada (más de 4GB).
optimizar el núcleo eliminando controladores no usados para acelerar el tiempo de arranque.
crear un núcleo monolítico en lugar de uno modular.
ejecutar un núcleo actualizado o de desarrollo.
aprender más de los núcleos de Linux.
No tenga temor de intentar compilar el núcleo. Es divertido y fructífero.
Para compilar un núcleo al “estilo Debian”,
necesita algunos paquetes:
fakeroot
,
kernel-package
,
kernel-source-2.6.8
(la versión más reciente en el momento de editar este documento),
y algunos otros que probablemente ya estén instalados (vea
/usr/share/doc/kernel-package/README.gz
si desea una
lista completa.
Este método creara un «.deb» para su núcleo fuente y, si tiene módulos
no estándares, construya también un «.deb» con dependencia sincronizada de
los mismos. Es la mejor forma de gestionar imágenes del núcleo;
/boot
albergará el núcleo, el fichero «System.map» y
el fichero de registro del fichero «config» activo para la construcción.
Observe que no tiene que compilar su núcleo
“al estilo Debian”; pero creemos que usar el sistema de paquetes para
gestionar su núcleo es realmente más seguro y sencillo. De hecho, puede
obtener las fuentes de su núcleo directamente de Linus en lugar de
kernel-source-2.6.8
,
y aún así usar el método de compilación kernel-package
.
Note que puede encontrar documentación completa sobre el uso de
kernel-package
en
/usr/doc/kernel-package
. Esta sección sólo contiene un
breve tutorial.
A partir de ahora, asumiremos que tiene acceso completo al sistema
y que va a extraer las fuentes del núcleo en algún lugar de su
directorio personal[7]. También daremos por supuesto que la versión de su
núcleo es 2.6.8. Ubíquese en el directorio
donde desee desempaquetar las fuentes del
núcleo, extraiga las fuentes del
mismo usando
tar xjf
/usr/src/kernel-source-2.6.8.tar.bz2
, y cámbiese al directorio
kernel-source-2.6.8
que se habrá creado.
Ahora puede configurar su núcleo. Ejecute
make xconfig
si tiene X11 instalado,
configurado y ejecutándose, make menuconfig
en
otro caso (necesitará instalar libncurses5-dev
). Tómese
su tiempo para leer la ayuda en línea y escoja cuidadosamente. Cuando
tenga duda, a menudo es mejor incluir el controlador de dispositivo
(el software que maneja el hardware periférico, como tarjetas Ethernet,
controladoras SCSI, etc.) del que no está seguro. Tenga cuidado: Otras
opciones no relacionadas con un hardware específico deberían dejarse en
su valor predeterminado si no las comprende. No olvide seleccionar
“Kernel module loader” (para la autocarga de módulos) en
“Loadable module support” (éste no es elegido por omisión).
Su instalación Debian experimentará problemas si no lo incluye.
Limpie el árbol de fuentes y reinicie los parámetros de
kernel-package
. Para hacerlo, ejecute
make-kpkg clean
.
Ahora, compile el núcleo: fakeroot /usr/sbin/make-kpkg
--revision=custom.1.0 kernel_image
. Por supuesto, puede
cambiar el número de la versión “1.0”
por cualquier otro valor; éste sólo es el número
de versión que usará para seguir la pista a los núcleos que haya
construido. Igualmente puede sustituir “custom” por
cualquier otra palabra (por ejemplo, un nombre de máquina).
La compilación del núcleo puede tomar un buen
tiempo, dependiendo de la potencia de su máquina.
Si necesita soporte PCMCIA, también necesitará instalar el paquete
pcmcia-source
. Desempaquete el fichero tar comprimido
con gzip, como superusuario en el directorio /usr/src
(es importante que los módulos se encuentren donde se espera que estén, a
saber, /usr/src/modules
). Luego, como superusuario,
ejecute make-kpkg modules_image
.
Una vez finalizada la compilación, puede instalar su núcleo
personalizado como cualquier paquete. Como superusuario, ejecute
dpkg -i ../kernel-image-2.6.8-
.
La parte subarquitectura
_custom.1.0_powerpc.debsubarquitectura
es una subarquitectura
opcional,
dependiendo de las opciones
que haya establecido en el núcleo.
dpkg -i kernel-image...
instalará el núcleo, junto con otros ficheros de soporte. Por ejemplo,
System.map
será adecuadamente instalado (de gran ayuda
para depuración de problemas con el núcleo), y también se instalará
/boot/config-2.6.8
, conteniendo su actual
configuración. Su nuevo paquete
kernel-image-2.6.8
es también lo
suficientemente listo como para usar automáticamente usar el gestor de
de arranque de su plataforma y actualizar así la información de la imagen
del núcleo, la cual le permita arrancar sin necesidad de ejecutarlo nuevamente.
Deberá instalar también el paquete de módulos si lo ha hecho, como por ejemplo,
en el caso de que tenga PCMCIA.
Es momento de reiniciar el sistema: lea cuidadosamente cualquier advertencia
que pueda haberse producido, luego ejecute shutdown -r now
.
Consulte la excelente documentación disponible en
/usr/share/doc/kernel-package
si desea más información sobre kernel-package
.
[7] Hay otras ubicaciones donde puede extraer las fuentes del núcleo y construir su núcleo a medida, pero ésta es la forma más sencilla ya que no requiere de permisos adicionales.