在uboot下修改uboot 环境变量量需要注意什么

U-Boot环境变量的解释说明_Linux编程_Linux公社-Linux系统门户网站
你好,游客
U-Boot环境变量的解释说明
来源:Linux社区&
作者:liukun321
U-Boot环境变量的解释说明 环 境 变 量 解 释 说 明 bootdelay 定义执行自动启动的等候秒数 baudrate 定义串口控制台的波特率 netmask 定义以太网接口的掩码 ethaddr 定义以太网接口的MAC地址 bootfile 定义缺省的下载文件 bootargs 定义传递给Linux内核的命令行参数 bootcmd 定义自动启动时执行的几条命令 serverip 定义tftp服务器端的IP地址 ipaddr 定义本地的IP地址 stdin 定义标准输入设备,一般是串口 stdout 定义标准输出设备,一般是串口 stderr 定义标准出错信息输出设备,一般是串口
U-Boot源代码下载地址
参考U-boot,其环境变量设置如下: Uboot& printenv
bootdelay=3
baudrate=115200
ethaddr=00:12:34:56:78:9a
ipaddr=192.168.0.9&&&&&&&&&&&&&&&&&&&&&&&& ①
serverip=192.168.0.1&&&&&&&&&&&&&&& ②
netmask=255.255.255.0
rootpath=/home/zht/rfsys&&&&&&&&&&& ③
stdin=serial
stdout=serial
stderr=serial
bootcmd=tftp
uIbootm &&&& ④
bootargs=root=/dev/nfs rw nfsroot=192.168.0.1:/home/zht/rfsys nfsaddrs=192.168.0.48: 192.168.0.1:192.168.0.1:255.255.255.0 console=ttyS0,115200 mem=32M&& ⑤
① 设置目标板IP地址
② 设置服务器IP地址
③ 设置根文件系统在服务器上的路径,注意该路径一定要设定为服务器上的nfs目录。
④ bootcmd是u-boot启动后执行的命令,命令之间用分号分隔。
uImage 表示通过tftp 将内核映像下载到RAM中地址为0x;
启动linux操作系统
&& 在保存环境变量bootcmd 时 注意命令格式
setenv bootcmd "nand read x;bootm "
若去掉“” 可能会导致 键入回车后立马启动内核。导致这个问题的原因可能是我移植的uboot的问题,具体可通过查看修改代码解决。
⑤ 定义u-boot传送给linux内核的命令行参数,该命令行指定以网络文件系统作为根文件系统。
其中root=/dev/nfs,并非真的设备,而是一个告诉内核经由网络取得根文件系统的旗标。
参数nfsroot这个参数告诉内核以那一台机器,那个目录以及那个网络文件系统选项作为根文件系统使用。参数的格式如下:
nfsroot=[:][,]
如果指令列上没有给定 nfsroot 参数,则将使用‘/tftpboot/%s’预设值。其它选项如下:
--指定网络文件系统服务端的互联网地址(IP address)。如果没有给定此栏位,则使用由 nfsaddrs 变量(见下面)所决定的值。此参数的用途之一是允许使用不同机器作为反向地址解析协议(RARP) 及网络文件系统服务端。通常你可以不管它(设为空白)。
-- 服务端上要作为根挂入的目录名称。如果字串中有个‘%s’ 符记(token),此符记将代换为客户端互联网地址之 ASCII 表示法。
-- 标准的网络文件系统选项。所有选项都以逗号分开。如果没有给定此选项栏位则使用下列的预设值:
&&&&&&& port&&&&&&&&&&& = as given by server portmap daemon
&&&&&&& rsize&&&&&&&&&& = 1024
&&&&&&& wsize&&&&&&&&&& = 1024
&&&&&&& timeo&&&&&&&&&& = 7
&&&&&&& retrans&&&&&&&& = 3
&&&&&&& acregmin&&&&&&& = 3
&&&&&&& acregmax&&&&&&& = 60
&&&&&&& acdirmin&&&&&&& = 30
&&&&&&& acdirmax&&&&&&& = 60
&&&&&&& flags&&&&&&&&&& = hard, nointr, noposix, cto, ac&&&
相关资讯 & & &
& (11/05/:30)
& (03/29/:44)
& (01月28日)
& (09/25/:27)
& (12/27/:47)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)uboot 预设环境变量怎么实现的_百度知道
uboot 预设环境变量怎么实现的
我有更好的答案
机器码的值等等,可以使我们通过设置环境变量的值来改变uboot的一些设置,如bootdelay时间:首先我们先要搞清楚uboot中环境变量的作用,uboot中环境变量的作用就是在不改变源码、不用重新编译的情况下uboot 环境变量实现原理
采纳率:91%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
标签:至少1个,最多5个
可以通过mtd方式读取,也可以用ioremap方式,不过这些都比较麻烦。简单的方法有mtd_debug和fw_printenv两种:前者是一个软件包,需要单独下载安装;后者是Uboot带的一个工具。
编译fw_printenv工具
在uboot目录下用make env指令编译,成功后在tools/env下会生成fw_printenv,通过ln -sf fw_printenv fw_setenv命令创建软链接。
修改配置文件
根据mtd分区、Uboot环境变量的位置、大小等内容修改tools/env下的fw_env.config文件,可参见/tools/env/README文件。
使用fw_printenv工具
将编译好的fw_printenv拷贝到目标机文件系统中,并将fw_env.config文件拷贝到目标机文件系统的/etc目录下。执行fw_printenv即可打印Uboot环境变量信息。
0 收藏&&|&&0
你可能感兴趣的文章
[Arch Linux安装笔记](https://ichon.me/post/373.html)
[Airkiss协议详解](https://wenku.baidu.com/view/0ede80d5d8409c.html)
[uC/OS-II 学习笔记](http://blog.csdn.net/AA0210AA/article/category/2414191)
分享到微博?
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。uboot环境配置_Linux教程_Linux公社-Linux系统门户网站
你好,游客
uboot环境配置
来源:Linux社区&
作者:xiaojiang1025
通过配置uboot让它在启动过程中从tftp获取内核和设备树,并从在加载内核之后把通过启动参数将"从nfs挂载根文件系统"传入内核。这个配置主要是通过uboot内建的"set 变量名 变量值+save"设置环境变量的方式进行配置,下面是我采用的uboot的环境变量,下面是我用的环境变量设置:
baudrate=115200
bootargs=root=/dev/nfs nfsroot=192.168.0.50:/nfs rw console=ttySAC2,115200n8 init=/linuxrc ip=192.168.0.55 loglevel=7 clk_ignore_unused
bootcmd=tftp
exynos4412-origen.bootm
bootdelay=4
ethact=dm9000
ethaddr=11:22:33:44:55:66
filesize=26D213
gatewayip=192.168.2.1
ipaddr=192.168.0.55
netmask=255.255.255.0
serverip=192.168.0.50
stderr=serial
stdin=serial
stdout=serial
baudrate就是波特率,习惯上就设成115200,根据硬件的不同可以相应的修改
bootargs启动参数,这个参数除了uboot要用,启动内核之后还会传入内核。其中,root=/dev/nfs表示开发板的根文件系统从nfs网络设备中加载,nfsroot=192.168.0.55:/nfs表示从网络中的ip是192.168.0.55的主机中的/nfs目录加载根文件系统,rw表示可读可写,console=ttySAC2表示使用的中端,115200表示波特率,init=/linuxrc表示启动的祖先进程的位置,显然这是给linux内核用的,ip=192.168.0.55是开发板的ip,需要和主机在同一个网段,loglevel=7就是登录等级,这个不设也行,clk_ignore_unused忽略时钟。这个参数的实质是uboot传入内核的,所以需要参考内核的启动参数的相关文件,我在下面做了简要的说明。除了启动参数,uboot还需要做一些其他的准备工作,并不是这个参数准备好了内核就可以工作了,比如,关于arm平台的linux内核启动条件,可以参考Linux内核源码中的Documentation/arm/Booting ,这里就不做说明了bootcmd启动命令,tftp
uImage表示从tftp网络中下载uImage内核镜像到地址处,tftp
exynos4412-origen.dtb表示下载从tftp网络中下载设备树文件到地址处,bootm
- 表示从启动内核,我这没有randisk,用-代替,不是从000000的意思!!!此外,一旦填入了ramdisk地址,内核就会从ramdisk挂载根文件系统而忽略nfs。最后,把设备树从传入内核。注意:多个命令之间用;分隔,所以为了在设置变量的时候不立即执行,应该写成set bootcmd tftp
uImage\;tftp
exynos4412-origen.dtb\;bootm
bootdelay启动倒计时的秒数
gatewayip表示网关
ipaddr表示开发板的ip
serverip表示主机的ip
netmask表示子网掩码
stderr,stdin,stdout表示标准输入输出错误设备,基本都填串口serial
Linux内核启动参数
内核需要的启动参数在linux-4.8.5/Documentation/kernel-parameters.txt以及相应的文件中,这些参数就是uboot需要通过bootargs将他们准备好并传给内核,当然,这些参数都是有缺省值的,我们只需要对需要的参数进行配置,这里列出这里用到的几个
[RAM] Tells the kernel not to load any configured
initial RAM disk.
[KNL] Root filesystem
See name_to_dev_t comment in init/do_mounts.c.
[NFS] nfs root filesystem for disk-less boxes.
See Documentation/filesystems/nfs/nfsroot.txt.
[KNL] Mount root device read-write on boot
[KNL] Wait (indefinitely) for root device to show up.
Useful for devices that are detected asynchronously
(e.g. USB and MMC devices).
See Documentation/filesystems/nfs/nfsroot.txt.
[KNL] Output console device and options.
Format: &full_path&
Run specified binary instead of /sbin/init as init
All Kernel Messages with a loglevel smaller than the
console loglevel will be printed to the console.
clk_ignore_unused
Prevents the clock framework from automatically gating
clocks that have not been explicitly enabled by a Linux
device driver but are enabled in hardware at reset or
by the bootloader/firmware.
Documentation/filesystems/nfs/nfsroot.txt -A 20
ip=&client-ip&:&server-ip&:&gw-ip&:&netmask&:&hostname&:&device&:&autoconf&:&dns0-ip&:&dns1-ip&
This parameter tells the kernel how to configure IP addresses of devices and also how to set up the IP routing table. It was originally called 'nfsaddrs', but now the boot-time IP configuration works independently of NFS, so it was renamed to 'ip' and the old name remained as an alias for compatibility reasons.
$grep nfsroot=
Documentation/filesystems/nfs/nfsroot.txt -A 20
nfsroot=[&server-ip&:]&root-dir&[,&nfs-options&]
If the 'nfsroot' parameter is NOT given on the command line,
the default "/tftpboot/%s" will be used.
本文永久更新链接地址:
相关资讯 & & &
& (02月24日)
& (02月24日)
& (06月29日)
& (02月24日)
& (01月19日)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款

我要回帖

更多关于 uboot的环境变量 的文章

 

随机推荐