Chinaunix首页 | 论坛 | 博客
  • 博客访问: 607051
  • 博文数量: 353
  • 博客积分: 1104
  • 博客等级: 少尉
  • 技术积分: 1457
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-23 23:02
个人简介

1、刚工作时做Linux 流控;后来做安全操作系统;再后来做操作系统加固;现在做TCP 加速。唉!没离开过类Unix!!!但是水平有限。。

文章存档

2015年(80)

2013年(4)

2012年(90)

2011年(177)

2010年(1)

2009年(1)

分类: LINUX

2011-10-27 11:36:59

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

 

  • 允许从串口登陆linux

确保/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信息

 

阅读(1675) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~