2016-06-01 15 views
1

Ich möchte, aus meinem U-Boot-Skript, das Vorhandensein einer Datei auf einem Gerät überprüfen, bevor das Bild auf diesem Gerät ausgeführt wird. Tatsächlich würde dies sicherstellen, dass auf das angeforderte Gerät zugegriffen werden kann, bevor von diesem gebootet wird. Wie kann ich die Existenz der Datei mithilfe von U-Boot-Konsolenbefehlen testen?Wie überprüft man, ob die Datei im U-Boot-Skript existiert?

Der folgende Test dauert ein ls auf dem USB-Stick, und hier sind die Ergebnisse mit USB-Stick vorhanden:

> if ext2ls usb 0; then echo "USB ON"; else echo "USB KO"; fi 
    <DIR>  4096 . 
    <DIR>  4096 .. 
    <DIR>  16384 lost+found 
    <DIR>  4096 boot 
       4096 boot.scr 
USB ON 

gleicher Test ohne USB-Stick:

> if ext2ls usb 0; then echo "USB ON"; else echo "USB KO"; fi 
** Bad device usb 0 ** 
USB KO 

Mein Wunsch wäre, Testen Sie das Vorhandensein der Datei boot.scr in der Tat. Wie könnte ich das bitte tun?

Antwort

4

Sie sind ziemlich nah dran. Da ext2ls (oder Gattungs ls) nur auf Verzeichnisse arbeiten müssen Sie stattdessen tun:

=> if load mmc 0:1 ${loadaddr} notfound; then echo found; else echo notfound;fi 
** File not found notfound ** 
=> if load mmc 0:1 ${loadaddr} boot.scr; then echo found; else echo notfound;fi 
27980 bytes read in 26 ms (1 MiB/s) 
found 

Sie können weitere Beispiele für diese Art von Test sehen und zurück in include/config_distro_bootcmd.h

fallen