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

若HOST上没有/etc/minicom/minirc.dfl文件,则运行下面指令生成该配置文件。若已存在,则保持内容与下面相同即可。

echo "pu port unix#/home/magc/workspace/vmserial" > /etc/minicom/minirc.dfl

这样,就将host上的minicom指向了虚拟串口的命名管道文件了。

 测试一:从GusetOS到Host发送信息

在GuestOS端执行 :

cat /dev/ttyS0

这样可使主机端的串口处于输入状态。
在Host端执行 :

minicom

打开minicom界面后, 输入内容,同时,就可以看到在GuestOS里看到相应内容输出。

如下图示:

测试二:从Host到GuestOS发送信息

在GuestOS里运行 :

magc@magc-VirtualBox:~$ su
密码: 
root@magc-VirtualBox:/home/magc# echo "from guest" > /dev/ttyS0
root@magc-VirtualBox:/home/magc# echo "haha from vm" > /dev/ttyS0

然后,在HOST端minicom里就可以看到相应的输出了,如下图示:

这里写图片描述

通过以上双向测试,可以看出虚拟串口可以投入使用了。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值