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édentesRévision précédente
Prochaine révision
Révision précédente
materiel:modules_linux [Le 27/03/2007, 14:47] 81.248.202.99materiel:modules_linux [Le 22/03/2008, 18:03] (Version actuelle) – suppression suite à redirection YoBoY
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 ====