如何在Linux Kernel种修改Uboot环境变量 fw_printenv

有些时候我们在进入了Linux之后,依然需要修改Uboot的环境变量来达到我们需要的一些功能,这一点Uboot很早就替我们想到了。提供了fw_printenv工具。fw_printenv位置在这里

编译一下倒不是很复杂,在README里面说的很清楚

我们上手编译一下

成功了,但是事情还远远没有结束,因为uboot提供的这个工具要结合你得板子实际的分区还有环境变量偏移这些参数,才能真正的工作起来。其实这些在README中都详细的介绍过了。

1) 文件配置方式 or 头文件配置

文件配置方式也就是用/etc/fw_env.config 我没弄成功,因此我果断的注释掉了,就采用头文件中预先配置好的方式,如下

2)是否有冗余分区

将其注释掉那么就采用一个分区,也就是DEVICE2被忽略

3) DEVICE1_NAME/DEVICE1_OFFSET/ENV1_SIZE/DEVICE1_ESIZE/DEVICE1_ENVSECTORS

这几个参数很重要了

首先在linux中看下我们自己的分区

很明显,环境变量在Uboot分区里面也就是mtd0

3.1 DEVICE1_NAME

那么很明显 这里填写 "dev/mtd0"

3.2 DEVICE1_OFFSET

这里定义的是环境变量的偏移,那么这个偏移在哪里看?这个就因开发板而异了,比如我得Hi3516就在可以看到

那么非常明显这里填写0x80000

3.3 ENV1_SIZE

也就是环境变量的大小啦,所以这里填写0x40000

3.4 DEVICE1_ESIZE

应该是说第一个分区的大小,反正我这里也还是填写0x40000

3.5 DEVICE1_ENVSECTORS

反正我填1

以上配置完成编译,成功,下面就把它拷贝到开发板上就可以了。使用呢就类似于printenv。关于这里有一篇文章说的非常好

http://labs.isee.biz/index.php/How_to_modify_the_uboot_environment_from_userspace

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值