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 05/10/2007, 10:21] – correction faute orthographe "tous les modules devrait" -> "tous les modules devraient" 134.214.124.134 | 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 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 | ||
| - | |||
| - | === 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émarrage ==== | ||
| - | |||
| - | Il est possible de spécifier des modules à charger au démarrage, même si aucun périphérique que pilote ces modules n'a é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 dans le fichier ''/ | ||
| - | |||
| - | La structure de ce fichier est simple ; une ligne est construite comme suit : | ||
| - | < | ||
| - | blacklist module | ||
| - | </ | ||
| - | où //module// est le nom du module prohibé. | ||
| - | |||
| - | Pour rajouter un module prohibé, [[tutoriel: | ||
| - | |||
| - | Par exemple, si le module **r818x** vous pose problème, il faut rajouter la ligne suivante au fichier ''/ | ||
| - | < | ||
| - | blacklist r818x | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | ==== 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, | ||
| - | |||
| - | FIXME: si quelqu' | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ===== Utilitaires pour les modules ===== | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ==== Modconf ==== | ||
| - | |||
| - | Modconf est un utilitaire très puissant permettant de voir et de configurer les modules disponibles. | ||
| - | |||
| - | Pour vous procurer Modconf, il vous suffit d' | ||
| - | |||
| - | Modconf s' | ||
| - | |||
| - | $ sudo modconf | ||
| - | |||
| - | Et vous aurez quelque-chose ressemblant de près à : | ||
| - | |||
| - | {{: | ||
| - | |||
| - | Je vous conseille de mettre la fenêtre en plein-écran pour une meilleure lisibilité. | ||
| - | |||
| - | |||
| - | ==== module-assistant ==== | ||
| - | |||
| - | FIXME: | ||
| - | //tool to make module package creation easier | ||
| - | The module-assistant tool helps users and maintainers with managing | ||
| - | external kernel modules packaged for Debian. It can do: | ||
| - | |||
| - | * automated preparation of build environment for modules compilation (eg. automatical detection and installation of required kernel) source/ | ||
| - | |||
| - | * automated module source downloads | ||
| - | |||
| - | * configuring and keeping track of external and localy built modules packages | ||
| - | |||
| - | * semi-automated multiple builds for multiple kernel versions | ||
| - | |||
| - | It also contains some framework to be used by the build-scripts in the | ||
| - | accompanying modules-source packages in Debian.// | ||
| - | |||
| - | module-assistant : | ||
| - | |||
| - | Pour installer module-assistant, | ||
| - | |||
| - | < | ||
| - | $ sudo module-assistant | ||
| - | </ | ||
| - | |||
| - | |||
| - | ==== Hardinfo ==== | ||
| - | |||
| - | [[http:// | ||
| - | |||
| - | Pour vous le procurer, il vous suffit d' | ||
| - | |||
| - | Vous le trouverez ensuite dans **Applications => Outils système => Hardinfo** | ||
| - | |||
| - | Plus d' | ||
| - | |||
| - | ===== Liens ===== | ||
| - | |||
| - | http:// | ||
| - | |||
| - | ----- | ||
| - | // | ||
