Noyau/Configuration

From Gentoo Wiki
< Kernel
Jump to:navigation Jump to:search
This page is a translated version of the page Kernel/Configuration and the translation is 79% complete.
Outdated translations are marked like this.

Cet article décrit la configuration manuelle et l'installation du Noyau Linux. Pour une méthode mettant en place les 'configurations par défaut', se référer à l'article genkernel.

Mettre en place le lien symbolique

Le lien symbolique /usr/src/linux devrait toujours pointer sur les sources du noyau en cours d'utilisation. Ceci peut être obtenu de trois manières différentes :

1. Installez les sources du noyau avec l'option de la variable USE symlink activée. Ceci fera pointer le lien /usr/src/linux sur vos sources du noyau nouvellement installées. Si nécessaire, il peut encore être modifié avec l'une des deux méthodes suivantes :

2. Mettre en place le lien symbolique avec l'outil eselect
root #eselect kernel list
Available kernel symlink targets:
[1] linux-3.3.8-gentoo
[2] linux-3.4.9-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 2

3. Mettre en place le lien symbolique à la main :

root #ln -sf /usr/src/linux-3.4.9-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-3.4.9-gentoo

Configuration

Outils

Le noyau dispose de plusieurs outils pour sa configuration.

Command Description
make config Text based configuration. The options are prompted one after another. All options need to be answered, and out-of-order access to former options is not possible.
make menuconfig An ncurses-based pseudo-graphical menu (only text input). Navigate through the menu to modify the desired options.
make defconfig Generates a new config with default from the ARCH supplied defconfig file. Use this option to get back the default configuration file that came with the sources.
make nconfig Pseudo-graphical menu based on ncurses. Requires sys-libs/ncurses to be installed.
make xconfig Graphical menu using Qt5. Requires dev-qt/qtwidgets to be installed.
make gconfig Graphical menu using GTK. Requires x11-libs/gtk+, dev-libs/glib, and gnome-base/libglade to be installed.
make oldconfig Review changes between kernel versions and update to create a new .config for the kernel.
make olddefconfig Generates a new configuration with default values from the ARCH supplied defconfig file while, at the same time, maintaining all the previous options set in the .config file found at /usr/src/linux/.config. This is a fast and safe method for upgrading a config file that has all the configuration options it needs for hardware support while at the same time gaining bug fixes and security patches.
make allyesconfig Enables all configuration options in the kernel. It will set all kernel options to *. Make sure a backup of the current kernel configuration is acquired before using this option!
make allmodconfig Enables all modules in kernel

Il existe aussi plusieurs scripts pour créer diverses configuration par défaut. Ceux-ci peuvent réduire le temps de configuration avancée. Lancez la commande suivante pour une liste complète de cibles :

root #make help

Le 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 menuconfig

Utilisation

Dans le menu présenté, la barre bleue indique la position du curseur. À l'aide des touches fléchées et vous pouvez changer la position du curseur. Les touches fléchées et vous permettent de parcourir la barre de menu en bas et définir ce qui se passe quand vous frappez la touche Enter. Dans la barre de menu inférieure, Select commute vers un sous-menu. Les entrées du menu se terminant par « --> », alors que Exit permet de quitter un sous-menu. En alternative, vous pouvez faire deux fois Esc pour quitter le programme.

Pressing an associated letter key A-Z will move the position of the cursor lines that have characters in bold. The Y, M, N keys are excluded from navigation in this way; they are sanctified for other purposes. If a line begins with a Y, M, or N, the next character will be bold and capable of being jumped to. For example, relative to the cursor's current position, if the next line reads "Network Device Support --->" pressing the E key will move the cursor to that line.

Les symboles suivant peuvent apparaître en amont des lignes dans les menus :

Symbol(s) Description
[ ], [*] Options in square brackets can be activated or deactivated. The asterisk marks the menu entry as activated. The value can be changed with the space key. It is also possible to press Y key (Yes) to activate or N key (No) to deactivate the selected entry.


