uboot环境变量设置(大地小神之个人收藏)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

u-boot的环境变量

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

上面只是一些最基本的环境变量,请注意,板子里原本是没有环境变量的,u-boot的缺省情况下会有一些基本的环境变量,在你执行了saveenv之后,环境变量会第一次保存到flash中,之后你对环境变量的修改,保存都是基于保存在flash中的环境变量的操作。

U-boot的环境变量值得注意的有两个:bootcmd 和bootargs

◆b o o t c m d

前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数。

◆b o o t a r g s

bootargs是环境变量中的重中之重,甚至可以说整个环境变量都是围绕着bootargs来设置的。bootargs的种类非常非常的多,我们平常只是使用了几种而已,感兴趣的可以看看这篇文章说的很全:/u2/79570/showart_1675071.html。bootargs非常的灵活,内核和文件系统的不同搭配就会有不同的设置方法,甚至你也可以不设置bootargs,而直接将其写到内核中去(在配置内核的选项中可以进行这样的设置),正是这些原因导致了bootargs使用上的困难。

下面介绍一下bootargs常用参数,bootargs的种类非常的多,而且随着kernel的发展会出现一些新的参数,使得设置会更加灵活多样。

A.r o o t

用来指定r o o t f s的位置,常见的情况有:

root=/dev/ram rw

root=/dev/ram0 rw

请注意上面的这两种设置情况是通用的,我做过测试甚至

root=/dev/ram1 rw和root=/dev/ram2 rw也是可以的,网上有人说在某些情况下是不通用的,即必须设置成ram或者ram0,但是目前还没有遇到,还需要进一步确认,遇到不行的时候可以逐一尝试。

root=/dev/m t d x rw

root=/dev/m t d b l o c k x rw

root=/dev/mtdblock/x rw

root=31:0x

上面的这几个在一定情况下是通用的,当然这要看你当前的系统是否支持,不过m t d是字符设备,而m t d b l o c k是块设备,有时候你的挨个的试到底当前的系统支持上面那种情况下,不过root=/dev/mtdblockx rw比较通用。此外,如果直接指定设备名可以的话,那么使用此设备的设备号也是可以的。

root=/dev/nfs

在文件系统为基于nfs的文件系统的时候使用。当然指定root=/dev/nfs之后,还需要指定nfsroot=serverip:nfs_dir,即指明文件系统存在那个主机的那个目录下面。

B.r o o t f s t y p e

这个选项需要跟root一起配合使用,一般如果根文件系统是ext2的话,有没有这个选项是无所谓的,但是如果是jffs2,squashfs等文件系统的话,就需要rootfstype指明文件系统的类型,不然会无法挂载根分区.

C.c o n s o l e

1. console=tty 使用虚拟串口终端设备.

2. console=ttyS[,options]使用特定的串口,options可以是这样的形式bbbbp n x,这里bbbb是指串口的波特率,p是奇偶校验位,n是指的b i t s。

3. console=ttySAC[,options]同上面。

看你当前的环境,有时用ttyS,有时用ttySAC,网上有人说,这是跟内核的版本有关,2.4用ttyS,2.6用ttySAC,但实际情况是官方文档中也是使用ttyS,所以应该是跟内核版本没有关联的。可以查看Documentation/serial-console.txt找到相关描述。

D.m e m

mem=xxM 指定内存的大小,不是必须的。

E.r a m d i s k_s i z e

ramdisk=xxxxx 不推荐

ramdisk_size=xxxxx 推荐

上面这两个都可以告诉ramdisk 驱动,创建的ramdisk的size,默认情况下是4m(s390默认8M),你可以查看Documentation/ramdisk.txt 找到相关的描述,不过ramdisk=xxxxx在新版的内核都已经没有提了,不推荐使用。

F.i n i t rd,n o i n i t r d

当你没有使用r am d isk启动系统的时候,你需要使用noinitrd这个参数,但是如果使用了的话,就需要指定i n i t r d=r_a d d r,s i z e,r_a d d r 表示initrd在内存中的位置,size表示initrd的大小。

G.i n i t

init指定的是内核启起来后,进入系统中运行的第一个脚本,一般i n i t=/l i n u x r c, 或者i n i t=/e t c/p r e i n i t,preinit的内容一般是创建console,null设备节点,运行init程序,挂载一些文件系统等等操作。请注意,很多初学者以为init=/linuxrc是固定写法,其实不然,/linuxrc 指的是/目录下面的linuxrc脚本,一般是一个连接罢了。

H.m t d p a r t s

相关文档
最新文档