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:46] – dsl, je n'vais vu que la faute, je restructure ça (cf modification précédente). modifs : ajout de l'option -F de modinfo, plus petites retouches & corrections 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 | 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 devrait 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 | ||
| - | |||
| - | === Decharger === | ||
| - | |||
| - | Pour décharger le module " | ||
| - | |||
| - | $ sudo modprobe -r 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 ''/ | ||
| - | |||
| - | < | ||
| - | $ gksudo 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 : | ||
| - | |||
| - | < | ||
| - | $ gksudo 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:// | ||
| - | |||
| - | ----- | ||
| - | // | ||
