InicioLinuxCompilación del Kernel - Kernel a la medida del usuario

Compilación del Kernel - Kernel a la medida del usuario

Linux•2/5/2011
Como recompilar el kernel Linux en openSUSE

Cada distribucion posee algunas herramientas especificas para construir el kernel desde las fuentes. En este articulo voy a explicar como compilar Linux desde un sistema openSuSE. Se describe como construir un kernel personalizado a partir de las fuentes desde www.kernel.org (vanilla kernel) de manera de ser independiente del kernel proporcionado por la distribucion.

Antes que nada voy a decir que no es la unica manera de hacerlo, pero si es la que yo voy a usar y no aseguro que funcione para todos.

1 - Nota preliminar
La idea aca es contruir un paquete rpm con el kernel que pueda ser instalado en cualquier sistema openSUSE, lo cual es una gran ventaja comparada con el metodo “tradicional” en el que solo queda para el sistema en el que se compilo.

2 - Instalar los paquetes requeridos para compilar el kernel
Debemos instalar el paquete ncurses-devel el cual es requerido por el comando make menuconfig que utilizaremos mas tarde:


~ # zypper in ncurses-devel


3 - 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 linux-2.6.37.tar.gz


~ # cd /usr/src
/usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.gz


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

/usr/src # tar xvfj linux-2.6.37.tar.bz2
/usr/src # ln -s linux-2.6.37 linux
/usr/src # cd /usr/src/linux


4 - Configuracion y compilacion del kernel
Es una buena idea comenzar con la misma configuracion que tenemos en el kernel instalado actualmente, para esto ejecutaremos los siguientes comandos


/usr/src/linux # make mrproper

/usr/src/linux # ./scripts/kconfig/streamline_config.pl > config_new

/usr/src/linux # mv config_new .config


con este ultimo tomamos la configuracion actual (modulos activos en el kernel actualmente instalado) para luego agregar o quitar los modulos que crea conveniente.

luego comenzaremos la configuracion con el comando:


/usr/src/linux # make gconfig
(para agregar o quitar modulos)

aca hay que ir entre todas las opciones y es diferente para cada PC, asi que no voy a decir que cambiar, es deber de cada uno probar, una vez terminada la configuracion salimos guardando la configuracion e iniciamos la compilacion y creacion del paquete rpm con el comando:

/usr/src/linux # cat .config | grep =m | wc -l


una vez terminado de agregar y quitar los modulos con este ultimo comando nos dira cuantos modulos instalaremos y esta recompilacion.

/usr/src/linux-2.6.37 # cat .config | grep =m | wc -l
50


generalmente alrededor de unos 50 / 80 modulos nos indicaria que esta bien. (2000 seria indicador de que algo esta mal)

Por ultimo el comando make rpm sera el encargado de generarnos el paquete RPM listo para ser instalado

/usr/src/linux # make rpm


con mi procesador, Intel Core 2 Quad y con 72 modulos activos, llevo unos 12 min la compilacion

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


/usr/src/linux # cd /usr/src/packages/RPMS/i386/
/usr/src/packages/RPMS/i386/ # rpm -ivh kernel-2.6.370.7desktop-1.i386.rpm


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

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


Salida:

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

Kernel image: /boot/vmlinuz-2.6.34.7-0.7-desktop
Initrd image: /boot/initrd-2.6.34.7-0.7-desktop
Root device: /dev/disk/by-id/ata-SAMSUNG_HD322HJ_S17AJ90S226883-part6 (/dev/sda6) (mounted on / as ext4)
Resume device: /dev/disk/by-id/ata-SAMSUNG_HD322HJ_S17AJ90S226883-part5 (/dev/sda5)
Kernel Modules: thermal_sys thermal pata_amd ata_generic processor fan crc16 jbd2 ext4
Features: block usb resume.userspace resume.kernel
Bootsplash: openSUSE (1024x768)
42513 blocks

Kernel image: /boot/vmlinuz-2.6.37-0.7-desktop
Initrd image: /boot/initrd-2.6.37-0.7-desktop
Root device: /dev/disk/by-id/ata-SAMSUNG_HD322HJ_S17AJ90S226883-part6 (/dev/sda6) (mounted on / as ext4)
Resume device: /dev/disk/by-id/ata-SAMSUNG_HD322HJ_S17AJ90S226883-part5 (/dev/sda5)
Kernel Modules: thermal_sys thermal pata_amd ata_generic processor fan crc16 jbd2 ext4
Features: block usb resume.userspace resume.kernel
Bootsplash: openSUSE (1024x768)
58013 blocks



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


title Desktop -- openSUSE 11.3 - 2.6.7
root (hd0,0) kernel /boot/vmlinuz-2.6.37-0.7-desktop root=/dev/sda1 resume=/dev/sda2 splash=silent quiet showopts vga=0x317
initrd /boot/initrd-2.6.37-0.7-desktop


Fuente 1
Fuente 2: Experiencia Propia.
Datos archivados del Taringa! original
52puntos
3,520visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
8visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

k
krafty🇦🇷
Usuario
Puntos0
Posts78
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.