12. Problèmes courants et questions diverses

Contenu de cette section

12.1 Pourquoi j'obtiens les messages "Cannot locate module for net-pf-X" lorsque je lance ifconfig

Le code réseau a été modifié vers les versions 1.3.80 du noyau, pour permettre le chargement de familles de protocole réseau (par exemple IPX, AX.25 et AppleTalk) sous la forme de modules. Cela a provoqué l'ajout de certaines requêtes kerneld : net-pf-X, où X est un numéro identifiant le protocole (voir le fichier /usr/src/linux/include/linux/socket.h pour la liste de ces nombres). Malheureusement, ifconfig provoque l'envoie de ces messages, donc bon nombre de personnes reçoivent ces messages lors de l'amorçage de leur machine et lorsqu'ils lancent ifconfig pour configurer les périphériques loopback. Ces messages sont uniquement informatifs et ne cassent rien. Vous pouvez les retirer en ajoutant les lignes suivantes :

        alias net-pf-3 off      # oublier AX.25
        alias net-pf-4 off      # oublier IPX
        alias net-pf-5 off      # oublier AppleTalk

au fichier /etc/conf.modules. Bien sur, si vous utilisez IPX comme module, n'ajoutez pas la ligne pour désactiver IPX.

12.2 Ma machine ralentit !

Après avoir lancé kerneld, mon système commence à ralentir lorsque j'active ma connexion PPP.

Il y a eu un certain nombre de messages à ce sujet. Il semble qu'il y a une interaction malheureuse entre kerneld et le script tkPPP qui utilisé sur certains système pour configurer et surveiller la connexion PPP. Le script semble boucler lorsqu'il exécute ifconfig. kerneld, pour rechercher les modules net-pf-X (voir plus haut dans ce document), charge un peu la machine et il est possible que vous obteniez quelques messages Cannot locate module for net-pf-X. Il n'y a pas actuellement de solution, si ce n'est de ne plus utiliser tkPPP, ou de le modifier pour qu'il change sa manière de surveiller la connexion.

12.3 kerneld ne charge pas mon gestionnaire de périphérique SCSI !

Ajoutez une entrée pour la carte SCSI dans le fichier /etc/conf.modules. Lisez la partie décrivant l'entrée scsi_hostadapter dans ce document.

12.4 modprobe se plaint que gcc2_compiled n'est pas définit

C'est une erreur dans les utilitaires des modules qui ne se révèle qu'avec le paquetage binutils2.6.0.9 ou plus ancien, et c'est documenté dans les notes de mises à jour du paquetage binutils, donc lisez-la, ou bien mettez à jour le paquetage des modules qui corrige ce problème.

12.5 Mon gestionnaire de carte son continue à ne pas initialiser le volume, etc

Les configurations d'un modules sont stockées dans le module lui-même lorsqu'il est chargé. Donc lorsque kerneld décharge automatiquement un module, toute configuration particulière disparaît, et lors du prochain chargement, c'est la configuration par défaut qui sera appliquée.

Vous pouvez spécifier à kerneld de configurer un module en exécutant un programme après le chargement du module. Consultez la section traitant l'entrée post-install.

12.6 DOSEMU a besoin de certains modules - comment kerneld peut les charger ?

Vous ne pouvez pas. Aucune des versions de dosemu (que cela soit la version officielle ou de développement) ne gère le chargement des modules via kerneld. Toutefois, si vous utilisez les noyaux 2.0.26 ou supérieur, vous n'avez pas besoin de modules dosemu particuliers? Installez tout simplement, la version dosemu 0.66.1, ou supérieure.

12.7 Pourquoi j'obtiens des messages "Ouch, kerneld timed out, message failed" ?

Lorsque le noyau envoie une requête au démon kerneld, il s'attend à recevoir un acquittement dans la seconde qui suit. Si kerneld ne lui renvoie pas cet acquittement, alors ce message est diffusé. La requête est alors réémise.

Cela arrive sur des systèmes très fortement chargés, comme kerneld est un processus en mode utilisateur, il est ordonnancé comme n'importe quel autre processus du système. Si la charge de la machine est importante, il ne sera pas en exécuté avant que le timeout du noyau intervienne.

Si cela se produit lorsque la charge est faible, essayez de relancer kerneld (tuez le processus est relancez le avec la commande /usr/sbin/kerneld). Si le problème persiste, vous devriez envoyer un courrier électronique dans la liste linux-kernel@vger.rutgers.edu, mais assurez-vous que les versions du noyau et de kerneld sont à jour avant de diffuser un message relatant un tel problème.

