Les deux révisions précédentesRévision précédente | |
issue90:labo_linux [2015/02/21 16:20] – [22] auntiee | issue90:labo_linux [2015/02/21 23:44] (Version actuelle) – andre_domenech |
---|
LE SYSTÈME DE CONFIGURATION DU NOYAU | LE SYSTÈME DE CONFIGURATION DU NOYAU |
| |
Si nous jetons un coup d’œil aux répertoires du code source et aux fichiers qu'ils contiennent, nous trouverons une série de fichiers dont nous pouvons comprendre rapidement le but. Les fichiers avec l'extension .c sont clairement des fichiers de code source dans le langage de programmation C, et ceux avec l'extension .h sont des en-tête de fichiers pour le même code. Dans la partie 2 de cette série, nous avons également appris que le Makefile que nous trouvons dans chaque répertoire et sous-répertoire est un fichier qui donne au compilateur des instructions sur la façon de compiler le code source : quels fichiers sources compiler, comment nommer les fichiers de sortie, et quels paramètres du compilateur utiliser. | Si nous jetons un coup d’œil aux répertoires du code source et aux fichiers qu'ils contiennent, nous trouverons une série de fichiers dont nous pouvons comprendre rapidement le but. Les fichiers avec l'extension .c sont clairement des fichiers de code source dans le langage de programmation C, et ceux avec l'extension .h sont des en-tête de fichiers pour le même code. Dans la partie 2 de cette série, nous avons également appris que le Makefile que nous trouvons dans chaque répertoire et sous-répertoire est un fichier qui donne au compilateur des instructions sur la façon de compiler le code source : quels fichiers sources compiler, comment nommer les fichiers de sortie et quels paramètres du compilateur utiliser. |
| |
Lorsque nous parcourons chaque Makefile, nous pouvons voir que le fichier dans chaque répertoire se réfère uniquement au code source placé dans ce répertoire. Cela signifie qu'il y a une séparation entre les différentes parties de l'arborescence des sources du noyau : chaque répertoire ou sous-répertoire peut être compilé indépendamment. Quand nous arriverons à la notion de modules du noyau, nous verrons que cela signifie que nous pourrons compiler un seul module à la fois, sans avoir à compiler le noyau entier si ce n'est pas nécessaire. | Lorsque nous parcourons chaque Makefile, nous pouvons voir que le fichier dans chaque répertoire se réfère uniquement au code source placé dans ce répertoire. Cela signifie qu'il y a une séparation entre les différentes parties de l'arborescence des sources du noyau : chaque répertoire ou sous-répertoire peut être compilé indépendamment. Quand nous arriverons à la notion de modules du noyau, nous verrons que cela signifie que nous pourrons compiler un seul module à la fois, sans avoir à compiler le noyau entier si ce n'est pas nécessaire. |
default n | default n |
help | help |
| |
Cette option ajoute un paramètre de noyau « 'selinux' », qui permet de désactiver SELinux au démarrage. Si cette option est sélectionnée, la fonctionnalité SELinux peut être désactivée avec selinux=0 sur la ligne de commande du noyau. Le but de cette option est de permettre de distribuer une seule image du noyau avec SELinux intégré, mais pas nécessairement activé. | Cette option ajoute un paramètre de noyau « 'selinux' », qui permet de désactiver SELinux au démarrage. Si cette option est sélectionnée, la fonctionnalité SELinux peut être désactivée avec selinux=0 sur la ligne de commande du noyau. Le but de cette option est de permettre de distribuer une seule image du noyau avec SELinux intégré, mais pas nécessairement activé. |
| |
• « M » pour compiler le module comme un fichier chargeable, qui ne sera pas chargé dans la RAM au démarrage, mais seulement si c'est nécessaire pendant le fonctionnement du système. | • « M » pour compiler le module comme un fichier chargeable, qui ne sera pas chargé dans la RAM au démarrage, mais seulement si c'est nécessaire pendant le fonctionnement du système. |
| |
Le deuxième paragraphe dépend de la présence de ce qui précède : s'il est présent, l'utilisateur peut configurer le support pour les tunnels RFC2473 soit sous forme de module soit intégré. | Le deuxième paragraphe dépend de la présence de ce qui précède : s'il est présent, l'utilisateur peut configurer le support pour les tunnels RFC2473 soit sous forme de module, soit intégré. |
| |
Maintenant, nous avons besoin d'accéder au script de configuration lui-même. Cependant, avant de le faire, il est habituellement recommandé de commencer par nettoyer toute configuration restante. Pour ce faire, lancez : | Maintenant, nous avons besoin d'accéder au script de configuration lui-même. Cependant, avant de le faire, il est habituellement recommandé de commencer par nettoyer toute configuration restante. Pour ce faire, lancez : |
largely because I am comfortable with this lightweight environment that I have been using since way back when (Slackware days, to be precise). This is what you should see something like the image shown below.** | largely because I am comfortable with this lightweight environment that I have been using since way back when (Slackware days, to be precise). This is what you should see something like the image shown below.** |
| |
Comme indiqué dans la partie 2, nous avons à notre disposition au moins quatre scripts de configuration différents. Deux sont basés sur des environnements textuels : « make config » et « make menuconfig ». Deux autres sont graphiques: « make xconfig » basé sur la boîte à outils Qt et « make gconfig » basé sur les bibliothèques Gtk. Faites votre choix - au bout du compte, tous ces scripts s'appuient sur les mêmes fichiers Kconfig. Dans mon cas, j'utiliserai | Comme indiqué dans la partie 2, nous avons à notre disposition au moins quatre scripts de configuration différents. Deux sont basés sur des environnements textuels : « make config » et « make menuconfig ». Deux autres sont graphiques : « make xconfig » basé sur la boîte à outils Qt et « make gconfig » basé sur les bibliothèques Gtk. Faites votre choix - au bout du compte, tous ces scripts s'appuient sur les mêmes fichiers Kconfig. Dans mon cas, j'utiliserai : |
| |
$ make menuconfig | $ make menuconfig |
système 13m31.106s | système 13m31.106s |
| |
Si nous faisons un changement dans la configuration du noyau, comme par exemple modifier la chaîne de version arbitraire comme ci-dessus, l'exécution d'un nouveau processus de compilation devra compiler uniquement les parties qui ont changé. Si notre modification n'affecte que le noyau lui-même, tous les modules devront être vérifiés, mais pas compilés. De nombreux sous-systèmes du noyau lui-même n'auront pas besoin d'être recompilés - des répertoires entiers du code source seront laissés inchangés. Le temps de compilation sera considérablement réduit, par exemple : | Si nous faisons un changement dans la configuration du noyau, comme par exemple modifier la chaîne de version arbitraire comme ci-dessus, l'exécution d'un nouveau processus de compilation devra compiler uniquement les parties qui ont changé. Si notre modification n'affecte que le noyau lui-même, tous les modules devront être vérifiés, mais pas compilés. De nombreux sous-systèmes du noyau lui-même n'auront pas besoin d'être recompilés, des répertoires entiers du code source seront laissés inchangés. Le temps de compilation sera considérablement réduit, par exemple : |
| |
réel 5m51.928s | réel 5m51.928s |
• initrd.img-3.13.11.2: the compressed file system (with modules generated from /lib) needed to perform initial system boot.** | • initrd.img-3.13.11.2: the compressed file system (with modules generated from /lib) needed to perform initial system boot.** |
| |
Heureusement, il y a une cible spécifique disponible pour que make fasse tout cela automatiquement. Puisque nous ferons des changements dans la configuration du système, nous devrons le faire avec des privilèges d'administrateur - donc la commande « sudo ». C'est aussi le moment où nous pouvons sérieusement casser des choses dans notre système, alors procédez avec prudence et uniquement lorsque vous êtes sûr que les étapes précédentes se sont déroulées correctement. Ensuite, pour installer les modules dans /lib (étape 1 ci-dessus), saisissez : | Heureusement, il y a une cible spécifique disponible pour que make fasse tout cela automatiquement. Puisque nous ferons des changements dans la configuration du système, nous devrons le faire avec des privilèges d'administrateur, donc la commande « sudo ». C'est aussi le moment où nous pouvons sérieusement casser des choses dans notre système, alors procédez avec prudence et uniquement lorsque vous êtes sûr que les étapes précédentes se sont déroulées correctement. Ensuite, pour installer les modules dans /lib (étape 1 ci-dessus), saisissez : |
| |
$ sudo bash | $ sudo bash |