开发环境:mini2440 256M NandFlash
u-boot版本: u-boot 2010.03
一. u-boot引导的内核不是普通编译的内核,它引导的加了64k数据头得内核镜像,其中包括u-boot对内核的控制信息。这个镜像需要 mkimage这个工具(在u-boot代码的tools目录中)制作。新下载的源码是不能够用mkimage的,必须编译后才能够用(貌似很傻的问题),将编译好的内核镜像放到tools目录下。然后输入
./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 要处理的内核镜像文件 处理后的内核镜像名字
二 . 根文件系统采用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 内存大小
三. 设置好主机的nfs共享文件目录和服务。保证网络畅通。四. uboot输入 tftp 0x30008000 zImage(处理过的内核镜像,把他考到主机tftp下载目录下),下载内核镜像到0x30008000
uboot输入 bootm 启动内核