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)内核传参非常重要。在内核移植的时候,新手经常因为忘记给内核传参,或者给内核传递的参数不对,造成内核启动不起来。
文章参考朱友鹏老师的课堂讲义