在虚拟机下测试
1、 修改文件/etc/inittab
编辑文件inittab,增加tty:2345:respawn:/sbin/agetty ttyS0 9600 vt100的内容:
# vi /etc/inittab
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
tty:2345:respawn:/sbin/agetty ttyS0 9600 vt100
“tty”为改行ID,“2345”指改行的运行级别是2、3、4、5级;“respawn”是使命令退出后再执行一次,以便其他用户能够登录;“/sbin/agetty ttyS0 9600 vt100”表示具体的命令,即通过他来执行打开串口/dev/ttyS0(COM1),后面是波特率和终端模式
2、 修改/etc/securetty文件
编辑文件/etc/securetty,增加ttyS0的内容:
该文件是允许root身份登录的tty设备列表,这些设备由/bin/login程序读取,为了使用户能以root身份通过串口登录,需要在该文件中添加“ttyS0”,说明系统认为这里的COM1是安全的;
# vi /etc/securetty
console
ttyS0
……
3、 修改/boot/grub/menu.lst文件或者修改/etc
/grub.conf文件
修改/boot/grub/menu.lst 文件,在文件的kernel 对应行上添加 “console=ttyS0,9600 console=tty0“,要令它生效需要重启系统
# vi /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/sda1
# initrd /boot/initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-164.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-164.el5 ro root=LABEL=/ rhgb quiet crashkernel=128M@16M console=ttyS0,9600 console=tty0
initrd /boot/initrd-2.6.18-164.el5.img
4.关闭两台虚拟机一台linxu,一台xp
分别在两台虚拟机上,添加串口设备,并设置。 编辑第一台虚拟机,添加一个Serial Port,选择use named pipe,然后输入管道名称: //./pipe/com_1,然后下面选择this end is the server.和the other end is an application,把Yield CPU on poll勾上就可以了。 第二台虚拟机同上,尤其管道名称要一样,下面选择this end is the client.其他一样
5.
安装设置Named Pipe TCP Proxy软件
在主机上安装设置Named Pipe TCP Proxy 打开Named Pipe TCP Proxy,选择Edit→New,然后设置好named pipe名称和端口号 pipe设置为: //./pipe/com_1(和vmare中名称一样) port设置为:2001(随机) , 其它默认。
6.测试
在xp虚拟机上用putty选择com1连接,波特率9600,连接成功,登录系统