tips:
Android不支持nfs,使用adb push会更方便。
遇到问题多考虑路径是否设置正确,权限问题
步骤:
可以分为两大步:1、在ubuntu中配置nfs服务 ,创建共享目录
2、通过局域网联接开发开发板和ubuntu
1、在ubuntu中配置nfs服务 ,创建共享目录
输入以下命令安装 Ubuntu NFS 服务:
apt-get install nfs-kernel-server
使用以下命令对 exports 文件进行内容的修改
vim /etc/exports
在最后一行添加以下内容, 添加完成如下图所示
/home/nfs/ *(rw,sync,no_root_squash)
/home/nfs/: 要共享的目录; “/home/nfs/ ”目录需要自己建, 默认 Ubuntu 中是没有的。
*: 代表允许所有的网络段访问; rw: 是可读写权限; sync: 是资料同步写入内存和硬盘;
no_root_squash: 是 Ubuntu nfs 客户端分享目录使用者的权限, 如果客户端使用的是 root用户, 那么对于该共享目录而言, 该客户端就具有 root 权限;
其他 Ubuntu nfs 常用的参数有: ro: 只读访问
async : nfs 在写入数据前可以相应请求secure: nfs 通过以下的安全 TCP/IP 端口发送
insecure: nfs 通过 1024 以上的端口发送wdelay: 如果多个用户要写入 NFS 目录, 则归组(默认)
no_wdelay: 如果多个用户要写入 NFS 目录, 则立即写入, 当使用 async 时, 无需此设置
hide: 在 nfs 共享目录中不共享妻子目录no_hide: 共享 nfs 目录的子目录
subtree_check: 如果共享/usr/bin 之类的子目录时, 强制 nfs 检查父目录的权限(默认) no_subtree_check: 和上面相对, 不检查父目录权限
all_squash: 共享文件的 UID 和 GID 映射匿名用户 anonymous, 适合公用目录no_all_squash: 保留共享文件的 UID 和 GID(默认)
root_squash root: 用户的所有请求映射成如 anonymous 用户一样的权限(默认)
no_root_squash root: 用户具有根目录的完全管理访问权限anonuid=xxx: 指定 nfs 服务器/etc/passwd 文件中匿名用户多的 UID anongid=xxx: 指定 nfs 服务器/etc/passwd 文件中匿名用户的 GID
接下来使用以下命令重启 rpcbind 服务, 运行结果如下图:
/etc/init.d/rpcbind restart
然后输入以下命令重启 nfs 服务
需要先在/home创建nfs文件夹才能生效,否则会出现以下报错
/etc/init.d/nfs-kernel-server restart
使用以下命令, 查看是否成功挂载 nfs 目录(这里也可能要重启 ubuntu 才会又挂载目录),如下图所示
showmount -e
至此, Ubuntu nfs 服务器端的配置完成。
2、通过局域网联接开发开发板和ubuntu
通过路由器网线/wifi连接开发板和路由器。 系统起来后首先使用以下命令查看开发板 ip。
ifconfig
然后在 ubuntu 同样使用以下命令查看 NFS 服务器的 ip, 如下图所示:
在开发版输入以下命令
mount -t nfs -o nfsvers=3,nolock 192.168.3.133:/home/nfs /mnt/
运行结果如下: