一、NFS网络文件系统

  NFS是Network FileSystem的缩写,NFS是基于UDP/IP协议的应用。它的最大功能就是可以通过网络让不同的机器,不通的操作系统彼此共享文件

可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样,所以也可以简单的将它看做一个文件服务器。

  通过NFS服务,我们可以实现在线调试文件系统或应用程序,而不用像传统的方式生成文件系统镜像,然后烧写到iTop-4412的eMMC里,在启动开发板。

通过NFS服务可以提高我们的调试效率。

  Android或者Qt文件系统太大,启动过慢,最小linux系统却非常适合使用NFS网络文件系统来调试。

二、搭建NFS服务器

安装Ubunut NFS服务

-- apt-get install nfs-kernel-server

  安装过程弹出对话,选择Y,回车继续安装

配置/etc/exports

-- 最后一行添加/home/minilinux/ *(rw,sync,no_root_squash)

-- /home/minilinux/表示要共享的目录,根据实际情况修改

-- *:代表允许所有的网络断访问

-- rw:是可读写权限

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

-- no_root_squash:是Ubunut nfs客户端分享目录使用者的权限,如果客户端使用的是root用户,那么对于该共享目录而言,该客户端就具有root权限

重启portmap服务

-- /etc/init.d/portmap restart

重启nfs服务

-- /etc/init.d/nfs-kernel-server restart

测试NFS服务器

例如我们把/home/minilinux挂载到/mnt目录下

-- mount -t nfs localhost:/home/minilinux/system /mnt

-- 与明亮对应的是最小文件系统在/home/minilinux目录下,根据实际情况设置

使用df命令查看文件是否被挂载

三、内核配置

进入内核目录(),配置为QtE的config文件

-- cp -r config_for_linux_scp_elite.config

进入配置界面,配置内核

-- make menuconfig

“Networking support” -> "Networking options" -> 选上 "IP:kernel level autoconfiguration"

返回到make menuconfig的初始界面

-- "File systems" -> "Network File Systems"

-- 选中“NFS client support”, "NFS client support for NFS version 3", "NFS client support for the NFSv3 ACL protocol extension", "NFS client support for NFS version4", "NFS client support for NFSv4.1" , "Root file system on NFS"

返回到make menuconfig的初始配置界面

-- 进入"Boot options" -> "Default kernel command"

配置举例:

-- root=/dev/nfs rw nfsroot=192.168.1.103:/home/minilinux/system
ip=192.168.1.230:192.168.1.103:192.168.1.1:255.255.255.0:iTOP:eth0:off
rootfstype=ext4 init=/linuxrc console=ttySAC2,115200

  • root=/dev/nfs rw nfsroot=192.168.1.103:/home/minilinux/system 表示挂载的nfs服务器ip 是192.168.1.103,挂载的目录是/home/minilinux/system
    注意:/home/minilinux/system 是前面我们搭建nfs 服务器设置的
  • ip=192.168.1.230:192.168.1.103:192.168.1.1:255.255.255.0:iTOP:eth0:off 这里面,第一个ip192.168.1.230 是我们开发板的ip 地址,第二个
    ip192.168.1.103 是nfs 服务器的ip,第三个ip192.168.1.1 是开发板的网关,
    255.255.255.0 是子网掩码,iTOP 是开发主机的名字(一般无关紧要,可
    以随便填写),eth0 是网卡设备的名称。

配置完毕后保存退出配置内核,编译内核,下载到开发板

注意下面几个参数

-- nfs服务器ip

-- 挂载目录

-- 开发板的IP地址

-- 开发板的网关

-- 子网掩码

四、以NFS方式调试应用

内核启动后,就自动加载上了。所有修改都是对应好的

五、最小局域网实现tftp和NFS

PC网络配置

修改开发板设置并测试

虚拟机的设置

测试三者之间网络

-- 需要使用网线将开发板和电脑连接才能ping通和Ubuntu电脑

实现tftp下载功能

修改内核配置实现NFS

六、NFS共享目录

-- NFS网络文件系统和NFS共享目录

NFS网络文件系统:内核启动运行之后,内核里面直接启动网络,然后直接去网络中找最小linux文件系统。再运行最小linux文件系统,当然文件系统在ubuntu中自动挂载。

NFS共享目录:内核启动后,开发板运行的是EMMC上的最小文件系统,最小linux文件系统再去启动网络,通过网络访问ubuntu,然后访问共享文件目录。

-- 搭建NFS服务器

登录root账户

安装NFS服务

-- apt-get install nfs-kernel-server

修改配置

-- 打开/etc/exports

-- 最后一行添加:/home/topeet/linux/ *(rw,sync,no_root_squash)

-- Ubuntu上需要新建/home/topeet/linux目录

-- 参数的具体含义参考手册

重启NFS服务

-- /etc/init.d/nfs-kernel-server restart

-- 加载NFS驱动

配置确认文件

-- 作者是SCP核心板+精英版

配置内核

进入Networking support -> 选中Networking options然后进入

-- 选中IP:kernel level autoconfiguration

进入filesystems -> 选中Network File Sytem然后进入,选中以下项

-- "NFS client support" , "NFS client support for NFS version 3", "NFS client support for the NFSv3 ACL protocol extension",

"NFS client support for NFS version 4", "NFS client support for NFSv4.1", "Root file system on NFS"一共六个选项

保存退出

编译内核烧写

