SETSERIAL 8
目录
- NAME setserial
- 总览 .B setserial .B
- 描述 .B setserial 是一个用来设置和取得与一个串行口有关的信息与设置的程序。这些信 息包括某个串行口正在使用的I/o地址与中断号,以及break键是否被当 做引起安全注意的键,等等。 在通常的引导的过程中,只有端口 COM1至COM4被初始化,并使用默认的 I/O地址和中断号,正如以下所列。为了初始化其它的串行口,或者是把 COM1至COM4中的设置改为一个非标准的设置。就必须使用 .B setserial 程序。一般这个程序会在 .I rc.serial 脚本中使用,此脚本通常会在 .IR /etc/rc.local . 中被执行 .I 设备 由变元参数定义的需要设置的串行设备。它们通常具有以下形式: .BR /dev/cua[0-3] . 如果没有设定命令参数, .B setserial 将打印出此端口的类型(如,8250,16450 ,14330,16550A,等等), 硬件I/O地址,各硬件中也断号,波特数,和一些可操作或更改的标识。 如果选择 .B
- 选项 .B Setserial 可接受下列参数: .TP .B
- 命令参数 以下命令参数可以赋于一个串行口. 所有的参数值都被假定为一个八进制数,除非值前标有
- CONISIDERATIONS OF CONFIGURING SERIAL PORTS 明白setserial 命令只是告诉linux核心它想找到某个特定的端口的 I/O地址各中断号IRQ是很重要的。它并不操作硬件,串行设备实际 使用的一个特定的I/O地址。为了达到更改实际的硬件参数,你需要 手动设置硬件,通常是设置跳线,或更改DIP开关。 以下一节将针对设置你的串行端口给于一些帮助。 以下是
- MULTIPORT CONFIGURATION 一些多端口的串行板可以让多的端中共享一个中断号,使用一个或是多个端口 以显示是否有端口需要服务。如果你的多端口吕行板支持这些端口,你须保 证如果中断丢失时,能避免潜在的死锁。 为了详细设置这些端口,使用 .B set_multiport 为参数,紧接其后的是多端口的参数。这个多端中的参数须指定为以下形式 .I port 这需要检测一下,参数 .I mask 可以显示在已注册的位中那个是重要的,最后参数 .I math 用来指定在已注册的位中,当没有进一步工作要做时,那一位必须匹配。 当有四个这种 /port/mask/match时,就要指定联合。第一个这种联合应该 使用如下参数 .BR port1, .BR mask1, 和 .BR match1 . 第二个这种联合需要用如下参数指定 .BR port2, .BR mask2, 和 .BR match2, 等等。为了禁用这个多端口检测,设置 .B port1 为零。 如果想查看当前多端口的设置,指定命令行参数 .B get_multiport 以下是一些通常的串行板的设置: .nf .RS AST FourPort port1 0x1BF match1 0xf mask1 0xf Boca BB-1004/8 port1 0x107 match1 0xff match1 0 Boca BB-2016 port1 0x107 match1 0xff match1 0 port2 0x147 match2 0xff match2 0 .RE .fi .SH Hayes ESP 的设置 .B Setserial 也可以用来在贺氏的ESP串行板上设置端口。 .PP 以下参数在设置时使用: .TP .B rx_trigger 这是一个接收的FIFO的触发水平(以字节为单位),较大的值可减少中断时间提 高性能;然而值太大会引起数据丢失。有效值在1 到 1023 之间. .TP .B tx_trigger 这是一个传送的FIFO的触发水平(安节为单位),较在的值可减少中断时间提高性 能,但值太大会引起传输效率下降。有效值在1 到 1023之间. .TP .B flow_off 这是通知ESP端口断开远端的传输(如,告诉它停止发送数据).有效值在1 到 1023之间,这个值要比接收的触发等级和联接的水平值高. .TP .B flow_on 这是ESP端口通知联接的等级(单位字节),(如,通知重新开始发送数据)在 挂断之后,有效值在1 到 1023之间.这个值应在断开(flow off)等级值 之下但要比接收的触发等级高. .TP .B rx_timeout 这是ESP端口在接收完最后一个字符,且在中断信号之前将要等待的时间。 有效值是0到255.值太大会增加延时,太小会引起不必要的中断。 .SH 警告 警告:设置一个串行端口时使用一个不正确的I/O地址可能会造成死机. .SH 文件 .BR /etc/rc.local .BR /etc/rc.serial .SH
- 作者 最初seterial的版本是由Rick Sladkey(jrs@world.std.com)所作,而后由 Michael K. Johnson(johsonm@stolaf.edu). .SH
SETSERIAL
NAMEæ»è§
æè¿°
é项
å½ä»¤åæ°
CONISIDERATIONS OF CONFIGURING SERIAL PORTS
MULTIPORT CONFIGURATION
Hayes ESP ç设置
è¦å
æä»¶
å¦è§ ,
ä½è
è·
NAME
setserial - åå¾/设置 Linux 串è¡å£çä¿¡æ¯
æ»è§
|
setserial [ -abqvVWZ] è®¾å¤ [ å½ä»¤åæ°ä¸ [ 设å¤åååæ° ] ] ... setserial -g [ |
....-abGv ] 设å¤ä¸ ... |
æè¿°
setserial æ¯ä¸ä¸ªç¨æ¥è®¾ç½®ååå¾ä¸ä¸ä¸ªä¸²è¡å£æå³çä¿¡æ¯ä¸è®¾ç½®çç¨åºãè¿äºä¿¡ æ¯åæ¬æä¸ªä¸²è¡å£æ£å¨ä½¿ç¨çI/oå°åä¸ä¸æå·ï¼ä»¥åbreak鮿¯å¦è¢«å½ åå¼èµ·å®å¨æ³¨æçé®ï¼ççã
å¨é常çå¼å¯¼çè¿ç¨ä¸ï¼åªæç«¯å£
COM1è³COM4被åå§åï¼å¹¶ä½¿ç¨é»è®¤ç
I/Oå°åå䏿å·ï¼æ£å¦ä»¥ä¸æåã为äºåå§åå¶å®ç串è¡å£ï¼æèæ¯æ
COM1è³COM4ä¸-
ç设置æ¹ä¸ºä¸ä¸ªéæ åç设置ãå°±å¿é¡»ä½¿ç¨
setserial
ç¨åºãä¸è¬è¿ä¸ªç¨åºä¼å¨
rc.serial
èæ¬ä¸ä½¿ç¨ï¼æ¤èæ¬é常ä¼å¨
/etc/rc.local.
ä¸è¢«æ§è¡
设å¤
ç±åååæ°å®ä¹çéè¦è®¾ç½®ç串è¡è®¾å¤ãå®ä»¬é叏巿以ä¸å½¢å¼ï¼
/dev/cua[0-3].
å¦ææ²¡æè®¾å®å½ä»¤åæ°ï¼
setserial
å°æå°åºæ¤ç«¯å£çç±»å(å¦ï¼8250ï¼16450
ï¼14330ï¼16550Aï¼çç)ï¼
硬件I/Oå°åï¼å硬件ä¸ä¹æå·,æ³¢ç¹æ°ï¼åä¸äºå¯æä½ææ´æ¹çæ è¯ã
妿鿩 -g é项ï¼å½ä»¤å°ååºæç»åºç设å¤åæ°çä¸äºåºæ¬ä¿¡æ¯ã
å¦ææ²¡ææå®åæ° -g å½ä»¤ææå®ç第ä¸ä¸ªè®¾å¤ååå°è¢«å½ä½ä¿®æ¹æèæ¯æ¾ç¤ºå容çç®æ 设å¤ï¼ èå¶å®ç设å¤åååæ°å°è¢«å½ä½å½ä»¤åæ°èµäºç®æ 设å¤ã
对äºå¤§å¤æ°æåµï¼éè¦æç³»ç»ç®¡çåçæéæè½è®¾ç½®ä¸²è¡å£ãå½ç¶æä¸ äºä¸²è¡å£çåæ°ï¼ä¹å¯ç±æ®éç¨æ·è®¾ç½®ï¼è¿äºåæ°å¨æ¬æåä¸ä¼æå¦æ 说æã
é项
Setserial 坿¥åä¸ååæ°ï¼
|
-a |
å½è¾åºä¸²è¡å£è®¾å¤ç设置æ¶ï¼æ¾ç¤ºåºææææä¿¡æ¯. |
|||
|
-b |
å½è¾åºä¸²è¡å£è®¾å¤ç设置æ¶ï¼è¾åºä¸»è¦ç设å¤è®¾ç½®ä¿¡æ¯ï¼æ- ¤é¡¹éåäº å¨å¼å¯¼è¿ç¨æ¶ï¼å¨/etc/rc èæ¬ä¸è¾åºè®¾å¤ä¿¡æ¯. |
|||
|
-G |
以ç¹å®å½¢å¼è¾åºä¸²è¡å£ç设置信æ¯ï¼æ- ¤å½¢å¼å¯ä»¥è®¾ç½®ä¿¡æ¯ä»¥å½ä»¤è¡ åæ°çå½¢å¼è¿é¦å串è¡å£è®¾å¤. |
|||
|
-q |
éé». |
SetSerial
å½ä»¤å°ä»¥æ´ç®æ´çå½¢å¼è¾åº.
|
-V |
è¾åºè¯¦ç»ä¿¡æ¯. Setserial å¯ä»¥è¾åºéå çç¶æçä¿¡æ¯. | ||
|
-V |
æ¾ç¤ºçæ¬ä¿¡æ¯ç¶åéåº. | ||
|
-W |
强å¶åå§åä¸,æç¶åéåº.äºé项卿 ¸å¿çæ¬2.1åçLinuxä¸ä¸å¨æä¾. -z å¨å¼å§è®¾ç½®æ è®°åæ¸é¤åæç设置çä¸²è¡æ è®°.æ¤é¡¹ä¸ 使ç¨-G æ è®°èªå¨ä¿å串è¡å£ç设置æ è®°æå³. |
å½ä»¤åæ°
以ä¸å½ä»¤åæ°å¯ä»¥èµäºä¸ä¸ªä¸²è¡å£.
ææçåæ°å¼é½è¢«åå®ä¸ºä¸ä¸ªå«è¿å¶æ°ï¼é¤éå¼åæ æ"0x".
port
端å£å·
port æ¤é项设置I/Oå°åå¦ä¸.
irq䏿å·
irq æ¤é项设置硬件ç䏿å·IRQå¦ä¸.
uart弿¥é讯(UART)ç±»å
æ¤éé¡¹ç¨æ¥è®¾ç½®å¼æ¥é讯(UART)çç±»å.å许çç±»åæ none, 8250,16450, 16550,16550A,16550,16650V2,and 16750. å¹¶ä¸8250 ç±»å å 16450 没æFIFO’s ï¼èµ·åç16550 æä¸äºéè¯¯è´ ä½¿FIFO’sä¸å¯ç¨ï¼FIFO åªå¯ç¨æ¥16550Aç±»åç弿¥é讯æºãè®¾ç½®å¼æ¥ é讯(UART)ç±»å为 8250ï¼16450ï¼æ16550 å°å¯ç¨ä¸ä½¿ç¨ FIFOç串 è¡å£.使ç¨å¼æ¥é讯类å为 none å°ç¦ç¨ç«¯å£.
ä¸äºåç«æ 注ç"16650A UART带æ1Kç¼å²"ï¼è¿æ¯éªäººç.å®ä»¬æ²¡æçæ£ å¼å®¹ 16550AçUARTï¼ç¸åçå®ä»¬åªæ ä¸ä¸ª16450å¼å®¹ç带1Kæ¥æ¶ç¼å² UARTï¼ä»¥é²æ¢æ¥ æ¶æ¶æº¢åº.è¿æ¯é常éè¦çï¼å 为å®ä»¬æ²¡æä¸ä¸ªæ²¡æä¸ 个å¯ä¼ 导çFIFO.å æ¤ï¼ä»ä»¬ä¸16650A UART å¹¶ä¸å¼å®¹,èªå¨éç½®è¿ç¨å° æ£ç¡®çè¯å«å®ä»¬ä¸º16450 ç±»åãå¦æä½ æ³å¼ºè¡ä½¿ç¨ï¼éè¦ uart åæ°ï¼è¿æ ·ä½ å¨ä¼ è¾æä»¶æ¶ä¼åç°æå符é失.è¿äº UART éå¸¸è¿æå¶å® ä¸äºé®é¢. skip test åæ°ä¹ç»å¸¸è¢«ä½¿ç¨. autoconfig å½ä½¿ç¨è¿ä¸ªåæ°æ¶ï¼ Setserial å°åæ ¸å¿è¯·æ±èªå¨è®¾ç½®ä¸²è¡å£.I/Oå°åä¸è¦æ£ç¡®è®¾ç½®ï¼æ ¸å¿å°ä¼ è¯å¾æ£æµUARTç±»åï¼å¦æ auto_irq åæ°éç¨ï¼Linuxå°è¯å¾èªå¨åé䏿- å·IRQ. autoconfig åæ°åºå¨ port,auto_irq,and skip_test ç- åæ°ä½¿ç¨åä¹è¢«æå®.
auto_irq
å¨èªå¨éç½®çè¿ç¨ä¸ï¼ä¼èªå¨åé䏿å·IRQ.
æ¤åè½ä¸è½ä¿è¯ä¸
宿ä¸ä¸ªæ-
£ç¡®çç»æï¼ä¸äºç¡¬ä»¶çéç½®å¯è½ä¼è¿·æLinuxçæ ¸å¿.ä¸
è¬æ¥è¯´ä¸ä½¿ç¨åæ°
auto_irq
çåè½æ´å®å¨ä¸äºï¼å®å¯æç¡®å°å®IRQ䏿å·.
irq
åæ°æå®ä¸æå·.
ˆauto_irq
å¨èªå¨éç½®çè¿ç¨ä¸.å¹¶ ä¸ è¯å¾åé䏿å·IRQ.
skip_test
å¨èªå¨éç½®çè¿ç¨ä¸,忽ç¥UARTæ£æµ.ä¸äºåç«æ²¡æå½éå导ä½å¬å¸ å¼å®¹çUART设å¤ç±»å,åªæä¸äºä¾¿å®ç仿å¶å.æä¸äºçè³ä¸å®å¨æ¯æ loopbackæ£æµæ¨¡å¼ï¼æ¤æ¨¡å¼æ¯æ ¸å¿å¨è¯å¾éç½®ä¹åç¨æ¥ç¡®å®å¨ç¹å®ç å°å䏿¯ä¸çæUART设å¤.å æ¤å¯¹äºæäºåç«ä½ å¯è½éè¦æå®è¿ä¸ªåæ° ä»¥ä¾¿Linuxè½æ£ç¡®çåå§åUART.
ˆskip_tet
å¨èªå¨éç½®è¿ç¨ä¸ï¼ ä¸ å¿½ç¥UARTçæ£æµ.
baud_baseæ³¢ç¹åºç
æ¤é项设端å£çæ³¢ç¹çï¼æ¤å¼ä¸ºæ¶éé¢çé¤ä»¥16. ä¸è¬æåµæ¤é¡¹å¼ä¸º 115200ï¼ è¿ä¹æ¯UARTè½æ¯æçæå¿«æ³¢ç¹ç.
|
spd_hi |
å½ç¨åºè¦æ± 38.4kbæ¶ï¼ä½¿ç¨57.6kbçè¿æ¥é度. è¿ä¸ªåæ°å¯ä»¥ç¨ç±æ ç¹æçç¨æ·æå®. |
spd_vhi
å½è¦æ±38.4kbæ¶ï¼ä½¿ç¨115kbçè¿æ¥é度.
spd_cust
å½è¦æ±38.4kbæ¶ï¼ä½¿ç¨æå®çdivisor(餿°)æ¥è®¡ç®é度.è¿æ¶æ³¢ç¹çç±
baud_base(æ³¢ç¹åºç)
é¤ä»¥
divisor(餿°ï¼
å¾å°
spd_normal
å½è¦æ±38.4kb æ¶ä½¿ç¨38.4kbçé度. æ¤åæ°å¯ä»¥ç±æ ç¹æçç¨æ·æå®.
divisordivisor(餿°)
æ¤é项æå®äºèªå®ä¹ç餿°.è¿ä¸ªé¤æ°å°è¢«ç¨å¨ spd_cust é项ä¸- 被æå®æ¶ï¼å½è¦æ±38.4kbçé度æ¶ï¼ç¨æ¥èªè¡è®¾ç½®ä¸²è¡å£è¿æ¥ é度æ- ¤åæ°å¯ç±æ ç¹æçæ®éç¨æ·è®¾å®.
|
sak |
设置breaké®ä¸ºå¼åå®å¨æ³¨æé®. |
|||
|
ˆsak |
ç¦ç¨å¼åå®å¨æ³¨æé®. |
fourport
é置端å£ä¸ºä¸AST Fouroart å¡.
ˆfourport
ç¦ç¨ AST Fourport éç½®.
closedelaydelay(å»¶æ¶ï¼
æå®æ¶é´é¿åº¦ï¼å使¯ç¾åä¹ä¸ç§ï¼DTRå¨èåºè®¾å¤è¢«å³éåï¼ä»ä¼ä¿ æä¸ä¸ªä½é串è¡éè·¯ï¼å¨ææ°æ®è¿æ¥ä¹åä¼éæ°èµ·å¨DTR.è¿é项çé» è®¤å¼ä¸º50ï¼å³åç§å»¶æ¶.
close_delaydelay(å»¶æ¶)
æå®æ¶é´é¿åº¦ï¼å使¯ç¾åä¹ä¸ç§ï¼å¨æ¥å端被ç¦ä¹åå³éç«¯å£æ¶ï¼ æ ¸å¿éè¦çå¾ä»ä¸²è¡å£ä¼ æ¥çæ°æ®. 妿æå®ä¸º"none"ï¼å°ä¸ä¼æ å»¶æ¶.妿æå®"infinite" æ¶ï¼æ ¸å¿å°ä¼ä»¥ä¸ç¡®å®çæ¶é´çå¾ç¼å² æ°æ®çä¼ è¾.æ¤é项çé»è®¤å¼ä¸ºæ¯ "none" .
closing_wait2delay(å»¶æ¶)
æå®æ¶é´çé¿åº¦ï¼å使¯ç¾åä¹ä¸ç§ï¼å¨æ¥å端被ç¦ç¨åï¼å¨å³é端 壿¶æ ¸å¿ä¼çå¾ä»ä¸²è¡å£ä¼ æ¥çæ°æ®.èç¨ closing_wait å½ä»¤ï¼"none" å "infinite" 䏤忰é½å°è¢«æå®ï¼æ¤é¡¹çé»è®¤å¼æ¯ 3000ï¼ä¹å°±æ¯30ãç§å»¶æ¶ã ã closing_wait å closing_wait2çé»è®¤å¼å¯¹å¤§å¤æ°ç设å¤é½ä¼éç¨ã 妿鿩çå»¶æ¶å¤ªé¿ï¼å½ä¸²è¡å£æå¼åï¼å®ä¼æèµ·å¤ªé¿æ¶é´ï¼ è´ä½¿æ°æ®æèµ·è被æ¶é¤ãå¦æè®¾å¤ªçï¼å°ä¼æå¯è½è´ä½¿ä¸äºä¼ è¾ç æ°æ®æº¢åºã
å¦æè®¾å¤é常æ¢ï¼åä¸ä¸ªç»å¾ä»ªï¼é£ä¹ï¼ä¸¤é¡¹å¼å¯è½è¦å¢å¤§ä¸äºã
å¦æè®¾å¤ä½¿ç¨ãXON/XOFF ä¿¡å·äº¤æ¢ï¼é£ä¹é»è®¤å¼å°ä¼åè¿æ¥ãç¶èè¿ å¯è½ä¼è´ä½¿å¨linux ä¸åæ³¢ç«ä¹é´æä¸ä¸ª"åæ³¢å²çª"ã
session_lockout
对ä¸åçä»»å¡ï¼éå®èåºè®¾å¤ç端å£(/dev/cuaXX)ï¼ä¹å°±æ¯è¯´ï¼ä¸ä½ æä¸ä¸ªè¿ç¨æå¼ç«¯å£ï¼å°±ä¸å许å¶å®ä¸åå·ç任塿弿¤ç«¯å£ï¼ç´å° åä¸ä¸ªè¿ç¨æ¾å¼æ¤ç«¯å£ã
ˆsession_lockout
对èåºç端å£ä¸å¼å¯ä¸è¿°åè½ã
pgrp_lockout
对ä¸åè¿ç¨ç»ï¼éå®èåºç端å£(/dev/cuaXX)ã ä¹å°±æ¯è¯´ï¼ä¸ä½ä¸ä¸ªè¿ç¨æå¼ä¸ä¸ªç«¯å£ï¼ä¸åå¶å®è¿ç¨ç»çè¿ç¨å± 享æ¤ç«¯å£ï¼ç´å°åä¸ä¸ªè¿ç¨éæ¾å®ã
æ¤åæ°çä¸ä¸ªåºç¨å°±æ¯å¨å½ä¸ä¸ªç»é端被ä¸ä¸ªæ¨å·ç串è¡å£éå®ãå®å° å许ç»é端éç½®è°å¶è§£è°å¨(ä½¿ç¨æå®è®¾å¤çç¨åºå¯è½ä¼ä¿®æ¹å®ç设置) å¨éå®è¢«æå¼ä¹åã
ˆhup_notify
å½è¿ç¨éå®å¨æä¸ä¸ªæ¨å·æ¶ï¼èæ¤æ¶èé®è®¾å¤æ£æèµ·çè¯ï¼ä¸éç¥è¿ç¨ã
split_termios
对äºèåºè®¾å¤çç»ç«¯è®¾ç½®ä¸èå¥è®¾å¤çç»ç«¯è®¾ç½®åå¼å¯¹å¾ã
ˆsplit)termios
对以ä¸ä¸¤èç¸å对å¾.æ¤å¼ä¸ºé»è®¤é项ã
callout_nohup
妿è¿ä¸ªç¹æ®ä¸²è¡å£è¢«å½æä¸ä¸ªèåºè®¾å¤æå¼ï¼é£ä¹å½è½½æ³¢æ£æµæ¶å¤± æ¶ï¼ä¸æèµ·é讯端å£ã
ˆcallout_nohup
å½ä¸²è¡å£å½ä½èåºè®¾å¤æå¼æ¶ï¼ä¸å¿½ç¥æèµ·é讯端å£ãå½ç¶ï¼å¦ææèµ· çè¯HUPCLç»ç«¯æ è¯å°ä¼è¢«å¯ç¨ã
ˆlow_latency
以æ´é«çCPUå ç¨çæ¥ä½¿å¾æ¥åæ»å»¶è¾¾å°æå°ã(éå¸¸ä¼ è¾ä¸ç5ï¼10msç æ»å»¶ä»¥ä½¿ç³»ç»å¼éæå°.) æ¤é¡¹é»è®¤å¼ä¸ºå³é- ï¼ä½æäºå®æ¶ç¨åºå¯è½ä¼ç¨ å°æ¤åæ°ã
CONISIDERATIONS OF CONFIGURING SERIAL PORTS
æç½setserial å½ä»¤åªæ¯åè¯linuxæ ¸å¿å®æ³æ¾å°æä¸ªç¹å®ç端å£ç I/Oå°åå䏿- å·IRQæ¯å¾éè¦çãå®å¹¶ä¸æä½ç¡¬ä»¶ï¼ä¸²è¡è®¾å¤å®é 使ç¨çä¸ä¸ªç¹å®çI/Oå°åã为äºè¾¾å°æ´æ¹å®éçç¡¬ä»¶åæ°ï¼ä½ éè¦ æå¨è®¾ç½®ç¡¬ä»¶ï¼é常æ¯è®¾ç½®è·³çº¿ï¼ææ´æ¹DIPå¼å³ã
以ä¸ä¸èå°éå¯¹è®¾ç½®ä½ ç串è¡ç«¯å£ç»äºä¸äºå¸®å©ã
以䏿¯"æ åMSï¼dos"ç端å£è®¾ç½®ï¼
/dev/ttys0(COM1), port 0x3f8,
irq 4
/dev/ttys1(COM2), port 0x2f8, irq 3
/dev/ttys2(COM3), port 0x3e8, irq 4
/dev/ttys3(COM4), port 0x2e8, irq 3
æ ¹æ®AT/ISAæ»çº¿ç»æçéå®ï¼é叏䏿å·IRQä¸è½è¢«ä¸¤ä¸ªä»¥ä¸ç串è¡å£ å±äº«ãå¦æä½ è¯å¾è¿è¿æ ·åï¼é£ä¹å½ä½ åæ¶å¯ç¨ä¸¤ä¸ªç«¯å£æ¶ï¼å®ä»¬ä¸ çä¸ä¸ªæå¨é¨å°ä¼ä¸å¯é ãè¿åéå¶å¯ç±ä¸å¤ç«¯å£ç串è¡å£æ¿æ¥åæï¼ å®ç¨æ¥è®©å¤ä¸ªä¸²è¡å£å±äº«ä¸ä¸ªä¸æå·IRQãæ¤ç§æ¿å¯¹linuxçæ¯æå·²å å¥ å°AST FourPort, Accent Async æ¿ï¼Usenet Serial II æ¿ï¼Bocabord BB-1004, BB-1008,å BB-2016 æ¿ï¼ä»¥åHUB-6 serial æ¿ä¹ä¸ã
ä¿®æ¹ä¸ä¸ªè®¾å¤ç䏿å·IRQæ¯æ¯è¾å°é¾çï¼å ä¸ºå¤§å¤æ°ä¸æå·å·²ç»è¢«ä½¿ç¨äºï¼ 以䏿¯"æ åMS-DOS"设å®çææç䏿å·å表ï¼
IRQ 3: COM2
IRQ 4: COM1
IRQ 5: LPT2
IRQ 7: LPT1
许å¤äººé½åç°ä¸æå·IRQ 5 æ¯ä¸ä¸ªå¥½çéæ©ï¼å设çµèä¸åªæä¸ä¸ªå¹¶è¡å£ æ¯æ- £å¨ä½¿ç¨çãé£ä¹ä¸æå·IRQ 2 乿¯ä¸ä¸ªå¥½çéæ©(ä¹å¯è½æ¯9); è½ç¶è¿ä¸ªä¸æ- å·IRQææ¶ä¹è¢«ç½å¡ä½¿ç¨ï¼ä¹ææä¸ªå«ççæ¾å¡å¯è½è¦ä½¿ç¨ 䏿å·IRQ 2ä½ä¸ºä¸ä¸ªåç´åæ«ç䏿ãå¦æä½ çæ¾å¡æ¯è¿æ ·è®¾ç½®çï¼ é£ä½ å¯è½è¦ç¦ç¨æ- ¤é¡¹åè½ï¼ä»¥ä¾¿è½ç»å¶å®ç设å¤éæ¾ä¸ä¸ªä¸æãå½ç¶è¿å¯¹ äºlinuxææ¯å¶å®æä½ç³»ç»ä¸ä¸å®æ¯å¿é¡»çã
å¦å¤å¶å®å¯ç¨ç䏿巿 3 ï¼4ï¼å 7ï¼è¿äºä¸æå¯è½ä¹è¢«å¦ä¸äºä¸² è¡ææ¯å¹¶è¡å£æç¨ã(å¦æä½ ç串è¡å¡æä¸ä¸ª16ä½ççµåæ°æ®æ¶éå¨ç æ¥çº¿å£ï¼å¹¶ä¸æ¯ææ´é«ç䏿å·ï¼é£ä¹ä¸æå·IRQ 10 ï¼11, 12ï¼å 15 乿¯å¯ç¨çã)
å¨ä¸äºATç±»çæºå¨ä¸ï¼ä¸æå·IRQ 2 被å½ä½ä¸æå·IRQ 9ï¼æä»¥linux ä¼å¦æ- ¤è®¤ä¸ºã
å¶å®ä¸æå·é¤äº2(9),3, 4, 5ï¼ 7, 10ï¼ 11, 12 å15 ä¸ è½è¢«ä½¿ç¨ï¼å 为ä»ä»¬è¢«å®æç»äºå¶å®ç硬件ï¼èä¸ä¸è¬ä¸ä¸è½ æ´æ¹ã以䏿¯ä¸äºâæ åâç设置ï¼
IRQ 0
æ¶éåçå¨ 0
IRQ 1 é®ç
IRQ 2
å¯ç¼ç¨ç䏿æ§å¶å¨
2
IRQ 3 串è¡å£ 2
IRQ 4 串è¡å£ 1
IRQ 5 å¹¶è¡å£
2(ä¿çç»PS/2)
IRQ 6
软ç驱å¨å¨
IRQ 7 å¹¶è¡å£ 1
IRQ 8
ç³»ç»å®æ¶åé
IRQ 9
éå®åç»ä¸æå·IRQ
2
IRQ 10 ä¿ç
IRQ 11 ä¿ç
IRQ 12
ä¿ç(ps/2å¼å®¹ç设å¤)
IRQ 13
æ°å¦åå¤çå¨
IRQ 14
ç¡¬çæ§å¶å¨
IRQ 15 ä¿ç
MULTIPORT CONFIGURATION
ä¸äºå¤ç«¯å£çä¸²è¡æ¿å¯ä»¥è®©å¤ç端ä¸å±äº«ä¸ä¸ªä¸æ- å·,使ç¨ä¸ä¸ªææ¯å¤ä¸ªç«¯å£ 以æ¾ç¤ºæ¯å¦æç«¯å£éè¦æå¡ãå¦æä½ çå¤ç«¯å£åè¡æ¿æ¯æè¿äºç«¯å£ï¼ä½ é¡»ä¿ è¯å¦æä¸æä¸¢å¤±æ¶ï¼è½é¿åæ½å¨çæ»éã
为äºè¯¦ç»è®¾ç½®è¿äºç«¯å£ï¼ä½¿ç¨ set_multiport ä¸ºåæ°ï¼ç´§æ¥å¶åçæ¯å¤ç«¯å£çåæ°ãè¿ä¸ªå¤ç«¯ä¸çåæ°é¡»æå®ä¸ºä»¥ä¸å½¢å¼ port è¿éè¦æ£æµä¸ä¸ï¼åæ° mask å¯ä»¥æ¾ç¤ºå¨å·²æ³¨åçä½ä¸é£ä¸ªæ¯éè¦çï¼æååæ° math ç¨æ¥æå®å¨å·²æ³¨åçä½ä¸ï¼å½æ²¡æè¿ä¸æ¥å·¥ä½è¦åæ¶ï¼é£ä¸ä½å¿é¡»å¹éã
彿å个è¿ç§ /port/mask/matchæ¶ï¼å°±è¦æå®èåã第ä¸ä¸ªè¿ç§èååºè¯¥ 使ç¨å¦ä¸åæ° port1, mask1, å match1. 第äºä¸ªè¿ç§èåéè¦ç¨å¦ä¸åæ°æå® port2, mask2, å match2, ççã为äºç¦ç¨è¿ä¸ªå¤ç«¯å£æ£æµï¼è®¾ç½® port1 为é¶ã
å¦ææ³æ¥çå½åå¤ç«¯å£çè®¾ç½®ï¼æå®å½ä»¤è¡åæ° get_multiport
以䏿¯ä¸äºé常çä¸²è¡æ¿ç设置ï¼
AST FourPort port1 0x1BF match1 0xf mask1 0xf
Boca BB-1004/8 port1 0x107 match1 0xff match1 0
Boca BB-2016
port1 0x107 match1 0xff match1 0
port2 0x147 match2 0xff match2 0
Hayes ESP ç设置
Setserial ä¹å¯ä»¥ç¨æ¥å¨è´ºæ°çESPä¸²è¡æ¿ä¸è®¾ç½®ç«¯å£ã
以ä¸åæ°å¨è®¾ç½®æ¶ä½¿ç¨ï¼
rx_trigger
è¿æ¯ä¸ä¸ªæ¥æ¶çFIFOçè§¦åæ°´å¹³(以åè为åä½)ï¼è¾å¤§çå¼å¯åå°ä¸æ- æ¶é´æ 髿§è½;ç¶èå¼å¤ªå¤§ä¼å¼èµ·æ°æ®ä¸¢å¤±ãææå¼å¨1 å° 1023 ä¹é´.
tx_trigger
è¿æ¯ä¸ä¸ªä¼ éçFIFOçè§¦åæ°´å¹³(å®è为åä½),è¾å¨çå¼å¯åå°ä¸æ- æ¶é´æé«æ§ è½ï¼ä½å¼å¤ªå¤§ä¼å¼èµ·ä¼ è¾æçä¸éãææå¼å¨1 å° 1023ä¹é´.
flow_off
è¿æ¯éç¥ESPç«¯å£æå¼è¿ç«¯çä¼ è¾(å¦ï¼åè¯å®åæ¢åéæ°æ®).ææå¼å¨1 å° 1023ä¹é´ï¼è¿ä¸ªå¼è¦æ¯æ¥æ¶ç触åç级åèæ¥çæ°´å¹³å¼é«.
flow_on
è¿æ¯ESP端å£éç¥èæ¥çç级(åä½åè),(å¦ï¼éç¥éæ°å¼å§åéæ°æ®)å¨ ææ- ä¹åï¼ææå¼å¨1 å° 1023ä¹é´.è¿ä¸ªå¼åºå¨æå¼(flow off)ççº§å¼ ä¹ä¸ä½è¦æ¯æ¥æ¶ç触åç级é«.
rx_timeout
è¿æ¯ESP端å£å¨æ¥æ¶å®æåä¸ä¸ªå符ï¼ä¸å¨ä¸æä¿¡å·ä¹åå°è¦çå¾çæ¶é´ã ææå¼æ¯0å°255.å¼å¤ªå¤§ä¼å¢å å»¶æ¶ï¼å¤ªå°ä¼å¼èµ·ä¸å¿è¦ç䏿ã
è¦å
è¦åï¼è®¾ç½®ä¸ä¸ªä¸²è¡ç«¯å£æ¶ä½¿ç¨ä¸ä¸ªä¸æ£ç¡®çI/Oå°åå¯è½ä¼é ææ»æº.
æä»¶
/etc/rc.local /etc/rc.serial
å¦è§ ,
tty(4), ttys(4), kernel/chr_drv/serial.c
ä½è
æåseterialççæ¬æ¯ç±Rick Sladkey(jrs@world.std.com)æä½,èåç± Michael K. Johnson(johsonm@stolaf.edu).
è·
æ¬é¡µé¢ä¸æçç±ä¸æ
man
æå页计åæä¾ã
䏿 man
æå页计åï¼https://github.com/man-pages-zh/manpages-zh