Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
software:linux:u-boot [2014-09-29 10:12] – angelegt grafsoftware:linux:u-boot [2023-04-11 09:09] (aktuell) Urs Graf
Zeile 5: Zeile 5:
 </box> </box>
  
-U-Boot (universal boot loader) ist eine bootloader software, die auf vielen Mikroprozessoren lauffähig ist und wird v.a. für eingebettete Systeme eingesetzt. Eine spezielle Shell ermöglicht die Eingabe von Befehlen. Zudem lassen sich Umgebungsvariablen persistent speichern.+U-Boot (universal boot loader) ist eine Bootloader Software, die auf vielen Mikroprozessoren lauffähig ist und wird v.a. für eingebettete Systeme eingesetzt. Eine spezielle Shell ermöglicht die Eingabe von Befehlen. Zudem lassen sich Umgebungsvariablen persistent speichern. U-Boot benutzt das TFTP-Protokoll und einen entsprechenden Server, um Dateien auf die Zielplattform zu transferieren.
 U-Boot wurde zusammen mit Linux entwickelt und ein Grossteil des Quellcodes kommt von dort. U-Boot wurde zusammen mit Linux entwickelt und ein Grossteil des Quellcodes kommt von dort.
  
 ===== Übersetzung ===== ===== Übersetzung =====
-U-Boot kann analog zu einer Kernelübersetzung (siehe [[software:linux:linux-kernel_kreuzkompilieren|Linux-Kernel kreuzkompilieren]] erfolgen. Natürlich müssen die passenden Patches für eine bestimmte Zielplattform gemacht werden.+U-Boot kann analog zu einer Kernelübersetzung (siehe [[software:linux:linux-kernel_crosscompilieren|Linux-Kernel kreuzkompilieren]]) übersetzt werden. Natürlich müssen die passenden Patches für eine bestimmte Zielplattform gemacht werden
 +Häufig ist eine eigene Übersetzung aber gar nicht notwendig, weil ein Boardhersteller das passende Image bereits mitliefert.
  
 ===== Umgebungsvariablen ===== ===== Umgebungsvariablen =====
-Damit U-Boot korrekt laufen kann und eine Shell uellenfile übersetzenwobei das Quellen- und das Zielformat angegeben wird: +Damit U-Boot korrekt laufen kann, müssen Einstellungen für die Bootkonfiguration oder die Konfiguration der Netzwerkadressen in den sog. Umgebungsvariablen vorgenommen werden. Dieses 'Environment' wird üblicherweise in einer separaten Partition des Flashs oder einem EEPROM gespeichert, siehe [[http://www.denx.de/wiki/publish/DULG/to-delete/UBootCmdGroupEnvironment.html]].  
-<code># dtc -I dts -O dtb -o myDest.dtb mySource.dts</code> +Mit <code>printenv</code> können die aktuellen Einstellungen angezeigt werden. Das Setzen einer Umgebungsvariablen erfolgt am Beispiel der IP-Adresse mit <code>setenv ipaddr 192.168.1.10</code>  
- +Schlussendlich können diese Einstellungen persistent gespeichert werden, damit sie auch bei einem Neustart wieder zur Verfügung stehen. <code>saveenv</code> 
-===== Übersetzung ===== +Typischerweise müssen auch Kommandos für das Booten (an welcher Adresse befindet sich der Kernel und der Device Tree Blob, siehe [[software:linux:devicetree|Device Tree erstellen]]) sowie Bootargumente vorgegeben werden. Diese Argumente bestimmen z.B. die Adresse und den Typ des Root-File-Systems und die Ausgabe für die Shell.  
-U-Bo +<code>setenv bootargs console=ttyPSC0,115200 rw root=/dev/mtdblock2 rw rootfstype=jffs2 
- +setenv bcmd_flash bootm 0xfe040000 - 0xfff80000 
 +setenv bootcmd run bcmd_flash 
 +</code> 
 +Mit der letzten Einstellung bootet U-Boot automatisch aus dem Flash. Soll sich beispielsweise das Root-File-System auf dem Host befinden, kann mit folgendes Kommando definiert werden: 
 +<code>setenv bcmd_net run bargs_base bargs_nfs 
 +</code> 
 +Mit den richtigen Argumenten versehen, bootet nun System über das Netz.