logo       

RE : Réf. : [Confirme] RE : [Confirme] Problème deboot sur disque USB: msg#00576

Subject: RE : Réf. : [Confirme] RE : [Confirme] Problème deboot sur disque USB
Sans être pédant, ce n'est pas une bonne idée, mais c'est la cause de ton
problème.
Pour la compilation, sleep() n'est pas définie au niveau du noyau. C'est un
wrapper.
Il faut utiliser une autre primitive ... Je n'aurai le temps de regarder
qu'en fin de journée!

Yves
-----Message d'origine-----
De : Robert PALUDETTO [mailto:robert.paludetto@xxxxxxxxxxxxxxxx] 
Envoyé : jeudi 29 janvier 2004 09:31
À : Crespin.Quartz@xxxxxxxxxx
Objet : Réf. : [Confirme] RE : [Confirme] Problème deboot sur disque USB



Bonjour, 

Dès que j'ai eu 5 mn de libre, je me suis précipité pour mettre en oeuvre
ton idée qui me parait une bonne piste. 
Je m'attendais à quelques difficultés, mais pas à celle-ci : erreur à la
compile (make bzImage) en phase finale (au link je pense) 

j'ai repris les dernières lignes affichées : 

make[2]: Leaving directory `/mnt/sda1/usr/src/linux-2.4.22/arch/i386/lib' 
make[1]: Leaving directory `/mnt/sda1/usr/src/linux-2.4.22/arch/i386/lib' 
ld -m elf_i386 -T /mnt/sda1/usr/src/linux-2.4.22/arch/i386/vmlinux.lds -e
stext arch/i386/kernel/head.o 
arch/i386/kernel/init_task.o init/main.o init/version.o init/do_mounts.o \ 
        --start-group \ 
        arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o
fs/fs.o ipc/ipc.o \ 
        drivers/acpi/acpi.o drivers/char/char.o drivers/block/block.o
drivers/misc/misc.o drivers/net/net.o 
drivers/char/agp/agp.o drivers/char/drm/drm.o drivers/ide/idedriver.o
drivers/scsi/scsidrv.o drivers/cdrom/driver.o 
drivers/sound/sounddrivers.o drivers/pci/driver.o drivers/pcmcia/pcmcia.o
drivers/net/pcmcia/pcmcia_net.o drivers/pnp/pnp.o 
drivers/video/video.o drivers/usb/usbdrv.o drivers/media/media.o \ 
        net/network.o \ 
        /mnt/sda1/usr/src/linux-2.4.22/arch/i386/lib/lib.a
/mnt/sda1/usr/src/linux-2.4.22/lib/lib.a 
/mnt/sda1/usr/src/linux-2.4.22/arch/i386/lib/lib.a \ 
        --end-group \ 
        -o vmlinux 
init/do_mounts.o(.text.init+0x63b): In function `mount_root': 
: référence indéfinie vers « sleep » 
make: *** [vmlinux] Erreur 1 
root@ttyp1[linux]# 

voici l'extrait de do_mounts.c tel que je l'ai patché : 

static void __init mount_root(void) 
{ 
        sleep(4); 
#ifdef CONFIG_ROOT_NFS 
       if (MAJOR(ROOT_DEV) == NFS_MAJOR 
           && MINOR(ROOT_DEV) == NFS_MINOR) { 

J'ai quelques restes de programmeur en C sous AIX, il me semble pourtant que
sleep est une fonction standard du langage C. 

J'ai cherché dans les include du source, j'ai trouvé une référence à la
fonction sleep dans ide.h, de la sorte : 

unsigned long sleep; 

mais j'ai pas réussit à l'exploiter. 

Je pense que quelque chose m'échappe encore.  as-tu une idée ? 

Merci d'avance 



"Yves Crespin" <Crespin.Quartz@xxxxxxxxxx> 
Envoyé par : confirme-owner@xxxxxxxxxxxxxxxxxx 
28/01/2004 10:45 
Veuillez répondre à Crespin.Quartz 
        
        Pour :        "'Robert PALUDETTO'"
<robert.paludetto@xxxxxxxxxxxxxxxx>, <confirme@xxxxxxxxxxxxxxxxxx> 
        cc :         
        Objet :        [Confirme] RE : [Confirme]  Problème de boot sur
disque USB



Les deux solutions sont valables.
Le plus simple est de faire la compilation sur la machine cible car il y a
des optimisations de compilation automatique qui dépendent de la machine.

Cela n'a sûrement pas changé :
Cd /usr/src/linux
Make mrproper
Make oldconfig # cela te permet de récupérer ton ancienne configuration
Make dep
Make bzImage
Make install
Make modules
Make modules-install

Yves
-----Message d'origine-----
De : Robert PALUDETTO [mailto:robert.paludetto@xxxxxxxxxxxxxxxx] 
Envoyé : mercredi 28 janvier 2004 08:40
À : crespin.quartz@xxxxxxxxxx
Objet : [Confirme] Problème de boot sur disque USB



Merci pour le tuyau. Encore une ou deux questions sur le sujet, avant de me
lancer dans cette aventure : 

J'en conclu qu'il faut que je me fasse une compile du noyau. Deux solutions
s'offrent à moi : 
- Compilation sur la machine cible après boot sur le CD knoppix 3.2 (la
machine cible n'a pas de lecteur de disquette, donc pas possible de
fabriquer une disquette de secours à l'install pour booter dessus) 
- Compilation sur une autre machine ayant booté sur Mandrake 9.2 

Laquelle retenir ? 
quelqu'un a-t-il une how-to spécifique sur la compilation d'un noyau pour
mandrake, ou puis-je me fier à la HOW-TO du noyau linux, version 1.0 du 5
juin1999 disponible sur http://www.freenix.fr/linux/HOWTO/ ? 

Enfin, quelles versions des sources dois-je utiliser (mes CD ne les
contiennent pas) ? 

Encore une fois merci 





Yves CRESPIN <crespin.quartz@xxxxxxxxxx> 
Envoyé par : confirme-owner@xxxxxxxxxxxxxxxxxx 
27/01/2004 19:12 
Veuillez répondre à crespin.quartz 
       
       Pour :        confirme@xxxxxxxxxxxxxxxxxx 
       cc :         
       Objet :        Re: Re: [Confirme] Problème de boot sur disque USB



La solution est simple ... mais il faut avoir rencontrer le problème pour   
le savoir!   
 
C'est juste une question de timing!   
Il faut patcher le noyau pour laisser le   
temps de reconnaitre les périphériques USB par le système avant le   
montage du FS!   

Le patch est à mettre dans init/do_mounts.c  
Il suffit d'attendre quelques secondes.  

sleep(4);  

à mettre au début de la fonction mount_root()  

Yves  


Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";


Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";


Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";
<Prev in Thread] Current Thread [Next in Thread>