Comment compiler le noyau Linux Vanilla de Source sur Fedora
- 1167
- 348
- Lucas Bernard
Le noyau est le composant le plus important d'un système d'exploitation: entre autres choses, il prend en charge les différents types de matériel et gère les allocations de ressources.
Linux est un noyau monolithique: bien que ses fonctionnalités puissent être incluses statiquement ou construites et chargées comme séparées modules
, Il fonctionne toujours comme une «pièce unique» dans le même espace d'adressage. Dans ce tutoriel, nous verrons comment télécharger, compiler et installer un noyau Linux Vanilla. Les instructions fournies doivent fonctionner sur toutes les distributions Linux, mais ce guide est axé sur la compilation du noyau sur un système Fedora.
Dans ce tutoriel, vous apprendrez:
- Comment configurer, compiler et installer un noyau Linux à la vanille
- Comment emballer le noyau compilé et ses modules
Le menu de configuration basé sur les ncurses pour le noyau Linux
Exigences et conventions logicielles utilisées
Catégorie | Exigences, conventions ou version logicielle utilisée |
---|---|
Système | Feutre |
Logiciel |
|
Autre | Permissions racinaires pour installer les dépendances nécessaires et le noyau compilé |
Conventions | # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier |
Installation des dépendances
Pour pouvoir compiler le noyau Linux à partir de la source, nous devons installer certains packages dans notre système:
$ sudo dnf installer gcc flex faire du bison openssl-devel elfutils-libelf-devel
Ceux ci-dessus ne sont que les packages «noyau» dont nous avons besoin. Pour invoquer des cibles de configuration spécifiques, certains packages supplémentaires doivent être installés: le ncurses-devel
et QT
Les packages, par exemple, sont nécessaires pour configurer respectivement l'utilisation du noyau, de l'interface graphique basée sur les NCurses et QT, tandis que la rpm-build
un package est nécessaire pour construire un régime contenant le noyau compilé.
Télécharger la source Tarball
En première chose, nous devons obtenir le tarball contenant les dernières sources de noyau Linux stables. Nous pouvons télécharger et extraire le tarball avec une seule commande:
$ curl https: // cdn.noyau.org / pub / linux / noyau / v5.x / linux-5.1.5.le goudron.XZ | TAR -XJ
À la fin du processus de téléchargement, dans notre répertoire de travail actuel, nous devrions trouver un nouveau le dossier contenant le code source du noyau. Nous devons y entrer, dans ce cas:
$ CD Linux-5.1.5
À ce stade, nous pouvons configurer le noyau. Dans le paragraphe suivant, nous examinerons les cibles de configuration les plus courantes utilisées pour accomplir la tâche.
Configuration du noyau
Il existe différentes façons de configurer le noyau, et ils correspondent à différents cibles de configuration
. Lorsqu'une cible de configuration est invoquée, si un fichier nommé .configurer
contenant une configuration de noyau valide se trouve dans le répertoire des sources, il est utilisé comme point de départ pour la configuration. Cela rend la possibilité de mettre à jour ou de modifier une configuration déjà existante, peut-être celle qui est livrée avec le noyau installé par défaut dans notre distribution (il peut être trouvé à l'intérieur du /botte
Répertoire, nommé d'après le noyau utilisé).
Si le fichier n'est pas trouvé, la configuration commencera à partir de zéro et .configurer
Le fichier sera généré une fois que nous enregistrons notre configuration. Voyons une partie du cibles de configuration
on peut utiliser:
configurer
Si cette cible est invoquée, l'utilisateur est invité à configurer le noyau en répondant à une série de questions, de la manière suivante:
* * Linux / x86 5.1.5 Configuration du noyau * * * Compiler: GCC (GCC) 9.1.1 20190503 (Red Hat 9.1.1-1) * * * Configuration générale * Compiler également les pilotes qui ne se chargeront pas (compile_test) [n / y /?]]
menuconfig
Cette cible utilise une belle et conviviale ncurses
Interface pour nous permettre de générer ou de mettre à jour la configuration du noyau. Comme dit précédemment, pour pouvoir utiliser cette interface ncurses-devel
Le package doit être installé dans le système.
La configuration basée sur les ncurses
En utilisant cette interface, nous pouvons appuyer sur le H
Clé lors de la mise en évidence d'une option spécifique pour obtenir des informations et des suggestions à ce sujet:
L'obtention d'informations sur une option n'est qu'une question de sélection et appuyez sur la touche H en appuyant sur
Y
sur une option l'inclura statiquement dans le noyau (l'option sera marquée avec un *
), pressant N
l'excluera et appuyera sur le M
La clé l'inclura en tant que module (l'option sera marquée d'un M
). Pour rechercher une option spécifique, nous pouvons utiliser le / /
clé et fournissez la chaîne ou l'expulsion pour rechercher: L'interface ncurses pour rechercher une option spécifique
xconfig
En invoquant cette cible de marque, il est possible de configurer le noyau via une interface graphique basée sur le QT
Toolkit si le QT
le package est installé dans le système.
L'interface de configuration basée sur QT
OldConfig
Cette cible est utile lorsque nous voulons utiliser une configuration du noyau déjà existante comme point de départ. Lorsque nous invoquons cette cible, nous sommes invités à ne configurer que les fonctionnalités disponibles dans le noyau que nous configurons mais non incluses dans le fichier de configuration d'origine.
localmodconfig
L'invocation de cette cible générera ou mettra à jour un nouveau fichier de configuration du noyau sur la base des modules actuellement chargés sur le système. Seuls eux seront inclus dans la configuration, les autres seront désactivés. Cela peut être utilisé comme un moyen rapide d'obtenir un noyau sur mesure basé sur l'état actuel d'une machine.
locyesconfig
Cette cible fonctionne de manière similaire à localmodconfig
Avec une grande différence: les fonctionnalités fournies par les modules actuellement chargés dans le système seront statiques incluses dans le noyau.
Compilation et installation du noyau
Une fois que nous avons terminé la configuration du noyau, nous pouvons compiler le code source. Tout ce que nous avons à faire est de courir:
$ faire
L'opération peut prendre un certain temps, selon les fonctionnalités que nous avons décidé d'inclure dans le noyau. Pour accélérer le processus que nous pouvons exécuter faire
avec le -J
Option et spécifiez le nombre de travaux à exécuter simultanément: une valeur souvent utilisée pour cette option est le nombre de cœurs de processeur logiques + 1. Sur une machine avec 4 cœurs logiques, nous courions donc:
$ make -j5
Une fois compilé, pour installer le noyau, nous pouvons simplement exécuter:
$ sudo faire l'installation
Les fichiers de noyau du noyau seront copiés à l'intérieur du /botte
annuaire. Pour compiler et installer les modules du noyau, nous pouvons plutôt s'exécuter:
$ sudo faire modules_install
Les modules de noyau seront installés dans un répertoire sous / lib / modules
Nommé d'après la version du noyau. Enfin, pour que le nouveau noyau soit disponible et sélectionnable au démarrage, nous devons régénérer la configuration de Grub:
$ sudo grub2-mkconfig -o / boot / grub2 / grub.CFG
Emballage du noyau
Au lieu d'installer directement le noyau compilé comme nous l'avons fait ci-dessus, afin de pouvoir gérer son installation et son retrait via le gestionnaire de package système, nous pouvons créer un Package RPM
. Pour accomplir la tâche, nous devons en utiliser un entre le RPM-PKG
et binrpm-pkg
cibles. Le premier construira à la fois les packages RPM source et binaire, le second seul le binaire. Pour que cette cible fonctionne correctement, le rpm-build
Le package doit être installé. Pour construire uniquement le package de RPM binaire, nous courions:
$ faire binrpm-pkg
Si les opérations sont effectuées sans erreurs, le rpmbuild
L'arbre d'annuaire sera créé dans notre répertoire domestique. Le package RPM construit sera disponible dans un sous-répertoire de ~ / RPMBUILD / RPMS
Nommé d'après l'architecture du système.
Une autre option consiste à emballer le noyau et ses modules à l'intérieur d'un tarball comprimé, en utilisant un entre le targz-pkg
, tarbz2-pkg
et tarxz-pkg
cibles, selon la compression que nous voulons utiliser. Le tarball sera créé à l'intérieur du répertoire source du noyau.
Conclusions
Dans ce tutoriel, nous avons appris à savoir pourquoi Linux est appelé noyau monolithique et comment ses composants peuvent être configurés statiquement ou comme modules. Nous avons vu comment télécharger un noyau de vanille et les différentes méthodes que nous pouvons utiliser pour la configurer. Enfin, nous avons vu comment le compiler, l'emballer et l'installer dans notre système. Un dernier conseil: si vous décidez de recompiler le noyau, c'est toujours une bonne idée d'invoquer l'un des cibles de nettoyage
avant de procéder:
- faire le ménage: Supprime les fichiers les plus générés mais gardez la configuration et suffisamment de support de construction pour créer des modules externes
- mrproper: Supprime tous les fichiers générés + config + divers fichiers de sauvegarde
- distclean: Exécute MRProper et supprime également les fichiers de sauvegarde et de correctif de l'éditeur
Tutoriels Linux connexes:
- Choses à installer sur Ubuntu 20.04
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- Une introduction à l'automatisation Linux, des outils et des techniques
- Téléchargement Linux
- Fichiers de configuration Linux: 30 premiers
- Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
- Mint 20: Mieux que Ubuntu et Microsoft Windows?
- Linux peut-il obtenir des virus? Exploration de la vulnérabilité de Linux…
- Choses à installer sur Ubuntu 22.04
- Comment doubler Kali Linux et Windows 10
- « Comment configurer un serveur NFS sur Debian 10 Buster
- Comment installer Veracrypt sur Debian 10 Buster »