Forum Linux.embarqué Debian sur CF avec busybox demarrage tres long

Posté par  .
Étiquettes :
0
14
mai
2009
Bonjour,
après avoir galéré quelque temps a installer un noyau debian 2.6.24 patché Xenomai sur une Compact Flash qui tourne avec busybox 1.13.4, j'obtiens une distribution de base qui fonctionne.

Cette distibution fonctionne sur ma cible qui est un pc 104, mais pour le développement, j'utilise l'émulateur bochs.

Cependant, mon temps de démarrage est très long, il faut compter à peu prés 4 minutes avant d'arriver sur le shell.

Je n'arrive pas a faire booter mon noyau sans initrd, pourtant j'ai bien mis en dur le gestion des fichier et la gestion de l'ide. Lorsque que je teste sans initrd j'obtiens comme erreur :

[ 31.144484] VFS: Cannot open root device "hda1" or unknown-block(0,0)
[ 31.145164] Please append a correct "root=" boot option;

Donc lorsque mon noyau se lance avec initrd je tombe sur la vérification du initrd qui prend des plomble :
"checking if it is initramfs image ........ it is "

Puis au bout de 2 minutes le démarrage continu et je tombe bien sur mon shell.

alors ma question est de savoir si il est possible de virer ce test, ou le forcer a répondre yes des le départ de la vérification.

Je peux vous fournir mon .conf si vous voulez y jeter un coup d'œil.

Merci pour vos réponses

Fab
  • # Autres solutions...

    Posté par  (site web personnel) . Évalué à 2.

    L'autre solution serait plutot d'utiliser un virtualisateur, ou au pire un émulateur dont les performances ne sont pas strictement execrables, comme qemu (qui est de ce que j'ai pu tester, infiniement fois plus rapide que bochs.)
    Sinon fait un man rdev pour ce qui concerne le root.
    • [^] # Re: Autres solutions...

      Posté par  . Évalué à 1.

      Merci pour la réponse, c'est vrai que la lenteur peut venir de bochs.

      J'ai construit mon system en m'aidant du tuto paru dans le linux magasine hors serie N25, sur la construction d'une distrubution embarquée x86 sur compactflash.

      j'ai fais des tests avec l'image disk fournie avec le tuto et leur system boote en meme pas 2 minutes.

      Je sais que cela vient de la configuration de la compilation mais je ne sais pas quel parametre
  • # Pas d'initrd

    Posté par  (site web personnel) . Évalué à 2.

    "unknown-block(0,0)" : je dirais qu'il ne comprends pas hda1, car ca ne devrait pas être 0,0.

    Tu peux essayer de remplacer root= par un rdev sur le noyau à booter (si ca fonctionne encore, je ne sais plus si c'est toujours utilisé).

    S'il ne reconnais pas hda1, il est possible que tu ais optimisé ton noyau et qu'une des options supprimées contienne les nom des devices.
    • [^] # Re: Pas d'initrd

      Posté par  . Évalué à 1.

      Ce que j'ai pu lire sur différents sites et forums, dans mon cas il faut que je mette en dur la gestion de l'IDE et la gestion des fichier EXT2, le format dans lequel et formatés ma Compact Flash.

      Pour le reste je ne sais pas trop les option a passer en dur dans le noyau.


      Sinon j'ai fais le test avec rdev=/dev/hda1 j'obtiens la meme erreur.
      • [^] # Re: Pas d'initrd

        Posté par  (site web personnel) . Évalué à 2.

        Si tu n'as pas modifié d'autres options à la compilation, ce n'est peut-etre pas ca, mais tu peux toujours tenter.

        Sinon rdev n'est pas une option du noyau, mais une commande en ligne qui modifie le binaire du noyau avant le boot. En effet, ce binaire contient les paramètres par défaut, ceux qui sont pris en compte lorsque tu ne passe aucun argument.
        • [^] # Re: Pas d'initrd

          Posté par  . Évalué à 1.

          Il me semble quand même qu'aujourd'hui rdev ne sert plus à rien, tout est géré dans l'initrd.
          • [^] # Re: Pas d'initrd

            Posté par  (site web personnel) . Évalué à 2.

            Ce n'est pas parce que c'ests plus utulisé que ca ne sert à rien.
            Et il y a encore des gens qui n'utilisent pas d'initrd.
  • # ma config

    Posté par  . Évalué à 1.

    make menuconfig
    Executable file formats ­ - Kernel support for ELF binaries ­- YES
    File systems ­- Second extended fs support ­- YES
    Device Drivers ­- ATA/ATAPI/MFM/RLL support ­- ATA/ATAPI/MFM/RLL support
    ­-YES
    ­- Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support ­> YES
    ­- Include IDE/ATA­2 DISK support ­> YES
    ­- Use multi­mode by default ­> YES

    voici les modifs que j'ai faites a partir de mon noyau qui marché sur ma cible pour le faire marcher sans initrd.
    • [^] # Re: ma config

      Posté par  . Évalué à 2.

      Il faudrait aussi que tu actives le driver ATA spécifique à ton matos. C'est quoi comme carte ?
      Et sinon, t'as l'air d'utiliser l'ancienne stack IDE, il faudrait plutôt que tu regardes du coté de libata aujourd'hui, dumoins si le driver pour ton chipset est dedans.
  • # rootdelay

    Posté par  . Évalué à 2.

    essaie rootdelay=5
  • # Merci pour vos réponse.

    Posté par  . Évalué à 1.

    Merci pour vos réponses, je n'arrive toujours pas a obtenir le démarrage que je veux en enlevant le test de initramfs.

    J'ai recompilé plusieurs noyaux pour ne pas utiliser de initrd, mais il doit encore me manquer des options en statique.

    La carte que j'utilise est une Geode LX 830.

    Et je vais essayer le rootdelay = 5

    Merci encore pour vos réponses.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.