J'essaie d'obtenir ma propre construction de u-boot pour démarrer Linux sur un tableau Jetson TK1. Comme nous poussons un démarrage vérifié, j'utilise l'arborescence d'image plate (image unificatrice du noyau, arborescence de périphérique, ...) pour décrire mon système. U-boot peut charger le fichier ITB et tenter de démarrer le noyau, mais le système se bloque après ce message.
Je suppose que cela est dû au fait que aucun argument de démarrage n'est transmis au noyau (le démarrage d'origine ajoute des charges d'arguments) mais je Je suis un peu abasourdi sur la façon de transmettre les arguments au noyau. J'ai essayé de définir la variable d'environnement bootargs, mais cela n'a pas changé la situation. P>
Comment passer des arguments du noyau au noyau lors de l'utilisation d'un fichier ITB? P>
Arguments de ligne de commande (pris de La commande append des exemples extlinux.conf): p> contenu de son fichier: p> sortie u-boot : p>
3 Réponses :
Lorsque vous utilisez l'arborescence de périphérique, vous utilisez toujours Vérifiez que: P>
bootargs code> pour fournir des arguments. p>
scripts / dtc / dtc code> à l'intérieur du noyau Linux) li>
config_use_of code>) (Whle of Stands pour "Ouvrir le micrologiciel" em>) li>) li>)
bootm
bootargs code> (E.G.,
console = ttys0,115200 code>) li>
ul>
Sachez que j'utilise un arborescence d'image qui unit l'image du noyau, l'arborescence de l'arborescence du périphérique et d'autres choses (configurations, ramdisks, ...) dans un seul fichier.
Mieux. Avez-vous activé config_use_of code> et la console dans
bootargs code>?
Vous avez la console = ttys0,115200n8 console = TTY1 dans vos bootargs. Vérifiez lequel est correct (démarrez la machine avec DTB et vérifiez) et retirez le mauvais.
Je dois ajouter que ces bootargs fonctionnent dans le cas de les utiliser dans un fichier extlinux.conf pour démarrer Linux sur le même tableau
Supprimer également TTY1 (comme TTY0 est celui que je récupère la sortie) ne change rien: - /
Le problème de saillie est que le système semble suspendre après la sortie de U-Boot, le texte si un fichier de noyau non compressé avant que le code de démarrage du noyau réel soit exécuté, avant tout traitement de la ligne de commande du noyau, avant tout traitement de l'arborescence du périphérique. BLOB, et avant toute sortie de la console du noyau (y compris avocat anticipé em>). p> Il existe une divergence entre les adresses de chargement et de démarrage du noyau spécifiées dans l'en-tête d'image p> par rapport à ce qui est spécifié dans le DT: p> puisque l'image du noyau est temporairement chargée à p> Les adresses de la DT sembleraient être correctes et les adresses dans l'en-tête d'image sont faux. p> supposant qu'il n'y ait pas de RAM physique à 0x00000000, le résultat sera que l'image du noyau est copiée (ou décompressée) à l'adresse de charge de 0, puis l'image du noyau sera exécutée par branche vers Le point d'entrée de faux 0. La CPU est susceptible d'accrocher à tenter d'exécuter des ordures à partir de la mémoire inexistante et qui corréla parfaitement avec ce que vous rapportez. p> solution est (1) confirmez que le noyau est lié à la Adresse correcte et (2) Pour spécifier les adresses correctes dans la commande
Mais si un fichier fort> uImage strong> ou Zimage strud> a été chargé (qui sont également déclarés "non compressés" car ils sont auto-extrayants), le code suivant est exécuté serait la décompression routine qui est attachée au fichier Zimage. Normalement, cette routine de décompression produira un texte tel que p>
-A code> et
-E code> Options de commande.
Cette correction devrait au moins vous mettre au-delà de ce point. P> p>
J'ai connu le même problème ou le même problème similaire. Ma solution (ou contourner) pour ce problème était de définir les variables d'environnement U-Boot InitieRd_High et FDT_HIGE à une adresse de la RAM avant la démarrage u déplacée (dans mon cas 8EFFFFFF). P>
Pouvez-vous s'il vous plaît fournir une sortie de console et des bootarg actuels afin que nous puissions vérifier où le démarrage cesse?