Noyau/Configuration
Cet article décrit la configuration manuelle et la mise en place du noyau Linux.
Une alternative à la configuration manuelle du noyau générique et qui utilise des paramètres qui sont sûrs par défaut sont les noyaux de distributions (NdT: en anglais distributions kernels).
Création du lien symbolique
Le lien symbolique /usr/src/linux (NdT: symlink) devrait toujours pointer sur les sources du noyau en cours d'utilisation. Ceci peut être obtenu de l’une des trois façons suivantes :
1. Installer les sources du noyau avec l’USE flag actif. Cela pointera /usr/src/linux vers les nouvelles sources du noyau installé. Si nécessaire, cela pourra être modifié plus tard avec les deux méthodes qui suivent :
2. Mise en place du lien symbolique avec l’outil eselect :
root #eselect kernel listAvailable kernel symlink targets: [1] linux-6.12.63-gentoo * [2] linux-6.12.58-gentoo
Ceci affiche les sources du noyau disponibles. L'astérisque indique les sources sélectionnées. Pour les changer, par exemple pour choisir celles correspondant à la deuxième entrée, faites :
root #eselect kernel set 23. Mettre en place le lien symbolique à la main :
root #ln -sf /usr/src/linux-6.12.63-gentoo /usr/src/linux root #ls -l /usr/src/linux lrwxrwxrwx 1 root root 11 Aug 29 22:10 /usr/src/linux -> /usr/src/linux-6.12.63-gentoo
Configuration
Outils
Le noyau offre différents outils destinés aux utilisateurs avec lequel le configurer. Le tableau suivant est un extrait des commandes communes utilisés pour la configuration. Voir la documentation en upstream pour la liste complète.
| Command | Description |
|---|---|
| make config | Configuration textuelle. Les options sont affichées l’une après l’autre. Toutes les options ont besoins d’être renseignée, le retour en arrière (modification(s)) est impossible. |
| make menuconfig | Un menu pseudo-graphique basé sur ncurses (entrée texte uniquement). Naviguer à travers le menu pour modifier les options désirées. |
| make defconfig | Génère une nouvelle configuration avec les fichiers defconfig par défauts de l’architecture (ARCH). Utiliser cette option pour retourner à la configuration par défaut qui proviennent des sources. |
| make nconfig | Menu pseudo-graphique basé sur ncurses. Requiert l’installation de sys-libs/ncurses . |
| make xconfig | Menu graphique utilisant Qt5. Requiert l’installation de dev-qt/qtwidgets . |
| make gconfig | Menu graphique utilisant GTK. Requiert l’installation de x11-libs/gtk+ , dev-libs/glib et gnome-base/libglade . |
| make oldconfig | Rapporte les différences entre les versions du noyau pour créer un nouveau .config pour celui-ci. |
| make olddefconfig | Génère une nouvelle configuration avec les valeurs par défaut issues du fichier defconfig fourni pour l'architecture (ARCH), tout en conservant l'ensemble des options précédentes situées dans le fichier .config dans /usr/src/linux/.config. C’est une méthode rapide et sûre pour mettre à jour un fichier config qui a toutes les options de configurations nécessaires pour le support matériel tout en bénéficiant des résolutions de bugs et de patches de sécurité. |
| make localmodconfig | Créer un fichier config basé sur la configuration actuelle et les modules présentement chargés, consultable via la commande lsmod. |
| make allyesconfig | Active toutes les options configurables du noyau. Cela passera toutes les options du noyau à *. S’assurer d’avoir une sauvegarde de la configuration actuelle du noyau avant d’utiliser cette option !
|
| make allmodconfig | Active tous les modules du noyau. À noter que cela occupera un peu (plus) d’espace disque. |
Il existe aussi plusieurs scripts pour créer diverses configuration par défaut. Ceux-ci peuvent rendre le temps passé dessus moins important. Exécuter la commande suivante pour une liste complète de cibles :
root #make helpLe reste de cet article décrira la configuration en utilisant make menuconfig, mais la procédure est similaire pour les autres outils de construction du noyau.
root #cd /usr/src/linux
root #make menuconfigUtilisation
Dans le menu affiché la barre bleu indique la position du curseur. Les touches directionnelles ↑ et ↓ modifient la position du curseur. Les touches directionnelles ← et → traversent la barre de menu dans la partie inférieur et définie ce qui se passera quand la touche Enter est pressée. Pour la barre de menu inférieur, Select change la sélection pour un sous-menu se terminant avec ---> tandis que Exit quitte le sous-menu. En tant qu’alternative, la touche Esc peut être pressée pour quitter le sous-menu, boîte de dialogue ou l’application entière.
Presser une lettre associée pour les touches alphabétiques A-Z déplacera la position du curseur à la ligne qui a ce caractères en gras. Les touches Y, M et N sont exclus pour cette méthode de navigation dans le menu; elles sont réservées à d’autres fins. Si une ligne commence avec Y, M ou N, le prochain caractère sera utilisé pour le raccourcie. Par exemple, relativement à la position courante du curseur, si la prochaine ligne est "Network Device Support --->", presser la touche E déplacera le curseur à cette ligne.
Les symboles suivant peuvent apparaître en amont des lignes dans les menus :
| Symbol(s) | Description |
|---|---|
[ ], [*]
|
Les options entre crochets peuvent être activés ou désactivés. L’astérisque indique que l’entrée du menu est activé. La valeur peut être modifiée avec la touche space. Il est aussi possible de presser la touche Y (Yes, ou oui en français) pour l’activer ou la touche N (No, ou non en français) pour désactiver l’entrée sélectionnée.
|
< >, <M>, <*>
|
Les options entre chevrons peuvent êtres activées ou désactivées, mais tout aussi bien activé en tant que module (indiqué par un M). Ces valeurs peuvent être modifiées en pressant les touches N/Y comme précédemment ou via la touche M pour activer la fonctionnalité / pilote en tant que module.
|
{M}, {*}
|
Les options entre accolades peuvent être activées ou activées en tant que module, mais sans pouvoir être désactivée. Cela arrive car une autre fonctionnalité / pilote dépend de celle-ci. |
-M-, -*-
|
Les options entre traits d’union peuvent être activées de la manière indiquée par une autre fonctionnalité ou un autre pilote. Il n’y a pas d’autres choix. |
De plus certaines entrées du menu possèdent une étiquette à la fin :
| Tag | Description |
|---|---|
(NEW)
|
Ce pilote est nouveau dans le noyau et est peut-être insuffisamment stable. |
(EXPERIMENTAL)
|
Ce pilote est expérimentale et est certainement insuffisamment stable. |
(DEPRECATED)
|
Ce pilote est déprécié et inutile pour la plupart des systèmes. |
(OBSOLETE)
|
Ce pilote est obsolète et ne devrait pas être activé. |
La plupart des options possèdent une description, que l'on peut visualiser en pressant la touche H ou en choisissant Help (Aide en français) dans la barre de menu.
Sélection du pilote
Voir l’article détection matériel et les articles dans la catégorie matériel.
Rechercher des modules
Au sein de make menuconfig, utiliser la touche / pour chercher les modules et options de configurations par leur nom.
Comme visible ci-dessous, le résultat de recherche affichera un nombre en face des résultats. Presser la touche 1 dans l’exemple ci-dessous fera sauter make menuconfig directement à l’option Bluetooth device drivers dans la structure du menu.
Symbol: BT_HCIBTUSB [=m] Type : tristate Prompt: HCI USB driver Location: -> Networking support (NET [=y]) -> Bluetooth subsystem support (BT [=y]) (1) -> Bluetooth device drivers Defined at drivers/bluetooth/Kconfig:5 Depends on: NET [=y] && BT [=y] && USB [=m]
Activer la configuration ordinaire de Gentoo Linux
Il y a une option de configuration du noyau nommée CONFIG_GENTOO_LINUX et est seulement présente dans sys-kernel/gentoo-sources et d’autres Projets du Noyau maintenues. Cela ne fait rien tout seul, mais met en place les options requises pour les installations typiques.
Ce paramètre sélectionne automatiquement le support de tmpfs et devtmpfs qui sont nécessaires pour gérer /dev sur Gentoo Linux, mais pourrait être étendu dans le futur pour activer d'autres paramètres obligatoires dans un système Gentoo Linux. Pour une plus ample information, lire l'aide disponible dans la configuration du noyau telle que décrite précédemment dans ce guide.
Kbuild
Soyez très prudent concernant la modification des variables d’environnement car cela peut casser le noyau de façon inattendue. NE PAS MÉLANGER les GNU binutils et les LLVM binutils!!! Par exemple make CC=gcc LD=ld.lld AR=llvm-ar ne fonctionnera pas parce que les ar et ld de LLVM ne sont pas compatibles avec GCC.
Le système Kernel build (NdT: Construction du noyau) peut être utilisé pour modifier comment le noyau peut être bâti de manière plus avancé qu’avec make *config, de manière similaire à GNU Make.
root #make LLVM=1 KCFLAGS="-O3 -march=native -pipe"En addition d’autres variables sont expliquées dans Clang/LLVM.
Construction
Après que la configuration ait été accomplie avec succès, compiler le noyau :
root #make -j$(nproc) -j$(nproc) demande à make d’utiliser tout les cœurs du CPU pour augmenter la vitesse de compilation.
Installation
Si des pilotes sont activés en tant que modules, ils doivent être installés :
root #make modules_installLes modules seront copiés dans un sous-répertoire de /lib/modules par défaut, mais peuvent être changés en utilisant la variable d’environnement MODLIB .
Si l’USE flag dracut a été utilisé sur sys-kernel/installkernel pour automatiser la génération de l’initramfs durant l’exécution de make install, il est recommandé de lancer
root #emerge --ask @module-rebuildPour installer le noyau actuel :
root #make installCette commande exécute /sbin/installkernel, qui fait partie du paquet sys-kernel/installkernel . Voir la page installkernel pour plus de détails sur comment cela peut être configuré.
Chargeur d’amorçage
Changer la configuration du chargeur d’amorçage du système pour charger le noyau à l’amorçage de celui-ci.
Lorsque que l’étape du chargeur d’amorçage est terminé, redémarrer le système avec le nouveau noyau.
Comparer la configuration actuelle du noyau avec la configuration par défaut
Utiliser la procédure suivante pour obtenir un aperçu de la configuration du noyau qui dévie de celle par défaut. Gardez à l’esprit que la modification d’un paramètre peut en altérer d’autres en conséquence.
root #cd /usr/src/linux
root #cp -p .config ../.config.working
root #make defconfig
root #mv .config ../.config.default
root #cp -p ../.config.working .config
root #cd ..
root #/usr/src/linux/scripts/diffconfig .config.working .config.default > .config.diff
La fonction chercher dans make menuconfig peut être utilisé pour trouver les symboles et leur interpretations. Quand c’est finit, nettoyer :
root #cd /usr/src/
root #rm .config.working .config.default .config.diff
Thématiser Menuconfig
Il est possible de sélectionner différents schémas de couleurs pour menuconfig en utilisant la variable MENUCONFIG_COLOR. Pour sélectionner un thème utiliser :
root #make MENUCONFIG_COLOR=<theme> menuconfigLes thèmes disponibles sont les suivants :
| Theme | Description |
|---|---|
| mono | Des couleurs adaptées à un affichage monochrome |
| blackbg | Un schéma de couleur avec un fond noir |
| classic | Un schéma de couleur avec un fond bleu. Le look classique. |
| bluetitle | La version classique adaptée aux affichages LCD. (Par défaut) |
Voir aussi
- Kernel — le cœur du système d'exploitation
- Kernel/Gentoo Kernel Configuration Guide
- Project:Distribution Kernel — maintains sys-kernel/*-kernel packages.
Ressources externes
- Building the kernel as root can be harmful (NdT : Construite le kernel en tant que root peut faire du mal)
- Modprobed-db - logs every module that is modprobed to be used to make a custom config (NdT : journaliser tous les modules qui sont modprobé pour être utilisé dans la création de configuration personnalisée)