Linux开发环境搭建与使用——ubuntu挂载到开发板某个目录

由于嵌入式Linux开发大多数使用的是交叉编译环境,难免很频繁的将文件在开发板和PC环境( 如ubuntu )之间传递,最方便的方法为挂载NFS。


网络文件系统NFS( Network File System )是一种将远程主机上的目录经网络挂载到本地主机的一种机制,如将ubuntu家目录 /home 挂载到开发板的 /tmp 目录。


说到挂载,大家可能觉得很专业,很抽象。我们把U盘插到电脑上,我们可以说,U盘挂载到电脑上,这样我们在电脑上能够直接看到U盘的内容。同样的,我们将ubuntu家目录 /home 挂载到开发板的 /tmp 目录,那么我们在开发板/tmp 目录能够看到ubuntu家目录 /home 的东西,这个开发板的 /tmp目录相当于ubuntu的家目录 /home 。


测试环境如下:

开发板型号:s5pv210


Linux系统(安装在虚拟机VMware player): ubuntu-12.04



ubuntu环境的配置(在PC ubuntu上操作):

1、NFS服务安装

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



2、NFS服务配置

在 /etc/exports的最后加一句话: /home  *(rw,sync,no_root_squash)

让/home家目录具备以下的属性:

rw:读/写权限,只读权限的参数为ro;
sync:数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。
no_root_squash:NFS服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。

具体操作如下:




3、重启NFS服务器

sudo service nfs-kernel-server restart



4、在PC上测试NFS服务器是否安装成功

我们把 ubuntu 的家目录 \home\edu 挂载到本机的 \tmp目录,最终,如果我们在/tmp目录,看到的东西是 ubuntu 家目录 \home\edu 的东西,那说明挂载成功。

sudo mount -o nolock 10.221.20.17:/home/edu  /tmp

10.221.20.17 为需要挂载目录的ip,这里是ubuntu的ip



先进入家目录,查看内容:



再进入 /tmp 目录,查看内容,和家目录的内容一样,挂载成功:



ubuntu的家目录/home/edu 挂载到开发的/tmp目录:

如果没有局域网网络,我们需要通过一根网线,一端连开发板,一端连PC机,人为组成一个局域网。



接着,我们分别给ubuntu和开发板设置一个同一网段的ip,网段相同,主机ip不能相同,否则,会导致ip冲突。


1、设置PC机ubuntu的ip(在PC机ubuntu进行相应操作)

详情请点《ubuntu如何设置IP》。


2、设置开发板的ip(在开发板终端进行相应操作)

将开发板连接好终端,如何连接请点此处。

在终端里敲:ifconfig eth0 10.221.20.123 netmask 255.255.255.0

注意,eth0 的 “0” 为数字 “0”

查看:ifconfig

测试能否拼通ubuntu: ping 10.221.20.17 , 敲:ctrl + c 即可中断连接





如果能平通,上图就是平通的情况,说明,开发板和PC机的ubuntu是在同一个局域网内。


3、在开发板上写相应挂载命令(在开发板终端进行相应操作)

mount -o nolock,wsize=1024,rsize=1024 10.221.20.17:/home/edu  /tmp

10.221.20.17:为需要挂载目录的ip,这里是PC机上ubuntu的ip


然后,进入/tmp目录,查看一下内容,如果看到的是ubuntu的/home/edu目录的内容,说明挂载成功。



4、写个挂载脚本( 开发板操作 )

开发板每次重启后,上面写的设置ip,挂载命令都会失效,于是,我们又要重复“3、在开发板上写相应挂载命令(在开发板终端进行相应操作)”的操作,这样会很麻烦,所以,我们接下来在开发板 /home 目录 写个挂载脚本,以后开启开发板,人为运行这个挂载脚本即可实现挂载功能。


a)在开发板的/home目录,新建一个脚本:vi mount_nfs.sh



b) 在脚本 mount_nfs.sh 写如下内容,然后保存

ifconfig eth0 10.221.20.123 netmask 255.255.255.0

mount -o nolock,wsize=1024,rsize=1024 10.221.20.17:/home/edu  /tmp



c) 给脚本添加权限:chmod 777 mount_nfs.sh



d) 重启开发板,进入/home,运行脚本,测试是否挂载成功


### 如何在 Ubuntu 上设置和使用开发板模拟环境 #### 使用 VirtualBox 和 QEMU 进行 Linux 驱动开发 对于希望在没有实际开发板的情况下体验 Linux 驱动开发的开发者来说,可以利用 VirtualBox 或者 QEMU 来创建一个虚拟化的开发环境。VirtualBox 是一种易于使用的开源虚拟化平台,允许用户快速搭建起运行各种操作系统的虚拟机实例[^1]。 为了进一步扩展到 ARM 架构上的开发工作,则可以选择基于 QEMU 的解决方案。QEMU 提供了强大的硬件仿真功能,特别是针对不同机器架构的支持非常出色。如果目标是在 Ubuntu挂载并测试 ARM64 版本的操作系统镜像,那么安装 `qemu-user-static` 工具包是必要的: ```bash sudo apt-get update && sudo apt-get install -y qemu-user-static ``` 此命令会更新本地软件源列表,并安装用于静态链接的 QEMU 用户模式二进制文件,使得可以直接执行交叉编译后的应用程序而不需要完整的来宾操作系统上下文[^2]。 #### 设置网络连接以便于虚拟设备通信 当涉及到通过网络接口访问虚拟环境中托管的服务时,确保正确的网络配置至关重要。无论是 VMware、VirtualBox 还是其他类型的虚拟化技术,都需要仔细调整其内部网卡参数以及宿主机侧的相关设定以实现最佳性能和兼容性[^3]。 具体而言,在处理无法 ping 通的情况时,应首先确认物理层面上没有任何障碍;接着重点检查以下几个方面: - 宿主机端防火墙策略是否阻止 ICMP 请求; - 虚拟交换机/桥接器的工作状态及其关联规则; - 开发板自身的 IP 地址分配方式(DHCP vs Static),并且验证该地址能够被正确解析为可达路由路径的一部分。 综上所述,借助上述提到的技术栈组合——即采用 VirtualBox/QEMU 结合适当版本的 Ubuntu 发行版作为基础平台,再辅之以良好的联网实践指导方针,便可以在不具备实体硬件的前提下顺利开展嵌入式 Linux 应用程序及驱动层面的研究活动。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值