Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
materiel:modules_linux [Le 27/03/2007, 14:44]
81.248.202.99
— (Version actuelle)
Ligne 1: Ligne 1:
-Rédigé par [[utilisateurs:​kmeleon|Kmeleon]] 
  
- 
-====== Les modules Linux ====== 
- 
- 
- 
- 
-===== Présentation ===== 
- 
-Un module est un morceau de code permettant d'​ajouter des fonctionnalités au noyau : pilotes de périphériques matériels, protocoles réseaux, etc... 
- 
-Il peut être chargé dynamiquement sans avoir besoin de recompiler le noyau (avec la commande ''​insmod''​ ou ''​modprobe''​) ou de redémarrer le système. 
- 
-Les modules sont exécutés dans l'​espace mémoire du noyau : 
-  * Ils possèdent le contrôle total de la machine 
-  * Ils peuvent détourner ou créer un appel système 
- 
- 
-===== Caractéristiques ===== 
- 
-  * Ajoutent une fonctionnalité donnée au noyau (pilotes, support système de fichier, etc...) 
-  * 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'​incompatibilité entre pilotes (on charge soit l'un soit l'​autre,​ mais pas les deux) 
-  * 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:​ chargement, test, déchargement,​ recompilation,​ chargement... 
-  * Les modules (pilotes) peuvent aussi être compilés statiquement dans le noyau 
- 
-===== Gestion des modules ===== 
- 
-==== Lister les modules ==== 
- 
- 
-La commande lsmod:\\ 
- 
-  ~% lsmod 
-  Module ​                 Size  Used by 
-  rt2500 ​               176612 ​ 1 
-  ppdev                   ​9220 ​ 0 
-  speedstep_lib ​          ​4484 ​ 0 
-  cpufreq_userspace ​      ​4696 ​ 0 
-  cpufreq_stats ​          ​5636 ​ 0 
-  freq_table ​             4740  1 cpufreq_stats 
-  .......sortie coupée......''​ 
- 
-On voit que le module "​freq_table"​ est utilisé par "​cpufreq_stats"​. Il y a des dépendances entre les modules. Il faut en tenir compte lorsque l'on veut décharger des modules. 
- 
-==== Chargement/​Dechargement d'un module ==== 
- 
-Déja pour avoir des infos sur un module, la commande modinfo rends de bons services:\\ 
-''​ 
-modinfo rt2500\\ 
-filename: ​    /​lib/​modules/​2.6.15-28-386/​kernel/​drivers/​net/​wireless/​rt2500/​rt2500.ko\\ 
-author: ​        ​http://​rt2x00.serialmonkey.com\\ 
-description: ​   Ralink RT2500 802.11g WLAN driver 1.1.0 CVS 2005/​07/​10\\ 
-license: ​       GPL\\ 
-vermagic: ​      ​2.6.15-28-386 preempt 486 gcc-4.0\\ 
-depends:\\ 
-alias: ​         pci:​v00001814d00000201sv*sd*bc*sc*i*\\ 
-srcversion: ​    ​87483C74300BD5B978A24E4\\ 
-parm:           ​ifname:​Network device name (default ra%d) (charp)\\ 
-parm:           ​debug:​Enable level: accepted values: 1 to switch debug on, 0 to switch debug off. (int)\\ 
-''​ 
- 
-On voit que rt2500 s'​occupe de la gestion d'une interface wlan chipset Ralink rt2500 est on est bien content qu'​elle fonctionne. (cette interface s'​appelle ra*)\\ 
- 
-Pour ce qui est du chargement et du déchargement d'un module, il faut s'​informer un peu sur la commande modprobe: 
-''​ 
-man modprobe 
-''​\\ 
- 
-Une autre approche consiste à utiliser l'​outil dédié modconf:\\ 
-''​apt-cache show modconf\\ 
-sudo apt-get install modconf\\ 
-man modconf\\ 
-''​ 
- 
- 
-==== Empécher le chargement d'un module ==== 
  • materiel/modules_linux.1174999476.txt.gz
  • Dernière modification: Le 18/04/2011, 14:47
  • (modification externe)