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 shell是一种极为丑陋的语言

linux shell是一种极为丑陋的语言。 shell是一以命令行为主的语言,这门语言的丑陋体现在它的语法不规范上。举例说明。 一、空格的使用 linux shell里面最令人困惑的莫...

Centos中vim的配置

一、vim简介    多模式编辑器,可视化操作不仅可以在终端运行,也可以运行于 window、 mac os、windows。1、vim的基本概念  基本上vim可以分为三种状态(其实有好多模式,目前...

Linux终端设备驱动(二)

14.3终端设备驱动初始化与释放 14.3.1模块加载与卸载函数     tty驱动的模块加载函数中通常需要分配、初始化tty_driver结构体并申请必要的硬件资源,代码清单14.4。tty驱动...

Linux终端设备驱动(五)

S3C2410 串口驱动uart_ops结构体的tx_empty()成员函数s3c24xx_serial_tx_empty()用于判断发送缓冲区是否为空,其实现 如代码清单14.30,当使能FIFO模...

Linux中终端设备驱动

核心层 1、在tty_io.c文件(drivers/char/ )   static const struct file_operations tty_fops = { .llseek =...

Linux终端设备驱动 ----UART的驱动

14.7实例:S3C2410 UART的驱动 14.7.1 S3C2410串口硬件描述     S3C2410 内部具有3个独立的UART控制器,每个控制器都可以工作在Interrupt(中断)模...

Linux终端设备详解

终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机(或者说就是),是由Teletyp...

Linux终端设备驱动(一)

在Linux系统中,终端设备非常重要,没有终端设备,系统将无法向用户反馈信息,Linux中包含控制台、串口和伪终端3类终端设备。 14.1终端设备     在Linux系统中,终端是一种字符型设备...

Linux 终端设备驱动

在 Linux 系统中,终端设备非常重要,没有终端设备,系统将无法向用户反馈信息,Linux 系统中包含控制台、串口和伪终端 3 类终端设备。 终端设备 在 Linux 系统中,终端是一种字符...

Linux 终端设备驱动函数的流向

1)终端设备数据发送和接收过程中的数据流和函数调用关系             2) tty 线路设置及流向   a、线路设置用户空间接口 (用户可用如下两种方式改变 tty 设备...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux如何连接终端设备(原创)
举报原因:
原因补充:

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