mini2440使用u-boot从nfs启动linux

本文详细介绍了如何在开发环境中,利用VirtualBox和Ubuntu设置u-boot,将其烧写到Nor-flash,并配置u-boot参数。接着讲解了制作uImage和使用busybox创建根文件系统的过程。最后指出,文件系统应位于NFS_ROOT下,并在SecureCRT中重启板子,以实现mini2440从nfs启动Linux。
摘要由CSDN通过智能技术生成

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的根目录就会明白。

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

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值