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 15/08/2007, 03:25] – changement de la commande pour la version du module qui était FAUSSE, elle donnait la version des modutils. À voir s'il ne faut pas restructurer ça autrement pour que ça soit plus cohérent et donner + d'infos sur modinfo. Ban | 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 "| more" pour afficher page par page) : | ||
| - | |||
| - | < | ||
| - | $ 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 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 == | ||
| - | |||
| - | Pour voir la version d'un module, on utilise la commande '' | ||
| - | |||
| - | $ modinfo -F version 3c59x | ||
| - | |||
| - | == Lister == | ||
| - | |||
| - | Voir la liste des modules (on peut aussi utiliser l' | ||
| - | |||
| - | modprobe -l | ||
| - | |||
| - | 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é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 voir les modules disponibles | ||
| - | |||
| - | < | ||
| - | $ sudo apt-get install modconf | ||
| - | $ sudo modconf | ||
| - | </ | ||
| - | |||
| - | ==== module-assistant ==== | ||
| - | |||
| - | module-assistant : | ||
| - | |||
| - | < | ||
| - | $ sudo apt-get install module-assistant | ||
| - | $ sudo module-assistant | ||
| - | </ | ||
| - | |||
| - | ==== Hardinfo ==== | ||
| - | |||
| - | Pas vraiment un programme spécifique pour les modules, mais un programme bien pratique pour connaître des informations sur votre ordinateur : | ||
| - | |||
| - | < | ||
| - | $ sudo apt-get install hardinfo | ||
| - | </ | ||
| - | |||
| - | Plus d' | ||
| - | |||
| - | ===== Liens ===== | ||
| - | |||
| - | http:// | ||
| - | |||
| - | ----- | ||
| - | // | ||
