您的位置:首页 > 理论基础 > 计算机网络

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

2013-03-21 01:42 549 查看
基于友善的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启动内核。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: