A.2. Construcción del Kernel

Las instrucciones de esta sección se aplican a construir un kernel modularizado. Si está interesado en construir un kernel monolítico, vea la Sección A.3 para una explicación de los diferentes aspectos de su construcción e instalación.

NotaNota
 

Este ejemplo usa la versión del kernel 2.4.20-2.47.1 (Su versión del kernel puede diferir). Para determinar su versión del kernel, teclee el comando uname -r y reemplace 2.4.20-2.47.1 por su versión del kernel.

Para construir un kernel para la arquitectura x86 (realice todos los pasos como root):

  1. Abra un intérprete de comandos y cámbiese al directorio /usr/src/linux-2.4/. Todos los comandos desde este punto en adelante deben ser ejecutados desde este directorio.

  2. Es importante que empiece la construcción del kernel con el árbol de las fuentes en perfectas condiciones. Esto es, es recomendable que comience con el comando make mrproper. Esto borrará cualquier fichero de configuración remanente de configuraciones previas que pueda estar disperso por el árbol de las fuentes. Si ya tiene un fichero de configuración funcional /usr/src/linux-2.4/.config, haga una copia de respaldo en un directorio diferente antes de ejecutar este comando.

  3. Se recomienda que use la configuración del kernel de Red Hat Linux por defecto como punto de partida. Para hacer esto, copie el archivo de configuración para la arquitectura del sistema desde el directorio /usr/src/linux-2.4/configs/ a /usr/src/linux-2.4/.config. Si el sistema tiene más de cuatro gigabytes de memoria, copie el archivo que contiene la palabra clave bigmem.

  4. Luego, personalice los parámetros. Si está ejecutando el Sistema X Window, el método recomendado es usar el make xconfig para ejecutar la Linux Kernel Configuration.

    NotaNota
     

    Para usar la herramienta gráfica iniciada con el comando make xconfig, debe estar instalado el paquete tk, el cual proporciona el comando wish. Para más información sobre la instalación de paquetes RPM, consulte Parte V.

    Figura A-1. Configuración de categorías de componentes de Kernel

    Como se muestra en la Figura A-1, seleccione una categoría haciendo click sobre ella. Dentro de cada categoría hay componentes. Seleccione y (yes), m (module), o n (no) al lado del componente para compilarlo en el kernel, compilarlo como un módulo kernel o no compilarlo. Para obtener más detalles de un componente, haga click en el botón Help que tiene al lado.

    Haga click en Main menu para volver a la lista de categorías.

    Después de terminar la configuracion, haga click en el botón Save and Exit en la ventana del menú principal para crear el archivo de configuración /usr/src/linux-2.4/.config y salir el programa Linux Kernel Configuration.

    Aún si no se efectuó ningún cambio en los parámetros, la ejecución del comando make xconfig (o alguno de los otros métodos para la configuración del kernel) se requiere antes de continuar.

    Los otros métodos disponibles para la confifuración del kernel incluyen:

    • make config — Un programa de texto interactivo. Los componentes le son presentados de forma lineal y los va respondiendo uno a uno. Este método no requiere el Sistema X Window y no le permite cambiar sus respuestas a preguntas previas.

    • make menuconfig — Un programa de modo de texto, basado en menú. Los componentes le son presentados en un menú categorizado; seleccione los componentes deseados de la misma manera usada en el programa de instalación en modo texto de Red Hat Linux. Cambie la etiqueta correspondiente al punto que quiera incluir: [*] (incorporado), [ ] (excluido), <M> (modularizado), o < > (posibilidad de modularizar). Este método no requiere el Sistema X Window.

    • make oldconfig — Este es un script no interactivo que configurará su fichero de configuración con los valores predeterminados. Si está usando el kernel predeterminado de Red Hat, creará un fichero de configuración para el kernel que manejará Red Hat Linux en su arquitectura. Esto es útil para configurar su kernel con una configuración predeterminada que funciona, y entonces poder desactivar las características que no quiera usar.

    NotaNota
     

    Para usar kmod y los módulos del kernel conteste Yes a kmod support y module version (CONFIG_MODVERSIONS) support durante la configuración.

  5. Después de crear el archivo /usr/src/linux-2.4/.config, use el comando make dep para configurar las dependencias correctamente.

  6. Use el comando make clean para preparar el árbol fuente para construir.

  7. Se le recomienda que aporte un número de versión modificada al kernel personalizado de manera que no sobreescriba el kernel ya existente. El método descrito aquí es el más sencillo para recuperar el sistema en caso de problemas. Si está interesado en otras posibilidades, puede encontrar más detalles en http://www.redhat.com/mirrors/LDP/HOWTO/Kernel-HOWTO.html o en el Makefile en /usr/src/linux-2.4.

    Por defecto, /usr/src/linux-2.4/Makefile incluye la palabra custom al final de la línea que empieza por EXTRAVERSION. Añadir a la cadena le permitirá tener contemporaneamente en su sistema el kernel antiguo en funcionamiento y el kernel nuevo (versión 2.4.20-2.47.1 personalizada).

    Si el sistema contiene más de un kernel personalizado, un buen método es anexar la fecha al final (u otro identificador).

  8. Compile el kernel con make bzImage.

  9. Compile cualquier módulo que haya configurado con make modules.

  10. Use el comando make modules_install para instalar los módulos del kernel (aún si no se compiló ninguno). Observe el guión (_) en el comando. Esto instala los módulos kernel en la ruta del directorio /lib/modules/<KERNELVERSION>/kernel/drivers (donde KERNELVERSION es la versión especificada en el Makefile). En este ejemplo sería /lib/modules/2.4.20-2.47.1custom/kernel/drivers/.

  11. Use make install para copiar su nuevo kernel y sus ficheros asociados a los directorios apropiados.

    Además de instalar los ficheros del kernel en el directorio /boot, este comando ejecuta el script /sbin/new-kernel-pkg que construye una nueva imagen initrd y añade nuevas entradas para el fichero de configuración del gestor de arranque.

    Si posee un adaptador SCSI y ha compilado el driver SCSI driver como un módulo o si ha construido un kernel con el soporte ext3 como un módulo (predeterminado en Red Hat Linux), se necesitará la imagen initrd.

  12. Aunque la imagen initrd y las modificaciones del gestor de arranque han sido creadas, debería verificar que ha sido realizado correctamente y también asegurarse de usar la versión del kernel personalizado en vez de la 2.4.20-2.47.1. Consulte la Sección 30.5 y la Sección 30.6 para más detalles.