1、Ubuntu14.04上搭建NFS服务

1.1、安装NFS服务

$ sudo apt-get install nfs-kernel-server    //安装NFS服务

1.2 创建共享文件夹

$ sudo mkdir /home/felix/nfs  //创建一个共享文件夹

1.3. 配置NFS服务器

配置NFS主要涉及配置文件/etc/exports,它用于NFS服务器端,其中列出了NFS服务器中要导出的目录、可以访问这些目录的NFS客户机及其访问权限。

/etc/exports文件的格式如下:

dir_to_export  NFS_client (permissions)  [NFS_client (permissions)…]

例如:

/tmp       192.168.100.0/24(ro)  localhost(rw)   *(ro,sync)

[分享目录]  [第一个客户端(权限)]   [可用主机名]   [可用通配符]

在exports文件中添加如下内容:

/home/felix/nfs  *(rw,sync,no_root_squash,no_subtree_check)

/home/felix/nfs:刚才创建的共享文件夹

*:允许所有的网段访问,也可以使用具体的IP

rw:挂接此目录的客户端对该共享目录具有读写权限

sync:资料同步写入内存和硬盘

no_subtree_check:不检查父目录的权限。

no_root_squash:root用户具有对根目录的完全管理访问权限。

1.4、启动NFS服务器。

在命令行终端输入如下命令:

$ sudo exportfs –rv                 //使/etc/exports 文件生效

$ sudo /etc/init.d/rpcbind restart          //重启rpcbind 服务

$ sudo /etc/init.d/nfs-kernel-server restart      //重启nfs服务

在Ubuntu上执行:

$ showmount -e

显示出共享的目录说明搭建成功。

2.配置tiny4412开发板内核,板子启动自动挂载NFS文件系统

2.1、配置tiny4412开发板内核支持NFS

输入 make ARCH=arm menuconfig 命令进入 linux 配置界面,

进入[*] Networking support  --->

Networking options  --->

选中[*]   IP: kernel level autoconfiguration

再进入File systems  --->

[*] Network File Systems  --->

选中如下选项:

<*>   NFS client support

<*>     NFS client support for NFS version 2

<*>     NFS client support for NFS version 3

[*]       NFS client support for the NFSv3 ACL protocol extension

<*>     NFS client support for NFS version 4

[*]     Provide swap over NFS support

[*]   NFS client support for NFSv4.1

[*]     NFS client support for NFSv4.2

[*]     NFSv4.1 client support for migration

[*]   Root file system on NFS

配置完成后,保存退出并编译内核。

2.2、配置U-boot启动参数

2.2.1、设置U-boot的bootargs参数:

# setenv bootargs  'root=/dev/nfs  rw  nfsroot=192.168.1.102:/home/felix/nfs  ethmac=00:00:ff:ff:00:00 ip=192.168.1.103:192.168.1.102:192.168.1.1:255.255.255.0::eth0:off  console=ttySAC0,115200 init=/linuxrc'

其中关键是对ip参数的设置:

ip=<;client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>

bootargs中关于nfs的参数解释如下:

root=/dev/nfs  rw  nfsroot=192.168.1.102:/home/felix/nfs 表示挂载的 nfs 服务器 ip 是

192.168.1.102,挂载的目录是/home/felix/nfs(注意:/home/felix/nfs是前面搭建 nfs 服务器设置的);

ethmac=00:00:ff:ff:00:00表示网卡的地址是00:00:ff:ff:00:00,该地址在网卡驱动加载成功后会打印出来;

ip=192.168.1.103:192.168.1.102:192.168.1.1:255.255.255.0::eth0:off中ip192.168.1.103是我们开发板的ip地址, ip192.168.1.102是nfs服务器的ip,ip192.168.1.1是开发板的网关,255.255.255.0 是子网掩码,eth0是网卡设备的名称。

对bootargs的设置可以放在设备树中或者u-boot中,并且u-boot的bootargs的优先级更高,会将设备树中的bootargs覆盖了。具体请参考内核文档:

Documentation/kernel-parameters.txt

Documentation/filesystems/nfs/nfsroot.txt

2.2.2、设置U-boot的bootcmd参数:

如果用NFS启动根文件系统的话,使用bootm启动内核的时候,就不需要传递ramdisk的地址了(如:bootm 0x40000000 – 0x4200000 ),否则根文件系统还是ramdisk。U-boot的bootcmd参数设置如下:

# setenv bootcmd 'usb start; usb reset;tftp 0x40007000 uImage; tftp 0x42000000 exynos4412-tiny4412sdk.dtb;bootm 0x40007000 - 0x42000000; boot'

关于TFTP的设置参考《[20170320] X-010 FriendlyARM tiny4412 uboot移植之 uboot移植之移植网卡驱动TFTP用起来》

 

2.2.3、保存U-boot的bootargs参数和bootcmd参数

# saveenv

完成上面的设置,就可以使用NFS启动Tiny4412开发板的根文件系统。

参考

嵌入式环境搭建之NFS  http://blog.csdn.net/tigerjibo/article/details/9748561

