首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查u-boot脚本中是否存在文件?

如何检查u-boot脚本中是否存在文件?
EN

Stack Overflow用户
提问于 2016-06-01 18:07:34
回答 2查看 4.2K关注 0票数 3

我想从u-boot脚本检查设备上是否存在文件,然后再在此设备上运行映像。实际上,这将确保在从所请求的设备启动之前能够访问它。如何使用u-boot控制台命令测试文件是否存在?

以下测试对U盘执行ls,以下是U盘存在的情况下的结果:

代码语言:javascript
运行
复制
> 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

不带U盘的相同测试:

代码语言:javascript
运行
复制
> if ext2ls usb 0; then echo "USB ON"; else echo "USB KO"; fi
** Bad device usb 0 **
USB KO

我的愿望是测试boot.scr文件是否确实存在。我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2016-06-01 20:27:41

你已经很接近了。由于ext2ls (或通用ls)仅适用于目录,因此您需要执行以下操作:

代码语言:javascript
运行
复制
=> 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

您可以在include/config_distro_bootcmd.h中查看有关此类测试的更多示例

票数 6
EN

Stack Overflow用户

发布于 2021-09-25 11:41:28

这是一个老问题,但不管怎样回答,因为我正在寻找这个信息。

正如汤姆所说,在include/config_distro_bootcmd.h中确实有这样的例子。

检查文件是否存在的方法是使用test -e。这在u- v2021.07中有效。

例如:我的SD卡的fat分区中有一个u-boot.scr,这是第一个分区。这是我检查文件是否存在,然后运行它的方法:

代码语言:javascript
运行
复制
if test -e mmc 0:1 u-boot.scr; then fatload mmc 0:1 0x2000000 u-boot.scr; source 0x2000000; fi;

如果文件在子文件夹中,只需以相同的方式引用它:scripts/u-boot.scr

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37565616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档