Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1242669
  • 博文数量: 105
  • 博客积分: 127
  • 博客等级: 入伍新兵
  • 技术积分: 962
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-29 15:22
文章分类

全部博文(105)

文章存档

2021年(1)

2019年(3)

2018年(1)

2017年(11)

2016年(47)

2015年(32)

2014年(4)

2012年(6)

我的朋友

分类: LINUX

2017-06-05 17:09:04

1、编译fw_printenv工具
在你使用的uboot代码中用以下编译指令:

make env

这样就可以编译tools/env下的代码,编译出的fw_printenv工具有读写uboot环境变量区的能力。这个工具是针对目标机的,也就是说如果你的uboot代码之前是针对ARM编译的话,fw_printenv也是交叉编译给ARM芯片的。

2、安装fw_printenv工具
到/tools/env目录中,将编译好的fw_printenv拷贝到目标机的文件系统中,并通过"ln -s fw_printenv fw_setenv",创建一个fw_setenv到fw_printenv的软链。

这个工具还需要一个配置文件,以获取uboot的ENV区域的位置信息。默认状态下,请将fw_env.config文件拷贝到目标机的文件系统的/etc目录下。然后结合uboot配置中定义的ENV区和Linux下mtd分区的情况修改配置文件。具体的修改方法见fw_env.config文件中的说明及/tools/env/README文件。

3、fw_printenv工具的使用
其实fw_printenv使用起来和uboot下的printenv和setenv指令是一模一样的。

打印uboot环境变量:

fw_printenv [[ -n name ] | [ name ... ]]

# ./fw_printenv -n baudrate 
如果不指定name,fw_printenv会打印出ENV区中的所有环境变
设置uboot环境变量:
fw_setenv name [ value ... ]

如果不指定value,表示要删除这个name的环境变量。


# ./fw_setenv temp tekkaman

# ./fw_printenv -n temp

# ./fw_setenv temp

# ./fw_printenv -n temp

 

问题:

1  解决uboot命令行中 不能设置ethaddr的问题(Can't overwrite "ethaddr"),修改Fw_env.c 中的fw_setenv函数代码改为如下。

[cpp] view plain copy
 print?
  1. if (oldval) {  
  2.     /* 
  3.      * Ethernet Address and serial# can be set only once 
  4.      */  
  5.     if ((strcmp (name, "ethaddr") == 1) ||  
  6.         (strcmp (name, "serial#") == 0)) {  
  7.         fprintf (stderr, "Can't overwrite \"%s\"\n", name);  

解决fw_setenv 时提示Warning: Bad CRC, using default environment
设置Fw_env.h 为实际使用值,并配置好fw_env.config
#define DEVICE1_NAME      "/dev/mtd1"
#define DEVICE2_NAME      "/dev/mtd2"
#define DEVICE1_OFFSET    0x0000
#define ENV1_SIZE         0x10000  
#define DEVICE1_ESIZE     0x4000



//引用地址:http://blog.csdn.net/gl1987807/article/details/18045743

4、源码,编译与配置文件。
      由于我是在yocto中编译的,编译起来很简单。不像第一步中的一样。





//fw_env.config 文件中的内容。

# Block device example
/dev/mmcblk1 0x80000 0x2000

0x80000     CONFIG_ENV_OFFSET
0x2000       CONFIG_ENV_SIZE
mmcblk1 设备

阅读(18601) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

ispsubb2017-07-05 19:35:36

参考 http://www.cnblogs.com/pengdonglin137/p/3564508.html