12.8 mount n'attend pas que le système de fichier soit chargé

Il y a certains rapports comme quoi la commande mount(8) n'attend pas que kerneld charge le module du système de fichiers, et si vous répétez l'opération immédiatement après, cela fonctionnera. Cela semble être une erreur dans les utilitaires des modules version 1.3.69f qui affecte certains utilisateurs de distribution Debian - il peut être corrigé en récupérant en version plus récente des utilitaires.

12.9 kerneld n'arrive pas à charge le module ncpfs

Vous devez compiler les outils ncpfs avec l'option -DHAVE_KERNELD. Regardez le fichier Makefile de ncpfs.

12.10 kerneld n'arrive pas à charger le module smbfs

Vous utilisez une vieille version de smbmount. Récupérez la dernière version (0.10 ou supérieure) sur ftp://tsx-11.mit.edu/pub/linux/filesystems/smbfs/.

12.11 J'ai tout compilé sous forme de module, et maintenant mon système n'arrive plus à charger le module du système de fichiers racine

Vous ne pouvez pas tout transformer en modules : le noyau doit avoir assez de gestionnaires pour être capable de monter sa racine, et exécuter certains programmes pour lancer kerneld. Donc, vous ne pouvez pas modulariser :

En fait, cela n'est vrai qu'à moitié. Les derniers versions du noyau 1.3.x et 2.x permettent l'utilisation d'une ram disque d'initialisation qui est chargée par LILO ou LOADLIN, et donc il est possible de charger le module du système de fichiers de la racine sous cette forme. Consultez le fichier Documentation/initrd.txt situé dans les sources du noyau pour plus d'informations !

12.12 kerneld ne se lance pas lors de l'amorçage de la machine - il demandelibgdbm

Les nouvelles versions de kerneld ont besoin de la bibliothèque GNU dbm pour s'exécuter, libgdbm.so. Bon nombre d'installations ont cette bibliothèque installée dans le répertoire /usr/lib, mais vous avez probablement lancé kerneld avant que le système de fichier monté sur le répertoire /usr ne soit monté. Un symptôme de cette configuration est que kerneld ne se lancera pas lors de l'amorçage de la machine (à partir de vos fichiers rc), mais tournera parfaitement si vous le lancez à la main. La solution et de soit déplacer le lancement de kerneld après que /usr soit monté, soit de déplacer la bibliothèque dans le système de fichiers racine, comme par exemple dans le répertoire /lib.

12.13 Je reçois le message "Cannot load module xxx" mais j'ai pourtant reconfiguré mon noyau sans la gestion xxx

L'installation de la Slackware (et éventuellement d'autres distributions) crée un fichier /etc/rc.d/rc.modules par défaut qui effectue une modprobe explicite sur un certain nombre de modules. Les modules qui sont parcourus dépendent du noyau initial. Vous avez sûrement reconfiguré votre noyau pour exclure un certain nombre de ces modules, d'où le message d'erreur. Mettez à jour le fichier rc.modules en mettant en commentaires tous les modules que vous n'utilisez plus. Une autre solution consiste à supprimier le fichier rc.modules et à laisser kerneld charger les modules lorsqu'il le juge nécessaire.

12.14 J'ai recompilé mon noyau et les modules mais j'obtienstoujours des messages concernant des symboles non résolus

Vous avez sûrement reconfiguré/recompilé votre noyau et exclus certains modules. Vous possédez certains anciens modules que vous n'utilisez plus mais qui se trouvent toujours dans le répertoire /lib/modules. La solution la plus simple conssite à détruire le répertoire /lib/modules/x.y.z et à effectuer un make modules_install depuis les sources du noyau. Il est utile de préciser que ce problème n'intervient que lorsque vous reconfigurez votre noyau sans changer de version? Si vous voyez cette erreur lors d'un passage à une nouvelle version c'est qu'il y a un autre problème.

12.15 J'ai installé Linux 2.1, et aucun module ne se charge

Linux 2.1 est le noyau actuellement en cours de développement. En tant que tel, il faut s'attendre à ce que des problèmes se posent de temps en temps. Une des grandes modifications de la version 2.1 est la gestion des modules ainsi que l'endroit où les modules sont chargés en mémoire. De plus, Richard Henderson est désormais chargé du développement des modules dans le noyau.

En résumé, si vous souhaitez utiliser les modules avec un noyau 2.1, vous devez :

Il est également recommandé d'utiliser un noyau 2.1.29 ou supérieur si vous souhaitez utiliser les modules.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre