我正在使用运行u-boot的嵌入式Linux套件。为了使一切正常启动,我必须修改一些环境变量,并使用"saveenv"命令保存它们。
现在我想回去看看默认设置是什么,确保我知道确切地进行了哪些更改,并找出一种方法来更改这些默认设置,以便生产中的每个单元都不需要单独启动和修改。
有没有办法告诉u-boot清除任何已保存的数据,以便我可以再次查看默认设置?如果闪存类型是QSPI,是否会有所不同?
我正在使用运行u-boot的嵌入式Linux套件。为了使一切正常启动,我必须修改一些环境变量,并使用"saveenv"命令保存它们。
现在我想回去看看默认设置是什么,确保我知道确切地进行了哪些更改,并找出一种方法来更改这些默认设置,以便生产中的每个单元都不需要单独启动和修改。
有没有办法告诉u-boot清除任何已保存的数据,以便我可以再次查看默认设置?如果闪存类型是QSPI,是否会有所不同?
在您的套件上,尝试一下
help env
并查找“env default”。
env default [-f] var [...] - [forcibly] reset variable(s) to their default values
听起来像是你在寻找的东西。
env default -a
如果进行非持久性更改,那么"printenv"将显示默认值。
要更改默认值,您需要重新构建带有更改(例如CONFIG_EXTRA_ENV_SETTINGS)的u-boot.bin。
# add uboot env variable
setenv my_var 1
# printenv my_var
my_var=1
# remove/unset uboot env variable
setenv my_var
# printenv my_var
## Error: "my_var" not defined
在我的情况下,eraseenv
未定义。根据@Joshua的答案,我发现以下命令可以完成与 eraseenv
相同的操作。
env default -a
saveenv
env default -a
指令时,我会收到env: 'default': No such file or directory
的错误提示。请告诉我如何使用此命令。 - Preeti fw_printenv
),但是env default -a
显示错误。我需要在我的配置文件中启用它,例如include/configs/stm32mp1.h
吗? - Preeti env default -a
命令无法在 Linux 中运行。Linux 的 env
命令与 u-boot 没有任何关系。据我所知,在 Linux 中没有简单的方法可以重置 u-boot 环境。我认为您可能可以使用 dd
清除适当的存储空间来实现此目的,这将导致 u-boot 恢复到编译的默认环境(但我尚未尝试过)。 - David Robertson