Warum Linux nur nicht automatisch gebootet wird Wenn ich die BOOT.bin geändert habe, nicht das zImage, während es im ersten Fall automatisch gebootet wird

Ich habe ein Zynq-Board (nicht das Zedboard), es hat nicht alle Peripheriegeräte von Zedboard. Ich habe ein Problem beim Booten von Linux auf Zynq mit meiner neuen BOOT.bin.

Als ich die SD-Karte in das Zynq-Board gesteckt habe, das drei Dateien BOOT, Devicetree, zImage hatte. Hier ist BOOT die alte Datei, die bereits von jemandem erstellt wurde. Das Linux bootet automatisch und es wird viel auf dem Bildschirm gedruckt, wahrscheinlich werden alle Linux-Treiber usw. geladen, und ich erhalte eine "root@mcontroller"-Eingabeaufforderung. so was:Geben Sie hier die Bildbeschreibung ein

Aber jetzt habe ich eine neue BOOT-Datei von xilinx sdk erstellt. Jetzt habe ich drei Dateien auf die SD-Karte gelegt. BOOT , Gerätebaum und zImage. Stecken Sie die Karte in das Zynboard.

Ich erhalte die Eingabeaufforderung „Zynq-uboot>“.

Geben Sie hier die Bildbeschreibung ein

Okay, ich habe das obige Bild aufgenommen, als ich Windows verwendet habe, aber ich erhalte die gleiche Eingabeaufforderung, wenn ich auch Ubuntu verwende.

Ich verstehe den Unterschied zwischen der Eingabeaufforderung root@mcontroller und zynq-uboot nicht? Warum erhalte ich nicht root@mcontroller, wenn ich die BOOT-bin-Datei ändere?

Antworten (1)

Die zynq-uboot>Eingabeaufforderung ist der uBoot-Befehlsinterpreter. root@mcontroller#ist ein Linux-Shell-Prompt. In der ersten Aufnahme sind Sie also in einer Linux-Umgebung einsatzbereit. Bei der zweiten Aufnahme befinden Sie sich noch im Bootloader. Sie müssen sich die uBoot-Befehle ansehen, um herauszufinden, wie Sie das Linux-Image ausführen können.

Ich habe die Frage geändert, können Sie mir da helfen?
Es ist lange her, seit ich uBoot verwendet habe, aber ich werde es versuchen. Aus der Bildschirmaufnahme sieht es so aus, als hätten Sie mehrere Boot-Skripte in der Umgebung definiert, sodass Sie wahrscheinlich nur das richtige ausführen müssen. Da Sie eine SD-Karte erwähnt haben, versuchen Sie, sie mit nmc_loadbit_fatund dann zu laden bootm 0x3000000 0x2000000 0x2A00000. Überprüfen Sie nach Möglichkeit die Befehle, die das ursprüngliche BOOT-Image enthielt. Das sollte Ihnen ein besseres Gefühl dafür geben, wie Sie vorgehen müssen.
Es tut mir wirklich leid, aber wie lade ich es mit nmc_loadbit_fat?, und ich weiß nicht, wie ich die Befehle überprüfen kann, die das ursprüngliche BOOT-Image enthielt.
Ich weiß es leider nicht. Ich habe mir gerade die Bildschirmaufnahme der Bootloader-Umgebung angesehen und es sah so aus, als wären einige Skripte verfügbar. Am besten schauen Sie sich das ursprüngliche Setup an, das funktioniert hat, und sehen, welche Befehle ausgeführt werden. Es muss eine Art Befehl geben, um ein Bild in den Speicher zu laden und es dann auszuführen.
Ich habe es gelöst, das Problem war, dass ich die falsche u-boot.elf-Datei für die Generierung von BOOT.bin verwendet habe. Ich habe die richtige u-bbot.elf verwendet und die BOOT.bin generiert und einfach die BOOT.bin durch die neue BOOT.bin ersetzt, und als ich die SD-Karte in das Board eingesteckt habe, habe ich die Eingabeaufforderung für Linux und root@mcontroller erhalten. Aber jetzt funktioniert mein HDMI-Anschluss nicht. Bedeutet das, dass das Problem bei meinem Hardware-Design (xilinx EDK) liegt, das ich für die neue BOOT.bin-Generation verwendet habe?