[学习嵌入式开发板]iTOP-4412实现NFS网络文件系统http://www.oschina.net/question/2371345_2158782

Ubuntu14.04和Tiny6410挂载NFS服务http://www.cnblogs.com/cxd2014/p/4178889.html

转载于:https://www.cnblogs.com/LoTGu/p/6701442.html

使用NFS启动Tiny4412开发板根文件系统相关推荐

  1. 解决Windows无法NFS启动imx6ull开发板的问题

    解决Windows无法NFS启动imx6ull开发板的问题 问题:有时候我们需要将Linux虚拟机里的文件复制到Windows里,并在Windows上通过haneWIN NFS server启动imx ...

  2. 打包开发板根文件系统,并制作成img镜像

    打包开发板根文件系统,并制作成img镜像. 打包根文件系统,并制作成img镜像. 整体操作一共三步: 一.将开发板的整个根文件系统的文件,通过ssh拷贝到PC系统(Ubuntu): 二.将此拷贝的全部 ...

  3. 导出开发板根文件系统rootfs

    环境: 1.Windows子系统Linux Ubuntu18(没有安装子系统的,虚拟机也是一样),需要注意的是Windows子系统Linux Ubuntu18需要是WSL2版本. 2.开发板RK328 ...

  4. rk3128 通过自带buildroot打包开发板根文件系统,重做自己的img镜像

    对rk3128要生成自己的qt镜像文件 据说这样才方便大批量的烧录 打包分析 根据九鼎里面带有的编译脚本,把自定义的uboot,kernel,rootfs进行替换,用他的脚本就能打包了 他自己也是这样 ...

  5. 【Linux系统开发】x210开发板根目录文件系统构建

    文章目录 一.开发板配置 二.了解rootfs 三.虚拟机文件配置 1.目录配置 2.x210_bsp配置 3.rootfs配置 4.make menuconfig 四.busybox的移植实战 1. ...

  6. linux开发 | 根文件系统构建实验及过程详解

    <2.uboot和系统移植-第19部分-2.19.根文件系统构建实验及过程详解> 第一部分.章节目录 2.19.1.根文件系统的构建路线 2.19.2.busybox的移植实战 2.19. ...

  7. 嵌入式环境:挂载开发板根NFS文件系统失败

    挂载开发板根NFS文件系统的时候,发现了下面的问题: Looking up port of RPC 100003/2 on 192.168.2.109 rpcbind: server 192.168. ...

  8. 天嵌E9卡片i.mx6q-Linux12.04搭建nfs环境以及从nfs启动开发板

    最近导师丢了一个图像处理的项目,要用嵌入式来实现.于是买了一块天嵌近期推出的E9卡片i.mx6q板子,这款板子算是功能比较全面,基本上要用的驱动都给实现了.刚开始接触嵌入式,之前也没用过Linux系统 ...

  9. linux开发板tftp 搭建,iTOP-i.MX6ULL开发板-Tftp烧写和Nfs启动

    原标题:iTOP-i.MX6ULL开发板-Tftp烧写和Nfs启动 硬件平台:迅为iTOP-i.MX6ULL开发板 使用网络方式调试 Linux 非常方便,下面开始介绍用 tftp 下载 Linux ...

最新文章

  1. ~~~端午安康~~~
  2. Java项目:仿天猫网上商城项目(java+jsp+servlet+mysql+ajax)
  3. 【编程通识】正则表达式
  4. [特征工程系列三]显性特征的衍生
  5. CSS之关系选择器、属性选择器、伪类选择器
  6. 永远不会执行的cron表达式
  7. 2440按键中断编程
  8. 在 net send 命令中实现换行(信使服务)
  9. Linux下mongodb安装及数据导入导出教程
  10. 阿里云容器服务飞天敏捷版详解
  11. MyBatis当多个请求参数时处理方式
  12. CheckBox的Attributes
  13. mysql5.7应该导什么包_烘焙知识 | 不同的蛋糕,应该如何完美脱模?
  14. ios12后,获取不到WIFI(SSID)相关信息
  15. MongoDB 通过 Java 代码 批量操作
  16. 【华为】职级、薪酬、绩效全认知
  17. 金山词霸划译功能对IDE的影响
  18. ISP成像算法基础Day1—Python基础
  19. 一文讲懂什么是 vlan、三层交换机、网关、DNS、子网掩码、MAC地址
  20. Git提交后,文件夹任然有红色叹号提示

热门文章

  1. uhttpd 架构调用细节之lua
  2. grep如何忽略.svn目录,以及如何忽略多个目录
  3. 使用Forms Authentication 身份验证 之 Basic Knowledge
  4. python公共键_Python利用公共键如何对字典列表进行排序详解
  5. [力扣] 二叉树的层序遍历
  6. CCS中各个项目文件的作用
  7. 手机1像素线粗,如何模仿1像素厚的线?
  8. python生成固定形状的词云图
  9. Google 神秘 Fuchsia OS 的开源线索
  10. SpringMVC详细示例实战教程