解决在rhel5 串口不能使用的有关问题

解决在rhel5 串口不能使用的问题

由于需要搭建团队开发环境,我在一台装有RedHat Enterprise Linux 5(2.6.18-8.EL5XEN)的服务器上安装redhat自带的minicom-2.1.3,设置好参数,然后尝试在连接串口,但打开arm板的电源后,minicom却无任何输出!

上网查找原因,也试过uucp,都是一样没有任何输出。

更奇怪的是,同一台机器,在winXp下用超级终端却是正常得很!

百思不得其解,继续google。。。。。。

今天,终于被我找到答案了(下文摘自 http://support1.ap.dell.com/cn/zh/forum/thread.asp?fid=20&tid=106436):

原来,rhel5系统,默认的内核是带xen的内核,而因为Xen会缺省将串口1 ttyS0看作是虚拟控制台,从而其他串口设备无法正常工作。

解决方法:
    1、安装不带XEN支持的内核,串口使用恢复正常。
    2、按以下方法更改grub.conf 文件:

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE: You have a /boot partition. This means that

# all kernel and initrd paths are relative to /boot/, eg.

# root (hd0,1)

# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00

# initrd /initrd-version.img

#boot=/dev/sda

default=0
timeout=5
splashimage=(hd0,1)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-8.el5xen)
root (hd0,1)
 kernel /xen.gz-2.6.18-8.el5
 module /vmlinuz-2.6.18-8.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
 module /initrd-2.6.18-8.el5xen.img


title Red Hat Enterprise Linux Server (2.6.18-8.el5xen serial)
 root (hd0,1)
 kernel /xen.gz-2.6.18-8.el5 console=vga xencons=ttyS16 console=ttyS16
 module /vmlinuz-2.6.18-8.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet xencons=tty
 module /initrd-2.6.18-8.el5xen.img


实际上就是添加一个启动项,加几个内核参数。

修改以后,以新加的启动项来启动,一切都不是问题了,无论是minicom还是uucp都可以正常看到arm板上的输出结果了。

另外,在遇到串口问题的时候,我们还可以用下面的命令来检查一下串口的工作参数:

setserial –a –g /dev/ttyS*