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:47]
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.1174999675.txt.gz
  • Dernière modification: Le 18/04/2011, 14:47
  • (modification externe)