串口方式登录Virtualbox虚拟的ubuntu机器

环境:主机 Fedora 14,

虚拟机: VirtualBox虚拟的 Ubuntu8.04

目的,在Fedora上登录Ubuntu机器的串口。

步骤:

1、在VirtualBox上为Ubuntu这台虚拟机添加一个hostpipe形式的串口,并将其绑定到/tmp/vboxS0这个文件(如图):

创建hostpipe串口

创建hostpipe串口

2,启动虚拟机

3,修改虚拟机系统的grub,加上”console=tty0 console=ttyS0,9600n8″,这是为了向串口输出,否则串口上什么也看不到。

4,在Fedora主机上将/tmp/vboxS0映射为TCP连接(如果前面的串口创建没问题,这里这个命令会阻塞等待连接,直到虚拟机关闭)

socat UNIX-CONNECT:/tmp/vboxS0 TCP-LISTEN:8888

5,在Fedora主机上telnet到step4创建的TCP连接上,此时,如果虚拟机有串口输出,就可以在这里看到输出信息了。

telnet localhost 8888

6,但是,一般ubuntu桌面版是没有设置串口登录的,所以现在在“串口”上看不到登录提示符。所以实际上在第三步时,还需要修改/etc/event.d/tty6 (也可以选别的tty号码):
将”exec /sbin/getty 38400 tty6″改为”exec /sbin/getty -L /dev/ttyS0 9600 vt100″ 就是令串口登录是得到login提示符。
至此,配置完毕,应该可以正常使用了。

7,如果需要在串口上看到grub的菜单信息,还需要在menulist里增加这些配置:

serial –unit=0 –speed=9600 –word=8 –parity=no –stop=1

terminal –timeout=10 serial console

—————————-分割线——————————

BTW,如果不是使用虚拟机,而是直接使用串口线连接物理linux主机,也可以使用上述步骤(当然,步骤4、5就不需要了)。而如果发现串口可以显示linux的输出信息,但无法响应你的输入,那么请检查下图中的设置(以windows超级终端和secureCRT为例):

secureCRT设置FlowContrl方式

secureCRT设置FlowContrl方式

windows超级终端设置FlowControl方式

windows超级终端设置FlowControl方式

原理参考这两篇文章:

RS232中RTS和CTS的作用

【已解决】secureCRT下的串口不能输入

[END]

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>