在uboot源代码tools/env中的工具可以在文件系统中改变环境变量的值
在uboot源码根目录下
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- env
编译生成fw_printenv
将tools/env目录下的fw_printenv拷贝到开发板、fw_env.config拷贝到/etc目录下
cp fw_printenv fw_setenv
cat /proc/mtd
修改fw_env.config
dev offset erasesize sector
/dev/mtd6 0x0000 0x20000 0x20000
查看环境变量
./fw_printenv ipaddr
ipaddr=192.168.1.146
修改环境变量
./fw_setenv ipaddr 192.168.1.148
如果没有问题可以正常写进去
一直报:
Warning: Bad CRC, using default environment
确定是否分区是对的
出现重启没有修改,文件系统下读取又是有的
cat /dev/mtd6
将备份的那个区的也修改
修改fw_env.config
添加env.bak区
MTD device name Device offset Env. size Flash sector size Number of sectors
/dev/mtd6 0x0000 0x20000 0x20000
/dev/mtd7 0x0000 0x20000 0x20000
修改添加变量test
./fw_setenv test 7890
查看test值
./fw_printenv test
test=7890
还可以cat /dev/mtd6、cat /dev/mtd7,查看是否添加test
重启,查看环境变量
test=7890
修改成功