DKMS a de nombreux avantages pour les communautés de fournisseurs de services Linux, E.g.:
Que couvrirons-nous?
Ce guide discutera de diverses terminologies liées au noyau et en particulier ce qu'est DKMS.
Un examen rapide des terminologies
Quel est le noyau Linux?
C'est la partie fondamentale d'un système d'exploitation Linux. C'est l'interface principale entre les processus exécutés sur le système d'exploitation et son matériel. Il gère des fonctions majeures telles que la gestion de la mémoire, la gestion des processus, la gestion du processeur, la gestion du pilote de périphérique et les appels système et la gestion de la sécurité.
Espace du noyau
Le noyau est en fait caché à l'utilisateur et travaille dans sa propre zone appelée Space du noyau. L'utilisateur interagit avec le noyau à l'aide des applications utilisateur comme le navigateur de fichiers, le navigateur Web, etc. Ces interactions utilisent une construction de programmation spécifique appelée appel système.
Arbre source du noyau
Il a tout le code source pour les pilotes du noyau et de l'appareil. Il se compose de nombreux répertoires et sous-répertoires comme Arch, bloc, crypto, inclure, init, lib, usr, etc.
Modules de noyau Linux
Les modules de noyau Linux sont essentiellement des morceaux de code. Ceux-ci peuvent être ajoutés et retirés du noyau selon l'exigence. Ils peuvent être intégrés ou chargés. Le module du noyau augmente les fonctions du noyau sans nécessiter de redémarrage du système. Contrairement aux microkernels, où l'ajout de nouveaux composants dans le noyau nécessite de configurer et de construire un nouveau noyau, nous pouvons charger et décharger des composants ou des modules du système d'exploitation à l'exécution. Ces modules sont des pilotes de périphériques, des systèmes de fichiers, etc.
Une fois qu'un module est chargé, c'est comme un morceau de code du noyau. Il a les mêmes privilèges et tâches qu'un code de noyau normal.
Définition de DKMS
Voici un extrait de la définition DKMS que j'ai trouvée ici:
«DKMS est un cadre où la source du pilote de périphérique peut résider en dehors de l'arborescence source du noyau afin qu'il soit très facile de reconstruire des modules lorsque vous mettez à niveau les noyaux."
Laissez-nous élaborer sur ce qui précède. Le système DKMS est un arbre hors du noyau de base au sol. Il contient la source du module et les binaires de modules compilés. À la suite de cette réplication, les modules ne sont pas couplés au noyau. (Bien que les modules ne soient pas entièrement découplés).
J'ai moi-même rencontré le concept DKMS lorsque j'ai acheté un ordinateur portable HP et installé Ubuntu 18.04 dessus. Tout fonctionnait bien sauf mon wifi. Mon ordinateur portable n'a pu localiser aucun adaptateur WiFi. Dans les paramètres, le menu WiFi a affiché un message "Aucun adaptateur wifi trouvé". J'ai commencé à rechercher des forums sur Internet et j'ai découvert que de nombreuses personnes connaissaient le même problème. J'ai trouvé de nombreuses solutions suggérant d'installer des fichiers d'en-tête, des pilotes et d'autres packages.
J'ai simplement suivi ces guides sans savoir ce qu'ils voulaient réellement transmettre. Quoi qu'il en soit, ces guides m'ont aidé, et j'ai travaillé WiFi d'une manière ou d'une autre. Mais le problème était que chaque fois que je mettais à jour mon système Ubuntu, le même problème s'est posé, et j'ai dû répéter les mêmes étapes de recompilation des pilotes téléchargés. De plus, je dois résoudre le problème du signal bas à chaque fois après l'installation du pilote. J'ai même installé Windows OS, et à ma grande surprise, le WiFi fonctionnait en fait parfaitement. Mais je dois quand même utiliser Ubuntu pour mon travail. J'ai donc décidé de vivre avec le patch temporaire que j'ai obtenu plus tôt.
DKMS vient à la rescousse
Une solution récente que je viens de trouver que je ne me souciais pas dans le passé a utilisé la manière DKMS. Au lieu d'utiliser le faire ou faire l'installation Commande, DKMS effectue trois opérations sur le code source: ajouter, construire et installer.
Utilisation de DKMS
Pour que DKMS fonctionne, la source du module doit être présente sur le système où nous construisons le module, et le chemin d'emplacement devrait être comme '/ usr / src / - /' Et rappelez-vous que c'est la toute première exigence de DKMS. Une autre exigence est un fichier appelé 'dkms.conf ', qui guidera comment construire et installer un module. Et juste pour mentionner, les DKMS doivent déjà être installés sur le système. Une fois que tout est en place, nous pouvons ajouter un module à l'arbre DKMS.
Voyons ces étapes en installant un module de démonstration 'Demo-V0.1.le goudron.gz ' avec DKMS. Nous faisons cet échantillon uniquement dans le but de comprendre comment fonctionne DKMS. Après avoir extrait le fichier, nous devons 'CD' à l'intérieur:
# CD Demo-V0.1/Créez maintenant un dkms.confli fichier qui contient les lignes suivantes:
Make = "Make -c Src / Kerneldir = / lib / modules / $ Kernelver / build"Maintenant que notre dkms.confli Le fichier est prêt, nous pouvons ajouter notre module de démonstration en tant que:
# DKMS Add -M Demo -v 0.1La beauté des DKMS est que nous pouvons spécifier la version du noyau par rapport à laquelle nous voulons construire ou module comme indiqué ici:
# DKMS build -m Demo -v 0.1 -K 5.13.0-27Si nous ne spécifions pas le noyau, DKMS créera le module avec la version actuelle du noyau.
Si tout se passe bien, nous pouvons maintenant installer le module en utilisant:
# DKMS INSTALL -M Demo -v 0.1Si nous améliorons notre noyau ou changeons l'architecture matérielle, un module doit être reconstruit manuellement. À l'aide de DKMS, cette procédure devient redondante à mesure que le DKMS construit dynamiquement ces modules de noyau pour chaque noyau présent sur le système.
Conclusion
Des outils comme DKMS ont grandement aidé les administrateurs, les développeurs de conducteurs et d'autres réduisent la tâche de gestion du noyau. Alors que les utilisateurs finaux ne se soucient pas de la façon dont le système sous-jacent fonctionne jusqu'à ce que leurs objectifs soient atteints, DKMS permet aux développeurs et aux administrateurs de se concentrer sur leur travail.