mini2440使用u-boot从nfs启动linux

1 开发环境
   友善之臂mini2440-W35
   win7+SecureCRT
   VirtualBox+Ubuntu
   Jlink V8

2 VirtualBox设置
   Settings-->Network-->Adapter 1-->Attached to Bridged Adapter

3 Ubuntu
   ifconfig 获得IP地址
   安装nfs,创建共享目录,这个目录就是以后mini2440启动的目录(设为NFS_ROOT)了
   将光盘中的arm-linux-gcc-4.4.3.tar.gz复制到Ubuntu响应目录,解压,设置环境变量。arm-none-linux-gnueabi-gxx就是我们以后要用的编译器;lib中的库文件是以后也是要用的。
   安装mkimage工具,好像sudo apt-get insall mkimage-tools就行,这个可以从zImage制作uImage。

4 使用Jlink烧写u-boot到Nor-flash
    将板子上的开关拨刀Nor-flash一端。在win7下启动Jlink ARM程序,打开本博客附件中的jfalsh工程文件,再打开data file,选择附件中的u-boot.bin,然后Erase Chip,Program(从地址0x0开始),这样u-boot就烧好了。
    板子插好电源,网线,串口线。
    在win7系统中打开SecureCRT,选中相应的COM口,禁用硬件流。重启板子,会听到“嘀——”的长音,SecureCRT界面出现autoboot:1的时候,按电脑键盘任意键,就可以进入u-boot的设置命令行,试一试:“printenv”。

5 设置u-boot参数
bootdelay=1
baudrate=115200
ethaddr=08:08:11:18:12:27
tekkaman=bmp d 70000
 stdin=serial
stdout=serial
stderr=serial
ethact=dm9000
filesize=21BA
fileaddr=30008000
gatewayip=192.168.0.1
netmask=255.255.255.0
serverip=192.168.0.36
ipaddr=192.168.0.37
bootcmd=nfs 0x30008000 192.168.0.36:$NFS_ROOT/uImage_W35;bootm 0x30008000
bootargs=noinitrd root=/dev/nfs init=/linuxrc console=ttySAC0,115200 nfsroot=192.168.0.36:$NFS_ROOT ip=192.168.0.37:192.168.0.36:192.168.0.1:255.255.255.0 mem=64M rootdelay=4
这里,bootcmd加载了内核,bootargs是启动内核,加载文件系统的参数,ipaddr是板子临时的IP,跟服务器192.168.0.36设在一个网段就可以了。
设置使用setenv命令,如:
setenv bootargs ‘noinitrd root=/dev/nfs init=/linuxrc console=ttySAC0,115200 nfsroot=192.168.0.36:$NFS_ROOT ip=192.168.0.37:192.168.0.36:192.168.0.1:255.255.255.0 mem=64M rootdelay=4‘
$NFS_ROOT请自行替换为你的nfs根目录。

6 制作uImage
   将附件中的zImage_W35拷贝到$NFS_ROOT目录,使用之前安装的mkimage工具将zImage转换成uImage:
mkimage -A arm -O linux -T kernel -C none -a 30008000 -e 30008040 -n linux.test -d zImage_W35 uImage_W35

7 使用busybox创建根文件系统
   可以参考Tekkaman Ninja的博文:http://blog.chinaunix.net/uid-20543672-id-94316.html。文章里的内容只要基本理解就行,主要是创建/etc/init.d/rcS及其依赖项。
   我当时是搜的这个博客:http://blog.csdn.net/openblog/article/details/7415994。然后根据运行出错的信息,google就可以了。

8 上面创建的文件系统应该是在$NFS_ROOT下面的,你cd /看看Ubuntu的根目录就会明白。

9 在win7系统中打开SecureCRT,是VirtualBox中Ubuntu保持运行状态。然后重启板子,就可以完成mini2440使用u-boot从nfs启动linux的工作了。按任意键,你就可以使用busybox的sh在板子上来做简单的操作了。

10 附件:http://download.csdn.net/detail/binzo/6873219

mini2440使用u-boot从nfs启动linux

mini2440使用u-boot从nfs启动linux

上一篇:msyql left join on 后面多个条件


下一篇:XMLHttpRequest五步学习法