
怎么切换到linux串口调试控制台
利用终端作为Linux控制可以免去额外的键盘,显和显示器,同时可将Linux主机作为一个任途的嵌入式黑匣。
那么LINUX控制台怎么定向到串口终端?下面跟着学习啦小编一起来了解一下吧。
LINUX控制台怎么定向到串口终端 目的: 台机已经装好Linux,显示器有问题,平时一般都SSH控制,当Linux网络挂的时候,想通过串口来管理。
硬件:台机自带两个串口(上面的是COM1)[under Windows] or ttyS0[under Linux)),笔记本T61p没有串口,买了个USB转串口(具体见下图)。
同时需要串口交叉线一根(NULL modem Cable),母对母(公的是针),都是凹口那种。
目标机器:安装的CentOS 5.2 Linux 内核2.6.18-92.1.22.el5和2.6.18-92.1.22.el5xen 客户端: Windows XP SP3 IBM OEM. 安装USB转串口驱动。
需要把输出定向到串口,一般有下面几处: BIOS中的设置 GRUB设置 \\\/etc\\\/inittab 设置 \\\/etc\\\/securetty 设置 BIOS中的设置 BIOS设置的作用我没尝试过,如果是可以连BIOS设置都可以定向到串口,那个强大了。
也不知道如何去掉机器需要连键盘的限制。
没拿出显示器所以没看我台机的BIOS,不过这个功能一般只有服务器级别的机器有。
【注1】台机一般没有串口重定向功能。
GRUB设置 这里的配置是为了把grub菜单定向到串口,这样你就可以在串口操作grub,选择启动项,使用single mode等等。
同时也要给kernel参数加上console选项。
[root@CentOS5 ~]# cat \\\/boot\\\/grub\\\/menu.lst # 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,0) # kernel \\\/vmlinuz-version ro root=\\\/dev\\\/vg00\\\/lv_root # initrd \\\/initrd-version.img #boot=\\\/dev\\\/hdb1 serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console default=2 timeout=20 #splashimage=(hd0,0)\\\/grub\\\/splash.xpm.gz =>这些在console下会工作不正常,注释掉。
#hiddenmenu title CentOS (2.6.18-92.1.22.el5) root (hd0,0) kernel \\\/vmlinuz-2.6.18-92.1.22.el5 ro root=\\\/dev\\\/vg00\\\/lv_root rhgb quiet initrd \\\/initrd-2.6.18-92.1.22.el5.img title CentOS Serial[ttyS0] - Console (2.6.18-92.1.22.el5) root (hd0,0) kernel \\\/vmlinuz-2.6.18-92.1.22.el5 ro root=\\\/dev\\\/vg00\\\/lv_root console=ttyS0,9600 console=tty0 initrd \\\/initrd-2.6.18-92.1.22.el5.img title CentOS Console - serial[ttyS0] (2.6.18-92.1.22.el5) [get more output in serial console] root (hd0,0) kernel \\\/vmlinuz-2.6.18-92.1.22.el5 ro root=\\\/dev\\\/vg00\\\/lv_root console=tty0 console=ttyS0,9600 initrd \\\/initrd-2.6.18-92.1.22.el5.img title CentOS Xen (2.6.18-92.1.2
请问如何将linux内核的调试串口设置成用USB转换的串口输出
串口简介串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。
常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。
它的全名是”数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”该标准规定采用一个 25 个脚的 DB25 连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。
Linux 操作系统从一开始就对串行口提供了很好的支持,本文简单介绍以下linux下串口调试方法以及如何用shell编程读取串口数据。
串口位置信息在Linux下,串口的名称一般都为\\\/dev\\\/tty* ,接上串口线之后,我们可以使用:dmesg | grep tty*来查找对应的串口,这里使用的是ttyUSB0和ttyUSB1来做测试。
串口调试工具Linux下提供了一个小巧的串口调试工具,叫做Minicom,可以直接通过sudo apt-get install minicom来进行安装。
安装之后界面如下:按crtl_A Z可以进行参数设置,包括波特率,校验方式,流控状态等。
软件可以通过-D指令直接打开对应串口:sudo minicom -D \\\/tty0串口与Shell编程在这之前先介绍一下stty,stty(set tty)命令用于检查和修改当前注册的终端的通信参数。
stty -a 查看当前注册端口的设置情况:stty -ixon将流控制设置为OFF,而命令stty ixon则将流控其置为ON。
在stty命令中可以同时设置多个选项:stty ixon 1200设置波特率为1200 并且设置流控为on具体更多的参数设置可以使用man指令查看。
下面说下如何通过shell来实现数据的读取,这里主要是使用的cat指令:cat \\\/dev\\\/ttyUSB0但在如果执行上面命令,程序会一直停止在读取的界面,如果我们的要求是想读取一段一段的数据,即分批次读取一定之间内的数据,保存并处理,那应该怎么办呢
我们就需要先用stty将模式设置成raw 并且设置最大连接时间:stty -F \\\/dev\\\/ttyUSB0 raw speed 9600 min 0 time 10然后我们可以把每次读取到的数据存储到一个临时文件中,然后对其进行处理:cat \\\/dev\\\/ttyUSB0 >> “tmpFile”完成的代码如下:stty -F \\\/dev\\\/ttyUSB0 raw speed 9600 min 0 time 10while [ 1 -eq 1 ]do cat \\\/dev\\\/ttyUSB0 >> tmpFile do somethingdone
如何设置串口1作为linux调试信息输出端口
需要修改内核配置单,在Linux移植教程中的附录5中贴出来的配置单中,在Kernel hacking里面有个S3C Uart的配置,改为从0改为1或2;在System Type里面有个S3C UART的配置,也从0改为1或2; 同时修改u-boot的启动参数,bootargs中的console=ttySAC
(
从0改为1或2)。



