| insmod | ||||||
Nominsmod - installe des modules chargeables du noyau.Synopsisinsmod [-fkmpqrsxXvyY] [-P prefix] [-o module_name] object_file [ symbol=value ... ]Descriptioninsmod installe un module chargeable dans le noyau en cours d'utilisation.insmod essaie de lier un module dans le noyau en cours d'éxécution par résolution de toutes les commmandes provenant de la table d'export du noyau.
Si le nom
du fichier objet est donné sans extension, insmod cherchera le module dans
quelques répertoires par défaut. La variable d'environnement MODPATH peut
être utilisée pour modifier ces répertoires par défaut. Si le fichier de
configuration de modules comme /etc/modules.conf existe, il sera sera en
pris en compte pour la recherche. Options
ParamÈtres Des ModulesDes modules acceptent des paramètres lors de leur chargement pour les adapter à la situation. Ces paramètres sont des ports I/O des numéros d'IRQ qui varient d'un machine à l'autre et ne peuvent être déterminés à partir du matériel.Dans les modules faits pour les noyau 2.0, des entiers ou des pointeurs alphanumériques peuvent être traités comme des paramètres et être modifiés. A partir des version 2.1 de noyau, les pointeurs sont explicitement marqués comme des paramètres dont la valeur spécifique peut être modifiée. En outre, le type d'information est donné par vérification de la valeur transmise lors du chargement. Dans le cas des entiers, toutes les valeurs peuvent être en base 10, 8 ou 16 et se présentent comme en C : 17, O21 ou Ox1A. Le tableau des éléments est spécifié par une séquence séparée par des virgules; des éléments peuvent être `sautés' par omission de la valeur. Dans les modules 2.0, les valeurs qui ne débutent pas par un nombre sont considérées comme des chaînes. Depuis la version 2.1, le paramètre du type d'information indique si on doit interpréter la valeur comme une chaîne. Si la valeur commence par un guillemet ("), la chaîne est interprétée comme en C, avec séquence d'échappement et le reste. Notez que comme pour le prompt, les guillemets doivent être protégés de l'interprétation par le shell. Assistance De KsymoopsPour l'assistance au débogage des problèmes du noyau lors de l'utilisation des modules, insmod, par défaut, ajoute des commandes à ksyms, voir l'option -Y. Ces commandes débutent avec __insmod_modulename_. Le modulename est nécessaire pour faire des commandes uniques, il est normal de charger le même objet plus d'une fois sous différents noms de modules. Couramment les commandes définies sont__insmod_modulename_Oobjectfile_Mmtime_Vversion objectfile est le nom du fichier de l'objet qui a été chargé. Il n'est pas prudent que ksymoops puisse accéder au code par l'objet correct. mtime est le dernier `timestamp' modifié pour le fichier en hexadécimal, zéro si l'état a échoué. version est la version du noyau pour lequel le module a été compilé, -1 si la version n'est pas disponible. La commande _0 est la même adresse de départ que celle de l'entête du module. __insmod_modulename_Ssectionname_Llength Cette commande apparaît au début des sections ELF sélectionnées, couramment .text, .rodata, .data et .bss. Elle apparaît seulement si la section a une taille différente de zéro sectionname est le nom de la section ELF, length est la longueur de la section en base dix. Ces commandes aident la carte des adresses de ksymoops pour les sections quand les commandes ne sont pas disponibles. L'autre problème avec le déboguage des problèmes du noyau dans les modules est que le contenu de /proc/ksums et de /proc/modules peut changer entre le moment du problème et le moment où vous écrivez le fichier de log. Pour aider à prevenir cette difficulté, si le répertoire /var/log/ksymoops existe alors insmod et rmmod copieront automatiquement /proc/ksyms et /proc/modules dans /var/log/ksymoops avec le préfixe `date +%Y%m%d%H%M%S`. L'administrateur système peut appeller ksymoops qui produit des fichiers instantanément pour déboquer un problème. Il n'y a pas d'option pour désactiver cette copie automatique, si vous ne voulez pas que cela se produise, il ne faut pas créer de répertoire /var/log/ksymoops. Si le répertoire existe, il doit appartenir à root, avoir le mode 644 ou 600 et vous devez lancer le script chaque jour. Le script suivant est installé comme insmod_clean_ksymoops.
#!/bin/sh
# Supprime la suvegarde de ksyms et les modules qui n'ont
# pas eu d'accés depuis 2 jours
if [ -d /var/log/ksymoops ]
then
set -e
# Make sure there is always at least one version
# Il faut être que c'est toujours la meilleur version
d=`date +%Y%m%d%H%M%S`
cp -a /proc/ksyms /var/log/ksymoops/${d}.ksyms
cp -a /proc/modules /var/log/ksymoops/${d}.modules
find /var/log/ksymoops -type f -atime +2 -exec rm {} \;
fi
Voir Aussirmmod(8) , modprobe(8) , depmod(8) , lsmod(8) , ksyms(8) , modules(2) , genksyms(8) , kerneld(8) , ksymoops(9) .Historique
TraductionJérome Signouret, 2000.
| ||||||