📄 serial-howto.txt
字号:
[34]http://www.nyx.net/~arobinso driver status: supported by author driver location: [35]http://www.nyx.net/~arobinso and included in Linux kernel since version 2.1.15 * Maxpeed SS (Toshiba; 4, 8 and 16 ports) contact: [36]info@maxpeed.com or [37]http://www.maxpeed.com driver status: supported by Maxpeed driver location: [38]ftp://maxpeed.com/pub/ss * Moxa C218 (12MHz 80286; 8 ports), Moxa C320 (40MHz TMS320; 8 - 32 ports) contact: [39]info@moxa.com.tw or [40]http://www.moxa.com.tw driver status: supported by Moxa driver location: [41]ftp://ftp.moxa.com.tw/drivers/c218-320/linux * SDL RISCom/8 (Cirrus Logic CD180; 8 ports) contact: [42]sales@sdlcomm.com or [43]http://www.sdlcomm.com driver status: supported by SDL driver location: [44]ftp://ftp.sdlcomm.com/pub/drivers * Specialix SIO (20MHz Zilog Z280; 4 - 32 ports), XIO (25MHz Zilog Z280; 4 - 32 ports) contact: Simon Allen, [45]simonallen@cix.compulink.co.uk driver status: BETA driver location: [46]ftp://sunsite.unc.edu/pub/Linux/kernel/patches/serial * Stallion EasyIO-4 (4 ports), EasyIO-8 (8 ports), and EasyConnection (8 - 32 ports) - each with Cirrus Logic CD1400 UARTs, Stallion (8MHz 80186 CPU; 8 or 16 ports), Brumby (10/12 MHz 80186 CPU; 4, 8 or 16 ports), ONboard (16MHz 80186 CPU; 4, 8, 12, 16 or 32 ports), EasyConnection 8/64 (25MHz 80186 CPU; 8 - 64 ports) contact: [47]sales@stallion.com or [48]http://www.stallion.com driver status: supported by Stallion driver location: [49]ftp://ftp.stallion.com/drivers/ata5/Linux and included in linux kernel since 1.3.27 其中 Comtrol, Cyclades, Digi, 及 Stallion 的产品在 1995 年六月份的 Linux Journal 上有篇回顾文章. 这篇文章可在 [50]http://www.ssc.com/lj/issue14 找到. 2.5 不支援的串列硬体 宣称``Winmodems''的数据机,例如 USR Sportster Winmodem 及 IBM Aptiva MWAVE, 无法在 Linux 上使用.这些数据机具有专门的设计需要特别的 Windows 驱动程式. 避免使用这样的数据机.除此之外,基於相同理由也别使用 需要 Rockwell RPI 驱动程式的数据机. 没有 Linux 所需驱动程式的智慧型串列埠也不能使用. 3. 串列埠的名称是什麽? 一个输出/入(I/O)埠是用来将资料送入电脑及从电脑取出的通路. 有许多种类的 输出/入埠,例如串列埠,平行埠,磁碟控制器,乙太网路卡等等. 我们要处理 的是串列埠,因为数据机及终端机是串列装置. 每一个串列埠必须有一个输出/ 入位址,以及一个插断号码(IRQ). 有四个串列设备对应到 COM1 - COM4: ttyS0 (COM1) address 0x3f8 IRQ 4ttyS1 (COM2) address 0x2f8 IRQ 3ttyS2 (COM3) address 0x3e8 IRQ 4ttyS3 (COM4) address 0x2e8 IRQ 3 如果 Linux 启动时没有侦测到任何串列装置,请确定在编译核心时有加入串列支 援. 在这份文件中,我是以 ttyS0 参照 COM1,ttyS1 参照 COM2,以 ttyS2 参 照 COM3 ,而以 ttyS3 参照 COM4. 注意这些装置预设的 IRQ 是重叠的.你无 法由这些预设值使用所有的串列埠,你必须重新指定不同的 IRQ. 参见 [51]我 能使用超过两个的串列装置吗? 一节说明如何设定 IRQ. 某些安装方式会建立两个额外的设备,给你数据机使用的 /dev/modem 以及给你 滑鼠使用的 /dev/mouse. 它们都是链结到你在安装时所指定适当 /dev 里的设 备的符号链结(除非你用的是汇流排滑鼠(bus mouse) ,那麽 /dev/mouse 将会 指到汇流排滑鼠这个设备). 已经有些关於使用 /dev/mouse 以及 /dev/modem 优缺点的讨论. 我强烈地反对 使用这些链结,如果你打算用你的数据机接受拨接的话,要是你使用了 /dev/modem 那麽你将会因为锁定档案(lock files)无法正确运作而遭遇到困难. 如果你喜欢它们的话就用吧,但是要确定它们指向正确的设备. 然而,如果你改 变或除去这个连结,某些应用程式(例如 minicom)可能要重新设定. 3.1 在 /dev 里的串列设备及主要和次要号码/dev/ttyS0 major 4, minor 64 /dev/cua0 major 5, minor 64/dev/ttyS1 major 4, minor 65 /dev/cua1 major 5, minor 65/dev/ttyS2 major 4, minor 66 /dev/cua2 major 5, minor 66/dev/ttyS3 major 4, minor 67 /dev/cua3 major 5, minor 67 要注意到所有的发行套件都应该已经正确地建立了这些设备. 你可以用下法检 查: linux% ls -l /dev/cua*linux% ls -l /dev/ttyS* 在 /dev 中建立设备 如果你没有其中的一个设备,你必须自己用 mknod 指令建立它. 例如,假定你 需要建立 ttyS0 设备: linux# mknod -m 666 /dev/cua0 c 5 64linux# mknod -m 666 /dev/ttyS0 c 4 64 你也可以使用 MAKEDEV 这个指令稿,在 /dev 下应该会有. 这简化了设备的建 立.例如,如果你需要建立 ttyS0 设备则应该输入: linux# cd /devlinux# ./MAKEDEV ttyS0 这将会处理关於连线进来以及连线出去的设备之建立,并设定正确的权限. 3.2 一般多埠板的注意事项 你的多埠板所使用的设备视你使用那一种多埠板而定. 这些细节详细列在随附於 setserial 程式的 rc.serial 里面. 如果你尝试使用多埠板的话我强烈建议你 取得最新版本的 setserial. 你可能会需要建立这些设备.无论是用 mknod 指 令或是 MAKEDEV 指令稿都可以. 多埠板所用设备是以加上 ``64 + 埠号'' 来建 立的.所以,如果你想为 ttyS17 建立设备,你应该输入: linux# mknod -m 666 /dev/cua17 c 5 81linux# mknod -m 666 /dev/ttyS17 c 4 81 要注意到 ''64 + 17 = 81''.使用 MAKEDEV 指令稿的话,你应该输入: linux# cd /devlinux# ./MAKEDEV ttyS17 注意: SIIG 的 IO1812 手册上列出的 COM5-COM8 是错的.它们应该是 COM5=0x250, COM6=0x258, COM7=0x260, 以及 COM8=0x268. 注意: Digi PC/8 Interrupt Status Register 是 0x140. 注意: 对於 AST Fourport,你必须在 rc.serial 中指定 skip_test. 3.3 智慧型多埠板的注意事项 阅读随附驱动程式而来的资讯. 这些板使用了特殊的装置,而非标准的.这些资 讯视你的硬体而定. 4. 你应知道的有趣程式4.1 什麽是 getty? getty 是在你签入 Unix 机器的时候处理签入程序的一支程式. 如果你希望你的 Linux 机器能够使用数据机拨入的话你会需要 getty. 如果你只需要用数据机拨 出的话你不需要用 getty. 有三种经常配合 Linux 使用的版本: getty_ps, mgetty 以及 agetty. 这些程式的语法是不同的,所以不论你用什麽 getty 请 确定你使用了正确的语法. 关於 getty_ps 大部分 Linux 安装套件都安装了 getty_ps 套件.它包含了两个程式: getty 是 由主控台,以及终端机设备所使用,而 uugetty 则是由数据机所使用的. 因为 我本身是使用这个版本的 getty,所以在这份文件中我将会著重於此套件. 关於 mgetty mgetty 是一个在数据机上使用的 getty 版本. 除了能够允许签入之外, mgetty 也提供传真(FAX)支援及自动 PPP 侦测. 这套 mgetty 的文件写得相当 地好,因而不需要再补充什麽.请参考它的安装说明. 你也可以在 [52]http://www.leo.org/~doering/mgetty/ 找到 mgetty 的最新资讯. 关於 agetty agetty 是第三种 getty 变型. 它是 getty 一个简单的,完整的功能实作,适 合用在虚拟主控台或终端机而非数据机上. 4.2 什麽是 setserial? setserial 是一支可以让你查看并修改串列设备各种属性的程式,包括它们所使 用的埠位址,中断,以及其它串列埠选项. 你可以藉由执行不加参数的 setserial 来获取版本讯息. 在你的 Linux 系统启动时,只有 ttyS{0-3} 会以预设的 IRQ 4 以及 3 来进行 配置. 所以,如果你有任何由其它界面卡提供的串列埠或是 ttyS{0-3} 使用非 标准的硬体中断(IRQ)的话, 你必须用这支程式来配置这些串列埠.要知道所有 的选项请参考线上手册. 5. 我怎麽用数据机拨号出去?5.1 硬体需求 首先,要确定你拥有正确的连接线.你的数据机需要一条直接的 (straight through) 连接线,没有任何跳线 (no pins crossed). 任何一家电脑商店都有 .要确定接头的形式是对的.如果你使用的是 DB25 串列埠,它应该是公的 DB25 接头. 把你的数据机接到其中一个串列埠上.如果你需要关於这个动作的 辅助说明请参考你的数据机手册. 内接式数据机注意事项 对於内接式数据机而言,你不需要连接线.内接式数据机不需要串列埠,它自己 有内建一个. 你只要配置一个没有被使用的硬体中断给它,并且配置该埠的输出 入位址.如果你卡在某个问题上请参考你的数据机手册. 同样,如果你需要关於 选择中断以及位址上的帮助,参阅 [53]我能使用超过两个的串列装置吗? 一节的 说明. 在某些主机板上你必须关掉被数据机取代的串列埠以避免冲突. 这可经由跳线或 BIOS 的设定来办到,视你的主机板而定.查阅你的主机板手册. 由於 IBM8514 视讯卡的一个错误,如果你想要将你的内接式数据机设在 ttyS3 的话可能会遭遇一些问题. 如果 Linux 没有侦测到你设在 ttyS3 上的内接式数 据机,你可以使用 setserial 程式来设定然後数据机将会正常运作. 设在 ttyS{0-2} 上的内接式数据机在侦测上应该不会有任何问题. 由於此视讯卡的错 误 Linux 在 ttyS3 没有任何自动侦测的动作. 5.2 与你的数据机交谈 在你使用复杂的通讯程式如 SLIP 或 PPP 之前先以 kermit 或其它简单的通讯程 式来测试这些设定. 你可以从 [54]http://www.columbia.edu/kermit/ 以及映 射节点上找到最新的 kermit 版本. 例如,要是你的数据机设在 ttyS3 上,而 且可以接受 115200 bps 的话,你可以这样做: linux# kermitC-Kermit 6.0.192, 6 Sep 96, for Linux Copyright (C) 1985, 1996, Trustees of Columbia University in the City of New York.Default file-transfer mode is BINARYType ? or HELP for help.C-Kermit>set line /dev/ttyS3C-Kermit>set carrier-watch offC-Kermit>set speed 115200/dev/ttyS3, 115200 bpsC-Kermit>cConnecting to /dev/ttyS3, speed 115200.The escape character is Ctrl-\ (ASCII 28, FS)Type the escape character followed by C to get back,or followed by ? to see other options.ATE1Q0V1 ; 这是你键入的并按下 Enter 键OK ; 数据机应该回应这个 如果你的数据机对 AT 指令群有回应,那麽你可以假定你的数据机在 Linux 这一 端能正确运作. 现在试著拨给另一台数据机: ATDT7654321 其中 7654321 是一个电话号码.如果你的是脉冲线路(pulse line)的话用 ATDP 而不是 ATDT. 如果可以拨得出去,你的数据机就可正常运作. 回到 kermit 的提示符号下,按住 Ctrl 键,按下 \ (backslash) 录,然後放开 Ctrl 录,再按下 C 键: Ctrl-\-C(Back at linux)C-Kermit>quitlinux# 这个不过是用"手动"方式的拨号测试.正常的方法是让 kermit 用它内建的数据 机资料库自动为你拨号,例如,使用 US Robotics (USR) modem: linux# kermitC-Kermit 6.0.192, 6 Sep 1997, for Linux Copyright (C) 1985, 1996, Trustees of Columbia University in the City of New York.Default file-transfer mode is BINARYType ? or HELP for helpC-Kermit>set modem type usr ; 选择数据机型式C-Kermit>set line /dev/ttyS3 ; 选择通讯装置C-Kermit>set speed 115200 ; 设定通讯速度C-Kermit>dial 7654321 ; 拨号 Number: 7654321 Device=/dev/ttyS3, modem=usr, speed=115200 Call completed.<BEEP>Connecting to /dev/ttyS3, speed 115200The escape character is Ctrl-\ (ASCII 28, FS).Type the escape character followed by C to get back,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -