uboot,内核uImage,网络根文件系统nfs的搭建(基于友善mini2440)

基于友善的mini2440的环境搭建。(通过uboot下载,采用nfs根文件系统的方式)

连上usb转串口线,电源线,USB下载线,网线一头接电脑、一头接开发板。

开关打到NOR,启动,

进入NOR上的supervivi界面,按a,通过DNW下载u-boot.bin到NAND falsh
至此可以拔掉USB下载线了。

开关打到NAND,启动,
进入u-boot界面

可以利用printenv查看uboot当前变量,用setenv设置变量。


烧写linux内核:
{
此前要编译内核:
1 在/linux-2.6.32.3下,
cp config_mini2440_x35 .config 通过厂家的config覆盖.config
2 修改内核目录下的Makefile
ARCH ?=arm
CROSS_COMPILE ?=arm-linux-
3 内核目录下执行命令:make menuconfig(配置内核,默认的话可以直接通过exit退出界面)
4 编译内核
make zImage (生成内核镜像文件zImage在/arch/arm/boot下,可以通过vivi下载)
生成的zImage不能通过uboot下载,必须加上一个包头生成uImage才能通过uboot下载
在/arch/arm/boot下执行下面命令:

mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -n "Linux Kernel Image by embed" -d zImage uImage (引号内的名字并不重要,随意,重要的是-a的加载地址

0x30008000和-e的入口地址0x30008040,包头就是之间的40字节)
在/arch/arm/boot下生成uImage,把它复制到/tftpboot/下
}

uboot下执行
1 tftp 0x30008000 uImage
2 nand erase 0x60000 0x500000
3 nand write 0x30008000 0x60000 0x500000

至此,内核下载完毕,但是不能启动,因为没有构建根文件系统。



构建nfs网络根文件系统:
{
此前要在Linux虚拟机下:
/home/mpc/share]# tar xvzf root_qtopia.img
解压得到的/home/mpc/share/root)qtopia作为nfs网络根文件系统的挂载点,即开发板的根目录
}

uboot下执行:setenv bootargs console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.102:/home/mpc/share
/root_qtopia ip=192.168.1.226:192.168.1.102:192.168.1.102:255.255.255.0:SMDK2440A.arm9.net:eth0:off

不同的网络环境可能会有不同的网络IP,这个可以参照友善的资料修改。
saveenv (保存uboot环境变量)


uboot,内核,根文件系统搭建完毕,可以boot或者bootm启动内核。






你可能感兴趣的:(uboot,内核uImage,网络根文件系统nfs的搭建(基于友善mini2440))