我在尝试访问 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