Windows 通過(guò)串行電纜直接連接到SCO OpenServer 5.0.5 手記
湖北省仙桃市信用聯(lián)社財(cái)務(wù)電腦科 呂永輝 2002年2月20日
聯(lián)網(wǎng)目的及要求:
1. 客戶端:Windows 服務(wù)端:SCO OpenServer 5.0.5協(xié)議:PPP 聯(lián)結(jié)方式:串行電纜
2. 兩端各自分配一個(gè)IP地址,實(shí)現(xiàn)客戶端到服務(wù)端的Telnet、ftp、pop3、smtp等訪問(wèn)
聯(lián)網(wǎng)前的分析:
SCO OpenServer 5.0.5本身支持PPP撥入連接,關(guān)鍵在于如何配置不通過(guò)Modem接入;Windows的PPP連接應(yīng)該通過(guò)“撥號(hào)連接”來(lái)實(shí)現(xiàn),其中必須解決的是沒(méi)有Modem如何撥號(hào)?是否可以找到將串口模擬成Modem的程序?
具體的實(shí)現(xiàn)過(guò)程:
1. 準(zhǔn)備工作:
1) 按照上面的分析,筆者首先尋找“串口模擬Modem”的程序,在網(wǎng)上找到一個(gè)“Null-Medem”的驅(qū)動(dòng)程序,解決了客戶端撥號(hào)的一個(gè)基本問(wèn)題;
2) 隨后,在SCO OpenServer 5.0.5上發(fā)現(xiàn)了一個(gè)“Serial_cable_between_2_PCs”的Modem類型。最初筆者以為該類型的Modem可以實(shí)現(xiàn)串口的撥入連接,于是mkdev modem在tty1A上安裝了一個(gè)“Serial_cable_between_2_PCs”類型的Modem,并且設(shè)置為Answer – On。
3) 做好了一根串口直連線(Null-Modem),說(shuō)明如下:(9針串口針腳說(shuō)明)
①DCD Null-Modem連接方法
②RXD 2 3
③TXD 3 2
④DTR 4 1&6
⑤GND 5 5
⑥D(zhuǎn)SR 1&6 4
⑦RTS 7 8
⑧CTS 8 7
⑨未使用
并將兩臺(tái)機(jī)器的串口直接連接起來(lái)。
4) SCO OpenServer 中netconfig 添加一個(gè)PPP撥入連接,添加一個(gè)PPP撥入用戶
例:nppp 目錄:/usr/lib/ppp SHELL:/usr/lib/ppp/ppp
2. 初試牛刀:
打開(kāi)Windows端的撥號(hào)網(wǎng)絡(luò),配置好撥號(hào)連接開(kāi)始撥號(hào)。但是,結(jié)果并非如筆者所想的那樣,反饋的錯(cuò)誤提示是“調(diào)制解調(diào)器沒(méi)有響應(yīng)”。
問(wèn)題出在什么地方呢?筆者仔細(xì)分析了Null-Modem驅(qū)動(dòng)程序的“.inf”文件,發(fā)覺(jué)他與普通Modem 驅(qū)動(dòng)的區(qū)別在于初始化、撥號(hào)、響應(yīng)等指令和信息,出現(xiàn)上錯(cuò)誤信息的原因應(yīng)該是SCO端的響應(yīng)信息與之不匹配。通過(guò)瀏覽調(diào)制解調(diào)器的日志紀(jì)錄,筆者對(duì)Null-Modem的“.inf”文件作了少量的修改,重新安裝新的Null-Modem驅(qū)動(dòng);同時(shí)修改了SCO端的/usr/lib/uucp目錄中的“Serial_cable_between_2_PCs”Modem驅(qū)動(dòng)的代碼并重新編譯。
再次撥號(hào),仍然無(wú)法完成PPP連接。于是筆者檢測(cè)SCO端的tty1A中的getty進(jìn)程,發(fā)覺(jué)該進(jìn)程是每隔一段時(shí)間自動(dòng)啟動(dòng)一次,把SCO端的Modem改為正常的Modem類型,該進(jìn)程的啟動(dòng)依然如此,可見(jiàn)SCO端用Modem 響應(yīng)PPP的撥入連接不適宜Null-Modem的方式,怎么辦?怎么辦?
3. 背水一戰(zhàn):
何不始終啟動(dòng)一個(gè)getty進(jìn)程總在那兒響應(yīng)請(qǐng)求呢?
先disable tty1A ,修改/etc/gettydefs中的部分信息(對(duì)應(yīng)getty的提示符信息,使其反饋部分與Null-Modem對(duì)應(yīng)的響應(yīng)信息)。加入一行:
q0 # B115200 HUPCL # B115200 CS8 SANE HUPCL TAB3 IXANY #~r
r
login: # q0
修改/etc/inittab中:
Se1a:234:respawn:/etc/getty -f -s 1 tty1a q0
新建文件/etc/gettyacts:
PPP:/usr/lib/ppp/ppp:-u nppp:0x7e 0xff
再enable tty1a,撥號(hào)連接,OK!
但是,并非每次撥號(hào)連接均能成功,有待改善。
備注:上述文檔中有些部分不夠詳盡,部分細(xì)節(jié)諸位可以自己去測(cè)試、體會(huì)。
附錄:LYH’s Null-Modem Driver 的INF文件內(nèi)容。
==================================================================
; LYH's Direct Serial Link to SCO OpenServer 5.0.5
; for Windows 9x
[Version]
Signature="$CHICAGO"
Class=Modem
ClassGUID={4D36E96D-E325-11CE-BFC1-08002BE10318}
Provider=%AGENDA%
LayoutFile=LAYOUT.INF
[Manufacturer]
%Man% = Null
[Null]
%MC02% = MC02, RAS-GENERIC
[MC02]
AddReg=All, Common, MC02Reg, 115200, EXTERNAL
[All]
HKR,,FriendlyDriver,,Unimodem.vxd
HKR,,DevLoader,,*VCOMM
HKR,,PortSubClass,1,02
HKR,,ConfigDialog,,modemui.dll
HKR,,EnumPropPages,,"modemui.dll,EnumPropPages"
[EXTERNAL]
HKR,, DeviceType, 1, 01
;[PARALLEL]
;HKR,, DeviceType, 1, 04
;HKR,,Override,,Paralink.vxd
;HKR,, DCB, 1, 1C,00,00,00, 00,00,06,00, 15,20,00,00, 00,00, 0a,00, 0a,00, 08, 00, 00, 11, 13, 00, 00, 00
[Common]
HKR, Answer, 1,,""
HKR, Hangup, 1,, "Bye"
HKR, Hangup, 2,, "NoResponse"
HKR, Settings, DialSuffix,, ""
; DCB's - dwords and words are byte reversed
; ByteSize (Number of bits/byte, 4-8)
; Parity (0-4=None,Odd,Even,Mark,Space)
; StopBits (0,1,2 = 1, 1.5, 2)
; |DCBLength |BaudRate |Bit Mask |Rsvd |XonLim|XofLim| | | |Xon|Xof|Err|Eof|Evt
[115200]
HKR,, DCB, 1, 1C,00,00,00, 00,c2,01,00, 15,20,00,00, 00,00, 0a,00, 0a,00, 08, 00, 00, 11, 13, 00, 00, 00
[MC02Reg] Null-Modem
HKR, Init, 1,, ""
HKR, Init, 2,, "NoResponse"
HKR, Settings, Prefix,,""
HKR, Settings, DialPrefix,, ""
HKR, Settings, Terminator,, ""
HKR, Monitor, 1,, "None"
HKR, Answer, 1,, "HELLO"
HKR, Answer, 2,, "NoResponse"
; Properties - dwords and words are byte reversed
; |Dial Options |InactivityTimeout |Speaker Mode |Max DTE Rate
; |CallSetupFailTimeout |Speaker Volume |Modem Options |Max DCE Rate
HKR,, Properties, 1, 00,00,00,00, 00,00,00,00, 00,00,00,00, 00,00,00,00, 00,00,00,00, 30,00,00,00, 00,c2,01,00, 00,c2,01,00
HKR, Responses, "~", 1, 02, 00, 00, 00, 00, 00, 00,00,00,00 Accept any recvd data as CONNECTED.
HKR, Responses, "{", 1, 02, 00, 00, 00, 00, 00, 00,00,00,00 Accept any recvd data as CONNECTED.
HKR, Responses, "", 1, 02, 00, 00, 00, 00, 00, 00,00,00,00 Accept any recvd data as CONNECTED.
HKR, Responses, "", 1, 02, 00, 00, 00, 00, 00, 00,00,00,00 Accept any recvd data as CONNECTED.
HKR, Responses, "", 1, 02, 00, 00, 00, 00, 00, 00,00,00,00 Accept any recvd data as CONNECTED.
HKR, Responses, "", 1, 02, 00, 00, 00, 00, 00, 00,00,00,00 Accept any recvd data as CONNECTED.
HKR, Responses, "", 1, 02, 00, 00, 00, 00, 00, 00,00,00,00 Accept any recvd data as CONNECTED.
[Strings]
AGENDA = "LYH"
Man = "LYH"
MC02 = "LYH's Serial Link to SCO Unix"
本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/101/showart_163.html |