<返回更多

NFS在嵌入式开发中安装和使用

2021-06-22  今日头条  小猪熊熊漂漂龙
加入收藏

nfs在嵌入式开发中的使用场景:

1、使用nfs挂载ubuntu服务端目录方便文件传输和程序调试

2、uboot启动后,使用nfs读取kernel和挂载rootfs,方便kernel和rootfs调试

3、提取eMMC镜像时保存到nfs目录中,供产线离线烧录eMMC

 

ubuntu安装nfs服务端安装方法:

sudo apt-get install nfs-kernel-server nfs-common

 

修改文件/etc/exports,在最后添加一行:

/home/tangyc *(rw,sync,no_root_squash,no_subtree_check)

NFS在嵌入式开发中安装和使用

 

注意:上面/home/tangyc是我的$HOME目录,换成你自己的目录

 

重启服务:

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

 

本地测试,运行:

showmount -e

Export list for tangyc-VirtualBox:

/home/tangyc *

NFS在嵌入式开发中安装和使用

 

上面已经可以看出nfs共享文件夹/home/tangyc生效

 

开发板端nfs

编译nfs工具

yocto下编译nfs-utils使用:

bitbake nfs-utils

编译目录在

tmp/work/aarch64-poky-linux/nfs-utils/2.1.1-r0/image

 

板子下要用到如下的文件:

/sbin/mount.nfs、/sbin/mount.nfs4、/usr/lib/libtirpc.so.*

文件系统要有以上文件

否则出现错误:

mount: /mnt: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.

 

也可以使用buildroot编译nfs-utils:

Target packages --->

Filesystem and flash utilities --->

[*] nfs-utils

将上面移植好的工具放到对应的目录下就可以挂载server端nfs目录了

 

开发板挂载NFS测试

开发板网线连接到主机ubuntu。ubuntu设置固定的IP地址192.168.2.2。开发板IP地址192.168.2.6,设置成同一网段并且可以相互ping通.

注意:开发板和pc机能相互ping通,说明物理连接没问题;如果ping不通虚拟机说明虚拟机有问题

 

在开发板端输入:

# mount -t nfs -o nolock 192.168.2.2:/home/tangyc/nfs /mnt

将主机端(192.168.2.2)共享目录/home/tangyc/nfs挂载到开发板的/mnt目录下,可以看到/mnt下已经能看到服务端文件了

NFS在嵌入式开发中安装和使用

 

卸载命令:

umount /mnt

 

如果mount出错:

mount.nfs: an incorrect mount option was specified

mount.nfs: Protocol not supported

说明协议不支持,查看下板子端nfs协议,如果是v4的

应该用(这里我们板子是v4的,所以有这个也能挂载上):

mount -t nfs -o nolock,nfsvers=4,vers=4 192.168.2.2:/home/tangyc/nfs /mnt

如果是v3要用:

mount -t nfs -o nolock,nfsvers=3,vers=3 192.168.2.2:/home/tangyc/nfs /mnt

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>