-- 注视掉网卡调试信息drivers/net/usb/dm9620.c,关键词LEN_PLOAD,注视掉三行打印信息

-- 编译make zImage

-- 烧写新的内核

-- NFS加载和测试

确保Ubuntu可以联网

-- 最小网络PC主机需要和虚拟机Ubuntu之间能够ping通

确保最小linux系统和Ubuntu之间可以ping通

-- 针对具体网络设置IP和网关

-- 在/etc/eth0-setting文件中修改

-- 修改之后使用ifconfig eth0 down和ifconfig eth0 up 重启网卡或者重启开发板

最小系统

-- mkdir /mnt/nfs新建目录

挂载NFS目录

-- mount -t nfs -o nolock 192.168.3.84:/home/topeet/linux /mnt/nfs

-- mount -t nfs -o nolock 192.168.2.148:/home/topeet/chen/linux /mnt/nfs

4412 搭建和测试NFS服务器的更多相关文章

  1. Ubuntu: 搭建tftp,nfs服务器

    Ubuntu12.04搭建tftp&nfs服务器 http://blog.163.com/thinki_cao/blog/static/83944875201411610467306/ 硬件环 ...

  2. Ubuntu16.04中搭建TFTP 和 NFS 服务器

    Ubuntu 16.04中搭建TFTP服务 1. 安装 $ apt-get install tftp-hpa tftpd-hpa   2. 建立目录 $ mkdir /tftpboot # 这是建立t ...

  3. nfs服务器的搭建和使用

    目录 更新记录 1.nfs介绍 1.1 nfs概念 1.2 nfs工作原理 1.3 nfs通讯过程 2.搭建和测试 NFS 服务器 2.1 搭建NFS服务器 2.2 测试NFS服务器 3.在线调试:N ...

  4. Ubuntu 搭建 配置 nfs服务器

    什么是NFS? NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NF ...

  5. 在linux下搭建NFS服务器实现文件共享

    目录 一.关于NFS 二.搭建一台NFS服务器共享特定资源 三.调优 一.关于NFS 1.NFS是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系 ...

  6. Ubuntu10.04安装与配置nfs服务器(转载)

    转自:http://blog.chinaunix.net/uid-25885064-id-3177969.html 1.安装nfs服务   $ sudo apt-get install nfs-ker ...

  7. NFS 服务器的配置

    1. 安装 NFS 服务器 [root@localhost btools]#rpm -q nfs-utils 如果没有安装,从对应 Linux 操作系统版本的安装光盘上找到 nfs-utils 的安装 ...

  8. 4412开发板学习笔记-NFS服务器的搭建

    转自iTOP-4412讨论群: http://www.topeetboard.com 先来介绍一下NFS: NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件 ...

  9. Ubentu搭建nfs服务器

    搭建nfs服务    功能:完成在线调试程序,远程挂载,在线调试    NFS(Network FileSystem,网络文件系统)是由SUN公司发展,并于1984年推出的技术,用于不同机器,不同操作 ...

随机推荐

  1. 知道css有个content属性吗?有什么作用?有什么应用?

    css的content属性专门应用在 before/after 伪元素上,用来插入生成内容.最常见的应用是利用伪类清除浮动. //一种常见利用伪类清除浮动的代码 .clearfix:after { c ...

  2. 解决Win7部分便笺的元数据已被损坏的方法

    Win7部分便笺的元数据已被损坏的方法 我们使用键盘上"Win+F"组合键搜索功能,直接找到"inkobj.dll"这个文件,一般会搜索出来好多,先随便选一个. ...

  3. Openstack_SQLAlchemy 修改数据库的表结构

    目录 目录 前言 更改数据库的方法 为数据库添加一张或多张新表 删除一张或多张表 为旧表添加一个字段 为旧表更新一个字段 为旧表初始化一条新的记录 最后 前言 SQLAlchemy 的使用方法和相关基 ...

  4. jdk (Java Development Kit)

    JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具. JD ...

  5. 边界安全 - CDN/DMZ/网络协议

    CDN   工具 - LuManager CDN DMZ 网络协议 - DNS Win7下搭建DNS服务器 - BIND 根域 顶级域(即相关国家域名管理机构的数据库,如中国的CNNIC) com n ...

  6. JavaScript高级程序设计(第3版) 第三章 (基本概念)

    3.1 语法 1.不以数字开头的数字,字母,下划线,美元符号 2.注释:html <!-- --> css/**/ js单行// 多行/**/ 3.ES5 引入了严格模式(strict m ...

  7. Parentheses Sequence微软编程笔试

    描述 You are given a sequence S of parentheses. You are asked to insert into S as few parentheses as p ...

  8. [BZOJ3307] 雨天的尾巴(树上差分+线段树合并)

    [BZOJ3307] 雨天的尾巴(树上差分+线段树合并) 题面 给出一棵N个点的树,M次操作在链上加上某一种类别的物品,完成所有操作后,要求询问每个点上最多物品的类型. N, M≤100000 分析 ...

  9. HTTP中ip地址伪造的问题以及解决办法

    在真实环境下,php获取客户端ip地址的方法通常有以下几种: (1):通过$_SERVER[ "HTTP_CLIENT_IP" ] (2):通过$_SERVER[ "HT ...

  10. django的orm操作优化

    django的orm操作优化 models.py from django.db import models class Author(models.Model): name = models.Char ...