Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
tutoriel:tout_savoir_sur_les_modules_linux [Le 15/12/2011, 15:17] – modification externe 127.0.0.1 | tutoriel:tout_savoir_sur_les_modules_linux [Le 10/05/2018, 20:00] (Version actuelle) – [Empêcher le chargement d'un module] 78.250.111.201 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | ====== Les modules Linux ====== | ||
+ | |||
+ | ===== Présentation ===== | ||
+ | |||
+ | Un module est un morceau de code permettant d' | ||
+ | |||
+ | Il peut être chargé dynamiquement sans avoir besoin de recompiler le noyau (avec la commande '' | ||
+ | |||
+ | Les modules sont exécutés dans l' | ||
+ | * Ils possèdent le contrôle total de la machine | ||
+ | * Ils peuvent détourner ou créer un appel système | ||
+ | |||
+ | Un petit schéma pour mieux comprendre : | ||
+ | |||
+ | {{materiel: | ||
+ | |||
+ | ===== Gestion des modules ===== | ||
+ | |||
+ | ==== Lister les modules actifs ==== | ||
+ | |||
+ | On peut connaître tous les modules actifs en tapant '' | ||
+ | |||
+ | < | ||
+ | $ lsmod | more | ||
+ | Module | ||
+ | rt2500 | ||
+ | ppdev | ||
+ | speedstep_lib | ||
+ | cpufreq_userspace | ||
+ | cpufreq_stats | ||
+ | freq_table | ||
+ | ....more...(Taper ESPACE) | ||
+ | </ | ||
+ | |||
+ | On voit que le module " | ||
+ | |||
+ | ==== Information sur un module ==== | ||
+ | |||
+ | La commande '' | ||
+ | |||
+ | < | ||
+ | $ modinfo rt2500 | ||
+ | filename: / | ||
+ | author: | ||
+ | description: | ||
+ | license: | ||
+ | vermagic: | ||
+ | depends: | ||
+ | alias: | ||
+ | srcversion: | ||
+ | parm: | ||
+ | parm: | ||
+ | </ | ||
+ | |||
+ | On voit que rt2500 s' | ||
+ | |||
+ | Si l'on ne désire qu'une information précise, on peut spécifier le champ (field) à afficher avec l' | ||
+ | Par exemple, si nous ne voulons voir que la description du module rt2500 : | ||
+ | |||
+ | $ modinfo rt2500 -F description | ||
+ | Ralink RT2500 802.11g WLAN driver 1.1.0 CVS 2005/07/10 | ||
+ | |||
+ | Sachez cependant que tous les modules ne fournissent pas les même informations, | ||
+ | Il y a cependant des champs standards que tous les modules devraient avoir, comme **author**, **description**, | ||
+ | |||
+ | ==== Chargement/ | ||
+ | |||
+ | Pour ce qui est du chargement et du déchargement d'un module, il faut utiliser la commande '' | ||
+ | |||
+ | === Charger === | ||
+ | |||
+ | Pour charger manuellement le module " | ||
+ | |||
+ | $ sudo modprobe -a 3c59x | ||
+ | |||
+ | === Décharger === | ||
+ | |||
+ | Pour décharger le module " | ||
+ | |||
+ | $ sudo modprobe -r 3c59x | ||
+ | |||
+ | === Lister === | ||
+ | |||
+ | Voir la liste des modules (on peut aussi utiliser l' | ||
+ | |||
+ | lsmod | ||
+ | | ||
+ | A utiliser avec "| grep" !! | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== Options d'un module ==== | ||
+ | |||
+ | FIXME | ||
+ | |||
+ | Comme nous l' | ||
+ | |||
+ | Ces options se chargent de plusieurs manières. Exemple : | ||
+ | |||
+ | modprobe snd_ens1371 joystick_port=1 | ||
+ | |||
+ | les " | ||
+ | |||
+ | * int = entier | ||
+ | * bool = booléen (0 ou 1) | ||
+ | * array of int = plusieurs entier | ||
+ | * array of bool = plusieurs bits | ||
+ | |||
+ | FIXME | ||
+ | |||
+ | Pour que cela soit pris en compte directement au lancement il faut éditer le fichier ''/ | ||
+ | |||
+ | Exemple : | ||
+ | |||
+ | options snd_ens1371 joystick_port=1 | ||
+ | |||
+ | ==== Modules au démarrage ==== | ||
+ | |||
+ | Il est possible de spécifier des modules à charger au démarrage, même si le périphérique à piloter par un module n'a pas été trouvé. | ||
+ | |||
+ | Cela peut être utile pour les périphériques ne permettant pas d' | ||
+ | |||
+ | La liste des modules à charger explicitement au démarrage est dressée dans le fichier ''/ | ||
+ | Vous pouvez ajouter un module en [[tutoriel: | ||
+ | |||
+ | Par exemple, si vous avez un lecteur Zip en parallèle, il vous sera sans doutes utile d' | ||
+ | < | ||
+ | # | ||
+ | # This file contains the names of kernel modules that should be loaded | ||
+ | # at boot time, one per line. Lines beginning with "#" | ||
+ | |||
+ | ppa | ||
+ | lp | ||
+ | |||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | Les modules sont chargés **dans l' | ||
+ | </ | ||
+ | |||
+ | ==== Empêcher le chargement d'un module ==== | ||
+ | |||
+ | Il peut parfois être utile d' | ||
+ | |||
+ | La liste des modules que le noyau n'a pas le droit de charger se trouve principalement dans le fichier ''/ | ||
+ | |||
+ | La structure de ce fichier est simple ; une ligne est construite comme suit : | ||
+ | < | ||
+ | blacklist nom-du-module | ||
+ | </ | ||
+ | |||
+ | |||
+ | \\ Pour prohiber un module, [[tutoriel: | ||
+ | |||
+ | Par exemple, si le module **r818x** vous pose problème, il faut ajouter au fichier / | ||
+ | < | ||
+ | |||
+ | puis il faut exécuter : | ||
+ | < | ||
+ | <note tip> | ||
+ | < | ||
+ | # suite au problème de... | ||
+ | blacklist r818x # ajout en date du... | ||
+ | #</ | ||
+ | Tout ce qui est à droite d'un "#" | ||
+ | ==== Lier un module à un périphérique ==== | ||
+ | |||
+ | Il est possible de lier un module à un périphérique de façon à ce que le noyau puisse charger automatiquement ce module lors de la détection du périphérique, | ||
+ | |||
+ | Il suffit d' | ||
+ | |||
+ | < | ||
+ | alias périphérique module | ||
+ | </ | ||
+ | |||
+ | Par exemple pour indiquer que le périphérique eth0 utilise le module tg3 : | ||
+ | |||
+ | < | ||
+ | alias eth0 tg3 | ||
+ | </ | ||
+ | |||
+ | ===== Utilitaires pour les modules ===== | ||
+ | |||
+ | ==== module-assistant ==== | ||
+ | |||
+ | Module-assistant est un outil simplifiant la création de paquets contenant des modules. Il aide les utilisateurs et contributeurs en s' | ||
+ | |||
+ | * Préparer automatiquement l' | ||
+ | |||
+ | * Téléchargements automatiques des codes sources des modules | ||
+ | |||
+ | * Configuration et maintien des paquets des modules externes et compilés localement | ||
+ | |||
+ | * Compilations multiples pour versions du kernel multiples semi-automatiques | ||
+ | |||
+ | Il contient également des Frameworks utilisés par les scripts de compilation qui accompagnent les paquets modules-source dans Debian. | ||
+ | |||
+ | module-assistant : | ||
+ | |||
+ | Pour installer module-assistant, | ||
+ | |||
+ | < | ||
+ | $ sudo module-assistant | ||
+ | </ | ||
+ | |||
+ | ==== Hardinfo ==== | ||
+ | |||
+ | **[[: | ||
+ | |||
+ | Pour vous le procurer, il vous suffit d' | ||
+ | |||
+ | Vous le trouverez ensuite dans // | ||
+ | |||
+ | \\ | ||
+ | {{: | ||
+ | |||
+ | Plus d' | ||
+ | * [[: | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | ===== Liens ===== | ||
+ | |||
+ | http:// | ||
+ | |||
+ | ----- | ||
+ | // |