zedboard建立网络文件系统

1、NFS定义以及安装NFS的原因

本文形成的物理环境:xilinx zedboard开发板,交换机一台(开发板与PC均通过网线与交换机相连)

PC机为WIN7操作系统,在此系统上搭建了ubuntu虚拟机.虚拟机平台:vmvare10.0  ubuntu1210

NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
由于NFS使得开发人员能在开发板上访问PC机的资源,使得开发者的开发进度能大大加快,接下来详述安装过程
注意:在使用之前请将挂载的目录权限全部设置成777即执行 chmod777 /nfs

2、在PC端ubuntu下开启NFS

1)安装NFS:apt-get install nfs-kernel-server

2)配置/etc/exports  

Ubuntu nfs允许挂载的目录及权限在文件/etc/exports中进行了定义例如,我们要将根目录下的/nfs目录共享出来,那么我们需要在/etc/exports文件末尾添加如下一行:

/nfs *(rw,sync,no_root_squash)

其中:/nfs是要共享的目录,*代表允许所有的网络段访问,rw是可读写权限,sync是资料同步写入内存和硬盘,no_root_squash是Ubuntu nfs客户端分享目录使用者的权限,如果客户端使用的是root用户,那么对于该共享目录而言,该客户端就具有root权限,记住要mkdir  /nfs并在这个目录下新建一些文件帮助我们测试是否成功

3)关闭Ubuntu的防火墙

ufw disable   防火墙在系统启动时自动禁用  (启用就是enable)

4)Ubuntu nfs重启服务

$sudo service portmap restart

$sudo service nfs-kernel-server restart

mount -t nfs localhost:/nfs  /mnt
-t代表挂载的文件系统类型,nfs即表示了网络文件系统类型
解除挂载使用umount /mnt

5)测试Ubuntu nfs

#showmount -e

showmount命令用于查询NFS服务器的相关信息 , -e或--exports,显示NFS服务器的输出清单

另一种测试方法:将建立的NFS目录挂载到本地的一个挂载点,然后看是否成功。

localhost即是本机,可以用本机IP,/nfs是之前建立的网络文件系统路径,/mnt 是目标挂载点


3、在开发板上开启NFS

1)、键入命令cat  /proc/filesystems | grep nfs,测试当前系统是否开启了nfs支持

若显示如下则说明已经开启NFS支持,此时转步骤3,否则转步骤2

nodevnfs

nodevnfs4

nodevnfsd

2)、编译内核添加NFS的支持

内核下载地址https://github.com/Digilent/linux-digilent/releases,下载V3.3.0

解压源码:tar -xvzf linux-digilent-3.3.0-digilent-12.07-zed-beta.tar.gz

配置内核源码:make ARCH=arm digilent_zed_defconfig  

安装libncurses5-dev以支持后续操作:apt-get install libncurses5-dev 

执行make menuconfig

接下来的步骤详见图:








配置完成之后逐级退出保存   在.config文件中可看到修改后的变化:




将所做的改动配置到到arch/arm/configs/digilent_zed_defconfig中:

删除掉# CONFIG_NETWORK_FILESYSTEMS is not set

在该位置加上上面的配置内容,这样才能保证内核能够顺利编译通过.回到解压后的根目录,执行:

$ make ARCH=arm digilent_zed_defconfig
$ make ARCH=arm 
编译成功后,在arch/arm/boot下找到zImge,替换原系统的zimge


3)、启动系统,执行cat /proc/filesystems |grep nfs,即可看到步骤1所述内容

确保开发板能与PC机ping通

之后将PC的NFS路径挂载至开发板

mount -t nfs serverip:SERVER_PATH LOCAL_PATH -o proto=tcp -o nolock

serverip为PC端IP,SERVER_PATH为PC端NFS路径,LOCAL_PATH即为开发板的路径



至此完工.




遇到的问题:

1、Starting NFS common utilities: statd

在ARM开发板的debian系统上,启动系统时候发现卡在

Starting NFS common utilities: statd  等很久之后出现 failed 的提示

之后开发板再挂载nfs的时候就会失败;原因是由于没有配置本地回环接口lo

这时候用vi编辑:#vi /etc/network/interfaces 添加:

auto lo

iface lo inet loopback


2、mount.nfs:access denied by server while mounting...

如果出现错误:mount.nfs:access denied by server while mounting...

则是因为使用了非法端口(如果端口号大于1024,则需要将 insecure 选项加入到配置文件(/etc/exports)相关选项中mount客户端才能正常工作),则在exports中加入insecure即可
/nfs *(insecure,rw,sync,no_root_squash)


3、wrong fs type, bad option, bad superblock 

如果挂载时出现以下错误:

mount: wrong fs type, bad option, bad superblock on 192.168.1.5:/home/shared, missing codepage or helper program,

or other error (for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount. helper program)
In some cases useful info is found in syslog - try dmesg | tail or so.

则是由于缺少必要的NFS程序,如下安装即可:

apt-get install nfs-common

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值