Linux串口调试配置_GRUB串口通信_串口登陆

Linux系统编程内核编程 专栏收录该内容
111 篇文章 1 订阅

创建时间:2010-01-26

修改:2011-09-22 (grub2)

作者:Steven Yang
E-mail:mqyoung@gmail.com

 

很多场合需要用到串口调试,本文介绍串口配置过程:

(沿用惯语,我用的机器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输出重定向到串口
    GRUB1 (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 keyto continue, 每秒钟提示一次, 共5次, 可修改menu.lst文件terminal行中的--timeout=10改变提示次数,在这一段时间内, 可以在终端的键盘, 或者连接到串口的超级终端中按任意键进入grub选择菜单.如果5秒内没有在终端和连接串口的超级终端上按任意键, 则grub的选择菜单将出现在console上, 如果希望默认情况下,grub选择菜单出现在串口上, 则可修改menu.lst将console serial修改为serial console.

 GRUB2 (Edit /etc/default/grub)

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,9600n8"

# Uncomment to disable graphical terminal (grub-pc only)
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=9600 --unit=0 --word=8 --parity=no --stop=1"

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

然后更新grub
# grub-mkconfig

# update-grub2

  • 将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信息

 


参考:

http://linux.xvx.cz/2009/08/debian-with-grub2-and-serial-connection/

  • 0
    点赞
  • 2
    评论
  • 2
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

评论2
请先登录 后发表评论~
©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏作者

defeattroy

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值