Question:
Sortie série en cas d'absence de système d'exploitation
Cheiron
2020-01-02 21:04:36 UTC
view on stackexchange narkive permalink

J'utilise le raspberry pi 4. Je n'ai pas d'écran connecté au raspberry pi, je fais tout via un câble Ethernet.

Je change actuellement de noyau et donc parfois je ne peux pas démarrer, depuis que j'ai créé un noyau cassé. Dans ces cas, il semble que tout ce que je peux faire est d'attendre et de vérifier si l'appareil est en ligne.

J'ai fait fonctionner UART0 et maintenant j'obtiens une sortie si l'appareil démarre. Mais que faire s'il ne démarre pas? Je m'attendrais à ce qu'il y ait un autre moyen que de connecter un écran pour comprendre que l'appareil ne démarre pas et pourquoi. Alors, y a-t-il une possibilité de lire des informations via un périphérique série même s'il n'y a pas de périphérique de stockage à partir duquel le RPI peut démarrer?

Trois réponses:
goldilocks
2020-01-02 21:31:51 UTC
view on stackexchange narkive permalink

Est-il possible de lire des informations via le périphérique série même s'il n'y a pas de périphérique de démarrage?

Voir la réponse d'Ingo - ce qui peut ou peut ne pas fournir d'informations utiles dans le contexte de votre question.

Je m'attendrais à ce qu'il y ait un autre moyen que de connecter un écran pour comprendre que l'appareil ne démarre pas et pourquoi.

Ce genre de contournement le concept de «cassé», se référant à quelque chose qui ne fonctionne pas. Il peut y avoir des degrés de rupture, mais à un moment donné, cela doit signifier qu'il n'y a pas de source directe d'informations utile parce que l'appareil est cassé au-delà de ce point. La plupart du temps, les échecs de démarrage ne signifient pas que le Pi est physiquement cassé, mais puisque nous pouvons parler de "logiciel cassé", c'est une perspective arbitraire qui tente à nouveau de brouiller le concept, cassé .

