Aqui se describe como construir un kernel personalizado a partir de las fuentes desde www.kernel.org de manera de ser independiente del kernel proporcionado por la distribucion.

La idea aca es contruir un paquete rpm con el kernel que pueda ser instalado en cualquier sistema openSUSE que es con el que se ha hecho este How To

Instalar los paquetes requeridos para compilar el kernel

miguel:~ # zypper in ncurses-devel

miguel:~ # zypper in make

miguel:~ # zypper in gcc

Descargar las fuentes del kernel

Ahora hay que descargar las fuentes del kernel al directorio /usr/src. Asi que vamos a www.kernel.org y seleccionamos el kernel a instalar, por ejemplo

miguel:~ # cd /usr/src

miguel:~ # wget http://www.kernel.org/pub/linux/kernel/v3.0/testing/linux-3.0-rc4.tar.bz2

Una vez completada la descarga, desempaquetamos el codigo fuente y creamos un enlace simbolico a las fuentes:

miguel:/usr/src # tar xvfj linux-3.0-rc4.tar.bz2

miguel:/usr/src # ln -s linux-3.0-rc4.tar.bz2

miguel:/usr/src # cd /usr/src/linux

Configuracion y compilacion del kernel

Configuramos lo que tenemos en el kernel instalado actualmente, para esto ejecutaremos los siguientes comandos

miguel:/usr/src/linux # make mrproper

miguel:/usr/src/linux # cp /boot/config-`uname -r` ./.config

y luego comenzaremos la configuracion con el comando:

miguel:/usr/src/linux # make menuconfig

Basicamente es para decidir que paquetes queremos incluir en nuestro kernel, una vez terminada la configuracion salimos guardando la configuracion e iniciamos la compilacion y creacion del paquete rpm con el comando:

miguel:/usr/src/linux # make rpm

En mi maquin se tardo una hora y 20 minutos para compiar cada kernel.

El paquete rpm creado podra encontrarse en /usr/src/packages/RPMS/X donde X corresponde con la arquitectura del sistema usado para compilar, en mi caso es /usr/src/packages/RPMS/i386, para instalarlo ejecutamos los comandos:

miguel:/usr/src/linux # cd /usr/src/packages/RPMS/x86_64

miguel:/usr/src/packages/RPMS/i386 # rpm -ivh kernel-3.0.0_rc4_0.5_desktop-1.i386.rpm

Ahora hay que crear la imagen del kernel para poder iniciarlo, para esto utilizamos el comando:

 

miguel:/usr/src/packages/RPMS/i386 # mkinitrd

este comando genera la imagen correspondiente para todos los kernel instalados en el sistema

Una vez completado este paso solo resta crear la entrada en grub para poder iniciar el kernel recien compilado, para esto editamos el archivo /boot/grub/menu.lst y creamos una entrada similar a la siguiente

 

###Kernel compilado por Miguel###

title Desktop -- openSUSE 11.4 - 3.0.0-rc4-0.5

root (hd0,1)

kernel /boot/vmlinuz-3.0.0-rc4-0.5-desktop root=/dev/disk/by-id/ata-VBOX_HARDDISK_VBf12b625e-e5d476db-part2 resume=/dev/disk/by-id/ata-VBOX_HARDDISK_VBf12b625e-e5d476db-part1 splash=silent quiet showopts vga=0x314

initrd /boot/initrd-3.0.0-rc4-0.5-desktop

Reiniciamos y en nuestro GRUP debe aparecer nuestro bot con el nuevo Kernel

 

 

Hasta luego, comentarios y mejoras al post son biennvenidos :)