关闭

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

1587人阅读 评论(0) 收藏 举报

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发行商和版本号的不同,配置方法可能不同,参数也可能需要调整。希望上面的描述会对各位有帮助。

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:31210次
    • 积分:468
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:4篇
    • 译文:0篇
    • 评论:1条
    文章分类