Utiliser Gentoo et Calculate Linux

Mise à jour du noyau sous Gentoo

Table des matières

logo_gentoo



Introduction



Voici un bref article qui récapitule comment mettre à jour son noyau sous Gentoo en récupérant l'ancienne config.

Mise à jour



Installer les nouvelles sources



Lors de la mise à jour du système faite avec cette commande :
Code BASH :
emerge -aquvDN --with-bdeps=y @world


Le noyau peut être mis à jour :
Code TEXT :
[ebuild  NS   ] sys-kernel/gentoo-sources-4.4.21 [4.4.6] USE="-build -experimental -symlink" 


Dans cet exemple, je passe d'un noyau 4.4.6 vers 4.4.21.

Modifier le lien symbolique pour la compilation des modules



Une fois les sources mises à jour, on modifie le lien symbolique /usr/src/linux via la commande eselect :
Code BASH :
eselect kernel list


Code TEXT :
Available kernel symlink targets:
  [1]   linux-4.4.6-gentoo *
  [2]   linux-4.4.21-gentoo


Code BASH :
eselect kernel set 2


Recopier l'ancienne config



Manuellement



Ensuite, on copie l'ancienne config dans les nouvelles sources. 3 possibilités :
Via le config.gz dans /proc (prend la config du kernel en fonctionnement) :
Code BASH :
zcat /proc/config.gz > /usr/src/linux/.config


Via le fichier de config dans /boot :
Code BASH :
cp /boot/config-4.4.6-gentoo-adrien  /usr/src/linux/.config


Ou via l'ancien fichier .config dans l'ancien dossier de sources :
Code BASH :
cp  /usr/src/linux-4.4.6-gentoo/.config  /usr/src/linux/.config


Ensuite, on lance un petit coup l'outil menuconfig pour initialiser les éventuelles nouvelles options à une valeur par défaut :
Code BASH :
make menuconfig


Automatiquement



On peut copier la config du noyau actuellement en cours via :
Code BASH :
make olddefconfig


On remarquera que la commande make trouve le bon fichier et va remplir les choix par défaut des nouvelles options parues depuis votre noyau actuel :
Code TEXT :
# using defaults found in /boot/config-4.4.6-gentoo-adrien
#
#
# configuration written to .config
#


Compiler



On lance la compilation (avec -jX où X = nb proc) :
Code BASH :
make -j12 


On installe les modules :
Code BASH :
make modules_install


Puis on installe le noyau :
Code BASH :
make install


Générer Initramfs



Si on utilise un initramfs :
Code BASH :
 dracut --kver $version


Exemple avec le noyau et le module LVM :
Code BASH :
dracut --kver 4.19.86-gentoo-adrien


Mise à jour de GRUB



Et on met à jour GRUB :
Code BASH :
grub-mkconfig -o /boot/grub/grub.cfg


SI on a des paquets qui installent des modules noyau (nvidia-drivers virtualbox-modules), recompiler ces modules avec les nouvelles sources :
Code BASH :
emerge @module-rebuild


Conserver un ancien kernel



Par défaut, si on ne fait rien, les sources (sauf les fichiers modifiés lors de la compilation) seront supprimées avec la commande emerge -ac. Les fichiers du noyau dans /boot, ainsi que les modules seront conservés sur le système.

Si on souhaite conserver les sources de ce noyau, on peut les ajouter manuellement au world grâce au numéro de slot du paquet gentoo-sources.

Exemple avec le noyau 4.4.6 :
Code BASH :
emerge --noreplace gentoo-sources:4.4.6


Supprimer des vieux kernels



Si on veut faire un peu de ménage, on peut supprimer des vieux kernels. Exemple ici avec le 4.4.6.

On supprime si ce n'est pas fait le noyau via emerge avec son numéro de slot :
Code BASH :
emerge -C gentoo-sources:4.4.6


On supprime les résidus des sources :
Code BASH :
rm -rf /usr/src/linux-4.4.6


Les modules :
Code BASH :
rm -rf /lib/modules/4.4.6


Les éléments dans /boot (vmlinuz, System.map, config et si présent initramfs) :
Code BASH :
rm -i /boot/*-4.4.6-*
Cette page a été vue 11242 fois