If the option is activated, the selected feature/driver will be built into the kernel and will always be available at boot time.

< >, <M>, <*> Options in angle brackets can be activated or deactivated, but also activated as module (indicated by a M). The values can be modified by pressing Y/N keys as before or by pressing the M key to activate the feature/driver as a module.


See the Kernel Modules article for differentiation.

{M}, {*} Options in curly brackets can be activated or activated as module but not be deactivated. This happens because another feature/driver is dependent on this feature.
-M-, -*- Options between hyphens are activated in the shown way by another feature/driver. There is no choice.

De plus, certaines entrées du menu possèdent une marque à la fin :

Tag Description
(NEW) This driver is new in the kernel and is maybe not stable enough.
(EXPERIMENTAL) This driver is experimental and most likely not stable enough.
(DEPRECATED) This driver is deprecated and not needed for most systems.
(OBSOLETE) This driver is obsolete and should not be activated.

La plupart des options possèdent une description, que l'on peut visualiser en pressant la touche H ou en choisissant Help dans la barre de menu.

Sélection du pilote

Reportez-vous à l'article hardware detection et aux articles de la catégorie Hardware.

Rechercher des modules

Within menuconfig, use the / key to search modules by name.

As shown below, the search result will show numbers in front of the matches. Pressing 1 in the example below would make menuconfig jump straight to the option Bluetooth device drivers in the menu structure.

KERNEL Example output after searching for HCIBTUSB
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 existe une option de configuration du noyau appelée CONFIG_GENTOO_LINUX qui est seulement présente dans sys-kernel/gentoo-sources et dans d'autres noyaux maintenus (Kernel Project). Elle ne fait rien par elle-même, mais définit un jeu d'options de configuration nécessaires pour des installations typiques.

Ce paramètre sélectionne automatiquement la prise en charge 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, lisez l'aide disponible dans la configuration du noyau telle que décrite plus haut dans ce guide.

Compilation/construction

Une fois la compilation accomplie, compilez le noyau :

root #make

Pour les processeurs à plusieurs cœurs, faites travailler tous les cœurs. Ajoutez l'option -j(<NOMBRE_DE_CŒURS> + 1). Par exemple, un processeur dual core contient deux cœurs logique plus un (2 + 1) :

user $nproc
3

}}

root #make -j3

Un système à quatre coeurs contient quatre coeurs logiques plus un (4 + 1) :

root #make -j5

Installation

Si des pilotes sont activés en tant que modules, ils doivent être installés :

root #make modules_install

Les modules seront copiés dans un sous-répertoire de /lib/modules.

Pour installer le noyau réel :

root #make install

Cette commande exécute /sbin/installkernel, qui fait partie du paquet sys-apps/debianutils. « Le nouveau noyau est installé dans /boot//vmlinuz-{version}. Si un lien symbolique /boot/vmlinuz existe déjà, il est rafraîchi en faisant un lien de /boot/vmlinuz vers le nouveau noyau, et le noyau précédemment installé est disponible en tant que /boot/vmlinuz.old. » (installkernel man page). C'est la même chose pour les fichiers config et System.map. Ces liens symboliques sont pratiques, car ils pointent toujours sur le noyau le plus récent sans changer le chemin vers le fichier (par exemple, ils peuvent être utilisés dans la configuration du chargeur de démarrage).

Chargeur de démarrage

Changez la configuration du chargeur de démarrage du système pour charger le noyau au démarrage du système.

Pour finir, redémarrez votre système avec le nouveau noyau.

Comparer la configuration actuelle du noyau avec la configuration par défaut

Use the following procedure to get an overview of the kernel configuration settings that deviate from the default. Keep in mind that the modification of one configuration setting may alter additional configuration settings.

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

The search function in make menuconfig can be used to look up the symbols and their interpretations. When you're done, clean up:

root #cd /usr/src/
root #rm .config.working .config.default .config.diff

Voir aussi

Ressources externes