http://hi.baidu.com/lijunzzu/blog/item/2319fd51f50dad03367abe56.html
很多场合需要用到串口调试,本文介绍串口配置过程:
(沿用惯语,我用的机器ubuntu 9.10称为开发系统[Developer],需要调试的Debian称为目标系统[Target])
首先是内核支持:
一般来说,Debian、Ubuntu等发行版的官方内核都支持,如果自己编译的内核,确保如下选项打开,下面选项可能不是一个必要的集合,但是是充分的结合:
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
#or
#CONFIG_SERIAL=y
#CONFIG_SERIAL_CONSOLE=y
串口硬件测试:
把串口的发送端和接受端找一根导线短接,然后用串口调试工具,给串口发送数据,这时候要是同样能接受到发送的数据,就说明串口是好的
可以把串口线插在串口上,用上面的方法测试,如果有问题,就用万用表测就好了
说明:1 如果有多个串口一定要注意你连接的是哪一个串口;2 串口上都有标明引脚号码,引脚2和3是期中一个是读一个是写,可以把这两个接起来进行测试。
在developer上执行:
stty ispeed 115200 ospeed 115200 -F /dev/ttyS0
echo hello > /dev/ttyS0
在target上执行:
stty ispeed 115200 ospeed 115200 -F /dev/ttyS0
cat /dev/ttyS0
串口线没问题的话在target的屏幕上显示hello
Developer的minicom配置:
minicom的设置也就是接口,数据率,起始位,校验位等参数
minicom需要如下配置才能输入信息
————————————————
minicom -s
选 Serial port setup
修改 F - Hardware Flow Control 为 No
Save setup as dfl
输出重定向到串口的配置:
- 将BIOS输出重定向到串口
这一功能需要主版支持, 请参考主板用户手册 - 将GRUB输出重定向到串口(Edit /boot/grub/menu.lst)
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=5 console serial
grub引导过程中, 会将输出同时发送到终端屏幕和串口. grub引导过程中将在终端和连接到串口的超级终端上提示Press any key to continue, 每秒钟提示一次, 共5次, 可修改menu.lst文件terminal行中的--timeout=10改变提示次数, 在这一段时间内, 可以在终端的键盘, 或者连接到串口的超级终端中按任意键进入grub选择菜单. 如果5秒内没有在终端和连接串口的超级终端上按任意键, 则grub的选择菜单将出现在console上, 如果希望默认情况下, grub选择菜单出现在串口上, 则可修改menu.lst将console serial修改为serial console.
- 将kernel输出信息输出到串口(Edit /boot/grub/menu.lst)
增加kernel引导参数如下
kernel /boot/vmlinuz-2.6.32.4-xm-1.0 root=/dev/hda1 ro console=ttyS0,115200n8 console=tty0
确保/etc/securett文件中有ttyS,如果没有,增加,这样的目的是允许root在ttyS0上登陆
修改/etc/inittab文件, 增加如下内容
T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100
注意:具体参数可以参考这个文件里面的例子,另外这个文件在Ubuntu下是没有的
下面列出GRUB的启动命令
===========================================================================================================
一、菜单命令
菜单命令只能用于grub配置文件的全局配置部分,不能用在grub命令行交互界面,菜单命令在配置文件中应放在其它命令之前。
1、default //设置默认启动的菜单项
2、fallback //设置启动某菜单项失败后反回的菜单项
3、hiddenmenu //隐藏菜单界面
4、timeout //设置菜单自动启动的延时时间
5、title //开始一个菜单项
二、常规命令
常规命令可以应该于配置文件和grub命令行交互界面,可使用的常规命令有
1、bootp //通过bootp初始化网络设备
2、color //设置菜单界面的颜色
3、device //指定设备文件作为驱动器
4、dhcp //通过DHCP初始化网络设备
5、hide //隐藏某分区
6、ifconfig //手工配置网络设备
7、pager //改变内部页程序的状态
8、partnew //新建一个主分区
9、parttype //改变分区的类型
10、password 为菜单界面设置口令
11、rarp //通过RARP初始化网络设置
12、serial //设置串口设备
13、setkey //设置键盘映射
14、splashimage //设置GRUB启动时的背景图片文件
15、termainal //选择终端类型
16、tftpserver //指定TFTP服务器
17、unhide //还原某隐藏分区
三、命令行和菜单项命令
命令行和菜单项命令可应该于GRUB配置文件的菜单项设置中,也可以用在GRUB命令交互界面。
1、bolcklist //显示某文件所在分区位置(block list notation)
2、boot //启动操作系统
3、cat //显示文件内容
4、chainloader //把启动控制权软交给另外的启动引导器
5、cmp //比较两个文件
6、configfile //加载已存在的GRUB配置文件
7、debug //设置为debug模式
8、displayapm //显示APM BIOS信息
9、displaymem //显示内存配置
10、embed //嵌入Stage 1.5文件
11、find //查找包括某文件的所有设备
12、fstest //测试文件系统
13、geometry //显示某驱动器的物理信息
14、halt //停止计算机运行(软件关机)
15、help //显示GRUB的命令帮助信息
16、impsprobe //查询对称多处理器(SMP)的信息
17、initrd //加载initrd文件
18、install //安装GRUB
19、ioprobe //查询某驱动器的输入输出(I/O)端口
20、kernel //引导操作系统内核
21、lock //锁定某GRUB导菜单项,使其输入密码后才可启动
22、makeactive //激活某主分区
23、map //虚拟映射某驱动器
24、md5crypt //使用MD5加密口令
25、module //加载模块
26、modulenounzip //加载模块不进行解压
27、pause //暂停并等待按键
28、quit //退出GRUB
29、reboot //重新启动计算机
30、read //读取内存中的内容
31、root //设置GRUB的root设备
32、rootnoverify //设备GRUB的root设备但不装载文件系统
33、savedefault //保存当前的启动菜单项为默认启动
34、setup //自动安装GRUB
35、testload //从文件系统中测试读取某文件
36、testvbe //测试VESA BIOS EXTENSION
37、uppermem //强制设置主机上位内存的大小
38、vbeprobe //查询VESA BIOS EXTENSION信息