手头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)+ != 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 /home/host/nfs/hwgw6410/u-boot-nand.bin
dm9000 i/o: 0x18000300, id: 0x90000a46
DM9000: running in bit mode
MAC: :::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 = (5d340 hex)

uboot移植添加nfs支持的更多相关文章

  1. u-boot中添加mtdparts支持以及Linux的分区设置

    简介 作者:彭东林 邮箱:pengdonglin137@163.com u-boot版本:u-boot-2015.04 Linux版本:Linux-3.14 硬件平台:tq2440, 内存:64M   ...

  2. X-003 FriendlyARM tiny4412 uboot移植之添加相应目录文件

    X-003 FriendlyARM tiny4412 uboot移植之添加相应目录文件 <<<<<<<<<<<<<< ...

  3. u-boot 移植(二)创建新平台的板级支持

    u-boot 移植(二)创建新平台的板级支持 soc:s3c2440 board:jz2440 uboot:u-boot-2016.11 toolchain:gcc-linaro-7.4.1-2019 ...

  4. u-boot移植总结(四)u-boot-2010.09框架分析

    (一)本次移植是基于FL2440,板子的基本硬件: CPU 型号为S3C2440,基于ARM920T,指令集ARMV4,时钟主频400MHz SDRAM H57V2562GTR-75C 2片*32MB ...

  5. 【转】uboot移植(一)BootLoader基本概念

    原文网址:http://blog.chinaunix.net/uid-25445243-id-3869348.html 一.BootLoader简介1.1.嵌入式Linux软件结构与分布 在一般情况下 ...

  6. 基于mini2440的uboot移植(一)

    一.移植环境 虚拟机:ubuntu12.04 uboot源码:u-boot-2008.10.tar.bz2 交叉编译:arm-linux-gcc-4.4.3 简单的记录下编译uboot的过程,要想具体 ...

  7. U-BOOT 移植到友善之臂mini2440

    U-BOOT 移植到友善之臂mini2440 开发环境:ubuntu 10.10 编译器:友善之臂mini2440光盘自带arm-linux-gcc 4.4.3 一. 在denx官网下载源码,我所用版 ...

  8. uboot移植

    Uboot移植 1.架构 board:与一些开发板相关的配置文件 common:uboot下使用能够使用的命令 CPU:与特定CPU架构相关的目录 disk:对磁盘的支持 doc:文档目录 drive ...

  9. 基于tiny4412的u-boot移植(二)

    作者信息 作者:彭东林 邮箱:pengdonglin137@163.com QQ: 405728433 平台介绍 开发环境:win7 64位 + VMware11 + Ubuntu14.04 64位 ...

随机推荐

  1. 内网ip打洞-----p2p实现原理

    网上找了非常多.代码大堆,原理讲清楚透彻的不多. 本人找几篇讲得好的来整理一下. 一片技术文章,最基本的讲清楚原理.假设再有完整的能执行的源码也可,关键是要把核心部分代码分析清楚. (1)问题的由来: ...

  2. 软件业的发展方向:云、Web以及App

    随着行业互联网的发展,未来的软件发展方向是云技术.Web软件以及基于移动设备的Apps. 桌面软件主要负责大型的计算.渲染和消耗非常大CPU和内存的图形软件,以及基于这些软件的二次开发软件如Revit ...

  3. eclipse中文件文件夹高速定位,打开文件所在文件夹,在资源管理器中查看

    viewFile.bat (打开选中的文件获取目录) Explorer/e,/select,%1 viewjava.bat (打开选中的文件名称相应的.java文件) @echo off set ca ...

  4. 【Excle数据透视表】如何创建非共享缓存的数据透视表

    一般情况下,利用同一个数据源创建多个数据表时,默认创建的是共享缓存的数据透视表.刷新一个数据透视表时会影响其他数据透视表的展示结果. 解决方案 创建非共享缓存的多个数据透视表 步骤一 单击工作表数据任 ...

  5. Python Flask 在Sina App Engine (SAE)上安家

    早就听说了Python的大名,随着的编程语言的理解加深,越发认为动态语言的威力--真大呀. 趁这段时间不忙,我也用Python写了一个应用,而且将其部署到Sina App Engine (SAE).S ...

  6. 15:取近似值ApproximateValue

    题目描述 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值.如果小数点后数值大于等于5,向上取整:小于5,则向下取整. 输入描述:输入一个正浮点数值 输出描述:输出该数值的近似整数值 输入例子 ...

  7. Android中读取图片EXIF元数据之metadata-extractor的使用

    一.引言及介绍 近期在开发中用到了metadata-extractor-xxx.jar 和 xmpcore-xxx.jar这个玩意, 索性查阅大量文章了解学习,来分享分享. 本身工作也是常常和处理大图 ...

  8. python3.x中xml.etree.ElementTree解析xml举例

    1.新建xml import xml.etree.ElementTree as ETa=ET.Element('elem')c=ET.SubElement(a,'child1')c.text=&quo ...

  9. linux 更新yum源 改成163源

    安装完CentOS6.3后,为避免从国外站点安装更新速度过慢,需要更改yum更新源,所以从网上找了下更改linux yum源的方法,和大家进行下分享.原理很简单,就是把yum配置文件中的更新源改一下, ...

  10. OpenCV 入门示例之三:AVI 视频播放控制

    前言 在前文中给出了一个非常简短的视频播放程序,但它没有实现常规视频播放器中的播放滚动条功能,本文对此视频播放器程序加以改进,实现此功能. 滚动条的实现思路 滚动条的功能实质上就是从一帧跳跃到另外一帧 ...