El Kernel en Gentoo Linux: actualizar, configurar, compilar

El Kernel en Gentoo Linux: actualizar, configurar, compilar

El núcleo forma parte de uno de los pocos paquetes en la distribución Gentoo que requiere una intervención por parte del usuario para completar la actualización. Portage se encarga de descargar e instalar el código fuente del núcleo, pero la compilación para el soporte de las modificaciones se hace manualmente.

¿Por qué actualizar el Kernel?

Se recomienda actualizar el núcleo regularmente como una tarea de mantenimiento. La actualización del núcleo se hace principalmente para:

  1. Aprovechar la actualización de algún driver.
  2. Protegerse contra vulnerabilidades.
  3. Mantener el sistema actualizado.

¿Cómo obtener las nuevas fuentes?

La actualización de las fuentes en la distribución Gentoo se hace como con cualquier otro paquete mediante la herramienta "emerge". Los paquetes serán instalados en /usr/src. Para actualizar las fuentes ejecutamos:

#emerge –u gentoo-sources

¿Cómo actualizar el enlace simbólico /usr/src/linux?

  • Gentoo requiere que el enlace simbólico /usr/src/linux apunte a las fuentes del núcleo utilizado. Portage actualiza automáticamente el enlace simbólico pero es necesario agregar manualmente "symlink flag" a la variable "USE" del fichero de configuración /etc/make.conf:
USE="symlink x86 3dnow 3dnowex X aac aalib adns alsa apache2"
 
  • Alternativamente, es posible utilizar el paquete app-admin/eselect para modificar el enlace simbólico. Para ello necesitamos instalar el paquete y luego utilizarlo para cambiar el enlace:
Installer eselect)
# emerge eselect
(Mostrar la lista de núcleos disponibles)
# eselect kernel list
Available kernel symlink targets:
  [1]   linux-2.6.27-gentoo-r8 *
  [2]   linux-2.6.27-gentoo-r10
# eselect kernel set 2
 
  • Para comprobar la aplicación elegida tan solo hay que verificar el enlace simbólico:
# cd /usr/src
# ln -sfn linux-2.6.9-gentoo-r2 linux 

¿Cómo configurar, compilar e instalar el nuevo núcleo?

- Instalación automática con la herramienta Genkernel

  • Primero será necesario instalar Genkernel:
#emerge genkernel
  • Luego ejecutar la instalación:
#genkernel all 
  • También es posible invocar el comando "genkernel" con opciones adicionales para la actualización de grub:
# genkernel --menuconfig --bootloader=grub all

- Instalación manual

  • Primero es necesario ejecutar la herramienta de configuración del núcleo:
# cd /usr/src/linux
# make menuconfig
  • Elegimos las opciones requeridas para el hardware y el entorno del sistema. Existe una guía muy completa que nos ayudará con la configuración del núcleo. 
  • A continuación, compilamos el núcleo y lo copiamos en la partición de arranque. Si "/boot" es una partición separada, es necesario montarla antes de copiar el núcleo:
# make && make modules_install
# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.9-gentoo-r2
  • Finalmente, actualizamos el archivo de configuración del gestor de arranque, agregando la referencia al nuevo núcleo.

¿Cuáles son los últimos pasos del proceso? 

  • Reinstalación de módulos externos: Si el núcleo contiene módulos externos, será necesario reinstalarlos después de haber actualizado el núcleo.
  • Reiniciar con el nuevo núcleo: Terminamos todos los procesos y reiniciamos.
  • Utilizar múltiples núcleos: Para utilizar múltiples núcleos, tan solo dejamos en /usr/src/ las fuentes del núcleo y el fichero binario "bzImage" en la partición de arranque "/boot". Luego, es necesario agregar una referencia al archivo de configuración del gestor de arranque que permita cambiar de un núcleo a otro.
  • Desinstalar el núcleo antiguo: Podemos utilizar la herramienta "emerge" para desinstalar todas las antiguas versiones del núcleo, para ello ejecutamos:
# emerge -P gentoo-sources
  • Por último, solo queda eliminar los ficheros relativos a los núcleos antiguos en el directorio usr/src utilizando el comando "rm".

Linux