8.3. Linux-2.6.22.6

El paquete Linux contiene el núcleo Linux.

Tiempo estimado de construcción: 1.5 - 3.5 SBU
Espacio requerido en disco: 350 - 450 MB

8.3.1. Instalación del núcleo

Construir el núcleo comprende varios pasos: configuración, compilación e instalación. Mira en el fichero README del árbol de fuentes del núcleo los métodos de configuración del núcleo alternativos al utilizado en este libro.

Prepara la compilación ejecutando el siguiente comando:

make mrproper

Esto asegura que el árbol del núcleo está completamente limpio. El equipo del núcleo recomienda que se ejecute este comando antes de cada compilación del núcleo. No debes confiar en que el árbol de las fuentes esté limpio tras desempaquetarlo.

Configura el núcleo mediante una interfaz de menús. BLFS tiene información sobre requisitos particulares de configuraciones del núcleo para paquetes externos a LFS en http://www.linuxfromscratch.org/blfs/view/svn/longindex.html#kernel-config-index:

make LANG=<host_LANG_value> LC_ALL= menuconfig

Segnificado de los parámetros de make:

LANG=<host_LANG_value> LC_ALL=

Esto establece los ajustes de locale a aquellos usados en el anfitrión. Esto es necesario para un correcto dibujo de líneas de la interface ncurses de menuconfig en consolas linux de texto basadas en UTF-8.

Asegurate de reemplazar <host_LANG_value> por el valor de la variable $LANG de tu anfitión. Si esta no está establecida, puedes usar en su lugar el valor en el anfitrión de $LC_ALL o $LC_CTYPE.

Alternativamente, make oldconfig puede ser más adecuado en algunas situaciones. Lee el fichero README para más detalles.

Si lo deseas, sáltate la configuración del núcleo copiando el fichero de configuración del núcleo, .config, de tu sistema anfitrión (asumiendo que esté disponible) al directorio linux-2.6.22.6. Sin embargo, no recomendamos esta opción. Con frecuencia es mejor explorar todos los menús de configuración y crear tu propia configuración del núcleo desde cero.

Compila la imagen del núcleo y los módulos:

make

Si utilizas los módulos del núcleo puede que necesites un fichero /etc/modprobe.conf. La información relativa a los módulos y a la configuración del núcleo se encuentra en Sección 7.4, “Manejo de dispositivos y módulos en un sistema LFS” y en el directorio linux-2.6.22.6/Documentation, que contiene la documentación del núcleo. Igualmente, modprobe.conf(5) puede ser interesante.

Instala los módulos, si la configuración del núcleo los utiliza:

make modules_install

Tras completar la compilación se necesitan algunos pasos adicionales para completar la instalación. Es necesario copiar varios ficheros al directorio /boot.

La ruta a la imagen del núcleo puede variar dependiendo de la plataforma que utilices. El siguiente comando asume que la arquitectura es x86:

cp -v arch/i386/boot/bzImage /boot/lfskernel-2.6.22.6

System.map es un fichero de símbolos para el núcleo. Mapea los puntos de entrada de cada una de las funciones en la API del núcleo, al igual que las direcciones de las estructuras de datos del núcleo para el núcleo en ejecución. Ejecuta el siguiente comando para instalar el fichero de mapa:

cp -v System.map /boot/System.map-2.6.22.6

.config es el fichero de configuración del núcleo creado por el paso make menuconfig anterior. Contiene todas las selecciones de configuración para el núcleo que se acaba de compilar. Es buena idea guardar este fichero como referencia futura:

cp -v .config /boot/config-2.6.22.6

Instala la documentación del núcleo Linux:

install -d /usr/share/doc/linux-2.6.22.6
cp -r Documentation/* /usr/share/doc/linux-2.6.22.6

Es importante advertir que los ficheros del directorio de las fuentes del núcleo no son propiedad de root. Cuando se desempaqueta un paquete como usuario root (como hacemos dentro del chroot), los ficheros acaban teniendo los identificadores de usuario y grupo que tenían en la máquina en la que se empaquetaron. Esto normalmente no es problema para cualquier otro paquete que instales debido a que eliminas las fuentes tras la instalación. Pero con frecuencia el árbol de las fuentes de Linux se guarda durante mucho tiempo, por lo que es posible que el ID de usuario del empaquetador sea asignado a alguien en tu máquina y entonces dicha persona podría tener permiso de escritura en las fuentes del núcleo.

Si vas a guardar el árbol de las fuentes del núcleo, ejecuta chown -R 0:0 sobre el directorio linux-2.6.22.6 para asegurar que todos los ficheros son propiedad de root.

[Aviso]

Aviso

Cierta documentación del núcleo recomienda crear un enlace simbólico /usr/src/linux que apunte al directorio de las fuentes del núcleo. Esto es específico para núcleos anteriores a la serie 2.6 y no debe ser creado en un sistema LFS, pues puede causar problemas con los paquetes que desees instalar una vez que tu sistema LFS esté completo.

[Aviso]

Aviso

Las cabeceras del directorio include del sistema deben ser siempre aquellas contra las que se compiló Glibc, es decir, las cabeceras saneadas procedentes de este paquete del núcleo Linux. Por tanto nunca deben reemplazarse con las cabeceras crudas del núcleo ni con las cabeceras saneadas de otro núcleo.

8.3.2. Contenido de Linux

Ficheros instalados: config-2.6.22.6, lfskernel-2.6.22.6, and System.map-2.6.22.6

Descripciones cortas

config-2.6.22.6

Contiene todas las opciones de configuración del núcleo.

lfskernel-2.6.22.6

El corazón del sistema GNU/Linux. Cuando enciendes tu ordenador, lo primero que se carga del sistema operativo es el núcleo. Éste detecta e inicializa todos los componentes hardware del ordenador, poniendo estos componentes a disposición del software como si fuesen un árbol de ficheros y convierte una CPU única en una máquina multi-tarea capaz de ejecutar concurrentemente varios programas casi al mismo tiempo.

System.map-2.6.22.6

Un listado de direcciones y símbolos. Mapea los puntos de entrada y direcciones de todas las funciones y estructuras de datos del núcleo.