Skip to content

LV055-挂载ubuntu目录

一、写在最前面的

前面我们已经知道了如何从 tftp 加载设备树和 linux 内核镜像,如何从 nfs 挂载根文件系统,我们后面进行应用开发的时候是不需要修改根文件系统和镜像以及设备树这些的,每次都这么加载会很慢,但是其实我们有时候只是想把文件传输到开发板而已,可以怎么做?前面不是已经实现了从 nfs 挂载根文件系统到 linux 开发板吗,是不是可以用一样的操作?当然可以的。

这一节我们从 SD 卡或者 eMMC 启动系统,然后从 nfs 挂载 ubuntu 中的目录到开发板中去。

二、ubuntu 搭建好 NFS 环境

1. 搭建 NFS 环境

根据《05-开发环境/15-网络环境/LV025-nfs 环境.md》搭建好 NFS 服务器:

shell
showmount -e
image-20240831105732279

2. 创建 app 目录

我们创建一个目录,用与后面应用开发使用:

image-20240831103306372

三、网口实现挂载

1. 环境准备

这个方式需要连接网线,我们需要提前配置好 ubuntu、windows 和 linux 开发板的 IP:

shell
开发板 IP:192.168.10.109
虚拟机 IP:192.168.10.108
PC    IP:192.168.10.100

保证他们可以互相 ping 通即可,其实 PC 的在这里并不重要,主要是要保证虚拟机的 Ubuntu 可以和开发板互相 ping 通。

2. linux 开发板挂载目录

我们在 /mnt 目录下创建挂载点,注意这个目录下创建的文件,好像关机后并不会消失,不需要重新创建:

shell
mkdir -p /mnt/nfs_app

挂载命令如下:

shell
mount -t nfs -o nolock,nfsvers=3 192.168.10.108:/home/sumu/4nfs/app /mnt/nfs_app

然后就可以成功挂载啦。

3. 开机自动挂载

如何实现开机自动挂载?我们需要把这些挂载的命令写到 /etc/init.d/rcS 中去

shell
mount -t nfs -o nolock,nfsvers=3 192.168.10.108:/home/sumu/4nfs/app /mn/nfs_app

不过这里会有一个问题,直接写到这个文件中的话,这个时候开发板的 IP 还没设置好,前面我们设置静态 IP 的时候,是修改的 /etc/rc.local 这个文件,这个文件也会在开机的时候自动执行,所以我们把命令写入到 IP 配置之后。

shell
vi /etc/rc.local

然后添加如下内容:

shell
echo "========================================================"
echo "[sumu]mount sumu's nfs dir (/mnt/nfs_app)......"
mount -t nfs -o nolock,nfsvers=3 192.168.10.108:/home/sumu/4nfs/app /mnt/nfs_app
echo "========================================================"
image-20240831113614991

可以看到开机的时候挂载完毕,已经可以正常使用了:

image-20240831113547106

根据打印信息来看,这个文件应该是运行在最后的。

四、USB WiFi

前面在体验出厂系统的时候还用到了 usb WiFi 模块,我们在学习应用开发的时候只需要在出厂系统上跑 app 程序就可以了,这样我们其实是可以使用这个模块,和电脑连接在同一个局域网下,这样就不需要插网线了。

1. 启动并连接 WiFi

这里就看《10-开发平台/05-IMX6ULL/LV020-基本功能测试.md》就可以了。连接完成后,可以 ping 一下电脑主机 WiFi 连接的 ip 和 ubuntu NAT 模式的 ip,会发现在同一个局域网下是可以 ping 通的。

2. 挂载 ubuntu 共享目录

和上面的挂载命令是一样的:

shell
mkdir -p /mnt/nfs_app
mount -t nfs -o nolock,nfsvers=3 <ubuntu NAT模式下的IP>:/home/sumu/4nfs/app /mnt/nfs_app