下载 u-boot-2010.06
官网下载
ftp://ftp.denx.de/pub/u-boot/
积分多的可以去这里下载,网速会快一点
https://download.csdn.net/download/laifu_ma/5688297

解压 uboot
tar -jxf u-boot-2010.06.tar.bz2

fw_printenv 的源码在 u-boot-2010.06/tools/env

单独编译 fw_printenv
cd u-boot-2010.06
make ARCH=arm CROSS_COMPILE=arm-linux- smdk6400_config
make ARCH=arm CROSS_COMPILE=arm-linux- clean
make ARCH=arm CROSS_COMPILE=arm-linux- env
新版本是:make ARCH=arm CROSS_COMPILE=arm-linux- envtools

如果编译报重复定义的错,则屏蔽掉 include/linux/types.h 里面的这两行即可
include/linux/types.h:154:36: error: conflicting types for ‘uintmax_t’ typedef u_int32_t uintmax_t;
include/linux/types.h:155:36: error: conflicting types for ‘intmax_t’ typedef int32_t intmax_t;

拷贝 fw_printenv 到目标板,并在目标板上创建软链接 fw_setenv
ln -s fw_printenv fw_setenv

修改并拷贝配置文件到目标板的 /etc 目录下
vi u-boot-2010.06/tools/env/fw_env.config
如果你的env区域是一个单独的分区并且在uboot分区之后,一般uboot分区是第一个分区名为 /dev/mtd0,则env分区就是 /dev/mtd1
我的env分区是256KB,配置文件可以这样写,如:
/dev/mtd1  0x0  0x40000  0x40000

0x0 表示这些环境变量在 /dev/mtd1 内的起始地址
0x40000 表示这个env分区的大小
0x40000 表示扇区大小?不清楚,貌似改成别的也不影响,但要是前一个参数的倍数

如果你的env区域是和uboot同在一个分区,一般uboot分区是第一个分区名为 /dev/mtd0
则可以参考 一下 u-boot-2010.06/include/configs/smdk6400.h 里面的 CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE
可以这样写,如:
/dev/mtd0  0x0040000  0x4000  0x4000

如果没配置好 fw_env.config, 会出现如下各种报错
1. Cannot read bad block mark: Invalid argument
2. Warning: Bad CRC, using default environment
3. Too few good blocks within range

运行
1. 直接执行 fw_printenv 是打印全部环境变量
2. fw_printenv env_name, 打印单个环境变量,打印如下
~ # fw_printenv baudrate
baudrate=115200
3. fw_printenv -n env_name, 也是打印单个环境变量,自己体会下
~ # fw_printenv -n baudrate
115200
4. fw_setenv env_name env_value, 设置某个环境变量,如: fw_setenv bootdelay 5
5. fw_setenv env_name, 删除某个环境变量,如: fw_setenv bootdelay

高级
该工具默认是不能设置 ethaddr 网卡物理地址的,如需支持则要改代码
修改 u-boot-2010.06/tools/env/fw_env.c 中的 fw_setenv 函数代码如下
if ((strcmp (name, "ethaddr") == 0) ||
把0改为1
if ((strcmp (name, "ethaddr") == 1) ||

嵌入式Linux读写uboot的环境变量 —— fw_printenv 的使用相关推荐

  1. 中修改环境变量_嵌入式 Linux下永久生效环境变量bashrc

    作者:skdkjxy 原文:http://blog.sina.com.cn/s/blog_8795b0970101f1f9.html .bashrc文件 在linux系统普通用户目录(cd /home ...

  2. linux在bashrc中添加变量,嵌入式 Linux下永久生效环境变量bashrc

    .bashrc文件 在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到4个隐藏文件: .bash_history  记录之前输 ...

  3. 嵌入式 Linux下永久生效环境变量bashrc

    作者:skdkjxy 原文:http://blog.sina.com.cn/s/blog_8795b0970101f1f9.html .bashrc文件 在linux系统普通用户目录(cd /home ...

  4. linux环境oracle环境变量,Linux下设置oracle环境变量

    Linux设置Oracle环境变量 方法一:直接运行export命令定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新s ...

  5. linux 添加path变量,linux下添加PATH环境变量

    添加PATH环境变量,第1种方法: [root@lx_web_s1 ~]# export PATH=/usr/local/webserver/mysql/bin:$PATH 再次查看: [root@l ...

  6. linux用户环境下进入uboot,嵌入式linux开发uboot移植(一)——uboot项目简介

    嵌入式linux开发uboot移植(一)--uboot项目简介 一.uboot简介 U-Boot,全称 Universal Boot Loader,是遵循GPL条款的从FADSROM.8xxROM.P ...

  7. 嵌入式linux之Uboot和系统移植--基础

    <uboot和系统移植-第1部分-uboot学习前传> (观看朱友鹏老师视频后整理的笔记)   1.为什么要有uboot 2.为什么是uboot 3.uboot必须解决哪些问题 4.ubo ...

  8. 从bootm 命令讲起/U-boot的环境变量: bootcmd 和bootargs

    从bootm 命令讲起 1 找到linux的内核入口 Bootm命令通过读取uImage的头部0×40字节的信息,将uImage定位到正确的地址,同时找到linux的内核入口地址. 这个地方就涉及到u ...

  9. uboot默认环境变量修改

    uboot的默认环境变量决定了系统是通过何种方式启动的,对于定制化的嵌入式系统,uboot的定制化修改也是必要的. uboot有两种修改方式: 1.直接修改源码或者修改uboot配置 2.在uboot ...

最新文章

  1. python内置变量__complex___Python 内置方法
  2. 实战 :为自己的公号搭建一个数据运营指标体系
  3. hello1源码解析
  4. Windows 2003架设CA服务器 (视频)
  5. 高性能队列——Disruptor
  6. Swift--字符串和字符(二)
  7. python如何绘制曲线图_python pandas plot画折线图如何显示x轴的值?
  8. 如何在JS中改变Extjs combox 的值
  9. 英特尔拥抱开源,岂能没有杀手锏?
  10. Spring Boot2 集成 jasypt 3.0.4 配置文件敏感信息加密
  11. android AIDL示例代码(mark下)
  12. 高负载高并发网站架构分析
  13. CTFmisc常见音频隐写总结
  14. Linux源码编译即黑客帝国屏保cmatrix安装
  15. 常用数据下载网站汇总
  16. 随机划分训练集和测试集
  17. python 点对点语音,Python(PyS60)实现简单语音整点报时
  18. HTML入门与进阶以及HTML5
  19. 云音乐小程序开发知识小记(上)
  20. 谷歌商店输入账号密码后 回到登录界面/闪退

热门文章

  1. 百度博客关闭了,坑!
  2. 顺芯ES7148/ES7149低功耗小封装音频DAC芯片的区别
  3. 编写一个Java应用程序,输出全部的希腊字母
  4. 产品经理(008)-用户需求分析
  5. 计算机网络桂电北海期末题,桂电期末考试Linux习题总结.docx
  6. 一种基于EEG和sEMG的假手控制策略
  7. rnss和rdss的应用_浅谈北斗二代RDSS与RNSS组合技术
  8. springMVC之Controller方法的返回值
  9. 12306最新买票攻略
  10. 前24券COOnbsp;彭雷:谈“O2O的前…