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
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
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.