Curso avanzado de administración de sistemas Linux

Rafael Varela Pet

Unidad de Sistemas

Área de Tecnologías de la Información y Comunicaciones

Universidad de Santiago de Compostela

Versión 0.2

Curso avanzado de administración de sistemas Linux

Compilar el Kernel

Método clásico

Utilizamos el kernel oficial: ftp.kernel.org

Mirror parcial en USC: ftp.usc.es/pub/mirror/kernel

Herramientas necesarias:

Compilador C

Librerías desarrollo

Utilidades
(todas incluidas en la distribución)

Método clásico. Configuración.

Configuración en fichero .config

El kernel no provee ningún fichero de configuración (se generará un por defecto si no tenemos ninguno)

Podemos coger la de alguno de los kernel instalados
cp /boot/config-Y.Y.YY .config

Método clásico. Compilar

Generación imagen kernel:

make mrproper

make config (o menuconfig, xconfig, gconfig)

configurar según lo requerido

Generar el paquete:
make dep;make bzImage

Generar los módulos
make modules

Método clásico. Instalar

Instalar:
make install (el kernel va a /boot)
make modules_install
(los módulos van a /lib/modules/<version>

Configurar gestor de arranque.
Es conveniente tener un kernel alternativo para poder arrancar

Si queremos los ficheros generados en otro sitio:
make O=/tmp/build/kernel menuconfig
make O=/tmp/build/kernel
sudo make O=/tmp/build/kernel modules_install install

Método Debian

Paquete kernel-package

Genera paquetes .deb con todo lo necesario:

kernel

módulos

configuración del gestor de arranque

Configuración en /etc/kernel-pkg.conf

Método Debian

Podemos usar paquetes Debian con el código fuente, el kernel oficial o cualquier otra variante.

Usaremos los kernel Debian

apt-get install kernel-source-2.4.27

Fuente en /usr/src/kernel-source-2.4.27.tar.bz2

Método Debian. Compilar

Generación imagen kernel:

make config (o menuconfig, xconfig, gconfig)

configurar según lo requerido

make-kpkg clean

Generar el paquete:
make-kpkg –revision=curso.1.0 kernel_image
(como root, usar sudo o fakeroot)
El parámetro “revision” afecta al nombre del paquete pero no a la versión del kernel. Ver comando 'uname -r'

Método Debian. Compilar

Los kernel Debian usan un disco RAM inicial. Es necesario incluir la opción -initrd:
make-kpkg -initrd kernel_image

Instalar la imagen:

dpkg -i imagen.deb

La imagen del kernel se instala en /boot y los módulos en /lib/modules/<versión>

Comprobar gestor arranque antes de reiniciar

Método Debian. Cabeceras.

Generación cabeceras kernel:

Los mismos pasos que para generar la imagen binaria

make-kpkg kernel_headers (como root, usar sudo o fakeroot)

dpkg -i imagen.deb

Paquetes Debian

Los nombres de los paquetes se ajustan al siguiente esquema:
nombre_ver-rev_arq.deb

nombre: nombre del paquete

ver: número de versión original (upstream version)

rev: número de revisión Debian

arq: arquitectura hardware

Para ver lo que contiene realmente
dpkg --info filename

Paquetes Debian (cont.)

Número de revisión Debian: decide el desarrollador Debian o quien haya construido el paquete.

Un cambio en este número indica normalmente que algo ha cambiado en el empaquetado.

Compilar Kernel

Curso avanzado de administración de sistemas Linux

Autor:
Rafael Varela Pet
Area de Tecnologías de la Información y Comunicaciones
Universidad de Santiago de Compostela

Rafael Varela Pet

2006-02-13T17:54:30