Linux 通过虚拟串口从主机连接到 VirtualBox Guest

Lap*_*sio 2 linux virtualbox serial-port virtual-machine

我需要在没有网络支持的情况下从来宾 VM 检索配置文件。最简单的方法可能是使用串行端口。据我所知,我需要创建一种串行端口“循环”,以便我将使用例如连接。minicom 可以说 /dev/vttyS0,我会将 /dev/vttyS1 分配给 VirtualBox 来宾。

来宾使用的波特率为 115200。如何创建这样的一对设备?

我试过 socat:

socat -d -d pty,raw,echo=0 pty,raw,echo=0
Run Code Online (Sandbox Code Playgroud)

然而,VirtualBox 似乎并没有将其理解为正确的串行设备抛出错误

Ioctl failed for serial host device /dev/pts/10 (VERR_INVALID_PARAMETER)
Device will not work properly

ErrorID DrvHostSerialFail
Severity Warning
Run Code Online (Sandbox Code Playgroud)

小智 7


首先在主机操作系统中设置串行控制台设置。
在虚拟机设置中,
串行端口 --> 端口 1
端口号 COM1
端口模式 - 主机管道
连接到现有管道
/袜子- 未检查 路径/地址:/tmp/vbox
现在,

串行端口设置 上设置 Minicom sudo minicom -s -c
串口设备:unix#/tmp/vbox
退出


在来宾中启用串行控制台
sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX="console=ttyS0,115200n8 console=tty0 ignore_loglevel"
sudo update-grub
现在在控制台上启用 getty ttyS0
For Upstart Sytem
1) 创建一个名为 /etc/init/ 的文件ttyS0.conf 包含以下内容:

# ttyS0 - 盖蒂
#
# 该服务从系统所在的点开始在 ttyS0 上维护一个 getty
# 开始直到它再次关闭。

启动停止 rc RUNLEVEL=[12345]
在运行级别停止 [!12345]

重生执行 /sbin/getty -L 115200 ttyS0 vt102

2)请新贵启动getty

须藤启动 ttyS0


对于 Systemd 系统

# sudo systemctl enable serial-getty@ttyS0.service
# sudo systemctl start serial-getty@ttyS0.service
# sudo systemctl daemon-reload


现在重新启动您的来宾操作系统,您将通过 minicom 在主机操作系统上获得串行控制台