如何更改openwrt的uboot环境变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更改openwrt的uboot环境变量相关的知识,希望对你有一定的参考价值。

参考技术A 看到这个标题,可能觉得这个并没有什么的,其实不然,编好了u-boot了,但是如何来使用确不是那么简单的,想当初我将uboot制作出来后以为全部都搞定了,屁颠屁颠的烧到板子上后可系统就是起不来,为什么了,折腾了很久以后才发现是u-boot的环境变量设置错误,在后来的工作中,我发现一些有一定经验的人在这方面也是模模糊糊的扯不清,所以这里要讨论一下。

的环境变量是使用u-boot的关键,它可以由你自己定义的,但是其中有一些也是大家经常使用,约定熟成的,有一些是u-boot自己定义的,更改这些名字会出现错误,下面的表中我们列出了一些常用的环境变量:本回答被提问者采纳

uboot 放在哪里?

不是放在flash的0地址么
选择nandflash启动时我在uboot上面我修改了环境变量(例如原来变量a=3我改为a=5)。重点是然后我选择从NORFLASH启动时,在uboot上再查看环境变量,发现环境变量改变了(a=5)。

我原来的理解是nandflsh里和norflash里各有一个uboot负责引导各自的程序。他们相互没有联系。比如从nandflash启动 便通过nandflash里的uboot引导启动。
但从环境变量上看 不是这么回事~~~~

uboot是放在nand中的第一个分区。
选择nand启动后,首先进入uboot。
nor里面很多厂商已经固化引导程序在里面,并且已经写保护,不能更改,可以通过nor启动来烧写uboot到nand中,然后选择nand启动。

nand启动后,进入uboot,setenv设置环境变量后,要执行saveenv,保存环境变量,然后通过printenv查看当前环境变量。

另外,nor里面的bootloader不一定就是uboot,比如说友善2440的就是supervivi。
参考技术A 进入uboot之前会执行一段汇编代码,就是从0地址开始的,然后会跳转到其他地址,如果是uboot,就是跳到uboot存放的地址了。然后uboot就开始执行,必要的话开启各个设备,一般可能就开LCD、按键,接着是解压缩什么的吧,或者是调到kernel里,kernel里面解压缩。然后继续下去。
代码是写死的,不管你烧到哪,那些值是固定的。

以上是关于如何更改openwrt的uboot环境变量的主要内容,如果未能解决你的问题,请参考以下文章

S5PV210-uboot源码分析-uboot环境变量

ubuntu学习前传—uboot常见环境变量

uboot环境变量

uboot中环境变量的实现

uboot 放在哪里?

uboot中环境变量的加载写入过程详解