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
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.
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 364Kdrwxrwxr-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