环境:red hat enterprise Linux 5 (虚拟机下)、windows xp 、2410开发板
前几天在windows下烧好了bootloader和Linux内核到2410开发板上,正准备做个小实验。不想用windows下的超级终端。就在Linux下配置了网络和minicom(和windows下超级终端差不多),配置的没问题,可是就是不显示开发板启动信息。但是当时在windows下使用时却能正常显示。
最终弄了半天好在是解决了。主要问题还是虚拟机的问题,如果是实际的Linux应该就没问题了。因为red hat enterprise Linux 5 默认的内核是带xen的内核,而因为
Xen会缺省将串口1 ttyS0看作是虚拟控制台(占用了com1端口,而minicom配置的时候是使用com1通信的,这也就是不能显示信息的原因)
,从而其他串口设备无法正常工作。
解决方法: 1、安装不带XEN支持的内核,串口使用恢复正常。 2、更改grub.conf 文件(/boot/grub)
附上一张成功后的图片 (下面那张是windows下的对比图)
下面这部分原文:http://zhidao.baidu.com/question/214800992.html
先确认/dev/ttyS0(既串口com)是否被识别,如果被xen占用,需要修改启动参数,重启系统。
然后配置serial port参数,设置完成后即可通过串口通信。
步骤:
第一步:确认/dev/ttyS0(既串口com)被识别:
# dmesg |grep ttyS0
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0c: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
以上输出说明串口被识别。
# dmesg|grep ttyS0
Xen virtual console successfully installed as ttyS0
以上输出则说明串口被xen服务占用,我们需要修改启动参数,指定xen服务使用别的console。
安装redhat系统时,如果安装了虚拟机(Xen-enabled host。Xen is a virtual machine monitor (VMM) for x86-compatible computers. Xen can securely execute multiple virtual machines, each running its own OS, on a single physical system with close-to-native performance. ),则xen可能会占用/dev/ttyS0,要想使用串口,我们需要修改启动设置,指定xen使用别的console(或是不使用任何console,我倾向于这种选择)。
修改启动设置,指定xen使用的console的方法如下:
a)确定系统版本,以便找到需要修改的启动项:
# uname -r
Linux gic-ftp-lin-001.genotec.ch 2.6.18-8.el5xen
从上面的输出,我们可以看出,现在系统版本是2.6.18-8。
b)找到相应的启动配置(对应版本2.6.18-8的那项配置),对呀安装了grub的redhat,在/boot/grub/menu.lst中会有如下的配置项:
title Red Hat Enterprise Linux Server (2.6.18-8.el5xen)
root (hd0,0)
kernel /boot/xen.gz-2.6.18-8.el5
module /boot/vmlinuz-2.6.18-8.el5xen ro root=LABEL=/
module /boot/initrd-2.6.18-8.el5xen.img
c)添加“xencons”参数。注意,要紧跟在“root=LABEL=/"后面,如下:
title Red Hat Enterprise Linux Server (2.6.18-8.el5xen)
root (hd0,0)
kernel /boot/xen.gz-2.6.18-8.el5
module /boot/vmlinuz-2.6.18-8.el5xen ro root=LABEL=/ xencons=off
module /boot/initrd-2.6.18-8.el5xen.img
说明:
在这里,我设置“xencons=off”,既xen不使用任何console,可选的“xencons”参数有:
xencons=off #disable console at all
xencons=ttyX #attach console to /dev/ttyX
xencons=ttySX #attach console to /dev/ttySX
xencons=xvcX #attach console to /dev/xvcX
现在,/dev/ttyS0是可用的了,我们配置minicom后即可使用串口。