Linux如何连接终端设备(原创)

原创 2011年01月09日 14:16:00

Linux如何连接终端设备(原创)

2005/1/18 12:36:48

安装Linux操作系统的服务器在不需要键盘,鼠标,显示器等设备的情况下,就可正常运行,而这一切将归功于linux对计算机串口的利用,如果linux的串口被配置为支持终端,就可以通过一台终端或装有虚拟终端软件的PC机,就可以轻松完成对系统的配置及管理。

Linux具有强大的连接外围设备的能力,诸如终端服务器,拨号服务器等配置不需要太多的配置即可完成.

 

如果终端要与安装linux系统的PC机的标准串口连接,大致需要以下几各配置步骤:

1. Kernel

在缺省的情况下,linux kernel已经提供了串口连接终端的支持,如果拟通过make menuconfig 来配置内核,在Character Devices 配置页面的几个配置项是可选的调节,可充分发挥终端服务等能力。

 

Standard/generic (***) serial support:如果是标准串口,请打开此项,在linux 内核中表现为宏CONFIG_SERIAL被定义。如果是非标准串口,请在Non-standard Serial port support中选择正确的模块,如果该模块中没有适合你多串口卡的驱动,既需要多串口卡的供应商提供驱动程序,打补丁到kernel或作为驱动模块通过insmod加载。这样,内核中就支持串口了,/dev/ttyS0,/dev/ttyS1,/dev/ttyS2,/dev/ttyS3是与标准串口相对应的设备文件,对应于DOS下的COM1,COM2,COM3,COM4。多串口卡提供的串口设备文件不尽相同,需查看厂家资料。

 

Support for console on serial port:是对串口控制台的选项,如果你的linux Box不连接显示器,甚至连显示卡也没有,而你又想监视传递到系统控制台的系统控制台(system sonsole)的内核消息和警告,你可以选在此项,在linux内核中表现为CONFIG_SERIAL_CONSOLE被定义,以后你可以通过lilo命令行或lilo.conf来指定某个串口作为标准控制台。 在这种情况下,系统启动提示lilo的时候,可以输入参数console=/dev/ttyS0 指定ttyS0作为系统的缺省控制台(可以是与终端连接其它得串口).或者在lilo.conf文件中推过append=” console=ttyS0”来配置,同时注意用serial=0,9600n8来配置串口的参数,如果你的系统足够稳定,或你对系统输出到console的信息不关心,可以通过consol=null来讲这些信息输出到黑洞。

 

内核配置完成后,你就可以重新编译内核,然后配置/etc/lilo.conf, 通过linux装载器lilo安装新的内核引导系统

 

PS: linux box 中的lilo.conf

 

# LILO configuration file

#

# Start LILO global section

boot = /dev/hda

delay = 0

timeout = 0

prompt

serial=0,9600n8

vga = normal

append = "console=ttyS0"

# End LILO global section

 

# Linux bootable partition config begins

image = /boot/new

root = /dev/hda1

label = linux

read-only

 

2. Init

系统启动,内核装载后,1号进程init被启动,init根据/etc/inittab来建立系统的运行级别,如果inittab存在串口的配置,则启动这些串口上的服务,常见得有终端服务和拨号服务。

一个串口的终端服务配置如下面一行

s1:35:respawn:/bin/getty 9600 ttyS0 vt100

俩个字符ID:运行级别列表:动作<respawn>:getty程序:波特率:指定的串口:终端类型

更为详细的资料参考man inittab

 

linux Box 通过多用户卡来实现终端服务器,是通过/etc/inittab中下面的字段来实现的

s2:35:respawn:/bin/agetty 19200 -L ttyS4 vt100

s3:35:respawn:/bin/agetty 19200 -L ttyS5 vt100

s4:35:respawn:/bin/agetty 19200 -L ttyS6 vt100

s5:35:respawn:/bin/agetty 19200 -L ttyS7 vt100

s6:35:respawn:/bin/agetty 19200 -L ttyS8 vt100

s7:35:respawn:/bin/agetty 19200 -L ttyS9 vt100

s8:35:respawn:/bin/agetty 19200 -L ttyS10 vt100

s9:35:respawn:/bin/agetty 19200 -L ttyS11 vt100

 

Getty程序会在后面作出详述。

 

3. Login

如果串口的终端服务初始化正常,通过ps 可以看到类似于下面的输出。

55 root root S /bin/agetty 19200 -L ttyS5 vt100

190 root root S /bin/agetty 19200 -L ttyS6 vt100

191 root root S /bin/agetty 19200 -L ttyS7 vt100

 

当终端通过串口线与Linux Box连接时,如果波特率,数据位,奇偶校验,流量控制等配置正确者终端显示器提示login信息,如果没有输出豁出现乱字符,请检查波特率等配置是否正确,或连接线路是否正常。

 

