Linux下使用 Virtualbox 虚拟串口

环境是Host和Guest都为Linux。

按照官方文档,Raw File模式只允许Guest端写入,Host端是只读的,TCP/IP模式配置起来较为麻烦,所以端口模式我们选择“主机管道”。在Linux环境下,主机管道模式默认创建的是一个Unix Socket文件,操作起来不方便,于是我们需要借助一款工具socat(这里真心怀疑是Oracle故意给Linux用户添堵),它可以将两个地址关联起来,对其中一个的读写操作会传送给另一个地址。

sudo apt-get install socat

Host端执行以下操作之一:

# 1. 绑定到pipe
mkfifo /tmp/com1.pipe
socat UNIX-LISTEN:/tmp/socket0 PIPE:/tmp/com1.pipe

# 2. 绑定到STDIO,不过只支持ASCII字符
socat UNIX-LISTEN:/tmp/socket0 STDIO

VirtualBox按照以下配置:

Linux下使用 Virtualbox 虚拟串口_第1张图片

OK,可以打开虚拟机了,在Guest中访问/dev/ttyS0,在Host中访问/tmp/com.pipe1便可以进行通信了。如果是STDIO模式的话,直接在shell窗口输入可以进行数据的收发。

你可能感兴趣的:(linux,linux,运维,服务器)