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

    技术2022-06-26  50

    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)