
.
Luego de confirmar los problemas con Debian en Palola, me puse las pilas para compilar el último kernel de Linux.
Después de pasarme un buen rato en Internet, armé el rompecabezas que me funcionó para compilar el último kernel estable de Linux al día de hoy, el 2.6.29.3, en Palola con Debian Lenny (rama estable). El mismo rompecabezas lo apliqué en un Kubuntu Jaunty compilando el kernel 2.6.30, así que vale también para Ubuntu. Lo escribo:
-
Instalar los paquetes necesarios para compilar el kernel:
# apt-get install build-essential libncurses5 libncurses-dev kernel-package
- Bajar los fuentes de http://www.kernel.org. Los que bajé yo:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.3.tar.bz2
-
Copiar los fuentes a /usr/src, descromprimir y pararse en el directorio de fuentes:
# cp /tmp/linux-2.6.29.3.tar.bz2 /usr/src # cd /usr/src # tar -xvjf linux-2.6.29.3.tar.bz2 # cd linux-2.6.29.3
-
Limpiar los fuentes del kernel (no es necesario si es la primera vez que compilo):
# make mrproper
- Copiar la configuración del kernel actual (en mi caso, la 2.6.26-1-amd64), al directorio con las fuentes del nuevo kernel, poniéndole como nombre “.config”
# cp /boot/config-2.6.26-1-amd64 ./.config -
Configurar el nuevo kernel agregando módulos a la configuración copiada:
-
# make menuconfig
- Cargar la configuración del kernel actual: archivo “.config”
- Agregar módulos. Yo agregué los siguientes para compilar especialmente para procesador Core 2, para que me reconozca la tarjeta Wi-Fi Intel, para probar el nuevo filesystem ext4 y para algún otro chichecito:
- Processor type and features\Processor family (Generic-x86-64)\Core 2/newer Xeon
- File systems\The Extended 4 (ext4) filesystem:
- <*> The Extended 4 (ext4) filesystem[*] Enable ext4dev compatibility[*] Ext4 extended attributes (NEW)
- Device drivers\Graphics support\Bootup logo
- Device drivers\Network device support\Wireless LAN:
- <M> Intel Wireless WiFi Next Gen AGN[*] Enable Spectrum Measurement in iwlagn driver[*] Enable LEDS features in iwlagn driver[*] Intel Wireless WiFi 4965AGN[*] Intel Wireless WiFi 5000AGN
- Guardar como “.config”
-
- Compilar y crear los paquetes .deb. Con los siguientes comandos se crearán los paquetes kernel.deb y kernel-headers.deb:
# make-kpkg clean # make-kpkg --initrd kernel_image kernel_headers
-
Ir a tomarse una cervecita mientras compila.
-
Instalar los paquetes generados:
# dpkg -i /usr/src/linux-image-2.6.29.3_2.6.29.3-10.00.Custom_amd64.deb # dpkg -i /usr/src/linux-headers-2.6.29.3_2.6.29.3-10.00.Custom_amd64.deb
-
Rebootear y probar. Me dio un terrible “Kernel Panic”. Investigando un poco, encontré que no estaba creado el ramdisk (initrd), ni agregada la opción de cargarlo en la lista de arranque de grub.
Si te dio el error, entonces seguí con los pasos 11 y 12 (antes de rebootear podés confirmar si te generó el ramdisk: /boot/initrd.img-2.6.29.3, y si está agregada la línea del initrd en el archivo /boot/grub/menu.lst).
-
Crear el initrd:
# update-initramfs -c -k 2.6.29.3
-
Actualizar el archivo /boot/grub/menu.lst, agregando la línea de ubicación del initrd generado en el arranque de las 2 opciones para el nuevo kernel. La parte de Linux en el archivo de opciones de arranque de grub quedaría así:
title Debian GNU/Linux, kernel 2.6.29.3 root (hd0,2) kernel /boot/vmlinuz-2.6.29.3 root=/dev/sda3 ro quiet initrd /boot/initrd.img-2.6.29.3
title Debian GNU/Linux, kernel 2.6.29.3 (single-user mode) root (hd0,2) kernel /boot/vmlinuz-2.6.29.3 root=/dev/sda3 ro single initrd /boot/initrd.img-2.6.29.3
title Debian GNU/Linux, kernel 2.6.26-1-amd64 root (hd0,2) kernel /boot/vmlinuz-2.6.26-1-amd64 root=/dev/sda3 ro quiet initrd /boot/initrd.img-2.6.26-1-amd64
title Debian GNU/Linux, kernel 2.6.26-1-amd64 (single-user mode) root (hd0,2) kernel /boot/vmlinuz-2.6.26-1-amd64 root=/dev/sda3 ro quiet initrd /boot/initrd.img-2.6.26-1-amd64
-
Rebootear.
Si salió todo bien:
milton@Palola:~$ uname -a Linux Palola 2.6.29.3 #1 SMP Sat May 9 21:55:23 UYT 2009 x86_64 GNU/Linux
NOTA: Por suerte, si algo sale mal y no bootea desde el nuevo kernel, grub nos permite arrancar con el kernel anterior. Quedan ambas opciones en la lista.











[...] (Squeeze) y a la inestable (Sid). Pero esto solucionaba parte de los problemas, así que decidí compilar el último kernel estable de Linux en Debian Lenny, con lo que logré anular todos (o casi todos…) los dolores de [...]
[...] Ya está pronto el post con los pasos para compilar kernel de GNU/Linux en Debian y Ubuntu. [...]
[...] Debian Lenny y arriba le compilé el kernel 2.6.29, instalando KDE 4 desde repositorios no oficiales (en ese momento KDE 4 no estaba incluido en los [...]
Excelente es un articulo muy bueno, solo quisiera añadir algo, en
ocasiones sera necesario instalar el paquete zlib1g-dev para evitar un
error en el proceso de armado del .deb, eso se podria hacer por
seguridad para evitar problemas, de resto el metodo aqui mencionado es
simplemente perfecto!! =) gracias.
Muchas gracias, Adalid_negro.
Por las felicitaciones y por el aporte.