95% du temps, la cause est un certain degré de corruption sur la carte SD parce qu'elle n'a pas été créée correctement, ou le système a été arrêté de manière malpropre. Si vous pouvez placer la carte dans un autre ordinateur qui peut y accéder correctement (c'est-à-dire pas une boîte Windows standard) et exécuter des diagnostics sur les systèmes de fichiers, alors c'est une forme d'information utile.

La chose la plus proche de ce que vous recherchez serait l'état de la led verte ACT. Pour les problèmes courants avec le contenu de la carte SD, celle-ci clignotera de manière régulière - commencez ici et lisez vers le bas pour accéder aux détails à ce sujet.

Si le vert led ne fait pas cela, cette page peut encore être utile. De plus, il y a les problèmes de démarrage persistants maintenus par le forum de discussion Pi Foundation.

Enfin:

  • Si le voyant vert ne clignote pas mais clignote par intermittence pendant plus de 10 secondes puis s'arrête (ou continue indéfiniment), alors le système d'exploitation a démarré, mais cela ne signifie pas qu'il est entièrement fonctionnel. La meilleure source d'informations dans ce cas va être de brancher un écran en supposant que vous avez hdmi_force_hotplug=1 dans /boot/config.txt . Si la console série ou sshd fonctionne, alors il y a aussi ça.

  • Si le voyant vert ne fait rien, ou s'allume et reste allumé, essayez de le débrancher, en prenant la carte SD et la rebrancher. Il y a de fortes chances qu'elle fasse exactement la même chose, ce qui signifie que la carte ne peut pas du tout être lue correctement. Cela peut se produire même avec une petite quantité de corruption si elle est au bon endroit. Vous pourrez peut-être le récupérer en utilisant un autre ordinateur (ou au moins récupérer certaines des données s'il y a quelque chose d'important), mais si ce n'est pas une option (cela peut prendre un certain niveau de compétence), vous devez alors reflasher la carte .

Je mentionne un périphérique de stockage avec "périphérique de démarrage", donc en supposant que nous ayons un RPI entièrement fonctionnel mais pas de carte SD et USB valide, puis-je comprendre quel est le problème sans vérifier le périphérique de stockage. Vos conseils sont très utiles, merci.
veuillez modifier votre message ... il dit toujours `périphérique de démarrage`
Depuis RPi 4, il est possible d'obtenir des messages de débogage du chargeur de démarrage même s'il n'y a pas de "périphérique de démarrage". Vous pouvez jeter un œil à ma réponse.
Ingo
2020-01-05 02:14:26 UTC
view on stackexchange narkive permalink

Est-il possible de lire des informations via le périphérique série même s'il n'y a pas de périphérique de démarrage?

Oui! C'est possible depuis Raspberry Pi 4B.

Le RPi 4B est livré avec une EEPROM contenant le chargeur de démarrage et qui est reprogrammable. Jetez un œil à l ' EEPROM de démarrage du Raspberry Pi 4. Vous pouvez y définir un indicateur de débogage BOOT_UART = 1 comme décrit dans Configuration du chargeur de démarrage Pi4.

Voici la sortie de mon RPi 4B sans rien connecté (sauf l'alimentation et l'adaptateur série USB / TTL connecté aux GPIO 14 et 15), pas même une carte SD insérée (pas de périphérique de démarrage).

  console de gestion ~ $ tio / dev / ttyUSB0 [tio 20:40:27] tio v1.32 [tio 20:40:27] Appuyez sur ctrl-t q pour quitter [tio 20:40:27] ConnectéPM_RSTS: 0x00001000RPi: version BOOTLOADER VERSION: f626c772 sept 10 2019 10:41:52 BOOTMODE: 0x00000006 partie: 0 BUILD_TIMESTAMP = 1568112110uSD tension 3.3VSD HOST: 200000000 CTL0: 0x00000000 BUS: 100000 Hz div: 2000 état: 0x1fff0000 delay-ticks: 1080SD HOST: 200000000 CTL0: 0x00000f00 BUS: 100000000 Hz div: 2000 status: 0x1fff0000 delay-ticks: 1080: ERROR: '' CMDTM: 0x081a0010 ARG1: 0x000001aa en attente de cmd-index: 8 start: 5728148 now: 5730149 delay: 2001 max-delay: 2000 RESP0: 0x00000000 RESP1: 0x00000000: RESP2: 0x000000 00 RESP3: 0x00000000 avant cmd STATUS: 0x1fff0000 INTERRUPT: 0x00000000 CONTROL2: 0x00000000 BLKSIZECNT: 0x00000000 now STATUS: 0x1fff0001 INTERRUPT: 0x00000000 CONTROL2: 0x00000000 BLKSIZECNT: 0x00000000evtype: 0x0000004e error: 0x000000 'evtype error: 0x000000' evtype error: 0x000000 'evtype error: 0x000000' evtype error: 0x000000 'evtype error: 0x000000' evtype error: 0x000000 'evtype error: 0x000000' evtype error: 0x000000 'evtype error: 0x000000' evtype error: 0x000000 'evtype error: 0x000000' evtype error: 0x000000 'evtype error: 0x000000' evtype error: 0x000000 'evtype error: 0x000000' evtype error: 0x000000 'evtype error: 0x000000' evtype error: 0x000000 'evtype error: 0x000000' evtype error: 0x000000 'evtype error: 0x000000' evtype : 2 '' Impossible d'ouvrir le périphérique: 'arasan-emmc0' 2FATAL @ 0x800023bcLDO: 0xde  

Bien sûr, vous devez savoir ce que signifient tous ces caractères et chiffres du débogage de très bas niveau, mais avec les trois dernières lignes contenant Impossible d'ouvrir le périphérique: 'arasan-emmc0' google vous dit que le terme eMMC est l'abréviation de " contrôleur multimédia intégré " et fait référence à un package comprenant à la fois une mémoire flash et un contrôleur de mémoire flash intégrés sur la même puce en silicone.

Ou en bref: il manque la carte SD.

jpa
2020-01-03 12:38:41 UTC
view on stackexchange narkive permalink
La réponse de

@ goldilock fournit un bon aperçu des problèmes de débogage de démarrage.

Cependant, pour répondre à la question de:

Alors, y a-t-il une possibilité de lire les informations à travers le périphérique série même s'il n'y a pas de périphérique de démarrage?

Cela se ferait généralement via JTAG, en utilisant un débogueur matériel. Cela fournit des capacités telles que la lecture de la mémoire et des valeurs de registre, et le pas à pas du code instruction par instruction.

Pratiquement tous les débogueur JTAG prenant en charge les processeurs ARM peuvent être utilisés avec Raspberry Pi. Cependant, il faut activer les broches JTAG via un indicateur de chargeur de démarrage dans config.txt : enable_jtag_gpio=1.

Donc pour Raspberry Pi, non, il ne semble pas qu'il existe un moyen d'obtenir une sortie de débogage autre que le voyant clignote s'il n'y a aucun périphérique de stockage connecté.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...