Linux 版 (精华区)
发信人: clx (楚留香), 信区: Unix
标 题: PPP HOWTO 中译版(10)
发信站: 紫 丁 香 (Sat Jun 27 16:59:41 1998), 转信
PPP HOWTO 中译版 : 设定你的数据机及串列埠
Previous: 取得你所需的 PPP 伺服器资讯
Next: 建立名称到位址解析(DNS)
9. 设定你的数据机及串列埠
你应该确认你的数据机设定正确而且你知道它连接到哪个串列埠.
谨记:-
DOS com1: = Linux /dev/cua0 (and /dev/ttyS0)
DOS com2: = Linux /dev/cua1 (and /dev/ttyS1)
等等
还要提醒你就是如果你有四个串列埠,标准 PC 上让 com1 与 com3
共用 IRQ4 且让 com2 与 com4 共用 IRQ3.
如果你有其它机装置和串列埠共用一个 IRQ 的话可能会有问题.
你必须确定你的数据机串列埠拥有它自己,唯一的一个 IRQ.许多
现在的串列埠卡(与品质较佳的主机板上的串列埠)允许你将串列埠
上的 IRQ 移开.
如果你在用 Linux 2.0.X 核心,你可以用 cat /proc/interrupts 检查
使用中的 IRQ,你会看到像这样的输出结果
0: 6766283 timer
1: 91545 keyboard
2: 0 cascade
4: 156944 + serial
7: 101764 WD8013
10: 134365 + BusLogic BT-958
13: 1 math error
15: 3671702 + serial
这里显示了一个串列埠在 IRQ4 (一个滑鼠)与一个串列埠在 IRQ1
5. (也有一串列埠在 com2, IRQ3 与 com4 是在 IRQ14,但并未使
用,没有显示出来).
请小心 - 如果你要调你的 IRQ 的话你要确实知道你在做些什麽!
你不只需要打开你的电脑外壳,将界面卡拔下并调整 jumper,你还
需要知道那个占用什麽 IRQ. 以我的例子来说,这完全是以 SCSI
为主的 PC,因此我将主机板上的通常会占用 IRQ14 与 15 的 IDE
界面关掉.
你还需要注意如果你的 PC 还跑了其它的作业系统,更动 IRQ 的位
址可能使那个作业系统启动不正常,或根本开不了机!
如果真的将串列埠移到了非标准的 IRQ,那麽你需要告诉 Linux 每
一个埠所用的 IRQ 位址. 这可以用 setserial 指令达成,而且最好
将它放到 rc.local,或在 SysV 系统中由 rc.local 所呼叫的
rc.serial 里面成为开机过程的一部份. 以我上面所列的机器来说,
用这样的指令
/bin/setserial -b /dev/ttyS2 IRQ 11
/bin/setserial -b /dev/ttyS3 IRQ 15
然而,如果你使用由 kerneld 行程所负责的动态载入串列模组,你不
能像这样每次开机时设定一次 IRQ 後就把它忘了. 这是因为如果
串列模组被移除,Linux 就会忘了这些特殊的设定.
因此,如果你以动态方式载入串列模组,你必须要在每入载入模组
时重新设定 IRQ 才行.
9.1. 串列埠与速度相容性的注意事项
如果你使用高速(外接式)数据机(14,400 baud 或更高),你的串列
埠速度必须能够处理这种数据机所产生的资料量,特在是当数据机
在压缩资料时.
你的串列埠需要一种新型的 UART (Universal Asynchronous
Receiver Transmitter),像是 16550(A). 如果你在使用一部旧的
机器(或旧的串列卡),很可能串列埠上只有旧的 8250 UART,这在
你使用高速数据机时可能会发生问题.
使用这个指令
setserial -a /dev/ttySx
让 Linux 回报你使用的 UART 类型.如果你没有 16550A 型的
UART,去买一块新的串列卡(不到 $50). 当你买一块新卡时,确定
你能调整上面的 IRQ!
注意: 最早版本的 16550 UART 晶片上有瑕疵.这点很快就被发现
了而且也发行了新版的晶片 - 16550A UART. 但仍有少部份有瑕疵
的晶片流入了市面.虽然不太可能刚好就让你买到,但你还是应该
看一下晶片类型是不是 16550A,特别是在一些较早期的串列卡上.
9.2. 串列埠名称
以前,Linux 用 cuaX 表示拨出的串列埠名而 ttySx 表示拨入的名
称.
自核心 2.0.X 之後这样的要求已经改变了,所以你应该可以用
ttySx 同时表示拨入及拨出的名称. 据我了解 cuaX 的装置名称在未
来版本的核心中可能会取消.
9.3. 配置你的数据机
为使用 PPP 你将得正确地配置你的数据机 - 要完成这件工作请阅
读你的数据机使用手册! 大部分的数据机都有 PPP 所需求的的出厂
预设选项. 最基本的配置是:-
硬体流量控制 (RTS/CTS) (&K3 在许多采用 Hayes 指令集的数
据机)
你应该要研究的其它设定(使用标准 Hayes 指令)是:
E1 开启指令的本地回应 (chat 运作所需)
Q0 回报执行结果代码 (chat 运作所需)
S0=0 关闭自动回应 (除非你想让你的数据机接听电话)
&C1 只在连线之後侦测载波
&S0 Data Set Ready (DSR)永远设为开启
(看情况) Data Terminal Ready
有一个站台提供你不断增加的数据机款式的设定,可能会对你有所
帮助,在 Modem setup information.
在你的电脑与数据机之间的数据机串列面界面如何运作也值得研究
了解. 大部分现代的数据机都允许你以固定的速度使用串列界面,
即使电话线路界面切换到最高的速度它跟远端数据机都能够处理.
这称为 split speed operation.如果你的数据机能支援这项功
能,把数据机的串列界面锁定在它的最高速度(通常是 115,200
baud ,但对 14,400 数据机来说可能是 38,400 baud).
使用你的通讯软体(例如 minicom)找出关於你数据机的配置资讯
并且设为 PPP 所需的设定. 许多数据机会在 AT&V 指令的回应中
回报它们目前的设定状况,但是你应该查看一下你的数据机使用手
册.
如果你把设定全都弄乱了,那麽你可以藉由发出 AT&F 指令回到稳
定状态(通常可以) - 回到出厂设定. (在我遇过的大部分现代
数据机中,出厂的设定包含所有使用 PPP 所需的设定 - 但是你应
该做个检查).
一旦你找出了必要的设定字串就把它写下来.然後你必须做个决定:
你可以将这些设定值存在数据机上的非挥发性记忆体中这样可以用
适当的 AT 指令就可叫出. 另一个做法是将这些正确的设定在 PPP
的拨号过程中传入.
如果你只从 Linux 下使用数据机连接到 ISP 伺服器,最简单的做
法就是将这些设定值存入数据机上的非挥发性记忆体(non-volatile
RAM).
另一方面,如果你要还在其它的应用程式或作业系统上使用数据
机,最保险的做法是在每次拨号时才将这些资讯传入, 如此可以确
保在每次拨号时数据机总是在正确的状态.(记下这些设定字串还有
个好处就是在数据机遗失了记忆体的内容时,这确实可能发生).
9.4. 串列流量控制注意事项
当资料在串列通讯线路上流动的时候,可能会发生资料到达的比电
脑能处理的还要快这种情况(电脑可能忙著做其它的事 - 记得,
Linux 是一个多使用者,多工的作业系统). 为了确保资料不会漏
失(在缓冲区中的资料不会超载而因此漏失掉),需要某些控制资
料流量的方法.
有两种方法可以在串列线路上达成这个目的:-
使用硬体信号(Clear To Send/Request to Send - CTS/RTS)
使用软体信号(control S and control Q, also known as
XON/XOFF).
虽然後者用在终端机(文字)连结上可能很好,但是在 PPP 上的资
料使用整个 8 bits 编码空间 - 而且在资料中的某个地方相当可
能存在会被转成 control S 以及 control Q 的位元组. 所以,如
果数据机设成使用软体流量控制的话,那麽传输很容易被扰乱!
对於使用 PPP 的高速连结(使用 8 bits 资料编码)来说硬体流量
控制是很重要的,因此你必须使用硬体流量控制.
9.5. 测试你的数据机的拨出功能
在你完成了串列埠与数据机的设定之时试著拨到你的 ISP 上看看能
否连上以确定设定是否有误.
使用你的终端机通讯软体(像是 minicom),拨到你想使用 PPP 连
线的那台 PPP 伺服器.
(注意: 在这个阶段我们并不尝试建立 PPP 连线 - 只是要证实我
们拥有正确的电话号码以及为了签入并且起动 PPP 而确实地找出伺
服器究竟传送给我们什麽讯息).
在这个过程中,可以截取(记录到一个档案里)整个签入的过程或
者是小心地(非常小心地)确实写下远端伺服器所给你提示输入你
的使用者名称以及密码的讯息(以及任何建立 PPP 连线需要下达的
指令).
如果你的伺服器使用 PAP,你可能不会看见签入的提示符号,而是
(以文字表示的)连结通讯协定(看起来像是垃圾)出现在你的萤幕
上.
一些警告:-
某些伺服器相当聪明: 你可以用文字模式的使用者名称/密码方
式或使用 PAP 签入. 因此如果你的 ISP 或公司站台使用 PAP
但你没有立刻在萤幕上看到垃圾,也并不表示你做错了.
某些站台要求你先输入一些起始的文字然後才启动标准的 PAP
程序.
某些 PPP 伺服器是被动的 - 它们就坐在那里等待而不送出任
何资料,直到客户端拨入并送出合法的连结控制协定. 如果你
要连接的 PPP 伺服器是被动模式的,你将不会看到任何垃圾!
某些伺服器在你按下 ENTER 前不会启动 PPP - 因此如果你正确
签入但未看到垃圾的话可以试试!
这最少值得拨接两次 - 某些伺服器会在每次你签入时改变提示
(例如依时间改变!). 你的 Linux 机器在每次你拨入的时候要能
够辨认的两个主要的提示是:-
要求你输入使用者名称的提示;
要求你输入密码的提示;
如果你必须发出某个指令来起动伺服端的 PPP,那麽你也需要找出
一旦你签入之後伺服器所给你输入指令以启动 PPP 的提示.
如果你的伺服器自动起动 PPP 的话,一旦你签入完成,你将开始见
到萤幕上出现垃圾 - 这是 PPP 伺服端传送给你的机器以起动并且
配置 PPP 连线的资讯.
这看起来应该会是像这样的东西:-
~y}#.!}!}!} }8}!}$}%U}"}&} } } } }%}& ...}'}"}(}"} .~y}
(而且它还会一直进来! )
在某些系统中 PPP 必须在伺服端上明确地加以起动.这通常是因为
该伺服器被设定成允许使用相同使用者名称/密码配对来做 PPP 签
入及一般使用界面(shell) 的签入. 如果是这样,一旦你签入就发
出该指令.再一次,你将会见到 PPP 连线伺服端起动的垃圾资讯
- 所以现在你可以挂断了.
如果你没有在连上时立即在萤幕上看到这些垃圾(如果必要的话先签
入并启动 PPP 伺服器), 按下 Enter 试试能否启动 PPP 伺服器...
这个时候,你就可以挂断你的数据机(通常是,快速地键入 +++ 一
旦你的数据机回应 OK 然後接著下 ATHO 指令).
如果你不能使你的数据机运作的话,阅读你的数据机使用手册,你
通讯软体的线上使用手册以及 Serial HOWTO! 一旦你解决该问题,
继续进行前面所说的.
PPP HOWTO 中译版 : 设定你的数据机及串列埠
Previous: 取得你所需的 PPP 伺服器资讯
Next: 建立名称到位址解析(DNS)
--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.244.16]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.510毫秒