Compilar un kernel a la antigua usanza

19 enero 2005

En estos apuntes pretendo esquematizar los pasos que hay que dar para compilar el nucleo de un sistema GNU/Linux a la antigua usanza, esto es, sin terminar paquetizando el kernel para ninguna distribución.

El primer paso que hay que dar es descargar de kernel.org la última versión (o la que preferais) de la rama estable 2.x.y siendo x un número par e y el mayor número disponible.

Yo voy a utilizar la última versión a día de hoy que es la 2.6.10.

Lo primero que tenemos que hacer es mover el archivo descargado al directorio estándar de facto para albergar el núcleo.

mv linux-2.6.10.tar.bz2 /usr/src

Nos situamos en dicho directorio y descomprimimos y desempaquetamos el archivo.

cd /usr/src
tar -xvjf linux-2.6.10.tar.bz2

Donde la x significa extraer, la v sirve para ver los archivos que se están extrayendo, la f sirve para mantener los permisos de los archivos y la j, a la cual no le veo ninguna relación con bunzip2 es para idicarle que el archivo esta comprimido con esa herramienta.

Ahora para ser ordenados borramos el archivo comprimido para no ir dejando na por medio y entramos en el directorio que acaba de aparecer.

rm -f linux-2.6.10.tar.bz2
cd linux-2.6.10

Para limpiar restos que hayan podido quedar de una compilación anterior y asegurarnos que las fuentes están limpias pasamos el mister prope

make mrproper
make clean

Y seguidamente vamos a configurar los parámetros del kernel con la interfaz que más coraje nos dé, en modo texto,

make config

o utilizando las librerias ncurses en consola,

make menuconfig

o bien bajo nuestras amadas X escribiendo

make xconfig

Yo prefiero usar la consola (make menuconfig) para seleccionar los modulos para lo que tengo que instalar las librerias de desarrollo de ncurses. En mi amada debian (apt-get install libncurses5-dev).

Después de un rato configurando las opciones que quiero que lleve incluidas o como módulo mi kernel, entre las que me interesaban especialmente el V4L y el soporte para todo tipo de dispositivos usb de distintas velocidades EHCI/OHCI/UHCI, pulsamos Esc repetidas veces hasta que se nos pregunta si queremos salvar la configuración del kernel a lo que respondemos afirmativamente.

Ya queda poco, ahora vamos a compilar el kernel, tiempo para ir a cambiarle el agua al canario o a tomarse un vasito de agua a la cocina tras lanzar los siguientes comandos:

make dep
make modules
make modules_install
make bzImage

o bien de tiron:

make dep && make modules && make modules_install && make bzImage

donde make dep crea un archivo .depend con las indicaciones para las herramientas de compilación, make modules se encarga de compilar los modulos que no son más que ficheros objeto .o de C que se enlazan dentro del kernel cuando tiras de ellos, make modules_install se encarga de poner los modulos en el directorio /lib/modules/2.6.10.

Ahora después de un ratillo tenemos que copiar el kernel que se ha generado en /usr/src/linux-2.6.10/arch/i386/boot/bzImage en /boot

cp /usr/src/linux-2.6.10/arch/i386/boot/bzImage /boot/vmlinuz-2.6.10

Y también hacemos un enlace en el /

ln /boot/vmlinuz-2.6.10 /vmlinuz-2.6.10

Ya lo único que nos queda es configurar nuestro cargador de arranque preferido para que podamos seleccionar dicho nucleo.

En mi caso en el lilo pongo una entrada


image=/vmlinuz-2.6.10
label=Linux
read-only
restricted
alias=1

ejecuto /sbin/lilo, reinicio y cruzo los dedos.

Como podeis comprobar no soy ningún gurú compilando núcleos, estos pasos se han recopilado de algunos “howto’s” que hay por la red, cualquier sugerencia de mejora será acogida con mucha alegría.

:wq

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: