Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:linux:u-boot [2014-09-29 10:41] 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 benutzt das TFTP-Protokoll und einen entsprechenden Server, um Dateien auf die Zielplattform zu transferieren.+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. Häufig ist eine eigene Übersetzung aber gar nicht notwendig, weil ein Boardhersteller das passende Image bereits mitliefert.
  
Zeile 16: Zeile 16:
 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>  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> Schlussendlich können diese Einstellungen persistent gespeichert werden, damit sie auch bei einem Neustart wieder zur Verfügung stehen. <code>saveenv</code>
-Typischerweise müssen auch Kommandos für das Booten (an welcher Adresse befindet sich der Kernel und der Device Tree Blob) sowie Bootargumente vorgegeben werden. Diese Argumente bestimmen z.B. den Typ des Root-File-Systems und die Ausgabe für die Shell. +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. 
 <code>setenv bootargs console=ttyPSC0,115200 rw root=/dev/mtdblock2 rw rootfstype=jffs2 <code>setenv bootargs console=ttyPSC0,115200 rw root=/dev/mtdblock2 rw rootfstype=jffs2
-setenv bootm 0xfe040000 - 0xfff80000+setenv bcmd_flash bootm 0xfe040000 - 0xfff80000
 setenv bootcmd run bcmd_flash setenv bootcmd run bcmd_flash
 </code> </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.