(Courriels de diversion: <corniches@mesquineries-demoulent.com> <floue@pretendrais-regionaliserait.com> <verse@recevront-massacrerais.com> <crâneuse@repeterez-sacristain.com> <frenetiquement@asynchrones-paverais.com> <voileront@haleines-angoisserait.com> <deraisonne@postoperatoire-ereinterez.com> <fractionnee@entrebâillee-administrerez.com> <redescends@entrebâilles-coeditions.com> <malnutrition@aeroporte-abstiendrai.com> )


>From: "Etienne Jouin" <cjouin@worldnet.fr>>Vincent :
>
>Quand tu redemarre Linux, le noyau fait une liste des modules existants 
>et verifie leurs dependances (losque le chargement d'un module implique 
>le chargement d'un autre nottament) en faisant un `depmod -a`.
>
>Si tu utilise une Redhat 5.0 ou 5.1, il me semble que les scripts de 
>demarrage etaient bogues : le `depmod -a` se portait alors sur les 
>modules de l'ancien noyau. D'ou le pb.
>
>eJ :
>
>Visiblement la RH 5.2 ne résout pas le pb....
>
>Vincent:
>
>Pour voir si c'est le cas, tu peux, apres avoir boote sur l'ancien 
noyau 
>:
>	1) constater si pendant le demarrage tu n'as pas des insanites lors de 
>la verification des dependances de noyau
>
>eJ: en effet.
>
>Vincent:
>
>	2) de placer dans le repertoire /lib/modules, faire un `ls -l`, 
>verifier que le lien preffered s'il existe pointe bien sur la bonne 
>version, faire un `depmod -a XXX`, puis essayer de charger manuellement 
>le module ppp pour voire si ca vient de la : `modprobe ppp`. 
>Enfin un `lsmod` te dira enfin si le module a bien ete charge.
>
>eJ: ça marche. Mais le problème se repose de la même façon au reboot
>suivant. Il semble qu'il refait un lien preferred à chaque fois, et
>s'emmele les pinceaux dans ce coin là :
>
>[root@koala /root]# cat /etc/rc.d/rc.sysinit>#! /bin/sh
>#
># /etc/rc.d/rc.sysinit - run once at boot time
>#
># Taken in part from Miquel van Smoorenburg's bcheckrc.
>#
>	***[SNIP]***
>
># Enter root and /proc into mtab.
>mount -f /
>mount -f /proc
>
>if [ -f /proc/ksyms ]; then
>    USEMODULES=y
>else
>    USEMODULES=
>fi
>
># Set up kernel version-dependent symlinks.
>rm -f /lib/modules/preferred
>if [ -n "$USEMODULES" ]; then
(*)>    ktag="`cat /proc/version`"
(*)>    mtag=`grep -l "$ktag" /lib/modules/*/.rhkmvtag` 2> /dev/null
(*)>    if [ -n "$mtag" ]; then
(*)>	mver=`echo $mtag | sed -e 's,/lib/modules/,,' -e 's,/.rhkmvtag,,' 
-e 's,[ 	].*$,,'`
>	ln -sf /lib/modules/$mver /lib/modules/preferred 
>	ln -sf /boot/System.map-$mver /boot/System.map
>	ln -sf /boot/module-info-$mver /boot/module-info
>    fi
>fi
>
>if [ -x /sbin/depmod -a -n "$USEMODULES" ]; then
>    # Get ready for kerneld if module support in the kernel
>    echo -n "Finding module dependencies... "
>    if [ -e /lib/modules/preferred ]; then
>	depmod -a preferred
>    else
>	depmod -a
>    fi
>    echo "done"
>fi
>
...
>if [ -x /sbin/kerneld -a -n "$USEMODULES" ]; then
>    if [ -f /proc/sys/kernel/modprobe ]; then
>	# /proc/sys/kernel/modprobe indicates built-in kmod instead
>	echo "/sbin/modprobe" > /proc/sys/kernel/modprobe
>    else
>	/sbin/kerneld
>	KERNELD=yes
>    fi
>fi
>
>	***[SNIP]***
>
>J'ose rien toucher :-( sans un minimum d'approbation de la part de
>connaisseurs :-) mais il manque pas un "export USEMODULES" au début ?
>
>eJ.


