admin 管理员组

文章数量: 887021


2024年2月29日发(作者:freckled)

系统console口 ,设备COM口

(2009-08-03 21:23:11)

转载

标签:

console

/dev/console

null

modem

cable

statserial

杂谈

分类: Unix基础

终端设备的由来

最传统的终端控制台——VT100

VT100是串行口接的字符终端(Text Terminal),作为控制台

现代的控制台终端——键盘+显示器

虚拟终端仿真

现在都是通过应用程序模拟一个终端,叫虚拟终端,如WINDOWS的超级终端

tty设备

tty是Teletype的缩写,指终端设备

tty是一种字符型设备(c设备),有多种类型

设备名放在/dev/下,终端特殊设备文件一般有以下几种:

/dev/ttySn

/dev/tts/0或/dev/ttyS0、/dev/tts/1或/dev/ttyS1等

/dev/ttyn

tty1 –tty6

tty0

dev/tty

/dev/pty/

串口终端Serial Port Terminal

对应于的COM1、COM2等

设备号分别是(4,0)、(4,1)等

控制台终端/虚拟终端

当你在控制台上登录时,使用的是tty1,使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去

tty0是―当前‖所使用虚拟终端的一个别名,指向当前正在使用的虚拟终端tty1-tty6之一

/控制台终端

类似于tty0,也是当前终端的链接或别名

伪终端(Pseudo Terminal)

通过使用适当的软件,就可以把两个甚至多个伪终端设备连接到同一个物理串行端口上

Consoletype

[root@localhost macg]# /sbin/consoletype

pty

console口扮演两个角色

1。在SERVER COM口的输入输出

2。在SERVER的CONSOLE控制台或XWIN的CONSOLE窗口的输出

如何找 console文件?

[root@localhost etc]# ls -l /dev

。。。

crw-rw---- 1 root root 5, 1 May 12 2007 /dev/console

[root@mm mac]# cat /etc/

# Log all kernel messages to the console.

# Logging much else clutters up the screen.

#kern.* /dev/console

*.info;;; /var/log/messages

local7.* /var/log/

简单的输出信息到console

[root@vm /]# echo haha > /dev/console

在console显示器,或xwin 的console窗口,可以看到haha

编写 crontab时,常用到输出到/dev/console

*/5 * * * * /bin/date >/dev/console

注意只有root才可以写入/dev/console,其他人不可以写

[root@localhost etc]# ls -l /dev/console

crw-rw---- 1 root root 5, 1 May 12 2007 /dev/console

COM口的连线——NULL MODEM CABLE

两台电脑,用COM口互联,需要"NULL MODEM CABLE"

"NULL MODEM CABLE"直译过来大致是"交叉MODEM线",和网线的交叉线意思相近,这是用来"背靠背"联接两个DTE设备的,也简称“串口线”

两头都是9针母头

两台电脑背靠背COM口联结的含义

一台电脑为SERVER,另一台电脑为操作者/配置者

测试null modem cable联通性

管理工作站和服务器接上交叉线后,可以简单地来测试一下这条线是否起作用。

管理工作站

用超级终端新建一个联接,速率9600,8数据位,1停止位,无奇偶校验位,无硬件"Flow control"

服务器

echo '1'>/dev/ttyS0

在管理工作站超级终端里观察是否能收到数字1

不能收到则要在服务器上检查一下各信号引脚是否正确

若要向一个串口发送数据,在命令行上把标准输出STDIN重定向到这些DEV文件名上即可

echo test > /dev/ttyS1 ”test”发送到连接在ttyS1(COM2)端口的设备上

为什么CISCO 的CONSOLE和LINUX的CONSOLE无法兼容? 问题出在哪里?

为什么用CONSOLE线连LINUX,能看到启动信息,但到LOGIN:就不响应了?

CONSOLE线肯定没问题,

问题主要出在终端仿真程序的设置上!

secureCRT linux session

96008N1

secureCRT cisco session

96008N1

主要是在流控flow control的设置上

secureCRT linux session

UNIX CONSOLE对流控是要设置的

1。在secureCRT上,三个流控选项(XON/XOFF,RTS/CTS,DTR/DSR)必须都为空(UNCHECK)

必须选择无.

secureCRT cisco session

CISCO CONSOLE无所谓流控任何流控都支持,通常不设置流控或保持缺省流控

cisco CONSOLE支持:

RTS/CTS CHECK

XON/XOFF CHECK

2。在windows 终端仿真上,三个流控选项(XON/XOFF,硬件,无)RTS/CTS UNCHECK

缺省是“硬件”,即RTS/CTS,这对CISCO是支持的,但对LINUXXON/XOFF UNCHECK

就不行,必须选择“无"

但LINUX就不行,必须UNCHECK RTS/CTS

DTR/DSR CHECK

DTR/DSR UNCHECK

3.SecureCRT缺省是RTS/CTS CHECKED,这对CISCO是支持的,

dmesg看系统的串口分配情况

[root@oscar root]# dmesg | grep tty

ttyS0 at 0x03f8 (irq = 4) is a 16550A

ttyS1 at 0x02f8 (irq = 3) is a 16550A

statserial 查看当前串行口的状态

statserial - display serial port modem status lines

statserial [-n | -d | -x]

[root@localhost mac]# statserial /dev/tty?

tty tty12 tty17 tty21 tty26 tty30 tty35 tty4 tty44 tty49 tty53 tty58 tty62 ttyS0 ttyS5

tty0 tty13 tty18 tty22 tty27 tty31 tty36 tty40 tty45 tty5 tty54 tty59 tty63 ttyS1 ttyS6

tty1 tty14 tty19 tty23 tty28 tty32 tty37 tty41 tty46 tty50 tty55 tty6 tty7 ttyS2 ttyS7

tty10 tty15 tty2 tty24 tty29 tty33 tty38 tty42 tty47 tty51 tty56 tty60 tty8 ttyS3

tty11 tty16 tty20 tty25 tty3 tty34 tty39 tty43 tty48 tty52 tty57 tty61 tty9 ttyS4

[root@localhost mac]# statserial /dev/ttyS0

Device: /dev/ttyS0

Signal Pin Pin Direction Status Full

Name (25) (9) (computer) Name

----- --- --- --------- ------ -----

FG 1 - - - Frame Ground

TxD 2 3 out - Transmit Data

RxD 3 2 in - Receive Data

RTS 4 7 out 1 Request To Send

CTS 5 8 in 0 Clear To Send

DSR 6 6 in 0 Data Set Ready

在CABLE对端不接管理工作站时或者线序错误时DSR状态为0

GND 7 5 - - Signal Ground

DCD 8 1 in 0 Data Carrier Detect

DTR 20 4 out 1 Data Terminal Ready

RI 22 9 in 0 Ring Indicator

最详细的文档:Linux Serial Console


本文标签: 终端 设备 流控