U-Boot 引导内核


1.U-Bboot引导的内核不是普通编译的内核,它引导的加了64k数据头得内核镜像,其中包括U-Bboot对内核的控制信息。这个镜像需要 mkimage这个工具(在U-Bboot代码的tools目录中)制作。新下载的源码是不能够用mkimage的,必须编译后才能够用(貌似很傻的问题),将编译好的内核镜像放到tools目录下。然后输入
  1. ./mkimage -n 'zhenguoyao' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040  -d zImage zImage.img  
-n  是内核镜像的名字 ,出现在启动过程中,注意不是处理过的内核镜像名字
-A  体系结构
-O  操作系统类型
-T  镜像类型
-C  镜像压缩方式
-a  内核镜像在内存中的地址
-e  内核的入口地址,为内核内存地址加上数据头的大小
-d  要处理的内核镜像文件 处理后的内核镜像名字
2 .根文件系统采用nfs共享,设置bootargs。
setenv bootargs noinitrd root=/dev/nfs rw nfsroot=192.168.1.110:/home/yao/nfsshare/rootfs_qtopia_qt4 ip=192.168.1.230:192.168.1.1:255.255.255.0 console=ttySAC0,115200 init=/linuxrc mem=64M

其中   root=/dev/nfs  说明是nfs挂载

           nfsroot=192.168.1.110:/home/yao/nfsshare/rootfs_qtopia_qt4    这个是主机的Ip 和nfs共享目录

           ip=192.168.1.230:192.168.1.1:255.255.255.0              这个是开发板的ip  网关 子网掩码 

           console=ttySAC0  ,115200                                          串口设备以及波特率

           init=/linuxrc                                                                        linux启动的第一个程序

           mem=64M                                                                     内存大小         

3 .设置好主机的nfs共享文件目录和服务。保证网络畅通。
4. uboot输入 tftp 0x30008000 zImage(处理过的内核镜像,把他考到主机tftp下载目录下),下载内核镜像到0x30008000
uboot输入 bootm 启动内核  

相关阅读:U-Boot源代码下载地址

相关内容