Voila ce que je viens de repondre a jdd, la liste ne l'a pas recu car je 
me suis plante dans l'adresse.
Je suis chez hotmail donc je ne recoit pas forcement les mails dans 
l'ordre dans lequel ils ont ete emis !


***********************jdd************************
J'ajoute que souvent le probleme vient du fait que l'on compile un 
nouveau noyau a partir des sources du CD original. Je m'explique par un 
exemple :

j'ai la RedHat 5.2
--> le noyau compile avec est 2.0.36-0.7
                                    ^^^^
je compile un nouveau noyau qui aura alors le numero 2.0.36, car c'est 
la version des sources qui sont sur le CD

Or le script du demarrage fait un `depmod -a preferred`, le "preferred" 
ayant au paravant ete supprime (rm -f /lib/modules/preferred) puis 
regenerre avec une commande qui doit faire quelque chose comme :

version=`uname -r`
ln -s /lib/modules/$version /lib/modules/preferred

pb : `uname -r` renverra toujours 2.0.36 et pas 2.0.36-0.7

Mais le flou est au niveau du "quelque chose comme"
Si je me souviens bien (je suis a la fac, je ne peux pas verifier), les 
scripts utilisent des commandes sed ou/et awk, et je ne connais 
malheureusement pas du tout ces deux langages qui ne sont a priori pas 
tres intuitifs. Je viens d'emprunter Linux in a nutschell ou il y a 
quelques indications, je regarderai. TIPS : les pages de man peuvent 
aider.

Ce pb ne touche donc pas le passage du noyau 2.0.36 au 2.2 --> l'idee 
d'y passer serait peut-etre opportune.

***********************jdd************************

Je ne comprend toujours pas l'utilisation de sed.
Je ne pense pas que le pb vienne de l'initialisation de USEMODULES : le 
fichier /proc/ksyms doit certainement exister et l'initialisation a y 
doit fonctionner. Il ne faut pas exporter des variables dont le systeme 
n'a pas besoin apres le demarrage, la duree de vie de la variable doit 
se limiter a celle du script.

Il faudrait que tu me dise quelle version du noyau tu utilise et vers 
laquelle tu veux migrer.

Je te propose une solution (tres) brutale 
SI TU PASSES DU 2.0.36-0.7 AU 2.2.x SANA AVOIR RECOMPILE LE 2.0.36 :

1) TU SAUVEGARDES TON FICHIER /etc/rc.d/rc.sysinit dans 
/etc/rc.d/rc.sysinit.old 
(`cp /etc/rc.d/rc.sysinit /etc/rc.d/rc.sysinit.old`)

2) commente les lignes annotees par (*)

3) inscrit avant la creation des liens symboliques
mtag=`uname -r`


3) fait un lien symbolique du repertoire des modules d'origine vers le 
meme repertoire prive de l'extension affligee par RedHat :
ex : `ln -sf /lib/modules/2.0.36-0.7 /lib/modules/2.0.36

et la meme chose pour les deux lignes qui suivent :

	ln -sf /boot/System.map-2.0.36-0.7 /boot/System.map-2.0.36
	ln -sf /boot/module-info-2.0.36-0.7 /boot/module-info-2.0.36

Je pense que tu comprendra sans probleme ce que l'on fait comme ca.
Le mieux serait tout de meme que quelqu'un comprenne les lignes 
commentees et nous explique ce qui arrive a mtag !
Je chercherai de mon cote.

A demain,
	Vincent
Get Your Private, Free Email at http://www.hotmail.com

 _______________________________________________________________________
  Le CULTe sur le ouebe: http://savage.iut-blagnac.fr/