我在一台装有RedHat Enterprise Linux 5(2.6.18-1.EL5XEN)的PC机上安装redhat自带的minicom-2.1,设置好参数,然后尝试在连接串口,但打开arm板的电源后,minicom却无任何输出!奇怪的是,在WinXP下用超级终端却是正常的!
原来,rhel5系统,默认的内核是带xen的内核,而因为Xen会缺省将串口1 ttyS0看作是虚拟控制台,从而其他串口设备无法正常工作。
解决方法:
1、安装不带XEN支持的内核,串口使用恢复正常。
2、按以下方法更改grub.conf 文件(/boot/grub):
# 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-168.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就可以正常看到arm板上的输出结果了。
另外,在遇到串口问题的时候,我们还可以用下面的命令来检查一下串口的工作参数:
setserial –a –g /dev/ttyS*
TAG redhat minicom 串口
linux的启动配置文件
GRUB启动时会在 /boot/grub 中寻找一个名字为grub.conf的设置文件,如果找不到此设置文件则不进入菜单模式而直接进入命令行模式。
grub.conf是一个纯文字文件,您可以用任何一个文字编辑器来打开它。每一行代表一个设置命令,如果一行的第一个字符为井号#,则这一行为注释,您可以简单地用增加或减少注释行来改变设置。
编辑grub.conf时,一般会有以下几行:
timeout second
设置在second秒之后引导默认的操作系统。
Thiz Linux 默认是timeout 10,也就是说10秒之内如果没有其他命令就启动系统。如果设成 -1,则 GRUB 会一直等待直到用户选择一个选项为止。
default num
默认启动第 num +1行选项,也就说default=0,则默认启动菜单第1行的操作系统,default=1,则启动第2行的系统,如此类推。
splash pathname/filename
指出开机画面的文件所存放的路径和文件名,如 splash /boot/logo/800x600x8.img 是指用在/boot/logo路径下的800×600像素的文件作为开机画面。
title OSname title
后面的字符就是在菜单项上所看见的选项,可以写上操作系统的名字和描述,如用title BluePoint Linux, Single Mode 代表这一选项的话,是引导Thiz Linux的单用户模式。
下面结合两个系统引导描述来解释几个引导选项的意义:
title Thiz Server, Default Mode
root (hd0,1)
kernel /boot/vmlinuz vga=auto root=/dev/hda2
hd0是指第一个硬盘(主硬盘),(hd0,1)是指第一个硬盘的第二个分区。kernel /boot/vmlinuz是指出Linux内核的路径在/boot/vmlinuz中。vga=auto是设置显示模式,root=/dev/hda2 是指把第一个硬盘的第二个分区作为根挂载点。
title Microsoft Windows
root (hd1,0)
chainloader (hd1,0)+1
root (hd1,0)是指第二个硬盘(从硬盘)上的第一个分区。
chainloader (hd1,0)+1 是指装入一个分区的数据然后把引导权交给它。
虚拟机下在minicom下启动linux
1)打开Vmware workstation ,单击菜单栏上的VM下的setting,进入virtual machine setting对话框
2)单击add,添加serial port,依此下一步,直到完成为止。
3)连接好开发板,打开linux虚拟机,进入终端输入minicom –s,进入minicom的设置模式。
1》选择串口:在选择菜单中的“Serial port setup”,按回车,再按“A”以设置“Serial Device”(如果使用串口1,则输入/dev/ttyS0,如果使用串口2,则输入/dev/ttyS1,注意其中的S是大写),按回车返回。
2》设置波特率:按“E”键进入设置“bps/par/Bits”(波特率)界面,如果按“I”以设置波特率为115200,按回车返回。
3》数据流控制:按“F”键设置“Hardware Flow Control”为“NO”.
其它为缺省设置,然后按回车到串口设置主菜单,选择“Save setup as df1”,按回车键保存刚才的设置(保存到“/etc/vminirc.df1”),再选择“Exit”退出设置模式,回到minicom操作模式。此时可像Windows下的超级终端一样使用了。
4)这时上电开发板,就会在minicom中看到linux的启动信息。
注:minicom中有用的功能
命令帮助—“Ctrl+A”后按“Z”
清屏 --“Ctrl+A”后按“C”
设置 --“Ctrl+A”后按“O”
发送文件--“Ctrl+A”后按“S”
退出 --“Ctrl+A”后按“Q”下载本文