Login程序的使用方法可以通过man login来得到。

注:改变登陆提示信息 /etc/issue

制定用户附加的存取限制,如果不存在则没有附加限制 /etc/usertty

指定root用户可以登陆的tty,如果不存在,root可以从tty登录 /etc/securetty

不显示用户mail和上次登陆信息 .hushlogin 存在于用户目录下

与用户登陆配置相关的其他文件 /etc/security/*, /etc/login.defs

4. Shell

如果login成功,就进入了用户shellShell的属性在/etc/profile和用户目录的.profile中配置。

 

5. Getty程序

由于linux的开放性导致由多个getty的版本。

agetty (支持串口)

mingetty (不支持串口)

mgetty (支持串口)

uugetty (支持串口)

vgetty (不清楚)

 

他们的使用略有不同,详细可以参看他们的手册。

 

 

结尾:

总的来讲,linux对终端的支持从配置工作上来讲也就这么几个方面,针对linux发行商和版本号的不同,配置方法可能不同,参数也可能需要调整。希望上面的描述会对各位有帮助。

 

Linux终端设备解析

虽然一直做嵌入式Linux,宿主机和开发板通信天天都在用tty设备通信,但是其实自己对TTY设备及终端的概念认识几乎是0。对于Linux内核的终端、tty、控制台等概念的认识很模糊。由于在学习的时候碰...
  • edmond999
  • edmond999
  • 2014年11月17日 14:36
  • 1170

Linux终端设备驱动

转载地址:http://www.cnitblog.com/luofuchong/archive/2008/10/07/49936.html 本章导读 在Linux系统中,终端设备非常重要,没有...
  • liangxiaozhang
  • liangxiaozhang
  • 2013年01月06日 16:50
  • 1265

linux 终端设备:系统终端设备

在tty core代码tty_io.c中,有如下几行代码 /* * Ok, now we can initialize the rest of the tty devices and can ...
  • kickxxx
  • kickxxx
  • 2013年01月16日 11:25
  • 1968

Linux上的终端设备

在Linux系统中,终端设备非常重要,没有终端设备,系统将无法向用户反馈信息,Linux中包含控制台、串口和伪终端3类终端设备。 在Linux系统中,终端是一种字符型设备,它有多种类型,通常使用tt...
  • bodogbo11
  • bodogbo11
  • 2013年01月10日 15:53
  • 273

Linux上的终端设备

在Linux系统中,终端设备非常重要,没有终端设备,系统将无法向用户反馈信息,Linux中包含控制台、串口和伪终端3类终端设备。 来源:(http://blog.sina.com.cn/s/blog_...
  • u010661782
  • u010661782
  • 2015年10月10日 10:49
  • 430

手把手教你玩转QQ的原创表情

QQ的原创表情非常的可爱,做得比较精致,深受广大QQ用户的喜爱;但怎么将这些表情保存下来,好让我可以在别的地方用呢? 乖乖牛在线将从不同的视角,为你解析QQ原创表情的存储、互通、保护的机制;熟悉了这些...
  • TragicGuy
  • TragicGuy
  • 2015年10月23日 13:58
  • 1091

Linux的终端设备tty

linux有7个工作组,tty1-tty6为命令行模式,tty7为图形界面,linux下ctrl+alt +F1/.../F7  来进入工作组 0.各工作组之间没有区别的,他就是为了方便用户的登录。...
  • ejiedian
  • ejiedian
  • 2014年07月16日 09:18
  • 355

Linux tty 终端设备驱动

在Linux系统中,终端设备非常重要,没有终端设备,系统将无法向用户反馈信息,Linux中包含控制台、串口和伪终端3类终端设备。 14.1终端设备 在Linux系统中,终端是一种字符型设备,它有多...
  • cosmoslhf
  • cosmoslhf
  • 2013年12月17日 17:41
  • 957

Linux 终端设备驱动

在 Linux 系统中,终端设备非常重要,没有终端设备,系统将无法向用户反馈信息,Linux 系统中包含控制台、串口和伪终端 3 类终端设备。 终端设备 在 Linux 系统中,终端是一种字符...
  • longshan_2009
  • longshan_2009
  • 2013年04月11日 12:28
  • 1087

Mysql| 命令行模式访问操作mysql数据库.

使用环境在cmd模式下输入 mysql –version (查看mysql安装的版本). 完整的命令可以通过mysql --help来获取. 本测试使用的Mysql版本是mysql5, 本测试使用的...
  • u011479200
  • u011479200
  • 2017年11月12日 12:33
  • 239
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux如何连接终端设备(原创)
举报原因:
原因补充:

(最多只允许输入30个字)