NFS是Network FileSystem的缩写,NFS是基于UDP/IP协议的应用。它的最大功能就是能够经过网络让不一样的机器,不通的操做系统彼此共享文件,linux
能够经过NFS挂载远程主机的目录,访问该目录就像访问本地目录同样,因此也能够简单的将它看作一个文件服务器。ubuntu
经过NFS服务,咱们能够实如今线调试文件系统或应用程序,而不用像传统的方式生成文件系统镜像,而后烧写到iTop-4412的eMMC里,在启动开发板。服务器
经过NFS服务能够提升咱们的调试效率。网络
Android或者Qt文件系统太大,启动过慢,最小linux系统却很是适合使用NFS网络文件系统来调试。测试
安装Ubunut NFS服务spa
-- apt-get install nfs-kernel-server操作系统
安装过程弹出对话,选择Y,回车继续安装调试
配置/etc/exportsrest
-- 最后一行添加/home/minilinux/ *(rw,sync,no_root_squash)server
-- /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
例如咱们把/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
配置完毕后保存退出配置内核,编译内核,下载到开发板
注意下面几个参数
-- nfs服务器ip
-- 挂载目录
-- 开发板的IP地址
-- 开发板的网关
-- 子网掩码
内核启动后,就自动加载上了。全部修改都是对应好的
PC网络配置
修改开发板设置并测试
虚拟机的设置
测试三者之间网络
-- 须要使用网线将开发板和电脑链接才能ping通和Ubuntu电脑
实现tftp下载功能
修改内核配置实现NFS
NFS网络文件系统:内核启动运行以后,内核里面直接启动网络,而后直接去网络中找最小linux文件系统。再运行最小linux文件系统,固然文件系统在ubuntu中自动挂载。
NFS共享目录:内核启动后,开发板运行的是EMMC上的最小文件系统,最小linux文件系统再去启动网络,经过网络访问ubuntu,而后访问共享文件目录。
登陆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
配置确认文件
-- 做者是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
-- 烧写新的内核
确保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