Forum Linux.embarqué Installation de noyau Linux sur une carte arm AT91SAM9G20-EK

Posté par  .
Étiquettes : aucune
0
26
juin
2009
Bonjour,
Pour installer un noyau Linux 2.6 sur une carte arm, il me faut un bootstrap, un bootloader, un système de fichier et une image noyau compilé.
Ceci nécessite que ces fichiers soient en bin.
Ma question est comment transformer l'image noyau Linux en binaire puisque son compilation nous fournit une image (uImage) pas un bin?
Merci
  • # u-boot tools ?

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

    Bonjour,

    La UImage est une image contruite pour Uboot si je ne m' abuse. (en fait c est juste le kernel, non compressé, contrairement à un bzimage ou autre). Cela va dépendre du bootloader (que tu a choisi, redboot par exemple, ou pas...). Quoique cette image devrait être bootable partout, non ? Si tu as déjà fait ça, c' est que tu semble avoir les bons outils, non ?
    As tu seulement essayer de le booter, ce kernel ?

    Donc j' avoue que je ne dois pas comprendre ton problème, n' étant pas un expert du sujet, ta question manque de précisions pour moi. Je décompresserai juste cette image (et encore je vois pas pkoi ça pourrait pas booter...) et pis voilà. Mais je dois me tromper peut être ?

    Sans vouloir t' offusquer nullement, un petit coup de http://google.fr/linux ne fait pas de mal afin d' avoir quelques pistes et quelques essais déjà derrière soi, et ainsi pouvoir poser d' éventuelles questions plus précises.

    Regarde les options de compilation du noyau, tu devrais trouver ta réponse (et si tu as a du temps à perdre, tester une compilation avec options aléatoires :p :p ) En particulier les directives concernant KBUILD_IMAGE. ???

    Tu trouvera toutes les infos nécessaires sur un site de référence :
    http://www.arm.linux.org.uk/

    Concernant la bibliothèque, j' ai celui ci :
    http://www.editions-eyrolles.com/Livre/9782212116748/
    Fantastique.

    Bon, si par chance tu utilises Fedora (ou RedHat ou CentOS), tu peux profiter d' un environnement complet. Cet environnement va te permettre de t' affranchir de fastidieuses étapes, au départ. Te permettant de te concentrer sur ton objectif réel (développement je présume ? sont rares les cinglés qui font juste ça pour le faire...). Pour le moment, car par la suite tu préféreras très certainement comprendre chacune des étapes et les faire à la main en maîtrisant le process. Bon cet environnement -que je te conseille sans être un expert [loin de là], mais il est simple, pratique, sous la forme d' un dépôt rpm (full gpl off course) te permettant de disposer de tout le nécessaire (env de cross compil et toolchains, tout prêts) Simple comme un coup de Yum.... Il est fourni par ...bip... :p google est notre ami :))

    Désolé du bruit (puisque ça ne répond pas en 2 étapes à ta question). Mais j' espère que ça te donnera envie d' aller voir plus loin ...

    Cdlt.
    • [^] # Re: u-boot tools ?

      Posté par  . Évalué à 1.

      Merci d'abord pour ta réponse.
      J' ai réussi à charger le noyau sur la carte, le problème était l'utilisation d'une commande mkImage (fourni avec le bootloader?) pour adapter le noyau à un format "comestible" par l'outil qui télécharge les fichiers sur la carte... Je crois qu'on en est pas encore à démarrer dessus pour vérifier qu'il charge bien... Mais on a bien un port console pour visualiser les traces au boot.
      Ma cible c'est une carte de démo d'un ARM9 d'atmel (la carte est une AT91SAM9G20-EK qui embarque un processeur AT91SAM9G20 qui est un ARM926EJ-S-based 32-bit RISC).
      voici ce que le console affiche comme trace:

      U-boot.....
      ...
      ...
      ..
      Verifiying checksum...ok
      Loading kernel image ...ok
      ok
      Starting kernel...
      Uncompressing Linux ........................................... doen, booting the kernel.

      et il reste bloqué à ce niveau!!!!
      Merci
      • [^] # Re: u-boot tools ?

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

        tu n' aurai pas oublié quelque chose ?
        genre un initrd ?
        avec inside un ensemble de nodes déjà préparées, puis un ensemble d' outil [genre busybox bien entendu, mais aussi pourquoi pas un shell complet à ses côtés, voir un interpréteur python)
        • [^] # Re: u-boot tools ?

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

          Bonjour

          Je reviens pour demander des nouvelles :D
          C' est bon ? as tu trouvé ce qu' il manquait ? Si oui, c' était quoi ?

          Comme marqué plus haut, il existe des projets permettant de s' affranchir des premières étapes, et de gagner du temps. Par exemple :

          LTIB
          Linux Target Image Builder
          http://ltib.org/home-features
          tu sera peut être également intéressé par ces ressources :
          http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId(...)

          Pour ta carte spécifiquement (une de type SAM), il existe un site documentaire dédié. Selon ton besoin exact cela peut aussi être intéressant de le consulter :
          http://www.linux4sam.org/twiki/bin/view/Linux4SAM/GettingSta(...)
          --> http://www.linux4sam.org/twiki/bin/view/Linux4SAM/AT91Bootst(...)

          Pourrais tu dire ici l' avancée de tes travaux dans les grandes lignes, ainsi que la solution que tu a retenue ? Je suis très intéressé :D Merci d' avance

          Cordialement.
          • [^] # Re: u-boot tools ?

            Posté par  . Évalué à 2.

            Bonjour,
            oui le problème est résolu :-)
            j'ai utilisé un fichier de configuration (config) pour le noyau avant de le compiler, j'ai télécharger ce fichier à partir du site http://www.linux4sam.org. Donc c'est un problème de configuration.
            En fait, on a pas besoin de transformer l'image noyau en bin car elle est dèjà, on obtient à la fin de la compilation du noyau un uImage qui est déjà binaire. La commande mkimage le transforme en binaire et après en uImage.
            on obtient le binaire de cette commande après compiler le u-boot, et on doit ajouter son chemin dans le PATH pour qu'elle sera automatiquement utilisé lors du compilation du noyau. On peut aussi l'exécuter avec une commande.
            Merci pour votre aide

            cordialement

Suivre le flux des commentaires

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