linux中修改uboot环境变量并保存

今天用正点原子阿尔法开发板,由于手欠,把bootdelay设置为0,导致启动后uboot直接跳转到linux,没法使用uboot了。
一般做法是重新烧录uboot程序,然后才能用。
我百度到了fw_printenv工具,可以在linux中查看,并修改保存uboot 的环境变量。

需要如下几步操作:

1、修改fw_printenv的Makefile

2、修改fw_env.config文件

3、linux中修改uboot环境变量

具体操作如下:

交叉编译fw_printenv

需要修改uboot目录中tools/env/ 下的Makefile,指定目标target以及交叉工具链,如下图:
linux中修改uboot环境变量并保存_第1张图片
然后回到uboot目录,执行”make env“
如下图:
linux中修改uboot环境变量并保存_第2张图片
将fw_printenv复制到开发板的任意目录,
我个人复制到了/home/root 下。

修改fw_env.config文件

查看fw_env.config文件的内容,可以配置MTD, Nand, block device等存储器类型。我使用的是emmc的核心板,所以只需要修改block device即可。
参数含义如下:
其中device name, Device offset,Env size应该分别对应于uboot源码目录中include/configs/mx6ullevk.h文件中的
#define CONFIG_ENV_OFFSET (12 * SZ_64K)
#define CONFIG_ENV_SIZE SZ_8K
在这里插入图片描述
所以fw_env.config修改后如下,然后复制到开发板的/etc 目录下
linux中修改uboot环境变量并保存_第3张图片

linux中修改uboot环境变量

首先将fw_printenv复制一份,改名叫fw_setenv,否则没法设置uboot环境变量

cp fw_printenv fw_setenv

在这里插入图片描述
然后修改bootdelay ,一定要查看下是否修改成功,否则可能不会被保存到mmc上。

./fw_setenv bootdelay 5
./fw_printenv bootdelay

linux中修改uboot环境变量并保存_第4张图片

你可能感兴趣的:(正点原子阿尔法Linux,linux,嵌入式)