VMWare可以使用命名管道在两个虚拟机之间模拟串口, 这在同一主机上的两台虚拟机之间需要通过串口进行通信时非常方便, 使用kgdb调试linux内核就是其典型的应用.
具体操作:
--> "Edit virtual machine settings"
--> "Add..."硬件设备--> 选择"Serial Port"
--> 点击 "Next" 并选择 "Output to named pipe"
--> 点击"Next"会看到4个属性:
第一个是编辑框, 输入"Named Pipe"的名称, 保持默认输入即可, 如果要修改注意保留 "\\.\pipe\" 前缀. 相互通信的两台虚拟机"Named Pipe"的名称应相同.
第二个是下拉框, 有两个选项, 相互通信的两台虚拟机一台选择"This end is the client", 另一台则选择"This end is the server.". 注意要让经常需要重启的虚拟机选择client, 不经常重启的虚拟机选择server.
第三个是下拉框, 有两个选项, 保持默认输入即可, 即都选择"The other end is a virtual machine."
第四个是勾选框, 勾上即可
--> 点击"Finish"结束.
此时在两台虚拟机上已经能够通过上述串口设备正常通信.
在linux系统上测试方法:
--> 将两台虚拟机的串口波特率都设置为115200:
stty ispeed 115200 ospeed 115200 -F /dev/ttyS0
--> 在一台虚拟机上执行:
cat /dev/ttyS0
--> 在另一台虚拟机上执行:
echo "test ok" > /dev/ttyS0;
此时上台虚拟机上的cat命令打印出"test ok"则表示串口工作正常.
以上操作在两台Ubuntu10.04上测试通过.
参考资料:
http://blog.csdn.net/jie12310/article/details/4564853
http://blog.csdn.net/ustc_dylan/article/details/4165595