‘壹’ 如何配置使用串口设备登录linux终端Linux Serial Console HOWTO
/etc/inittab 设置
系统系统后,需要在串口上监听请求,所以要有个类似服务器的程序(agetty, mgetty etc)。
/etc/inittab中添加
s0:2345:respawn:/sbin/agetty -L -f /etc/issue.serial 9600 ttyS0 vt100
#s1:2345:respawn:/sbin/agetty -L -f /etc/issue.serial 9600 ttyS1 vt100
#S0:2345:respawn:/sbin/mgetty -r -x 9 ttyS0 ==> mgetty 用来调试比较好,log也丰富。
What is a getty?
A getty is is a program that opens a tty port, prompts for a login name, and runs the /bin/login command. It is normally invoked by init.
所以其他程序就不能再来占用ttyS0了,串口是独占模式的吧。
‘贰’ 怎样在linux打开串口终端
串口连接,硬件
软件嘛,好像 minicom 就是 吧
‘叁’ Linux串口连接ttyS0、ttyS1是什么意思
这是通信串口名称。
在Linux环境下,串口名从ttyS0开始依次是ttyS1、ttyS2等。在本程序中,使用ttyS0作为通信串口。在打开ttyS0的时候,选项 O_NOCTTY 表示不能把本串口当成控制终端,否则用户的键盘输入信息将影响程序的执行; O_NDELAY表示打开串口的时候,程序并不关心另一端 的串口是否在使用中。在Linux中,打开串口设备和打开普通文件一样,使用的是open()系统调用。比如我么打开串口设备1也就是COM1,只需要:
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY );
打开的串口设备有很多设置选项。本文中使用int setup_com(int fd)设置。在系统头文件中 定义了终端控制结构struct termios,tcgetattr()和tcsetattr()两个系统函数获得和设置这些属性。结构 struct termios中的域描述的主要属性包括:
c_cflag : 控制选项
c_lflag : 线选项
c_iflag : 输入选项
c_oflag :输出选项
c_cc :控制字符
c_ispeed :输入数据波特率
c_ospeed :输出数据波特率
如果要设置某个选项,那么就使用"|=“运算,如果关闭某个选项就使用”&=“和”~"运算。本文使用的各个选项的意义定义如下:
c_cflag:
CLOCAL 本地模式,不改变端口的所有者
CREAD 表示使能数据接收器
PARENB 表示偶校验
PARODD 表示奇校验
CSTOPB 使用两个停止位
CSIZE 对数据的bit使用掩码
CS8 数据宽度是8bit
c_lflag:
ICANON 使能规范输入,否则使用原始数据(本文使用)
ECHO 回送(echo)输入数据
ECHOE 回送擦除字符
ISIG 使能SIGINTR,SIGSUSP, SIGDSUSP和 SIGQUIT 信号
c_iflag:
IXON 使能输出软件控制
IXOFF 使能输入软件控制
IXANY 允许任何字符再次开启数据流
INLCR 把字符NL(0A)映射到CR(0D)
IGNCR 忽略字符CR(0D)
ICRNL 把CR(0D)映射成字符NR(0A)
c_oflag: OPOST 输出后处理,如果不设置表示原始数据(本文使用原始数据)
c_cc[VMIN]: 最少可读数据
c_cc[VTIME]: 等待数据时间(10秒的倍数)
‘肆’ 如何在linux下使用超级终端
Linux下的Minicom的功能与Windows下的超级终端功能相似,适于在linux通过超级终端对嵌入式设备的管理以及对嵌入操作系统的升级,现写出Minicom的使用手册配置minicom和使用minicom 1. 启动minicom 以root权限登录系统使用命令 root –s 则minicom启动, 屏幕出现如下的界面 4. 选择Save as df1。选择Save as df1选项将修改后的配置信息进行保存为默认的配置选项。 5. Exit from minicom 。选择Exit from minicom 选项从配置菜单返回到命令行。 6.重新启动Minicom。使用minicom 启动minicom 在linux下通过串口连接路由器,实现超级终端的功能。
‘伍’ linux 有没有超级终端
有默认的,以下2种方法可以进入超级终端:
图形界面
1、如果有安装图型界面,直接右键菜单就有了。
2、按键盘“Ctrl+Alt+T”或者“Ctrl+Alt+F1-F6“即可打开终端窗口。
命令行:
1.下载安装minicom
sudo apt-get install minicom
2.运行minicom
运行“sudo minicom -s”命令进入配置界面(或者直接运行“sudominicom”, 然后同时按下“回车+A”,再按Z,最后按O,同样进入配置界面)
+----[配置]--------+
| 文件名和路径
| 文件传输协议
| 串口设置
| 调制解调器和拨号
| 屏幕和键盘
| 设置保存为dfl
| 设置保存为..
| 退出
| 退出Minicom
+--------------------+
3.配置串口
选择 “串口设置”,进入串口配置界面
+-----------------------------------------------------------------------+
A - 串口设备: /dev/ttyS1
B - 锁文件的位置: /var/lock
C - 调入程序:
D - 调出程序:
E - Bps/Par/Bits: 115200 8N1
F - 硬件数据流控制:否
G - 软件数据流控制 : 否
希望修改哪个设置?
+-----------------------------------------------------------------------+
选择串口设备: 在Linux下,COM0端口为 /dev/ttyS0,COM1端口为/dev/ttyS1, 我的串口线连在COM1端口,因此选择/dev/ttyS1
设置波特率和帧格式 115200 8N1(115200 8N1:115200为波特率, 8表示帧数据长度为8,N表示无奇偶校验位,1表示1位停止位)
因为我的开发板上的串口没有使用硬件流控制,设置硬件流控制为“否”。
设置完毕后,按回车键返回主配置界面
4.保存配置
有两个保存选项:“设置保存为dfl” 和 “ 设置保存为.. ”
设置保存为dfl:将配置保存为默认配置,下次运行 ”sominicom“命令时,自动启用该配置
设置保存为.. :保存配置文件,下次运行 “sudo minicom 配置名” 时启用配置文件。比如我将配置文件保存为myconf,那么运行"sudo minicom myconf"将启用配置.
5.退出
有两个退出选项:退出,退出Minico
退出:退出配置界面,并启用当前配置
退出Minico: 退出软件
6.设置启动时退出minicom
设备启动后,同时按下“回车键+A”,然后在按下X便可退出minicom。
7.启用配置文件
运行"sudo minicom 配置名"启用配置。如果配置名为空,则启用默认配置。
下次在输入minicon 即可直接进入。
命令minicom是进入串口超级终端画面,而minicom -s为配置minicom。
说明/dev/ttyS0 对应为串口0 为你连接开发板的端口。
注意:非正常关闭minicom,会在/var/lock下创建几个文件LCK*,这几个文件阻止了minicom的运行,将它们删除后即可恢复
------------------------
使用
Minicom是基于窗口的。要弹出所需功能的窗口,可按下Ctrl-A(以下
使用C-A来表示Ctrl-A),然后再按各功能键(a-z或A-Z)。先按C-A,再
按'z',将出现一个帮助窗口,提供了所有命令的简述。配置minicom
(-s选项,或者C-A、O)时,可以改变这个转义键,不过现在我们还
是用Ctrl-A吧。
以下键在所有菜单中都可用:
UParrow-up或'k'
DOWNarrow-down或'j'
LEFTarrow-left或'h'
RIGHTarrow-right或'l'
CHOOSEEnter
CANCELESCape.
屏幕分为两部分:上部24行为终端模拟器的屏幕。ANSI或VT100转义
序列在此窗口中被解释。若底部还剩有一行,那么状态行就放在这儿;
否则,每次按C-A时状态行出现。在那些有专门状态行的终端上将会
使用这一行,如果termcap信息完整且加了-k标志的话。
下面按字母顺序列出可用的命令:
C-A两次按下C-A将发送一个C-A命令到远程系统。如果你把"转义字符"
换成了C-A以外的什么字符,则对该字符的工作方式也类似。
A切换"AddLinefeed"为on/off。若为on,则每上回车键在屏幕上
显示之前,都要加上一个linefeed。
B为你提供一个回卷(scrollback)的缓冲区。可以按u上卷,按d下卷,
按b上翻一页,按f下翻一页。也可用箭头键和翻页键。可用s或S键
(大小写敏感)在缓冲区中查找文字串,按N键查找该串的下一次出现。
按c进入引用模式,出现文字光标,你就可以按Enter键指定起始行。
然后回卷模式将会结束,带有前缀'>'的内容将被发送。
C清屏。
D拨一个号,或转向拨号目录。
E切换本地回显为on/off(若你的minicom版本支持)。
F将break信号送modem。
G运行脚本(Go)。运行一个登录脚本。
H挂断。
I切换光标键在普通和应用模式间发送的转义序列的类型(另参下面
关于状态行的注释)。
J跳至shell。返回时,整个屏幕将被刷新(redrawn)。
K清屏,运行kermit,返回时刷新屏幕。
L文件捕获开关。打开时,所有到屏幕的输出也将被捕获到文件中。
M发送modem初始化串。若你online,且DCD线设为on,则modem被初始化
前将要求你进行确认。
O配置minicom。转到配置菜单。
P通信参数。允许你改变bps速率,奇偶校验和位数。
Q不复位modem就退出minicom。如果改变了macros,而且未存盘,
会提供你一个save的机会。
R接收文件。从各种协议(外部)中进行选择。若filename选择窗口和下
载目录提示可用,会出现一个要求选择下载目录的窗口。否则将使用
FilenamesandPaths菜单中定义的下载目录。
S发送文件。选择你在接收命令中使用的协议。如果你未使文件名选择
窗口可用(在FileTransferProtocols菜单中设置),你将只能在一
个对话框窗口中写文件名。若将其设为可用,将弹出一个窗口,显示
你的上传目录中的文件名。可用空格键为文件名加上或取消标记,用
光标键或j/k键上下移动光标。被选的文件名将高亮显示。目录名在
方括号中显示,两次按下空格键可以在目录树中上下移动。最后,按
Enter发送文件,或按ESC键退出。
T选择终端模拟:ANSI(彩色)或VT100。此处还可改变退格键,打开或
关闭状态行。
W切换linewrap为on/off。
X退出minicom,复位modem。如果改变了macros,而且未存盘,会提供
你一个save的机会。
Z弹出help屏幕。
‘陆’ linux终端怎么打开minicom
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的启动信息。
‘柒’ 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.22.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-92.1.22.el5
mole /vmlinuz-2.6.18-92.1.22.el5xen ro root=/dev/vg00/lv_root rhgb quiet xencons=off
mole /initrd-2.6.18-92.1.22.el5xen.img
title CentOS Xen Serial[ttyS0] - Console (2.6.18-92.1.22.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-92.1.22.el5
mole /vmlinuz-2.6.18-92.1.22.el5xen ro root=/dev/vg00/lv_root xencons=off console=ttyS0,9600 console=tty0
mole /initrd-2.6.18-92.1.22.el5xen.img
title CentOS Xen Console - serial[ttyS0] (2.6.18-92.1.22.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-92.1.22.el5
mole /vmlinuz-2.6.18-92.1.22.el5xen ro root=/dev/vg00/lv_root xencons=off console=tty0 console=ttyS0,9600
mole /initrd-2.6.18-92.1.22.el5xen.img
title Other
rootnoverify (hd0,0)
chainloader +1
后面的console有顺序关系,详见下文【注2】,我常用串口所以console=tty0 console=ttyS0,9600这个顺序的输出信息比较多。
因为我的机器有xen的内核,xen默认情况下会把串口做为xencons,所以这里设置xencons=off.
When multiple consoles are listed output is sent to all consoles and input is taken from the last listed console. The last console is the one Linux uses as the /dev/consoledevice.
/etc/inittab 设置
系统系统后,需要在串口上监听请求,所以要有个类似服务器的程序(agetty, mgetty etc)。
/etc/inittab中添加
s0:2345:respawn:/sbin/agetty -L -f /etc/issue.serial 9600 ttyS0 vt100
#s1:2345:respawn:/sbin/agetty -L -f /etc/issue.serial 9600 ttyS1 vt100
#S0:2345:respawn:/sbin/mgetty -r -x 9 ttyS0 ==> mgetty 用来调试比较好,log也丰富。
What is a getty?
A getty is is a program that opens a tty port, prompts for a login name, and runs the /bin/login command. It is normally invoked by init.
所以其他程序就不能再来占用ttyS0了,串口是独占模式的吧。
vt100:
vt100 is the terminal emulation. You can use others, but VT100 is the most common or "standard". Another widely used termial type is VT102.
OK都可以了,可以重启server了。这里如果想测试下串口线,推荐先在Linux启动下mgetty,因为他的debug信息和log比较丰富,适合排错和测试。
#mgetty –r –x 9 ttyS0
Log在/var/log/mgetty*中。
/etc/securetty设置
因为一般我们都是使用root登陆串口来维护,所以需要设置root可以在COM1和COM2登陆。
在/etc/securetty中添加:
ttyS0
ttyS1
Windows客户端连接可以用超级终端或者Putty。
注意启动server的时候,putty就应该去连接串口了,这样才可以看到所有信息。
本来正常情况下,接下去kernel的boot信息应该也会打到串口的。但是没有,确定是Xen内核的关系。
系统启动起来后,过了init,agetty就起来了,这个时候就可以通过串口登陆了。(在/etc/securetty中需要添加ttyS0)
看过“ LINUX控制台怎么定向到串口终端 ”的人还看了:
‘捌’ linux 串口驱动程序术语介绍
在Linux中经常碰到“控制台”、“终端”、“console”、“tty”、“terminal”等术语,也经常使用到这些设备文件:ldevconsole、/dev/ttySACO、/dev/tty0等。要理解这些术语,需要从以前的计算机说起。
最初的计算机价格昂贵,一台计算机通常连接上多套键盘和显示器供多人使用。在以前专门有这种可以连上一台电脑的设备,它只有显示器和键盘,外加简单的处理电路,本身不具有处理计算机信息的能力。用户通过它连接到计算机上(通常是通过串口),然后登录系统,并对计算机进行操作。这样一台只有输入、显示部件(比如键盘和显示器)并能够连接到计算机的设备就叫做终端。tty 是Teletype 的缩写,Teletype是最早出现的一种终端设备,很像电传打字机。在Linux中,就用tty来表示“终端”,比如内核文件tty_io.c、tty _ioctl.c等都是与“终端”相关的驱动程序;设备文件/dev/ttySACO、/dev/tty0等也表示某类终端设备。“console”的意思即为“控制台”,顾名思义,控制台就是用户与系统进行交互的设备,这和终端的作用相似。实际上,控制台与终端相比,也只是多了一项功能:它可以显示系统信息,比如内核消息、后台服务消息。从硬件上看,控制台与终端都是具备输入、显示功能的设备,没有区别。“控制台”、“终端”、“控制终端”这些名词经常混着用,表示的是同一个意思。
控制台与终端的区别体现在软件.上,Linux内核从很早以前发展而来,代码中仍保留了“控制台”、“终端”的概念。启动Linux内核前传入的命令行参数“console=…”就是用来指定“控制台”的。控制台在tty 驱动初始化之前就可以使用了,它最开始的时候被用来显示内核消息(比如 printk 函数输出的消息)。
‘玖’ 哪里有LINUX下的串口调试工具
minicom
minicom 是一款启动速度快,功能强大的串口终端调试工具,当然缺点就是纯字符界面,没有图形界面的调试工具看起来直观方便,但是它功能十分强大,并且在一些没有屏幕的嵌入式主板上运行颇有用处。下面给出具体的安装与使用教程:
安装:apt-get install minicom
使用流程: