VirtualBox虚拟机的串口通信机制有两种,一种是通过将虚拟机的串口连接到主机的串口,另外一种是将虚拟机的串口连接到主机上的一个命名管道,第一种方式到现在我还没有实践出来,目前只是对命名管道的方式实践成功。
1.启用串口
新建虚拟机后在设置中会出现串口面板,可以进行串口设置,默认是不起用的,一般端口选择使用COM1对应虚拟机的/dev/ttyS0,端口模式选择Host Pipe,表示将虚拟机的串口连接到主机的一个命名管道,创建通道表示启动虚拟机时VirtualBox会在HostOS中对应地创建一个命名管道,并使它与虚拟机的对应串口相连。端口路径在选择Host Pipe时表示命名管道的路径,在Windows系统上,它是\\.\pipe\xxx的形式,在Linux可以设任何路径,比如我们将它设为/tmp/vbox。注意,如果端口路径对应的命名管道不能创建的话,虚拟机启动会失败;端口路径的命名管道不能重复创建。
你也可以使用命令行启用并创建一个虚拟机到主机命名管道的连接,下面的命令就将虚拟机Ubuntu 8.10 Dev OS的COM1串口和主机的/tmp/vbox命名管道连接起来:
VBoxManage setextradata "Ubuntu8.10DevOS" "VBoxInternal/Devices/serial/0/Config/IRQ" 4
VBoxManage setextradata "Ubuntu8.10DevOS" "VBoxInternal/Devices/serial/0/Config/IOBase" 0x3f8
VBoxManage setextradata "Ubuntu8.10DevOS" "VBoxInterna