今天用正点原子阿尔法开发板,由于手欠,把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以及交叉工具链,如下图:
然后回到uboot目录,执行”make env“
如下图:
将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环境变量
首先将fw_printenv复制一份,改名叫fw_setenv,否则没法设置uboot环境变量
cp fw_printenv fw_setenv
然后修改bootdelay ,一定要查看下是否修改成功,否则可能不会被保存到mmc上。
./fw_setenv bootdelay 5
./fw_printenv bootdelay