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 | ||
| materiel:modules_linux [Le 12/05/2007, 12:43] – ajout image adam0509 | materiel:modules_linux [Le 22/03/2008, 18:03] (Version actuelle) – suppression suite à redirection YoBoY | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | |||
| - | ====== 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: | ||
| - | |||
| - | |||
| - | ===== Caractéristiques ===== | ||
| - | |||
| - | * Ajoutent une fonctionnalité donnée au noyau (**pilotes**, | ||
| - | * Peuvent être (dé)chargés à tout moment, quand leur fonctionnalité est requise. Une fois chargés, ils ont accès à tout le noyau. | ||
| - | * Aucune protection particulière. | ||
| - | * Utiles pour garder une image du noyau à une taille minimum (essentiel pour les distributions GNU/Linux pour PCs). | ||
| - | * Permettent de supporter l' | ||
| - | * Permettent de fournir des pilotes binaires (mauvaise idée), utilisables sans avoir à recompiler le noyau. | ||
| - | * Les modules permettent de développer des pilotes sans redémarrer: | ||
| - | * Les modules (pilotes) peuvent aussi être compilés statiquement dans le noyau | ||
| - | |||
| - | ===== Gestion des modules ===== | ||
| - | |||
| - | ==== Lister les modules actif ==== | ||
| - | |||
| - | |||
| - | On peut connaitre tous les modules actif en tapant **lsmod** dans un terminal (ajouter "| grep more" pour afficher page par page) : | ||
| - | |||
| - | < | ||
| - | $ lsmod | grep 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 peut rendre de bons services : | ||
| - | |||
| - | < | ||
| - | $ modinfo rt2500 | ||
| - | filename: / | ||
| - | author: | ||
| - | description: | ||
| - | license: | ||
| - | vermagic: | ||
| - | depends: | ||
| - | alias: | ||
| - | srcversion: | ||
| - | parm: | ||
| - | parm: | ||
| - | </ | ||
| - | |||
| - | On voit que rt2500 s' | ||
| - | |||
| - | |||
| - | ==== 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 | ||
| - | |||
| - | == Decharger == | ||
| - | |||
| - | Pour décharger le module " | ||
| - | |||
| - | $ sudo modprobe -r 3c59x | ||
| - | |||
| - | == Voir la version == | ||
| - | |||
| - | Voir la version d'un module: | ||
| - | |||
| - | $ sudo modprobe -V 3c59x | ||
| - | |||
| - | == Lister == | ||
| - | |||
| - | Voir la liste des modules (on peut aussi utiliser l' | ||
| - | |||
| - | ~$ sudo modprobe -l | ||
| - | |||
| - | |||
| - | ==== Modules au démarrages ==== | ||
| - | |||
| - | Il est possible de configurer les modules chargés au démarrage de la machine ou lorsque l'on branche un périphérique à chaud. Pour ce qui est des modules à charger au démarrage, on peut éditer le fichier / | ||
| - | |||
| - | < | ||
| - | $ sudo gedit / | ||
| - | # / | ||
| - | # | ||
| - | # This file contains the names of kernel modules that should be loaded | ||
| - | # at boot time, one per line. Lines beginning with "#" | ||
| - | |||
| - | lp | ||
| - | psmouse | ||
| - | </ | ||
| - | |||
| - | Rajouter les modules concernés dans le fichier. | ||
| - | |||
| - | |||
| - | |||
| - | ==== Empécher le chargement d'un module ==== | ||
| - | |||
| - | Il faudra éditer le fichier blacklist : | ||
| - | |||
| - | < | ||
| - | $ sudo gedit / | ||
| - | # This file lists those modules which we don't want to be loaded by | ||
| - | # alias expansion, usually so some other driver will be loaded for the | ||
| - | # device instead. | ||
| - | |||
| - | # evbug is a debug tool that should be loaded explicitly | ||
| - | blacklist evbug | ||
| - | |||
| - | # these drivers are very simple, the HID drivers are usually preferred | ||
| - | blacklist usbmouse | ||
| - | blacklist usbkbd | ||
| - | ... | ||
| - | </ | ||
| - | |||
| - | Rajouter les modules concernés. | ||
| - | D' | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ===== Utilitaires pour les modules ===== | ||
| - | |||
| - | ==== Modconf ==== | ||
| - | |||
| - | Modconf est un utilitaire très puissant permettant de naviguer dans | ||
| - | Une autre approche consiste à utiliser l' | ||
| - | |||
| - | < | ||
| - | $ sudo apt-get install modconf | ||
| - | $ sudo modconf | ||
| - | </ | ||
| - | |||
| - | |||
| - | ===== Liens ===== | ||
| - | |||
| - | FIXME | ||
| - | |||
| - | ----- | ||
| - | // | ||
