ubuntu上virtualbox主机和客户机共享物理串口

本人电脑上安装的时ubuntu22.04系统,使用virtualbox的虚拟机里面安装了一个Win10。

但由于工作关系,某些Win10下的工具需要使用主机上的物理串口。

这时有两个办法:

1、在vbox里直接把物理串口分配给Win10,设置如下图所示

这里的路径/地址添加的是串口的设备对应的设备路径

只要这样设置以后,Win就能直接使用主机的物理串口。

但也有问题,就是Win会独占串口,导致ubuntu反而不能使用串口了。于是就有了第二种方法。

2、方法二是通过软件的方式,把物理串口的数据转发给Win10。(这种方法我在Ubuntu22.04上没有测试成功,这里就记录以下)

1)首先,vbox的串口设置改为管道的方式,管道文件为/tmp/vbox-serial。如下图所示:

tips:使用/tmp/目录是由于该目录是一个存在于内存中的,读写速度快。

2)设置好vbox以后,在ubuntu打开终端,使用socat工具把物理串口的数据转发到管道文件中。

socat unix:/tmp/vbox-serial /dev/ttyUSB0
注意,socat需要一直运行,不能关闭终端。如果没有socat工具的话可以自己用apt-get安装。

3)启动虚拟机Win10,在Win10里面就可以直接使用COM1了。此时,就好像时直接接上了物理串口一样。

这样,当Win10不需要使用串口的时候,退出socat就可以了,相当的方便。

整个数据流是这样的:

物理串口--ubuntu /dev/ttyUSB0--socat--/tmp/vbox-serial--Win10 COM1

转自: https://blog.csdn.net/ty3219/article/details/50151589

 

posted @ 2023-07-23 13:56  pipci  阅读(360)  评论(0编辑  收藏  举报