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 14/10/2009, 11:34] – 213.95.41.13 | 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:// | ||
| + | |||
| + | ----- | ||
| + | // | ||
