首先参考博文 https://blog.csdn.net/wenhao_ir/article/details/144404637 使得IMX6ULL开发板、PC机上的USB网卡、VMware中的Ubuntu能互相Ping 通
然后开始将Ubuntu 的 NFS 目录挂载到Ubuntu中。
为什么挂载?
答:其实是把 Ubuntu中的某个目录通过NFS网络协议变成linux中的某个目录,类似Windows中的共享文件夹。我们有些时候需要多次调试开发板文件系统内的某个应用程序,这就需要多次进行编译拷贝等操作,所以我们在前期进行调试时可以直接让开发板使用ubuntu 的 nfs 目录下文件系统来进行远程调试,用以提高调试效率,加快研发速度。
首先确保开发板和到Ubuntu能互相ping通:
开发板 Ping Ubuntu:
bash
ping 192.168.5.11
Ubuntu Ping 开发板
bash
ping 192.168.5.9
然后确认Ubuntu中目录/home/book/nfs_rootfs
存在。
然后在开发板上执行下面的命令:
bash
mount -t nfs -o nolock,vers=3 192.168.5.11:/home/book/nfs_rootfs /mnt
这条命令是用于在 Linux 系统中挂载一个 NFS(Network File System)共享目录到本地文件系统。以下是对这条命令的详细解释:
命令结构
bash
mount -t nfs -o nolock,vers=3 192.168.5.11:/home/book/nfs_rootfs /mnt
1. mount
这是用于挂载文件系统的通用命令。
2. -t nfs
-t
选项指定挂载的文件系统类型,这里指定为 nfs
,即网络文件系统。
3. -o nolock,vers=3
-o
选项用于指定挂载选项,多个选项用逗号分隔:
nolock
:- 禁用文件锁机制。
- 通常用于避免 NFS 客户端尝试与锁管理器
rpc.statd
进行通信时出现问题,比如锁管理器未运行或网络延迟。
vers=3
:- 指定使用 NFS 协议版本 3。
- NFS 有多个版本(如 3、4、4.1),版本 3 是一个经典版本,支持更好的性能和兼容性。
4. 192.168.5.11:/home/book/nfs_rootfs
- 这是 NFS 服务器的地址和共享目录:
192.168.5.11
是 NFS 服务器的 IP 地址。/home/book/nfs_rootfs
是在服务器上配置的 NFS 共享目录路径。
5. /mnt
- 这是挂载点,即本地系统中 NFS 共享目录将被映射到的位置。
- 挂载后,访问
/mnt
就相当于访问服务器上的/home/book/nfs_rootfs
。
挂载完成后的测试:
按照博文 https://blog.csdn.net/wenhao_ir/article/details/144326545 的说明在目录/home/book/mycode/C001_hello
通过交叉编译生成了hello可执行文件。
我们把这个可执行文件复制到挂载目录/home/book/nfs_rootfs /mnt
下:
然后在开发板上执行下面的命令看下有没有相应的文件:
bash
ls /mnt
可见是有的。
然后在根目录下创建一个名为 mycode 的目录
bash
mkdir mycode
进入这个目录
bash
cd mycode
把程序hello复制到 /mycode 中
bash
cp /mnt/hello ./hello
然后给hello添加执行权限
bash
chmod +x hello
然后执行程序
bash
./hello
我们再给它加一个参数,它的源码(源码见 https://blog.csdn.net/wenhao_ir/article/details/144326545)表明我们是可以附带一个字符串参数的:
bash
./hello suwenhao
完美运行~