zoukankan      html  css  js  c++  java
  • uboot移植添加nfs支持

    手头6410开发板uboot(基于2011.06)其他功能包括ping和tftp都执行正常,唯独缺少nfs。

    只需要在其配置文件(每个开发板文件通常名称不同,include/configs/*6410*.h)下添加一行代码:

    #define CONFIG_CMD_NFS

    然后重新编译就可以了。

    编译完后重新烧写到开发板,重新启动后,执行nfs加载,在加载完文件后会提示一个错误"Error: Cannot mount",

    虽然不影响使用,但是这个错误还是很讨厌的,可以参考我的前一篇博文《EASYARM-IMX283 nfs启动内核和根文件系统》修改/etc/hosts来进行修正.

    如果开发板ip地址是192.168.211.15,nfs文件夹地址是 /home/host/nfs/hwgw6410,那么可以在/etc/hosts中添加一行:

    192.168.211.15 /home/host/nfs/hwgw6410

    这样在使用nfs时就不会出现“Error: Cannot mount"错误了。

    这个问题还可以通过修改源代码来解决,但是从网上找到的修改方案是net/nfs.c中修改下面的行:

    -#define NFS_TIMEOUT 2000UL
    +#define NFS_TIMEOUT (10*2000UL)
    -       if (ntohl(rpc_pkt.u.reply.id) != rpc_id)
    +       if (ntohl(rpc_pkt.u.reply.id)+1 != rpc_id)

    前面的减号表示需要删除的行,加号表示修改后的内容.

    但是我采用这个方法后仍然会出现“Error: Cannot mount"错误。

    最后我查看了u-boot官方git,可以查看到所有net/nfs.c的所有git记录,链接地址在这里.

    其中可以看到2013年6月25号net/nfs.c中添加了动态配置nfs超时时间的选项,似乎能解决当前版本nfs的卸载失败问题。

    然后我下载了uboot2014.04版本,将net/nfs.c中的代码整合到当前版本的net/nfs.c(直接将代码覆盖是不行的,还需要对部分代码进行调整)

    之后编译出uboot,然后烧写到开发板中,再执行nfs,非常完美的解决了问题。

    uboot操作过程如下:

    hwgw # setenv ipaddr 192.168.211.55
    hwgw # setenv serverip 192.168.211.2
    hwgw # saveenv
    hwgw # nfs 50000000 /home/host/nfs/hwgw6410/u-boot-nand.bin
    dm9000 i/o: 0x18000300, id: 0x90000a46 
    DM9000: running in 16 bit mode
    MAC: 00:12:39:8f:ad:b3
    operating at 100M full duplex mode
    Using dm9000 device
    File transfer via NFS from server 192.168.211.2; our IP address is 192.168.211.55
    Filename '/home/host/nfs/hwgw6410/u-boot-nand.bin'.
    Load address: 0x50000000
    Loading: #################################################################
             ##########T T T T 
    done
    Bytes transferred = 381760 (5d340 hex)
  • 相关阅读:
    JS组件系列——表格组件神器:bootstrap table
    wcf寄宿到iis
    win10获取注册表权限
    在唯一密钥属性“fileExtension”设置为“.log”时,无法添加类型为“mimeMap”的重复集合项
    从TFS中的现有项目复制一份作为新项目,导致提交的服务器无法加载
    对程序集“”签名时加密失败 --“对程序集签名时出错
    session
    升级webapi依赖的Newtonsoft.json的版本(转)
    多线程相关
    Linq Group By 多个字段
  • 原文地址:https://www.cnblogs.com/qiaoqiao2003/p/3755543.html
Copyright © 2011-2022 走看看