Que signifie le message unable to get major
suivi d'un nombre ?
Un pilote de périphérique compilé dans le noyau (donc " intégré ") se trouve
aussi disponible sous forme de module.
E. Decaen : utiliser modprobe -c
pour
étudier la liste des modules en ligne.
Messages du système lors du démarrage, de l'arrêt ou de l'utilisation de certains programmes réseau :
insmod: NOM_DE_FONCTION: wrong version or undefined
[ ... nombreux ... ]
Loading failed! The module symbols (from linux-NUMERO_VERSION) don't match
your linux-NUMERO_VERSION
En ce qui concerne les modules réseau : ajouter au fichier
/etc/modules.conf
alias net-pf-3 off # si pas AX25
alias net-pf-4 off # si pas de module IPX (protocole reseau Novell Netware)
alias net-pf-5 off # si pas de module Appletalk (protocole reseau Apple)
E. Lassauge
Les messages de depmod
, après recompilation d'un noyau Red Hat, sont
dus au initrd
standard de cette distribution. Grâce à cette directive
de LILO, on monte au boot un système de fichiers dans un RamDisk (dit
initrd
, init Ram Disk). Avec certaines configurations Red Hat (par
exemple la 4.0), ce système de fichiers contient " ce qu'il faut " pour
forcer le chargement du module du driver de gestion du disque dur. Si on
recompile le noyau, le initrd
cherche quand même à charger un module
éventuellement ancien.
La solution consiste à utiliser un autre initrd
pour le nouveau
noyau. Pour cela, il faut modifier le fichier de config de LILO. Consulter le
fichier /usr/src/linux/Documentation/initrd.txt
(les pointeurs y
sont un peu anciens mais j'ai fini par tout trouver, surtout le très utile
initrd-example.tgz
).
Exemple de /etc/lilo/conf
avec 2 initrd :
boot=/dev/sda
map=/boot/map
install=/boot/boot.b
message = /boot/boot.message-2.0.x
image=/boot/vmlinuz-2.0.30
label=linux
root=/dev/sda1
noinitrd
read-only
image=/boot/vmlinuz-2.0.18
label=redh
root=/dev/sda1
initrd=/boot/initrd-2.0.18
read-only
depmod
),
que des modules inutiles existent (cas des Red Hat après recompilation du
noyau sans mise-à-jour).
On peut s'en affranchir en détruisant
/lib/modules/NUMÉRO_DE_VERSION
avant de réinstaller les modules
(make modules_install
) mais cela n'en vaut pas la peine car risque
de rendre inopérant le noyau livré par la distribution ;modules.conf
ou
conf.modules
. Mais si les deux existent, alors c'est le deuxième
qui sera lu.
La compilation d'un noyau échoue avec un message concernant
objdump
, par exemple "objdump: 0x100000: No such file or
directory"
.
objdump
et objcopy
a changé. Ca ne marche plus avec les
Makefiles
du noyau 2.0.x ;/usr/bin/encaps
, comme
cela est dit dans release.binutils-2.8.1.0.1
. En effet, le
Makefile du noyau teste la présence de encaps
pour déterminer
quelle version des binutils on a. Si encaps
est présent,
objdump
est utilisé, sinon c'est objcopy
qui l'est.
e2fsck
, par exemple lorsqu'il est invoqué automatiquement durant le boot,
produit parfois un message :
Deleted inode XXX has zero dtime.
Set dtime? yes.
R. Card :
Chaque i-noeud possède un champ dtime
qui contient la date de suppression
du dernier fichier associé à cet i-noeud. Le but de ce champ est de
permettre d'effectuer des traitements particuliers quand/si une fonction
" undelete " sera incorporée à Ext2fs.
Lorsqu'un fichier est supprimé, le noyau met à jour ce champ dtime
(avec la
date courante) et l'i-noeud est réécrit sur disque. Quand un i-noeud est
alloué, le champ dtime
est mis à zéro.
fsck
vérifie que le champ dtime
est non nul pour tout i-noeud non alloué
(dont le nombre de liens est nul). Si ce n'est pas le cas, il affiche ce
message d'erreur. Généralement, cette erreur peut être due à des
redémarrages brutaux, à des problèmes de disque ou à des bogues dans
Ext2fs.
De toutes façons, c'est une erreur très bénigne dans la mesure où dtime
n'est pas (encore) utilisé.
"/etc/passwd is locked, try again later"
J.-C. Delépine : Tu as dû utiliser la commande adduser et la
quitter brutalement. La version RedHat de cette commande crée un fichier
/etc/.pwd.lock
afin de s'assurer l'exclusivité sur le fichier
/etc/passwd
.
Solution donc : vérifier quíl n'y a pas un autre adduser qui tourne quelque
part puis supprimer le fichier /etc/.pwd.lock
Il faut utiliser un noyau intégrant TCP/IP.
/etc/hosts
doit contenir :
127.0.0.1 FQDN localhost loopback N
où :
hostname
(ou uname -n
)hostname | cut -f1 -d.
D. Segonds :
Peut être causé par un manque de mémoire. Rajouter par exemple de la
mémoire virtuelle (swap) en utilisant mkswap
puis
swapon
.
"halt,shutdown,reboot" en tant que root ou Ctrl+Alt+Supr me renvoient tous le message: "shutdown: already running"
D. Segonds, E. David et Remy Card:
Méthode la plus élégante : shutdown -c
.
Un fichier bloque le lancement d'un deuxième shutdown lorsqu'un autre est
déjà en cours. Il s'agit de shutdown.pid
, souvent placé dans
/var/run
ou bien dans /etc
. Le détruire.
Des binaires libc5 et libc6 coexistent sur le système, or le format de
/var/run/utmp
a évolué.
Recompiler un noyau avec prise en charge du système de fichiers
("filesystem") de type iso9660
.
Document signal 11
Mon programme C utilisant malloc() échoue avec le message : "segmentation fault".
J. Kachelhoffer-Bertrand :
Cela peut être causé par une erreur de programmation (déréférencement de pointeur 'pendouillant' ("dangling"), c'est-à-dire dont la valeur est incorrecte.
Mais aussi par le fait que Linux pratique la sur-réservation : malloc retourne un pointeur sans vraiment allouer de mémoire. Elle sera effectivement allouée lorsque la première ecriture sera faite. Le système peut alors découvrir qu'il ne reste pas de mémoire disponible et terminer le processus par un "segmentation fault".
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