U-BOOT的常用环境变量

1、ipaddr是开发板的本地IP地址

2、serverip是开发板通过tftp指令去tftp服务器下载东西时,tftp服务器的IP地址。

3、gatewayip是开发板的本地网关地址

4、netmask是子网掩码

5、ethaddr是开发板的本地网卡的MAC地址。

6、bootcmd自动运行环境变量

(1)uboot启动后会开机自动倒数bootdelay秒,如果没有人按下回车打断启动,则uboot会自动执行启动命令来启动内核。

(2)uboot开机自动启动时实际就是在内部执行了bootcmd这个环境变量的值所对应的命令集。

(3)bootcmd=nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0
  意思是:将Nand的kernel分区读取到SDRAM内存的0x30007FC0 地址处,然后使用bootm启动命令从内存0x30007FC0处去启动内核。

(4)set bootcmd printenv,然后saveenv;然后重启则会看到启动倒数后自动执行printenv命令打印出环境变量。这个小实验说明开机自动执行了bootcmd。

(5)set bootcmd 'nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0'

注意单引号:

uboot的有些命令带的参数非常长,为了告诉uboot这个非常长而且中间有好多个空格的东西是给他的一整个参数,所以用单引号将这个很长且中间有空格隔开的参数引起来。逗号里面的所有的内容作为一个命令整体。

7、bootargs

(1)linux内核启动时可以接收uboot给他传递的启动参数,这些启动参数是uboot和内核约定好的形式、内容,linux内核在这些启动参数的指导下完成启动过程。这样的设计是为了灵活,为了内核在不重新编译的情况下可以用不同的方式启动。

(2)我们要做的事情就是:在uboot的环境变量中设置bootargs,然后bootm命令启动内核时会自动将bootargs传给内核。

(3)210的bootargs如下:

bootargs=console=ttySAC2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext3 意义解释:

console=ttySAC2,115200 控制台使用串口2,波特率115200.

root=/dev/mmcblk0p2 rw 根文件系统在SD卡端口0设备(iNand)第2分区,根文件系统是可读可写的

init=/linuxrc linux的进程1(init进程)的路径

rootfstype=ext3 根文件系统的类型是ext3

2440的bootargs如下:

bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200

(4)内核传参非常重要。在内核移植的时候,新手经常因为忘记给内核传参,或者给内核传递的参数不对,造成内核启动不起来。

 

文章参考朱友鹏老师的课堂讲义

猜你喜欢

转载自blog.csdn.net/wwwlyj123321/article/details/81604968