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


Comentarios

Generación del archivo initrd de forma automática

Creo que para crear un kernel con initrd, sólo debes agregar el parámetro –initrd; pruebe a ejecutar:

# fakeroot make-kpkg --initrd --revision=personalizado.1.0 kernel_image

donde --revision=personalizado.1.0 equivale a --append-to-version=.160905.

One.neuron

Imagen de OeX

how to kernel debian

este manual es del 2005 y esta u poco desfasado, tengo que hacer una revisión del documento y volverlo a publicar

debian a simplificado las cosas en estos dos años

queda apuntado en tareas pendientes

si alguien quiere hacer una nueva versión, que no dude en ponerse en contacto con nosotros, utiliza el formulario de contacto

problemas al descomprimir tar.bz2

al descomprimir el archivo kernel-source-2.6.8.tar.bz2 me dice que encontro fin de fichero inesperado, entonces creo que en la carpeta no esta todo lo que deberia estar.

sabes como arreglar esto, si no por lo menos contestame con los archivos que debe tener despues la carpeta que se descomprime.

gracias.

Imagen de OeX

descomprimir el kernel

el kernel suele venir comprimido en bzip2 + tar, y para descomprimirlo necesitas tener instalado tanto el bzip2 como el tar

utilizando este comando, en mi maquina se descomprime perfectamente, lo he probado ahora mismo

bzip2 -dc linux-2.6.21.3.tar.bz2 | tar -xv

y estos son los archivos y directorios que quedan después de descomprimir el kernel

total 364K
drwxrwxr-x 27 root root 4,0K 2007-05-24 23:22 arch
drwxrwxr-x  2 root root 4,0K 2007-05-24 23:22 block
-rw-rw-r--  1 root root  19K 2007-05-24 23:22 COPYING
-rw-rw-r--  1 root root  89K 2007-05-24 23:22 CREDITS
drwxrwxr-x  2 root root 4,0K 2007-05-24 23:22 crypto
drwxrwxr-x 63 root root  12K 2007-05-24 23:22 Documentation
drwxrwxr-x 66 root root 4,0K 2007-05-24 23:22 drivers
drwxrwxr-x 62 root root 4,0K 2007-05-24 23:22 fs
drwxrwxr-x 42 root root 4,0K 2007-05-24 23:22 include
drwxrwxr-x  2 root root 4,0K 2007-05-24 23:22 init
drwxrwxr-x  2 root root 4,0K 2007-05-24 23:22 ipc
-rw-rw-r--  1 root root 1,3K 2007-05-24 23:22 Kbuild
drwxrwxr-x  5 root root 4,0K 2007-05-24 23:22 kernel
drwxrwxr-x  5 root root 4,0K 2007-05-24 23:22 lib
-rw-rw-r--  1 root root  83K 2007-05-24 23:22 MAINTAINERS
-rw-rw-r--  1 root root  50K 2007-05-24 23:22 Makefile
drwxrwxr-x  2 root root 4,0K 2007-05-24 23:22 mm
drwxrwxr-x 38 root root 4,0K 2007-05-24 23:22 net
-rw-rw-r--  1 root root  17K 2007-05-24 23:22 README
-rw-rw-r--  1 root root 3,1K 2007-05-24 23:22 REPORTING-BUGS
drwxrwxr-x  9 root root 4,0K 2007-05-24 23:22 scripts
drwxrwxr-x  4 root root 4,0K 2007-05-24 23:22 security
drwxrwxr-x 18 root root 4,0K 2007-05-24 23:22 sound
drwxrwxr-x  2 root root 4,0K 2007-05-24 23:22 usr

--
OeX

gracias man

Bueno nada mas que decirte que muchas gracias, y que puedes contar con migo para lo que pueda ayudarte saludos

Enviar un comentario nuevo

  • 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.