Compilar el kernel en debian 5 pasos

La misión de este mini how to no es la de hacer una clase magistral sobre la compilación del kernel en debian sino la de recordarme los pasos necesarios para compilar un kernel en debian, ya que cada vez que compilo el kernel tengo que buscarlos por la red. 

1- Primero instalamos las dependencias y el kernel
OeX:/home/oex# apt-get install gcc kernel-package kernel-source-2.4.18 libc6-dev tk8.3 libncurses5-dev fakeroot
OeX:/home/oex# apt-get install kernel-source-2.6.8
OeX:/home/oex# cd /usr/src/

2- Descomprimir el kernel
OeX:/usr/src# tar -xvjf kernel-source-2.6.8.tar.bz2

esto tardara un poco, depende de tu procesador

3- Configurando el kernel
OeX:/usr/src# cd kernel-source-2.6.8
OeX:/usr/src/kernel-source-2.6.8# make menuconfig

Seleccionamos las opciones de nuestro pc
Al salir de la aplicación se graba un archivo ".config" con todas nuestras opciones del kernel

si compilas por primera vez el kernel en tu pc, tienes que tener en cuenta que debian tiene casi todo el kernel cargado en módulos y los utiliza en tu instalación dependiendo de tu hardware. 

Para optimizar el kernel debes cargar solo las partes que necesites, esto lo decides en el archivo .config utilizando el comando make menuconfig

Un problema que he tenido con el kernel es que el filesystem de ext3 por defecto viene en module ext3_fs=m y no arranca el kernel lo cargas con el kernel y listos EXT3_FS=y

4- Compilando el kernel

OeX:/usr/src/kernel-source-2.6.8# make-kpkg --append-to-version=.160905 kernel_image

--append-to-version=.160905
Esto sirve para darle una versión al paquete .deb, si quieres, esto te servirá para distinguirlo entre los diferentes paquetes, en mi caso añado .160905 por la fecha 16/09/05, manías

esto tarda un huevo, dependiendo del procesador, claro

Si todo va bien esto te debería generar un archivo .deb en el directorio /usr/src/
en mi caso:
/usr/src/kernel-image-2.6.8.160905_10.00.Custom_i386.deb

5- Instalado el kernel

OeX:/usr/src/kernel-source-2.6.8# cd ..
OeX:/usr/src# dpkg -i kernel-image-2.6.8.160905_10.00.Custom_i386.deb

Listo el kernel ya esta instalado, ya podemos reiniciar la maquina y probar el nuevo kernel seleccionado la nueva versión del kernel en inicio, en el grub

¡OJO! Esta es la teoría pero en los momentos de escribir este how to no funciona bien el mecanismo de generación del archivo initrd. pq?, ni idea, ya lo mirare

para solucionarlo te puedes crear el initrd tu mismo, manos a la obra

OeX:/usr/src# mkinitrd -o /boot/initrd-img-2.6.8.2 2.6.8.160905

Nótese que 2.6.8.160905 esta separado de la ruta donde generamos el archivo nuevo, esto indica la instalación de módulos del kernel que hemos hecho, en mi caso /lib/modules/2.6.8.160905

al no generarse el archivo initrd, el grub omite esta linea y no es capaz de arrancar el kernel para añadir esta linea al gestor de arranque grub, editamos el fichero del grup

OeX:/usr/src# vi /boot/grub/menu.lst

añadimos esta entrada (Siempre deja una conf de un kernel que te funcione bien)
##-----Desde Aquí----##
title           Debian GNU/Linux, kernel 2.6.8.160905
root            (hd0,1)
kernel          /boot/vmlinuz-2.6.8.160905 root=/dev/hda2 ro
initrd          /boot/initrd-img-2.6.8.2  #<--Esta es la linea que falta
savedefault
boot
##-----Hasta Aquí----##

ahora si, ya podemos reiniciar el pc y probar nuestro nuevo kernel, recuerda seleccionar el nuevo kernel al arrancar

Bueno espero que a alguien le sirva este mini how to, y si es el caso please pulsa la publicidad que es lo único que mantiene este site thanks.

OeX

Responder

  • Saltos automáticos de líneas y de párrafos.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <p> <br>
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

Más información sobre opciones de formato

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.