Kernel/Upgrade/es

Este artículo describe los pasos para actualizar a un nuevo núcleo.

Construir un nuevo núcleo a partir de los nuevos fuentes es básicamente el mismo proceso que el construir un nuevo núcleo cuando se instala el sistema. La diferencia es que se puede partir de la configuración del anterior núcleo para crear la configuración del nuevo. El utilizar la antigua configuración evita que el usuario tenga que recorrer de nuevo todas las opciones del núcleo (como con ).

La configuración del núcleo se guarda en un archivo llamado en el directorio en el que se almacenan los fuentes del núcleo. Un nuevo núcleo puede tener opciones o características que no tiene un núcleo anterior o puede que ya no tenga una característica u opción que el núcleo anterior aún conserva. La configuración del núcleo especifica si las características y opciones de un núcleo están habilitadas o no, quizá construidas en el propio núcleo o quizás como módulos que se pueden cargar bajo demandan una vez el núcleo está en funcionamiento. Por tanto, el fichero de configuración del nuevo núcleo puede tener nuevas entradas que el fichero de configuración del núcleo antiguo no tiene y también puede que no tenga ya entradas que aún están presentes en el núcleo anterior.

Para tratar con este tipo de cambios en el fichero de configuración, se necesita convertir el fichero de configuración del núcleo antiguo a una configuración que pueda utilizar el nuevo núcleo. Este artículo muestra cómo crear un nuevo núcleo a partir de los nuevos fuentes realizando la conversión adecuada de la configuración del núcleo antiguo.

Kernel upgrade in Gentoo involves these steps:
 * Step 1: Emerging the new kernel sources.
 * Step 2: Setting the right symlink to the new kernel.
 * Step 3: Moving to the new kernel's folder.
 * Step 4: Adjusting the file for the options introduced to, or removed from the new kernel's configuration.
 * Step 5: Building the kernel and the initramfs.
 * Step 6: Updating the bootloader.
 * Step 7: Removing or keeping the old kernel.

Instalación y utilización de un nuevo núcleo
La actualización del núcleo puede ser una buena idea cuando se instalan los fuentes. A veces se instalan los fuentes cuando se actualiza el sistema lanzando la siguiente orden:

Desde luego se pueden instalar directamente utilizando la siguiente orden (reemplazar gentoo-sources por hardened-sources cuando se utilice un perfil hardened):

Al instalar unos nuevos fuentes del núcleo, no se le ofrece al usuario un nuevo núcleo. Es necesario construir e instalar un nuevo núcleo a partir de los nuevos fuentes y reiniciar el sistema para correr el nuevo núcleo.

Set symlink to new kernel sources
The kernel configuration is saved in a file named in the directory that holds the kernel sources, a symlink is used to point to that directory.

El enlace simbólico debe siempre apuntar al directorio que contiene los fuentes del nucleo en el que está corriendo. Esto se puede hacer de tres formas distintas:


 * 1) Instalar los nuevos fuentes del núcleo con
 * 2) Ajustar el enlace con eselect
 * 3) Actualizar el enlace simbólico de forma manual

Definir el enlace on eselect
Para definir el enlace simbólico con :

Esto muestra los fuentes del núcleo disponibles. El asterisco indica los fuentes elegidos.

Para cambiar los fuentes del núcleo, por ejemplo a la segunda entrada, se debe hacer los siguiente:

Actuar manualmente el enlace simbólico
Para definir el enlace simbólico manualmente:

Instalar los fuentes del núcleo con el ajustes USE para gestionar el enlace simbólico
Esto hará que apunte a los nuevos fuentes del núcleo instalados.

En caso de ser necesario, se puede modificar más tarde utilizando uno de los otros dos métodos.

Moving to the new kernel folder
Now that the symbolic link has been modified, change the working directory to the new kernel folder.

Copy the previous kernel configuration
Se necesita copiar la configuración del núcleo antiguo al nuevo. Se puede encontrar en varios sitios:


 * En el sistema de ficheros procfs si la opción del núcleo Enable access to .config through /proc/config.gz se activó en el núcleo actual:


 * Desde el núcleo anterior. Esto funciona únicamente cuando el antiguo núcleo se compiló con CONFIG_IKCONFIG:


 * En el directorio si la configuración se instaló allí:


 * En el directorio del núcleo que está corriendo actualmente:


 * En el directorio, si se ha definido  en  y se utilizó previamente:

Configure el nuevo núcleo
Para utilizar la configuración del núcleo antiguo en el nuevo nucleo, se necesita convertir. La conversión se puede realizar bien usando o. Utilice una u otra pero no ambas.

make silentoldconfig
La siguiente configuración es igual que la configuración basada en texto con. Para nuevas opciones de configuración, se pregunta al usuario para que decida la opción. Por ejemplo:

La cadena (NEW) al final de la línea, marca esta opción como nueva. A la izquierda de la cadena entre corchetes se muestran las posibles respuestas: Yes (Sí), no (No), module (Módulo) o ? para mostrar la ayuda. La respuesta recomendada (esto es, la respuesta por defecto) se muestra en mayúsculas (en este caso: Y). La ayuda describe la opción o el controlador.

Lamentablemente, no muestra, al lado de la ayuda, más información de cada opción, como el contexto, de modo que a veces es difícil elegir la respuesta adecuada. En este caso, la mejor forma de proceder es recordar el nombre de la opción y revisarla más tarde a través de alguna de las herramientas gráficas de configuración del núcleo.

make olddefconfig
Si se desea ajustar todas la opciones nuevas de configuración a sus valores recomendados (esto es, por defecto) utilizar :

make help
Utilizar para ver otros métodos de conversión que están disponibles:

Observing the difference
A diff tool can be used to compare the old and new files to see what options have been added:

And which have been removed:

Alternatively, the kernel provides a script to cleanly compare two config files even if the options have moved in the file itself:

make menuconfig
The options can then be researched and changed if necessary by running:

The menuconfig target is helpful because it safely handles kernel symbol dependency resolution.

Construcción
Para realizar este paso, siga lo indicado en el artículo de configuración manual.

Automated build and installation
It is possible to automatically build and install the newly emerged kernel using Portage hooks. While other approaches are also possible, the following is based on genkernel and gentoo-sources package. It requires the following prerequisites:


 * 1)  is able to build and install the kernel to which the  symlink points into   and the bootloader.
 * 2) The   use flag is set for the kernel ebuild.

If those are fulfilled, simply install a  Portage hook as shown below.

Reinstalar módulos externos del núcleo
Cualquier módulo externo del núcleo como los módulos binarios del núcleo, necesitan reconstruirse cada vez que se actualiza el núcleo. Si todavía no ha construido su núcleo deberá prepararse en primer lugar para la construcción de los módulos externos del núcleo:

Los paquetes que contienen módulos se pueden reconstruir utilizando el conjunto :

Resolver problemas en la construcción
Cuando tenga problemas mientras está reconstruyendo el núcleo actual, podría ser de utilidad sanear los ficheros fuente del núcleo. Asegúrese de hacer una copia de respaldo del fichero ya que esta operación lo eliminará. Asegúrese de no utilizar los sufijos o  como indicadores de copia de respaldo ya que  también los eliminará.

Update the bootloader
The upgraded and built kernel needs to be set up and eventually a bootloader or boot item updated, see Kernel/Configuration. Users of Grub can use the method below, users of other bootloaders must consult the handbook.

After making sure partition is mounted,

Using grub-mkconfig
The following command can be executed for updating grub's configuration file:

Using systemd-boot-gen to update systemd-boot UEFI configuration
Manual installation of :

Copy the kernel parameters to, the file should contain:

And run it using root privileges:

This will generate the boot configuration in for all the available  that have a matching.

Keeping the old kernel sources
Kernel sources will eventually become unsupported. Some packages require the current sources to build. To protect the new sources from being removed by a depclean, it can be added to the world file (/var/lib/portage/world) by:

Old sources that are no longer supported can be removed from the world file by:

Eliminar núcleos antiguos
Lea el artículo sobre la eliminación del núcleo.

Recursos externos

 * Registro de cambios del núcleo con algunas explicaciones de nuevas características