如何在 VirtualBox 客户操作系统上访问串行 Ubuntu 主机串行端口

如何在 VirtualBox 客户操作系统上访问串行 Ubuntu 主机串行端口

我在尝试访问 VirtualBox 上的串行端口时遇到了困难。我的客户操作系统是 Windows XP,主机环境是 Linux Ubuntu 10.04。

串行调制解调器设备在 Ubuntu 中运行良好。我可以通过 cutecom 与它通信,或者只是向它发送简单的回显消息,如下所示:

echo "id" > /dev/ttyS2

Ubuntu 设置和配置

我已将我的用户帐户添加到以下组:dialout,并使用以下命令设置了序列号:sudo setserial /dev/ttyS2,但尝试在我的客户操作系统中访问它时仍然没有运气。

这是我在 VirtualBox 中配置串行端口使用的设置:

* Port Mode : Host Device
* Port Number : User - Defined (IRQ = 17, I/O Port = 0xEC00)
* Port/File Path : /dev/ttyS2

我尝试了所有不同的端口模式,甚至断开了连接,但仍然没有成功。我也查阅了手册,但没有任何效果。可能出了什么问题?是 VirtualBox 的问题还是我的 ubuntu 设置配置不正确?

请帮忙

谢谢

答案1

为 VirtualBox 设置串行端口并不容易,主要是因为从主机向客户机传输数据的方式有很多种。要从/向连接的设备(这里是调制解调器)传输数据,以下设置应该有效:

替代文本

当然,您必须在主机上采用适合您设备的设置(这适用/dev/ttyS2于您的情况)。

如果主机使用的 IRQ 大于 15,则必须启用 I/O APCI,如下所示:

替代文本

按照此处示例中的设置进行操作后,您的 Windows 客户机将看到 COM1 上有一个虚拟类型 16450 串行端口,使用 IRQ4 和 I/O 端口 0x3F8。数据将从主机设备传输到主机设备/dev/ttyS20

答案2

如果您正在运行 Windows 主机和 Linux 客户机 - 您将使用“COM#:”作为端口/文件路径。端口模式:主机设备。

如果您正在运行 Linux 主机和 Windows 客户机 - 您将使用“/dev/ttyS#”作为端口/文件路径。端口模式:主机设备。

其中 # 是端口号。

答案3

将用户帐户添加到以下组:dialout

除了 sudo nano /etc/apparmor.d/abstractions/lightdm

添加这两行

/run/lock/** rmw

/var/lock/** rmw

相关内容