Linux主机和VirtualBox之间实现串口通信

Linux相关开发工作中,经常会用到串口,特别是嵌入式开发领域的,串口通信一般是必不可少的。同时,它也是双机调试(如KGDB)的主要通信渠道。

这里以VirtualBox虚拟机和Linux主机之间实现虚拟串口通信。

环境:

  • HOST:Deepin 15.2 AMD_64
  • Guest OS: Ubuntu 14.04.3 AMD_64

设置虚拟串口

VirtualBox的虚拟串口是以命名管道方式实现的,虚拟串口一般对应虚拟机里的/dev/ttyS0 ,另一端就对应主机上的一个命名管道。在主机上,只需要对该命名管道进行操作即可实现对虚拟机的串口通信了。

这里需要在主机上安装socat来进行连接命名管道,实现串口通信。

sudo apt-get install socat

如下图,在该虚拟机属性里设置串口

这里写图片描述
注:在启动虚拟机后,便会产生vmserial命名管道文件。

测试虚拟串口

在主机和虚拟机上都安装minicom,minicom是用来操作串口的工具。

sudo apt-get install minicom

配置minicom

### 设置 Windows 10 Linux 虚拟机之间串口通信 #### 配置虚拟机软件环境 为了使 Windows 10 主机能够通过串口Linux 虚拟机通信,在配置 VMWare 或其他支持串口功能的虚拟化平台时,需指定好对应的物理或模拟串口设备。当创建或编辑虚拟机硬件设置时,应添加一个新的串口设备,并将其指向实际存在的 COM 端口或者文件描述符。 对于 VMware Workstation Pro 用户来说,可以在虚拟机设置界面找到“Add…”按钮来增加新的硬件组件;而对于 VirtualBox,则是在虚拟机属性下的“Serial Ports”选项卡里完成相应操作[^1]。 #### 映射主机到客户操作系统间的端口映射关系 一旦完成了上述步骤之后,便可以确认宿主机器上的某个特定 COM 口被分配给了该虚拟实例内的 /dev/ttySx 设备节点(x=0,1,...),这取决于具体安装过程中所做的设定。通常情况下,默认的第一个可用串行接口会关联至 `/dev/ttyS0` ,不过确切位置可能因发行版差异而有所不同,因此建议利用 `dmesg | grep tty` 命令查看启动日志以获取更精确的信息[^2]. #### 测试连接状态及调试工具推荐 确保双方都已正确加载驱动程序的前提下,可借助诸如 minicom 这样的开源终端仿真器来进行初步的功能验证工作。Minicom 是一款广泛应用于 Unix/Linux 平台上的全屏菜单驱动型通讯应用程序,它允许用户发送 AT 指令集并与远程站点交互对话。除此之外,如果开发环境中涉及到图形界面编程部分(比如 Qt 应用),那么同样可以通过调用其内置 API 实现更加复杂的应用场景构建. ```bash sudo apt-get install minicom minicom -s #进入设置模式调整参数后保存退出即可开始聊天啦~ ``` #### 编程层面注意事项 考虑到不同语言框架间可能存在兼容性问题,所以在编写跨平台代码之前最好先查阅官方文档了解清楚各自特性再做决定。例如 Python 的 pyserial 扩展库就提供了非常简便易懂的方法用于处理异步 I/O 请求;而在 C++ 方面则有 Boost.Asio 提供了更高层次抽象的同时还兼顾性能优化方面的需求[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值