在启动时运行u-boot命令
我有一个运行Yocto(Jethro)的自定义板,并且想要运行单个u-boot命令,preboot。显然,打破空间引导序列并手动运行它的作品。我如何让它自动运行?更具体地说,默认情况下,启动命令序列在哪里?在启动时运行u-boot命令
编辑:另外,我知道我可以在运行时编辑环境。但是,我正在尝试将此更改构建到映像中,以便我可以分发它。
一般的答案是,bootcmd是默认运行的,如果存在持久性环境,您可以更改命令和'saveenv'以保留它。
当你在uboot环境中。输入printenv
,它将列出uboot使用的环境变量。
有一个变量名bootcmd
。目前,我的包含一堆if else命令。同样,在那里添加你喜欢的功能来启动。
并在它完成并测试后。使用saveenv
来存储编辑
这是一个用于uboot的syntax。
编辑:
的U-Boot允许存储在纯文本文件的命令或命令序列。然后使用
mkimage
工具,您可以将该文件转换为可以使用U-Boot的autoscr
命令执行的脚本映像。 U-boot Scripting Capabilities
通常情况下,你的U-Boot的配方将建立的U-Boot的一台机器,在这种情况下,我通常只是打补丁编译,默认情况下,U-Boot的环境做正确的事。这是通过
SRC_URI_machine += "file://mydefenv.patch"
或者(甚至更好)使用你自己的git树。这也会带来额外的好处,即即使环境完全损坏,系统也可能启动并提供有用的信息。
另一种可能是做像查尔斯在另一个答案评论建议,离线创造环境,并有U-Boot的加载它,请参阅denx.de/wiki/view/DULG/UBootScripts
第三种可能,那我也有时用,是离线构建环境(可能使用与上述链接相同或类似的机制),并且在正常的闪存编程过程中闪存环境闪烁。虽然我大部分时间都是在AT91上完成这个工作,但是使用类似于at91 Sam-Ba TCL script的tcl脚本
无论您选择哪种方法,U-Boot中的bootcmd
变量都应该包含引导脚本。
是的,这工作,但那只是那个磁盘。我如何自动将其构建到图像中? –
这就是你需要的http://www.denx.de/wiki/view/DULG/UBootScripts –