Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Faire booter LFS sur carte compact flash
Envoyé par: Tomtom

Bonjour,

J'essaye actuellement de faire booter linux depuis une carte Flash.
Je suis parti d'un Linux From Scratch (LFS), noyau 2.6.22, installé au départ sur mon disque dur, sur lequel je boote sans problème.
J'utilise un lecteur multi-cartes en façade, et la carte est accessible via /dev/sdb1 depuis le système installé sur le disque dur.
J'ai copié les éléments du système sur la carte (/bin /usr /dev ...), qui est formatée en ext3, et sur laquelle j'ai installé Grub avec succès.
Jusque là tout va bien, je met la carte dans le lecteur, je démarre, puis Grub trouve bien mon noyau sur la carte, et entamme le boot.
Seulement, au moment de monter /dev/sdb1 sur /, j'ai droit à un kernel panic :

VFS: Cannot open root device "sdb1" or unknown-block(0,0)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Sur le coup celà ne m'a pas choqué, en effet j'avais constaté qu'en bootant LFS sur le disque dur, il mettait un certain temps à détecter mon lecteur multicarte.
En cherchant un peu (même intensément) sur google, j'ai pu trouver un patch à appliquer sur mon noyau, lui permettant d'attendre une seconde avant de réessayer de monter /, dans le but de lui laisser le temps de détecter le lecteur de cartes.
Le noyau attend donc 1 seconde 6 fois de suite, avant de faire son kernel panic.
Il se passe alors quelquechose que je ne comprend pas :
Le patch fonctionne comme prévu:

VFS: Cannot open root device "sdb1" or unknown-block(0,0)
Retrying in 1 second...VFS: Cannot open root device "sdb1" or unknown-block(0,0)
Retrying in 1 second...

etc, etc, jusqu'à ce qu'il détecte ma carte flash :

scsi 6:0:0:0: Direct-Access	   TEAC	    USB	  HS-CF Card	4.08 PQ: 0 ANSI: 0
sd 6:0:0:0: [sdb] 2001888 512-byte hardware sectors (1025 Mcool smiley
sd 6:0:0:0: [sdb] Write Protect is off
sd 6:0:0:0: [sdb] Assuming drive cache: write through
sd 6:0:0:0: [sdb] 2001888 512-byte hardware sectors (1025 Mcool smiley
sd 6:0:0:0: [sdb] Write Protect is off
sd 6:0:0:0: [sdb] Assuming drive cache: write through
 sdb: sdb1
sd 6:0:0:0: [sdb] Attached SCSI removable disk
sd 6:0:0:0: Attached scsi generic sg2 type 0

La on voit bien qu'il a détecté ma carte en sdb1, or il continue à boucler jusqu'à ce qu'il revienne à son kernel panic...
Je ne comprend donc pas pourquoi il semble toujours chercher sdb1 alors qu'il m'affiche lui-même qu'il l'a détécté...

Voici le contenu de mon menu.lst dans Grub :

title LFS
root (hd0,0)
kernel /boot/lfskernel-2.6.22.5 root=/dev/sdb1

Aussi je pense avoir activé tous les modules nécessaires dans le noyau afin de permettre le boot sur SCSI et USB.
Au besoin je peux vous transmettre le .config.

Merci pour votre aide !

Poste le Thursday 26 June 2008 16:39:27
Répondre     Citer    
Re: Faire booter LFS sur carte compact flash
Envoyé par: phenix

Tu dis avoir activé des modules, mais c'est justement ça le problème, sauf si tu utilise initrd, il faut configurer le scsi et usb-storage en dur dans ta config

$ uptime
19:28:06 up 12 days, 20:46,  2 users,  load average: 213.96, 212.37, 208.44

Poste le Sunday 29 June 2008 23:58:57
Répondre     Citer    
Re: Faire booter LFS sur carte compact flash
Envoyé par: nigaiden

Je ne sais pas si tu cherches toujours. Sinon ces informations seront peut-être utiles à d'autres.

Jusqu'à la version 2.6.21.1 du noyau j'utilisais un patch (blkdev_wakeup), mais il ne semble plus marcher avec des versions plus récentes. J'ai trouvé un patch similaire au tien avec le même résultat : les messages semblent indiquer que tout va bien mais le noyau finit en kernel panic. En creusant un peu plus j'ai lu sur le net qu'un paramètre avait été ajouté et qui fait ce que tu veux (et chezmoiçamarche) :

  rootdelay=<durée d'attente en secondes>

Un « rootdelay=5 » dans ta configuration de Grub devrait être suffisant.

Poste le Monday 21 July 2008 16:04:40
Répondre     Citer    
Re: Faire booter LFS sur carte compact flash
Envoyé par: Tomtom

Merci !!
Je retombe sur mon post 2 mois après, mais j'étais toujours confronté au même problème.
L'option rootdelay fonctionne à merveille smiling smiley

Poste le Monday 6 October 2008 14:56:57
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Faire booter LFS sur carte compact flash
Vous voulez savoir si votre matériel est supporté par Linux, ou vous avez un problème pour installer un module ? Ce forum est pour vous !

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons