1 | CKUKER.BWR "Beware File" for C-Kermit Version 6.0 -*- text -*- |
---|
2 | |
---|
3 | UNIX VERSION |
---|
4 | |
---|
5 | As of C-Kermit version: 6.0.192 |
---|
6 | This file last updated: Fri Sep 6 23:23:23 1996 |
---|
7 | |
---|
8 | Authors: Frank da Cruz and Christine M. Gianone, Columbia University. |
---|
9 | |
---|
10 | Copyright (C) 1985, 1996, Trustees of Columbia University in the City of New |
---|
11 | York. The C-Kermit software may not be, in whole or in part, licensed or |
---|
12 | sold for profit as a software product itself, nor may it be included in or |
---|
13 | distributed with commercial products or otherwise distributed by commercial |
---|
14 | concerns to their clients or customers without written permission of the |
---|
15 | Office of Kermit Development and Distribution, Columbia University. This |
---|
16 | copyright notice must not be removed, altered, or obscured. |
---|
17 | |
---|
18 | WHAT IS IN THIS FILE |
---|
19 | |
---|
20 | This is the "beware file" for the UNIX version of C-Kermit. It contains |
---|
21 | hints and tips, frequently asked questions (and answers), troubleshooting |
---|
22 | advice, limitations and restrictions, known bugs, etc, that apply to all UNIX |
---|
23 | variations, as well as to specific ones like HP-UX, AIX, SunOS, Solaris, |
---|
24 | Unixware, NeXTSTEP, etc etc. It should be read in conjunction with the |
---|
25 | system-independent C-Kermit "beware file", ckcker.bwr, which contains similar |
---|
26 | information that applies to all versions of C-Kermit (VMS, OS/2, AOS/VS, VOS, |
---|
27 | etc, as well as to UNIX). |
---|
28 | |
---|
29 | CONTENTS: |
---|
30 | |
---|
31 | (0) DOCUMENTATION |
---|
32 | (1) IMPORTANT FILES |
---|
33 | (2) BINARIES |
---|
34 | (3) NOTES ON SPECIFIC UNIX VERSIONS |
---|
35 | (3.1) C-KERMIT AND AIX |
---|
36 | (3.2) C-KERMIT AND HP-UX |
---|
37 | (3.3) C-KERMIT AND LINUX |
---|
38 | (3.4) C-KERMIT AND NEXTSTEP |
---|
39 | (3.5) C-KERMIT AND QNX |
---|
40 | (3.6) C-KERMIT AND SCO UNIX, XENIX, ODT, AND OPENSERVER |
---|
41 | (3.7) C-KERMIT AND SOLARIS |
---|
42 | (3.8) C-KERMIT AND SUNOS |
---|
43 | (3.9) C-KERMIT AND ULTRIX |
---|
44 | (3.10) C-KERMIT AND UNIXWARE |
---|
45 | (3.11) C-KERMIT AND APOLLO SR10 |
---|
46 | (3.12) C-KERMIT AND TANDY XENIX 3.0 |
---|
47 | (3.13) C-KERMIT AND OSF/1 (DIGITAL UNIX) |
---|
48 | (3.14) C-KERMIT AND SGI IRIX |
---|
49 | (3.15) C-KERMIT AND THE BEBOX |
---|
50 | (4) GENERAL UNIX-SPECIFIC LIMITATIONS AND BUGS |
---|
51 | (5) INITIALIZATION AND COMMAND FILES |
---|
52 | (6) COMMUNICATION SPEED SELECTION |
---|
53 | (7) COMMUNICATIONS AND DIALING |
---|
54 | (8) HARDWARE FLOW CONTROL |
---|
55 | (9) TERMINAL CONNECTION AND KEY MAPPING |
---|
56 | (10) FILE TRANSFER |
---|
57 | (11) EXTERNAL FILE TRANSFER PROTOCOLS |
---|
58 | (11.1) C-KERMIT AS AN EXTERNAL PROTOCOL |
---|
59 | (11.2) INVOKING EXTERNAL PROTOCOLS FROM C-KERMIT |
---|
60 | (11.3) USING C-KERMIT WITH TERM |
---|
61 | (12) MISCELLANEOUS |
---|
62 | |
---|
63 | (0) DOCUMENTATION |
---|
64 | |
---|
65 | C-Kermit is documented in the book "Using C-Kermit" by Frank da Cruz and |
---|
66 | Christine M. Gianone, Digital Press, Burlington, MA, USA, ISBN 1-55558-164-1. |
---|
67 | Price: US $39.95. To order, call Columbia University, New York City, |
---|
68 | at +1 212 854-3703, or Digital Press / Butterworth-Heinemann at: |
---|
69 | |
---|
70 | +1 800 366-2665 (Massachusetts office for USA & Canada) |
---|
71 | +441 1993 414414 (Rushden, England office for Europe) |
---|
72 | +61 2 372-5511 (Chatswood, NSW, office for Australia & New Zealand) |
---|
73 | +65 220-3684 (Singapore office for Asia) |
---|
74 | |
---|
75 | A German edition is available from Verlag Heinz Heise in Hannover, Germany, |
---|
76 | Tel. +49 (05 11) 53 52-0, Fax. +49 (05 11) 53 52-1 29. |
---|
77 | |
---|
78 | New features added since these books were published are documented in the |
---|
79 | ckcker.upd file. |
---|
80 | |
---|
81 | TECHNICAL SUPPORT |
---|
82 | |
---|
83 | Please consult the documentation listed above, plus the ckcker.bwr file and |
---|
84 | this file itself, before submitting questions, reporting problems, etc, to: |
---|
85 | |
---|
86 | E-Mail: kermit-support@columbia.edu |
---|
87 | |
---|
88 | News: comp.protocols.kermit.misc |
---|
89 | |
---|
90 | Post: The Kermit Project |
---|
91 | Columbia University |
---|
92 | 612 West 115th Street |
---|
93 | New York NY 10025-7799 |
---|
94 | USA |
---|
95 | |
---|
96 | Fax: +1 212 663-8202 |
---|
97 | or: +1 212 662-6442 |
---|
98 | |
---|
99 | Telephone support also available: |
---|
100 | |
---|
101 | USA Only: +1 900 555-5595, cost: $2.50 per minute |
---|
102 | Anywhere: +1 212 854-5126, cost: $25.00 per call, payable via Visa or MC. |
---|
103 | |
---|
104 | |
---|
105 | (1) IMPORTANT FILES |
---|
106 | |
---|
107 | In addition to the published documentation, the following files are useful |
---|
108 | in troubleshooting: |
---|
109 | |
---|
110 | ckaaaa.hlp: Overview, file naming conventions, list of files, etc. |
---|
111 | ckuins.doc: Installation instructions for UNIX C-Kermit. |
---|
112 | ckccfg.doc: C-Kermit program configuration information. |
---|
113 | ckcker.bwr: C-Kermit "beware file" for all C-Kermit implementations. |
---|
114 | ckuker.bwr: C-Kermit "beware file" specific to UNIX (this file). |
---|
115 | ckcplm.doc: C-Kermit program logic manual. |
---|
116 | ckcker.upd: User documentation for features added since 5A(188). |
---|
117 | ckcXXX.upd: Program edit history for edit XXX, e.g. ckc190.upd. |
---|
118 | |
---|
119 | (2) BINARIES |
---|
120 | |
---|
121 | It is often dangerous to run a binary C-Kermit (or any other) program built |
---|
122 | on a different computer. Particularly if that computer had a different C |
---|
123 | compiler, libraries, operating system version, processor features, etc, and |
---|
124 | especially if the program was built with shared libraries. |
---|
125 | |
---|
126 | It is often OK to run a binary built on an earlier OS version, but it is |
---|
127 | rarely possible (or safe) to run a binary built on a later one, for example |
---|
128 | to run a binary built under SunOS 4.1.2 on a SunOS 4.1.1 system. |
---|
129 | |
---|
130 | When in doubt, build C-Kermit from the source code on the system where it is |
---|
131 | to be run (if possible!). If not, ask us for a binary specific to your |
---|
132 | configuration. We might have one, and if we don't, we might be able to get |
---|
133 | one. |
---|
134 | |
---|
135 | (3) NOTES ON SPECIFIC UNIX VERSIONS |
---|
136 | |
---|
137 | The following sections apply to specific UNIX versions. |
---|
138 | |
---|
139 | (3.1) C-KERMIT AND AIX |
---|
140 | |
---|
141 | Many problems reported with bidirectional terminal lines on AIX 3.2.x on the |
---|
142 | RS/6000. Workaround: don't use bidirectional terminal lines, or write some |
---|
143 | kind of shell script that turns getty off on the line before starting Kermit, |
---|
144 | or before Kermit attempts to do the SET LINE. (But note: These problems |
---|
145 | MIGHT be fixed in C-Kermit 6.0.192.) |
---|
146 | |
---|
147 | Reportedly, all versions of IBM AIX use the same (undocumented) lockfile |
---|
148 | conventions as RTAIX. If this is true, the "makes" for PS/2 AIX and AIX/370 |
---|
149 | will have to be changed to use the RTAIX convention (it may be sufficient to |
---|
150 | simply add -DRTAIX to the make entry). |
---|
151 | |
---|
152 | C-Kermit SET HOST or TELNET from AIX on an RS/6000 to another RS/6000 won't |
---|
153 | work right unless you set your local terminal type to something other than |
---|
154 | AIXTERM. When your terminal type is AIXTERM, AIX TELNET sends two escapes |
---|
155 | whenever you type one, and the AIX telnet server swallows one of them. |
---|
156 | This has something to do with the "hft" device. This behavior is reportedly |
---|
157 | removed in AIX 3.2. |
---|
158 | |
---|
159 | Transfer of binary -- and maybe even text -- files can fail on AIX 3.x. The |
---|
160 | problem was traced to a facility in AIX whereby a particular port can have |
---|
161 | character-set translation done for it by the tty driver. The following |
---|
162 | advice from a knowledgeable AIX user: |
---|
163 | |
---|
164 | (begin quote...) [This feature] has to be checked (and set/cleared) with |
---|
165 | a separate command, unfortunately stty doesn't handle this. To check: |
---|
166 | |
---|
167 | $ setmaps |
---|
168 | input map: none installed |
---|
169 | output map: none installed |
---|
170 | |
---|
171 | If it says anthing other than "none installed" for either one, it is likely |
---|
172 | to cause a problem with kermit. To get rid of installed maps: |
---|
173 | |
---|
174 | $ setmaps -t NOMAP |
---|
175 | |
---|
176 | However, I seem to recall that with some versions of AIX before 3.2.5, only |
---|
177 | root could change the setting. I'm not sure what versions - it might have |
---|
178 | only been under AIX 3.1 that this was true. At least with AIX 3.2.5 an |
---|
179 | ordinary user can set or clear the maps. (...end quote) And this would |
---|
180 | imply that Kermit itself cannot be coded to take care of this, because it |
---|
181 | would have to run as root. On the same problem, another knowledgeable AIX |
---|
182 | user says: |
---|
183 | |
---|
184 | The way to get information on the NLS mapping under AIX (3.2.5 anyway) is |
---|
185 | as follows. From the command line type: |
---|
186 | |
---|
187 | lsattr -l tty# -a imap -a omap -E -H |
---|
188 | |
---|
189 | Replace the tty number for the number sign above. This will give a human |
---|
190 | readable output of the settings that looks like this; |
---|
191 | |
---|
192 | # lsattr -l tty2 -a imap -a omap -E -H |
---|
193 | attribute value description user_settable |
---|
194 | |
---|
195 | imap none INPUT map file True |
---|
196 | omap none OUTPUT map file True |
---|
197 | |
---|
198 | If you change the -H to a -O, you get output that can easily be processed |
---|
199 | by another program or a shell script, for example: |
---|
200 | |
---|
201 | # lsattr -l tty2 -a imap -a omap -E -O |
---|
202 | #imap:omap |
---|
203 | none:none |
---|
204 | |
---|
205 | To change the settings from the command line, the chdev command is used |
---|
206 | with the following syntax. |
---|
207 | |
---|
208 | chdev -l tty# -a imap='none' -a omap='none' |
---|
209 | |
---|
210 | Again substituting the appropriate tty port number for the number sign, |
---|
211 | "none" being the value we want for C-Kermit. Of course, the above can also |
---|
212 | be changed by using the SMIT utility and selecting devices - tty. |
---|
213 | (...end quote) |
---|
214 | |
---|
215 | (3.2) C-KERMIT AND HP-UX |
---|
216 | |
---|
217 | During the C-Kermit 6.0 Beta cycle, something happened to ckcpro.w (or, more |
---|
218 | precisely, the ckcpro.c file that is generated from it) which causes HP |
---|
219 | optimizing compilers under HP-UX versions 7.0 and 8.0 (apparently on all |
---|
220 | platforms) as well as under HP-UX 9.0 on Motorola platforms only, to blow up. |
---|
221 | The symptoms vary from the system grinding to a halt, to the compiler |
---|
222 | crashing, to the compilation of the ckcpro.c module taking very long periods |
---|
223 | of time, like 9 hours. |
---|
224 | |
---|
225 | On HP-UX 9.0, a kernel parameter, maxdsiz (maximum process data segment size), |
---|
226 | seems to be important. On Motorola systems, it is 16MB by default, whereas on |
---|
227 | RISC systems the default is much bigger. Increasing maxdsiz to about 80MB |
---|
228 | seems to make the problem go away, but only if the system also has a lot of |
---|
229 | physical memory -- otherwise it swaps itself to death. |
---|
230 | |
---|
231 | Therefore, the C-Kermit 6.0 makefile entries for HP-UX 7.x and 8.x that do |
---|
232 | optimization, compile ckcpro.c first without optimization. For HP-UX 9.0, a |
---|
233 | special entry, hpux90mot, was added for Motorola makes; the regular entries |
---|
234 | optimize all modules. |
---|
235 | |
---|
236 | Even so, the optimizing compiler will often complain about "some optimizations |
---|
237 | skipped" on certain modules, due to lack of space available to the optimizer. |
---|
238 | You can always increase the space (the incantation depends on the particular |
---|
239 | compiler version -- see the makefile), but doing so tends to make the |
---|
240 | compilations take a much longer time. For example, the "hpux100o+" makefile |
---|
241 | entry adds the "+Onolimit" compiler flag, and about an hour to the compile |
---|
242 | time on an HP-9000/730. But it *does* produce an executable that is about |
---|
243 | 10K smaller :-) |
---|
244 | |
---|
245 | (3.2.0) Performance |
---|
246 | |
---|
247 | An unexpected slowness has been noted when transferring files over local |
---|
248 | Ethernet connections when an HP-UX system (9.0 or later, perhaps also earlier |
---|
249 | versions) is on the remote end. The following experiment was conducted to |
---|
250 | determine the cause. |
---|
251 | |
---|
252 | The systems were HP-UX 10.00 (on 715/33) and SunOS 4.1.3 (on Sparc-20), both |
---|
253 | on the same local 10Mbps Ethernet. Window size 20, packet length 4096, parity |
---|
254 | none, control prefixing "cautious", using only local disks on each machine -- |
---|
255 | no NFS. The file was a 1.08MB binary file (wermit), transferred in binary |
---|
256 | mode. Conditions were relatively poor: the Sun and the local net heavily |
---|
257 | loaded; the HP system is slow and memory-constrained. |
---|
258 | |
---|
259 | Client Server Send Receive |
---|
260 | Sun HP 36 18 <-- K cps |
---|
261 | HP HP 25 15 |
---|
262 | HP Sun 77 83 |
---|
263 | Sun Sun 60 60 |
---|
264 | |
---|
265 | So whenever HP is the server we have bad performance. Why? |
---|
266 | |
---|
267 | . Changing file display to CRT has no effect (so it's not the curses |
---|
268 | library on the client side). |
---|
269 | |
---|
270 | . Changing TCP RECV-BUFFER or SEND-BUFFER has very little effect. |
---|
271 | |
---|
272 | . Telling the client to make a binary-mode connection (SET TELNET BINARY |
---|
273 | REQUESTED, which successfully negotiates a binary connection) has no effect. |
---|
274 | |
---|
275 | BUT... If I start C-Kermit as a TCP server: |
---|
276 | |
---|
277 | set host * 3000 |
---|
278 | server |
---|
279 | |
---|
280 | and then from the client "set host blah 3000", I get: |
---|
281 | |
---|
282 | Client Server Send Receive |
---|
283 | HP HP 50 50 |
---|
284 | Sun HP 77 67 |
---|
285 | HP Sun 57 85 |
---|
286 | Sun Sun 57 50 |
---|
287 | |
---|
288 | Therefore the HP-UX telnet server or pty driver seems to be adding more |
---|
289 | overhead than the SunOS one, and most others. When going through this type of |
---|
290 | connection (a remote telnet server) there is nothing Kermit can do improve |
---|
291 | matters, since the telnet server and pty driver are between the two Kermits, |
---|
292 | and neither Kermit can have any influence over them (except putting the Telnet |
---|
293 | connection in binary mode, but that doesn't help). |
---|
294 | |
---|
295 | (3.2.1) HP-UX 5.21 |
---|
296 | |
---|
297 | Reportedly, "[there is] a bug in C-Kermit using HP-UX version 5.21 on the |
---|
298 | HP-9000 series 500 computers. It only occurs when the controlling terminal |
---|
299 | is using an HP-27140 six-port modem mux. The problem is not present if the |
---|
300 | controlling terminal is logged into an HP-27130 eight-port mux. The symptom |
---|
301 | is that just after dialing successfully and connecting Kermit locks up and |
---|
302 | the port is unusable until both forks of Kermit and the login shell are |
---|
303 | killed." |
---|
304 | |
---|
305 | (3.2.2) HP-UX 8.05 |
---|
306 | |
---|
307 | To make C-Kermit work on HP-UX 8.05 on a model 720, obtain and install HP-UX |
---|
308 | patch PHNE_0899. This patch deals with a lot of driver issues, particularly |
---|
309 | related to communication at higher speeds. |
---|
310 | |
---|
311 | (3.2.3) HP-UX 9.00 AND LATER |
---|
312 | |
---|
313 | HP-UX 9.00 and 9.01 need patch PHNE_3641 for hptt0.o, asio0.o, and ttycomn.o |
---|
314 | in libhp-ux.a. Contact Hewlett Packard if you need this patch. Without it, |
---|
315 | the dialout device (tty) will be hung after first use; subsequent attempts to |
---|
316 | use will return an error like "device busy". |
---|
317 | |
---|
318 | C-Kermit works fine -- including its curses-based file-transfer display -- on |
---|
319 | the console terminal, in a remote session (e.g. when logged in to the HP 9000 |
---|
320 | on a terminal port or when telnetted or rlogin'd), and in an HP-VUE hpterm |
---|
321 | window or an xterm window. |
---|
322 | |
---|
323 | Before you can use serial ports on the HP-9000, you must configure them as |
---|
324 | either "terminals" or "modems" with SAM ("peripheral devices"..."terminals and |
---|
325 | modems"), as described in the HP manual, "Configuring HP-UX for Peripherals: |
---|
326 | HP 9000". If you attempt to use a serial device before it has been configured |
---|
327 | this way, it will not work properly; typical symptoms are (a) no communication |
---|
328 | at all; (b) nonfunctional modem signals; and/or (c) massive amounts of |
---|
329 | character loss in both directions. |
---|
330 | |
---|
331 | In HP-UX 9.0, serial device names were different between HP9000 Series 700 and |
---|
332 | Series 800 systems. In 10.0, device file names (and also major and minor |
---|
333 | numbers) have "converged", as shown in the following table: |
---|
334 | |
---|
335 | Converged HP-UX Serial I/O Filenames : TTY Mux Naming |
---|
336 | --------------------------------------------------------------------- |
---|
337 | General meaning S800 9.0 S700 9.0 Convio 10.0 |
---|
338 | --------------------------------------------------------------------- |
---|
339 | tty* hardwired ports tty<X>p<Y> tty<YY> tty<D>p<p> |
---|
340 | diag:mux<X> diag:mux<D> |
---|
341 | --------------------------------------------------------------------- |
---|
342 | ttyd* dial-in modems ttyd<X>p<Y> ttyd<YY> ttyd<D>p<p> |
---|
343 | diag:ttyd<X>p<Y> diag:ttyd<D>p<p> |
---|
344 | --------------------------------------------------------------------- |
---|
345 | cua* auto-dial out cua<X>p<Y> cua<YY> cua<D>p<p> |
---|
346 | diag:cua<X>p<Y> |
---|
347 | --------------------------------------------------------------------- |
---|
348 | cul* dial-out cul<X>p<Y> cul<YY> cul<D>p<p> |
---|
349 | diag:cul<X>p<Y> |
---|
350 | --------------------------------------------------------------------- |
---|
351 | <X>= LU (Logical Unit) <D>= Devspec (decimal card instance) |
---|
352 | <Y> or <YY> = Port <p>= Port |
---|
353 | |
---|
354 | For dialing out, you should use the cua or cul devices. When C-Kermit's |
---|
355 | CARRIER setting is AUTO or ON, C-Kermit will pop back to its prompt |
---|
356 | automatically if the carrier signal drops, e.g. when you log out from the |
---|
357 | remote computer or service. If you use the tty<D>p<d> (e.g. tty0p0) device, |
---|
358 | the carrier signal is ignored. The tty<D>p<d> device should be used for |
---|
359 | direct connections where the carrier signal does not follow RS-232 |
---|
360 | conventions (use the cul device for hardwired connections through a true null |
---|
361 | modem). Do not use the ttyd<D>p<d> device for dialing out. |
---|
362 | |
---|
363 | Kermit's access to serial devices is controlled by "UUCP lockfiles", which are |
---|
364 | intended to prevent different users using different software programs (Kermit, |
---|
365 | cu, etc, and UUCP itself) from accessing the same serial device at the same |
---|
366 | time. When a device is in use by a particular user, a file with a special |
---|
367 | name is created in the /var/spool/locks directory. The file's name indicates |
---|
368 | the device that is in use, and its contents indicates the process ID (pid) of |
---|
369 | the process that is using the device. Since serial devices and the |
---|
370 | /var/spool/locks directory are not both publicly readable and writable, Kermit |
---|
371 | and other communication software must be installed setuid to the owner (bin) |
---|
372 | of the serial device and setgid to the group (daemon) of the /var/spool/locks |
---|
373 | directory. Kermit's setuid and setgid privileges are enabled only when |
---|
374 | opening the device and accessing the lockfiles. |
---|
375 | |
---|
376 | Let's say "unit" means a string of decimal digits (the interface instance |
---|
377 | number) followed by the letter "p" (lowercase), followed by another string of |
---|
378 | decimal digits (the port number on the interface), e.g. "0p0", "0p1", "1p0", |
---|
379 | etc. Then a normal serial device (driver) name consists of a prefix ("tty", |
---|
380 | "ttyd", "cua", "cul") followed by a unit, e.g. "cua0p0". Kermit's treatment |
---|
381 | of UUCP lockfiles is as close as possible to that of the HP-UX "cu" program. |
---|
382 | Here is a table of the lockfiles that Kermit creates for unit 0p0: |
---|
383 | |
---|
384 | Selection Lockfile 1 Lockfile 2 |
---|
385 | ------------ ------------ ------------ |
---|
386 | /dev/tty0p0 LCK..tty0p0 (none) |
---|
387 | * /dev/ttyd0p0 LCK..ttyd0p0 (none) |
---|
388 | /dev/cua0p0 LCK..cua0p0 LCK..ttyd0p0 |
---|
389 | /dev/cul0p0 LCK..cul0p0 LCK..ttyd0p0 |
---|
390 | <other> LCK..<other> (none) |
---|
391 | |
---|
392 | (* = Dialin device, should not be used.) |
---|
393 | |
---|
394 | The final case allows for symbolic links, etc, but, of course, it is not |
---|
395 | foolproof since we have no way of telling which device is really being used. |
---|
396 | |
---|
397 | When Kermit tries to open a dialout device whose name ends with a "unit", it |
---|
398 | searches the lockfile directory for all possible names for the same unit. For |
---|
399 | example, if user selects /dev/cul2p3, Kermit looks for lockfiles named |
---|
400 | LCK..tty2p3, LCK..ttyd2p3, LCK..cua2p3, and LCK..cul2p3. |
---|
401 | |
---|
402 | If any of these files are found, Kermit opens them to find out the ID (pid) of |
---|
403 | the process that created them; if the pid is still valid, the process is still |
---|
404 | active, and so the SET LINE command fails and the user is informed of the pid |
---|
405 | so s/he can use "ps" to find out who is using the device. |
---|
406 | |
---|
407 | If the pid is not valid, the file is deleted. If all such files (i.e. with |
---|
408 | same "unit" designation) are successfully removed, then the SET LINE command |
---|
409 | succeeds; up to four messages are printed telling the user which "stale |
---|
410 | lockfiles" are being removed. |
---|
411 | |
---|
412 | If the selected device was in use by "cu", Kermit can't open it, because "cu" |
---|
413 | has changed its ownership, so we never get as far as looking at the lockfiles. |
---|
414 | In the normal case, we can't even look at the device to see who the owner is |
---|
415 | because it is visible only to its (present) owner. In this case, Kermit says |
---|
416 | (for example): |
---|
417 | |
---|
418 | /dev/cua0p0: Permission denied |
---|
419 | |
---|
420 | When Kermit releases a device it has successfully opened, it removes all the |
---|
421 | lockfiles that it created. This also happens whenever Kermit exits "under its |
---|
422 | own power". |
---|
423 | |
---|
424 | If Kermit is killed with a device open, the lockfile(s) are left behind. The |
---|
425 | next Kermit program that tries to assign the device, under any of its various |
---|
426 | names, will automatically clean up the stale lockfiles because the pids |
---|
427 | they contain are invalid. |
---|
428 | |
---|
429 | (3.2.4) HP-UX 10.10 AND LATER |
---|
430 | |
---|
431 | C-Kermit is included as part of the HP-UX 10.xx operating system by contract |
---|
432 | between Hewlett Packard and Columbia University. Each level of HP-UX 10.xx |
---|
433 | includes a freshly built C-Kermit binary in /bin/kermit, which should work |
---|
434 | correctly. However, if you are building your own or downloading from |
---|
435 | Columbia, you should be aware that you can only use a binary that was built |
---|
436 | under the same OS level as you are running. As of C-Kermit version 6.0, HP-UX |
---|
437 | 10.xx binaries announce, in the startup herald and the VERSION command, the |
---|
438 | explicit HP-UX version they were built for: HP-UX 10.00, 10.10, 10.20, or |
---|
439 | 10.30. If there is a version mismatch, HP-UX does something like "Invalid |
---|
440 | version for shared lib /usr/lib/libc.1, IOT trap (core dumped)". |
---|
441 | |
---|
442 | Beginning in 10.10, libcurses is linked to libxcurses, the new UNIX95 (X/Open) |
---|
443 | version of curses, which has some serious bugs; some routines, when called, |
---|
444 | would hang and never return, some would dump core. Evidently libxcurses |
---|
445 | contains a select() routine, and whenever C-Kermit calls what it thinks is the |
---|
446 | regular (sockets) select(), it gets the curses one, causing a segmentation |
---|
447 | fault. There is a patch for this from HP, PHCO_8086, "s700_800 10.10 |
---|
448 | libcurses patch", "shared lib curses program hangs on 10.10", "10.10 enhanced |
---|
449 | X/Open curses core dumps due to using wrong select call", 96/08/02 (you can |
---|
450 | tell if the patch is installed with "what /usr/lib/libxcurses.1"; the unpatched |
---|
451 | version is 76.20, the patched one is 76.20.1.2. It has been verified that |
---|
452 | C-Kermit works OK with the patched library, but results are not definite for |
---|
453 | HP-UX 10.20 or higher. |
---|
454 | |
---|
455 | To ensure that C-Kermit works even on non-patched HP-UX 10.10 systems, |
---|
456 | separate makefile entries are provided for HP-UX 10.00/10.01, 10.10, 10.20, |
---|
457 | etc, in which the entries for 10.10 and above link with libHcurses, which is |
---|
458 | "HP curses", the one that was used in 10.00/10.01. |
---|
459 | |
---|
460 | (3.3) C-KERMIT AND LINUX |
---|
461 | |
---|
462 | Be sure to read the comments in the "linux:" makefile entry. There are all |
---|
463 | sorts of confusing issues caused by the many and varied Linux distributions. |
---|
464 | Some of the worst involve the curses library and header files: where are they, |
---|
465 | what are they called, which ones are they really? Ditto for UUCP lock files. |
---|
466 | |
---|
467 | Run C-Kermit in the regular console screen, which provides VT100 emulation via |
---|
468 | the "console" termcap entry, or under X-Windows in an xterm window. Before |
---|
469 | starting C-Kermit in an xterm window, tell the xterm window's shell to "stty |
---|
470 | sane". |
---|
471 | |
---|
472 | How to set up your PC console keyboard to send VT220 key sequences when using |
---|
473 | C-Kermit as your communications program in an X terminal window: Create a file |
---|
474 | somewhere (e.g. in /root/) called .xmodmaprc, containing something like the |
---|
475 | following: |
---|
476 | |
---|
477 | keycode 77 = KP_F1 ! Num Lock => DEC Gold (PF1) |
---|
478 | keycode 112 = KP_F2 ! Keypad / => DEC PF1 |
---|
479 | keycode 63 = KP_F3 ! Keypad * => DEC PF3 |
---|
480 | keycode 82 = KP_F4 ! Keypad - => DEC PF4 |
---|
481 | keycode 111 = Help ! Print Screen => DEC Help |
---|
482 | keycode 78 = F16 ! Scroll Lock => DEC Do |
---|
483 | keycode 110 = F16 ! Pause => DEC Do |
---|
484 | keycode 106 = Find ! Insert => DEC Find |
---|
485 | keycode 97 = Insert ! Home => DEC Insert |
---|
486 | keycode 99 = 0x1000ff00 ! Page Up => DEC Remove |
---|
487 | keycode 107 = Select ! Delete => DEC Select |
---|
488 | keycode 103 = Page_Up ! End => DEC Prev Screen |
---|
489 | keycode 22 = Delete ! Backspace sends Delete (127) |
---|
490 | |
---|
491 | Then put "xmodmap <filename>" in your .xinitrc file (in your login |
---|
492 | directory), e.g. |
---|
493 | |
---|
494 | xmodmap /root/.xmodmaprc |
---|
495 | |
---|
496 | Of course you can move things around. Use the xev program to find out key |
---|
497 | codes. |
---|
498 | |
---|
499 | Different UUCP lockfile conventions are used by Linux, depending on your Linux |
---|
500 | distribution. In C-Kermit 6.0, "make linux" uses /var/lock/LCK..name, decimal |
---|
501 | ASCII 10-byte PID string with leading spaces because -DLINUXFSSTND ("Linux File |
---|
502 | System Standard") is included in the compilation CFLAGS. If you remove this |
---|
503 | definition, C-Kermit will use the earlier arrangement of integer PID, |
---|
504 | /usr/spool/uucp/LCK..name. The leading spaces are required by FSSTND 1.2, but |
---|
505 | FSSTND 1.0 required leading zeros; to get the leading zeros, also include |
---|
506 | -DFSSTND10. Use whichever option agrees with your uucp, cu, tip, etc, |
---|
507 | programs. |
---|
508 | |
---|
509 | Building C-Kermit on Linux 1.1.33 and 1.1.34 gets fatal compilation errors |
---|
510 | due to inconsistencies in the Linux header files. Linux kernel versions prior |
---|
511 | to 1.1.33 and later than 1.1.34 should be OK. |
---|
512 | |
---|
513 | C-Kermit versions prior to 5A(190) did not support hardware flow control or |
---|
514 | high interface speeds for Linux. |
---|
515 | |
---|
516 | One Linux user reported problems dialing out using the /dev/cua device; |
---|
517 | "device busy" errors. He said that using the alternative name (driver) for |
---|
518 | the device, /dev/ttyS2, made the problem go away. |
---|
519 | |
---|
520 | Reportedly there is a bug in gcc 2.5.8 with signed to unsigned compares |
---|
521 | that can wreak havoc when Kermit (or most any other program) is compiled with |
---|
522 | this version of gcc; reportedly this can be worked around, at least in part, |
---|
523 | by adding "-fno-unroll-loops" to the gcc compilation options. |
---|
524 | |
---|
525 | Reportedly, if you have the iBCS2 (Intel Binary Compatibility Standard 2) |
---|
526 | module installed, you can also run SCO Xenix and UNIX binaries under Linux, |
---|
527 | including the SCO C-Kermit binaries, shareable libraries and all. |
---|
528 | (iCBS2 is available via anonymous ftp from tsx-11.mit.edu, along with an |
---|
529 | SCO libc_s compatibility module for Linux). |
---|
530 | |
---|
531 | Some Linux users reported that after doing a file transfer using the |
---|
532 | fullscreen display (thermometer), that "screen scrolling locks up" and the |
---|
533 | cursor "is stuck on the bottom of the screen". This probably only happens |
---|
534 | when using the console device. This turns out to be a problem with Linux |
---|
535 | ncurses. The workaround is to use "set file display crt" or "serial". The |
---|
536 | cure (reportedly) is to build C-Kermit with Linux ncurses 1.8.7 (or later). |
---|
537 | |
---|
538 | (Time passes...) Now (early 1996) we have increasing reports of C-Kermit core |
---|
539 | dumping in Linux 1.2.x, e.g. when the "set line" command is given. But they |
---|
540 | are conflicting -- it happens to some people, not to others. Not much can be |
---|
541 | said about this but: |
---|
542 | |
---|
543 | From: fdc@watsun.cc.columbia.edu (Frank da Cruz) |
---|
544 | Newsgroups: comp.protocols.kermit.misc |
---|
545 | Subject: Re: Kermit drops core at SET LINE /dev/cua1 |
---|
546 | Date: 14 Feb 1996 15:43:07 GMT |
---|
547 | Organization: Columbia University |
---|
548 | |
---|
549 | In article <4fr2nc$n0o@mozo.cc.purdue.edu>, |
---|
550 | Branden Robinson <branden@ecn.purdue.edu> wrote: |
---|
551 | : I'm trying to run C-Kermit under Linux, but as soon as I type "set line |
---|
552 | : /dev/cua1", kermit gets a segmentation fault. This is the correct line, as |
---|
553 | : evidenced by the fact that "echo ATDT" and a phone number redirected to |
---|
554 | : /dev/cua1 makes the modem dial. |
---|
555 | : |
---|
556 | : I thought this might have something to do with the lock file put on |
---|
557 | : /dev/cua1, but both the compliation with the -DLINUXFSSTND and without it |
---|
558 | : yield the same result. What is going on here? |
---|
559 | : |
---|
560 | : Relevant hardware: |
---|
561 | : Hayes Accura 14.4 + FAX internal on COM 2 |
---|
562 | : |
---|
563 | : Relevant software: |
---|
564 | : Linux Debian 0.93R6, kernel 1.2.13, GCC 2.6.3, C-kermit 1.90 |
---|
565 | : |
---|
566 | C-Kermit 5A(190) was tested successfully on every known Linux variation at |
---|
567 | the time it was released (October 1994), but since then what is |
---|
568 | collectively known as Linux has been changing rapidly out from underneath |
---|
569 | us, thanks in large part to its numerous repackagers. Most of the |
---|
570 | problems stem from the many and varied curses libraries; this is the first |
---|
571 | report I have heard of this nature. You might try: |
---|
572 | |
---|
573 | 1. The Debian C-Kermit distribution, put together and tested by the |
---|
574 | Debian Project. Maybe they linked it with different libraries than |
---|
575 | you did: |
---|
576 | |
---|
577 | ftp://kermit.columbia.edu/kermit/linux/ |
---|
578 | |
---|
579 | 2. The 6.0.192 Alpha not-yet-a-release: |
---|
580 | |
---|
581 | ftp://kermit.columbia.edu/kermit/test/ |
---|
582 | |
---|
583 | 3. Taking a debug log of a core-dumping session and sending the last |
---|
584 | hundred lines or so to kermit@columbia.edu for analysis. Also see if |
---|
585 | you can get a backtrace from the core file to find out what routine it |
---|
586 | was in when it faulted. I don't know what the command for this is on |
---|
587 | Linux -- locally I use "adb kermit core" and then "$c", where "kermit" |
---|
588 | is Kermit's pathname and "core" is the core file's pathname. |
---|
589 | |
---|
590 | griffith@axopta.kodak.com (John D. Griffith) replies: |
---|
591 | Well I am succesfully using C-kermit 1.90 with the same modem on |
---|
592 | /dev/cua2 (COM3). I am running linux 1.2.13 (a.out) and gcc 2.5.8. |
---|
593 | My distribution was originally Red Hat Release 1.0, but has been |
---|
594 | considerably customized since then. |
---|
595 | |
---|
596 | mitchell@mdd.comm.mot.com (Bill Mitchell) replies: |
---|
597 | I'm the debian kermit maintainer, but I'm afraid I don't have much |
---|
598 | of a clue about this. The debian kermit sources are stock kermit |
---|
599 | sources except for the addition of some debian-specific files (debian.*) |
---|
600 | which don't impact non-debian compilation and the addition of a debian |
---|
601 | target in debian.makefile. |
---|
602 | I use kermit regularly on my debian linux system with the 1.2.13 kernel, |
---|
603 | and my modem is on /dev/cua1. |
---|
604 | |
---|
605 | And in the same vein... |
---|
606 | |
---|
607 | Date: Wed, 15 Nov 95 10:16:24 EST |
---|
608 | From: Frank da Cruz <fdc@watsun.cc.columbia.edu> |
---|
609 | To: kurt klingbeil <kurtk@pc160.aec.env.gov.ab.ca> |
---|
610 | Subject: Re: cku190 & linux 1.1.59 vs 1.2.x ?? |
---|
611 | In-Reply-To: Your message of Tue, 14 Nov 1995 23:57:21 -0700 (MST) |
---|
612 | |
---|
613 | > Any idea what's changed in the serial handling of linux |
---|
614 | > between 1.1.x and 1.2.x ? |
---|
615 | > |
---|
616 | Absolutely no idea. It's just the way of the world. The rule is that if |
---|
617 | Kermit works in release n of any operating system, then release n+1 breaks it. |
---|
618 | I think this must be an internal requirement for OS developers. The nice |
---|
619 | thing about Linux is you don't even know who to ask about it. |
---|
620 | |
---|
621 | > Using cku190 to connect to a USR v.everything (no getty or any other process |
---|
622 | > active on that tty port): |
---|
623 | > I can dial, connect, run a remote session. |
---|
624 | > When I hangup, the loss of CD causes kermit |
---|
625 | > to disconnect, drop RTS and DTR, and return to its prompt. |
---|
626 | > |
---|
627 | > When attempting to immediately re-connect to the modem |
---|
628 | > (using c command), I can see the DTR and RTS lines being brought up: |
---|
629 | > (The modem's CTS and DSR remain set at all times.) |
---|
630 | > |
---|
631 | > Under Linux 1.1.59, kermit is immediately able to communincate with |
---|
632 | > the modem. Under Linux 1.2.{3,8,13} kermit appears to be hung - |
---|
633 | > no modem responses are received, kermit ignores it's escape character |
---|
634 | > and will wait forever. If one sends kermit a signal (either via kill, |
---|
635 | > or, if one is on the console via break (control-C is ignored as well)), |
---|
636 | > then a few characters of garbage appear in kermit's session, and |
---|
637 | > things are back to normal. |
---|
638 | > |
---|
639 | > I suspect that either a previously non-blocking read is now a blocking |
---|
640 | > read, or that previously the port was being properly flushed before |
---|
641 | > a connection was made, and that under 1.2.x it isn't and hence kermit |
---|
642 | > gets deadlocked waiting forever for a conidition which never occurs. |
---|
643 | > |
---|
644 | > Any ideas ? |
---|
645 | > |
---|
646 | (Unhelpful response deleted) |
---|
647 | |
---|
648 | Could this be the explanation? -- |
---|
649 | |
---|
650 | Date: Sat, 13 Jan 1996 09:48:11 -0800 (PST) |
---|
651 | From: John Harris <jharris@langara.bc.ca> |
---|
652 | Subject: C-Kermit Installation on Linux 1.2.1 |
---|
653 | |
---|
654 | Below is a letter which addresses the problem I was having installing |
---|
655 | C-Kermit on a Linux platform. So you do not need to waste your time |
---|
656 | addressing my difficulty, I wish to inform you that I have just resolved |
---|
657 | it; that is, the compile now takes place without even a warning. |
---|
658 | |
---|
659 | So that someone else can benefit, I briefly describe the cause of the |
---|
660 | problem. The following directories were not present: /usr/include/linux/ |
---|
661 | and /usr/src/linux/include/asm. There may also have been other files |
---|
662 | missing in certain directories; for example, /usr/include/linux and |
---|
663 | /usr/include/asm. The problem may have arisen from an oversight during |
---|
664 | Linux installation; for example, I may have forgotten to create the file |
---|
665 | system in advance of installation with "mke2fs -c <partition> <size>" or |
---|
666 | perhaps I simply neglected to transfer some library files during the |
---|
667 | software installation itself. |
---|
668 | |
---|
669 | In more recent releases of Linux (mid-1996), the trend is to replace curses by |
---|
670 | ncurses. But of course this is not transparent to application software that |
---|
671 | includes curses.h and links with libcurses. Linus says it *should* be |
---|
672 | transparent -- the application should continue to refer to curses and not to |
---|
673 | ncurses. C-Kermit follows this recommendation, so if you have curses-related |
---|
674 | trouble during compilation or at runtime, create symbolic links called |
---|
675 | curses.h and libcurses.a (or .sa, or .so, or .so.XX, etc) pointing to |
---|
676 | ncurses.h and libncurses-dot-whatever, and rebuild Kermit. |
---|
677 | |
---|
678 | Also note that some Linux distributions have internal problems in their header |
---|
679 | files. In one case, there are fatal errors in <termcap.h> that can be fixed |
---|
680 | by adding "#include <termios.h>" to the termcap.h file. |
---|
681 | |
---|
682 | See additional comments in the Linux entry in the makefile. |
---|
683 | |
---|
684 | (3.4) C-KERMIT AND NEXTSTEP |
---|
685 | |
---|
686 | Run C-Kermit in a Terminal, Stuart, or xterm window, or when logged in |
---|
687 | remotely through a serial port or TELNET connection. C-Kermit does not work |
---|
688 | correctly when invoked directly from the NeXTSTEP File Viewer or Dock. This |
---|
689 | is because the terminal-oriented gtty, stty, & ioctl calls don't work on the |
---|
690 | little window that NeXTSTEP pops up for non-NeXTSTEP applications like Kermit. |
---|
691 | CBREAK and No-ECHO settings do not take effect in the command parser -- |
---|
692 | commands are parsed strictly line at a time. "set line /dev/cua" works. |
---|
693 | During CONNECT mode, the console stays in cooked mode, so characters are not |
---|
694 | transmitted until carriage return or linefeed is typed, and you can't escape |
---|
695 | back. If you want to run Kermit directly from the File Viewer, then launch it |
---|
696 | from a shell script that puts it in the desired kind of window, something like |
---|
697 | this (for "Terminal"): |
---|
698 | |
---|
699 | Terminal -Lines 24 -Columns 80 -WinLocX 100 -WinLocY 100 $FONT $FONTSIZE \ |
---|
700 | -SourceDotLogin -Shell /usr/local/bin/kermit & |
---|
701 | |
---|
702 | C-Kermit does not work correctly on a NeXT with NeXTSTEP 3.0 to which you have |
---|
703 | established an rlogin connection, due to a bug in NeXTSTEP 3.0, which has been |
---|
704 | reported to NeXT. |
---|
705 | |
---|
706 | The SET CARRIER command has no effect on the NeXT -- this is a limitation of |
---|
707 | the tty device drivers. |
---|
708 | |
---|
709 | Hardware flow control on the NeXT is selected not by "set flow rts/cts" in |
---|
710 | Kermit (since NeXTSTEP offers no API for this), but rather, by using a |
---|
711 | specially-named driver for the serial device: /dev/cufa instead /dev/cua; |
---|
712 | /dev/cufb instead of /dev/cub. This is available only on 68040-based NeXT |
---|
713 | models (the situation for Intel NeXTSTEP implementations is unknown). |
---|
714 | |
---|
715 | NeXT-built 68030 and 68040 models have different kinds of serial interfaces; |
---|
716 | the 68030 has a Macintosh-like RS-422 interface, which lacks RTS and CTS |
---|
717 | signals; the 68040 has an RS-423 (RS-232 compatible) interface, which |
---|
718 | supports the commonly-used modem signals. WARNING: the connectors look |
---|
719 | exactly the same, but the pins are used in completely DIFFERENT ways -- |
---|
720 | different cables are required for the two kinds of interfaces. |
---|
721 | |
---|
722 | IF YOU GET LOTS OF RETRANSMISSIONS during file transfer, even when |
---|
723 | using a /dev/cuf* device and the modem is correctly configured for |
---|
724 | RTS/CTS flow control, YOU PROBABLY HAVE THE WRONG KIND OF CABLE. |
---|
725 | |
---|
726 | On the NeXT, Kermit reportedly (by TimeMon) causes the kernel to use a lot of |
---|
727 | CPU time when using a "set line" connection. That's because there is no DMA |
---|
728 | channel for the NeXT serial port, so the port must interrupt the kernel for |
---|
729 | each character in or out. |
---|
730 | |
---|
731 | One user reported trouble running C-Kermit on a NeXT from within NeXT's |
---|
732 | Subprocess class under NeXTstep 3.0, and/or when rlogin'd from one NeXT to |
---|
733 | another: Error opening /dev/tty:, congm: No such device or address. |
---|
734 | Diagnosis: Bug in NeXTSTEP 3.0, cure unknown. |
---|
735 | |
---|
736 | (3.5) C-KERMIT AND QNX |
---|
737 | |
---|
738 | Support for QNX 4.x was added in C-Kermit 5A(190). This is a full-function |
---|
739 | implementation, thoroughly tested on QNX 4.21, and verified to work in both |
---|
740 | 16-bit and 32-bit versions. Most advanced features are supported including |
---|
741 | TCP/IP, high serial speeds, hardware flow-control, modem-signal awareness, |
---|
742 | curses support, etc. |
---|
743 | |
---|
744 | Dialout devices are normally /dev/ser1, /dev/ser2, ..., and can be opened |
---|
745 | explicitly with SET LINE. Reportedly, "/dev/ser" (no unit number) opens the |
---|
746 | first available /dev/ser<n> device. |
---|
747 | |
---|
748 | Like all other UNIX C-Kermit implementations, QNX C-Kermit does not provide |
---|
749 | any kind of terminal emulation. Terminal specific functions are provided by |
---|
750 | your terminal, terminal window (e.g. QNX Terminal or xterm), or emulator. |
---|
751 | |
---|
752 | QNX C-Kermit, as distributed, does not include support for UUCP line-locking; |
---|
753 | the QNX makefile entries (qnx32 and qnx16) include the -DNOUUCP switch. This |
---|
754 | is because QNX, as distributed, does not include UUCP, and its own |
---|
755 | communications software (e.g. qterm) does not use UUCP line locking. If you |
---|
756 | have a UUCP product installed on your QNX system, remove the -DNOUUCP switch |
---|
757 | from the makefile entry and rebuild. Then check to see that Kermit's UUCP |
---|
758 | lockfile conventions are the same as those of your UUCP package; if not, read |
---|
759 | the UUCP lockfile section ckuins.doc and make the necessary changes to the |
---|
760 | makefile entry (e.g. add -DHDBUUCP). |
---|
761 | |
---|
762 | BUG: The fullscreen file transfer display works fine the first time, but it is |
---|
763 | fractured on subsequent file transfers. Cause and cure unknown. |
---|
764 | |
---|
765 | (3.6) C-KERMIT AND SCO UNIX, XENIX, ODT, AND OPENSERVER |
---|
766 | |
---|
767 | There is all sorts of confusion among SCO versions, particularly when third- |
---|
768 | party communications boards and drivers are installed, regarding lockfile |
---|
769 | naming conventions. Basically, all bets are off if you are using a third |
---|
770 | party multiport board. At least you have the source code. Hopefully you also |
---|
771 | have a C compiler :-) |
---|
772 | |
---|
773 | Use SCO-provided utilities for switching the directionality of a modem line, |
---|
774 | such as "enable" and "disable" commands. For example, to dial out on tty1a, |
---|
775 | which is normally set up for logins: |
---|
776 | |
---|
777 | disable tty1a |
---|
778 | kermit -l /dev/tty1a |
---|
779 | enable tty1a |
---|
780 | |
---|
781 | In SCO Xenix, you must use SET CARRIER ON *and* use the upper-case tty device |
---|
782 | name in order to have carrier detection. SET CARRIER OFF should work with |
---|
783 | either upper or lowercase tty devices. SET CARRIER AUTO is the same as OFF. |
---|
784 | |
---|
785 | SCO Xenix and UNIX can provide different names for the same device. In Xenix, |
---|
786 | /dev/tty1a refers to a terminal device that has no modem control; open, read, |
---|
787 | write, and close operations do not depend on carrier. On the other hand, |
---|
788 | /dev/tty1A (same name, but with final letter upper case), is the same device |
---|
789 | with modem control, in which carrier is required (the SET LINE command does |
---|
790 | not complete until carrier appears, read/write operations fail if there is no |
---|
791 | carrier, etc). In the SCO case, C-Kermit always uses the lowercase name when |
---|
792 | creating the UUCP lockfile (this is, according to SCO experts, the proper |
---|
793 | behavior, but reportedly not all other communications applications found on |
---|
794 | SCO systems follow this rule). |
---|
795 | |
---|
796 | One user of C-Kermit 5A(190) on SCO UNIX 3.2.4 reported that C-Kermit dumps |
---|
797 | core when receiving files in local mode. The crash invariably occurs when the |
---|
798 | 16384th byte arrives, obviously indicating some kind of int/long, or |
---|
799 | short/int, or similar mismatch in argument-passing -- no doubt the byte count. |
---|
800 | Other users of SCO UNIX 3.2.4, built using the same makefile entry, report |
---|
801 | that they can receive files of any length with no problem at all. Maybe it |
---|
802 | depends on which file transfer display is being used? If this happens to you, |
---|
803 | try using a different file transfer display (SET FILE DISPLAY NONE, SERIAL, |
---|
804 | CRT, or FULLSCREEN). |
---|
805 | |
---|
806 | SCO users report that only one copy of Kermit can run at a time when a |
---|
807 | Stallion Technologies multiport boards are installed. |
---|
808 | |
---|
809 | (3.7) C-KERMIT AND SOLARIS |
---|
810 | |
---|
811 | The built-in SunLink X.25 support for Solaris 2.3/2.4./25 and SunLink 8.01 or |
---|
812 | 9.00 works OK provided the X.25 system has been installed and initialized |
---|
813 | properly. Packet sizes might need to be reduced to 256, maybe even less, |
---|
814 | depending on the configuration of the X.25 installation. On one connection |
---|
815 | where C-Kermit 6.0 was tested, very large packets and window sizes could be |
---|
816 | used in one direction, but only very small ones would work in the other. |
---|
817 | |
---|
818 | In any case, according to Sun, C-Kermit's X.25 support is superfluous with |
---|
819 | SunLink 8.x / Solaris 2.3. Quoting an anonymous Sun engineer: |
---|
820 | |
---|
821 | ... there is now no need to include any X.25 code within kermit. As of |
---|
822 | X.25 8.0.1 we support the use of kermit, uucp and similar protocols over |
---|
823 | devices of type /dev/xty. This facility was there in 8.0, and should |
---|
824 | also work on the 8.0 release if patch 101524 is applied, but I'm not 100% |
---|
825 | sure it will work in all cases, which is why we only claim support from |
---|
826 | 8.0.1 onwards. |
---|
827 | |
---|
828 | When configuring X.25, on the "Advanced Configuration->Parameters" screen |
---|
829 | of the x25tool you can select a number of XTY devices. If you set this |
---|
830 | to be > 1, press Apply, and reboot, you will get a number of /dev/xty |
---|
831 | entries created. |
---|
832 | |
---|
833 | Ignore /dev/xty0, it is a special case. All the others can be used exactly |
---|
834 | as if they were a serial line (e.g. /dev/tty) connected to a modem, except |
---|
835 | that instead of using Hayes-style commands, you use PAD commands. |
---|
836 | |
---|
837 | From kermit you can do a 'set line' command to, say, /dev/xty1, then set |
---|
838 | your dialing command to be "CALL 12345678", etc. All the usual PAD |
---|
839 | commands will work (SET, PAR, etc). |
---|
840 | |
---|
841 | I know of one customer in Australia who is successfully using this, with |
---|
842 | kermit scripts, to manage some X.25-connected switches. He used standard |
---|
843 | kermit, compiled for Solaris 2, with X.25 8.0 xty devices. |
---|
844 | |
---|
845 | C-Kermit can't be compiled successfully under Solaris 2.3 using SUNWspro cc |
---|
846 | 2.0.1 unless at least some of the following patches are applied to cc (it is |
---|
847 | not known which one(s), if any, fix the problem): |
---|
848 | |
---|
849 | 100935-01 SparcCompiler C 2.0.1: bad code generated when addresses |
---|
850 | of two double arguments are involved |
---|
851 | 100961-05 SPARCcompilers C 2.0.1: conditional expression with |
---|
852 | function returning strucure gives wrong value |
---|
853 | 100974-01 SparcWorks 2.0.1: dbx jumbo patch |
---|
854 | 101424-01 SPARCworks 2.0.1 maketool SEGV's instantly on Solaris 2.3 |
---|
855 | |
---|
856 | With unpatched cc 2.0.1, the symptom is that certain modules generate |
---|
857 | truncated object files, resulting in many unresolved references at link time. |
---|
858 | |
---|
859 | Using a Sun workstation keyboard for VT emulation when accessing VMS: |
---|
860 | |
---|
861 | From: Jerry Leichter <leichter@smarts.com> |
---|
862 | Newsgroups: comp.os.vms |
---|
863 | Subject: Re: VT100 keyboard mapping to Sun X server |
---|
864 | Date: Mon, 19 Aug 1996 12:44:21 -0400 |
---|
865 | |
---|
866 | > I am stuck right now using a Sun keyboard (type 5) on systems running SunOS |
---|
867 | > and Solaris. I would like to use EVE on an OpenVMS box with display back to |
---|
868 | > the Sun. Does anyone know of a keyboard mapping (or some other procedure) |
---|
869 | > which will allow the Sun keyboard to approximate a VT100/VT220? |
---|
870 | |
---|
871 | You can't get it exactly - because the keypad has one fewer key - but |
---|
872 | you can come pretty close. Here's a set of keydefs I use: |
---|
873 | |
---|
874 | keycode 101=KP_0 |
---|
875 | keycode 119=KP_1 |
---|
876 | keycode 120=KP_2 |
---|
877 | keycode 121=KP_3 |
---|
878 | keycode 98=KP_4 |
---|
879 | keycode 99=KP_5 |
---|
880 | keycode 100=KP_6 |
---|
881 | keycode 75=KP_7 |
---|
882 | keycode 76=KP_8 |
---|
883 | keycode 77=KP_9 |
---|
884 | keycode 52=KP_F1 |
---|
885 | keycode 53=KP_F2 |
---|
886 | keycode 54=KP_F3 |
---|
887 | keycode 57=KP_Decimal |
---|
888 | keycode 28=Left |
---|
889 | keycode 29=Right |
---|
890 | keycode 30=KP_Separator |
---|
891 | keycode 105=KP_F4 |
---|
892 | keycode 78=KP_Subtract |
---|
893 | keycode 8=Left |
---|
894 | keycode 10=Right |
---|
895 | keycode 32=Up |
---|
896 | keycode 33=Down |
---|
897 | keycode 97=KP_Enter |
---|
898 | |
---|
899 | Put this in a file - I use "keydefs" in my home directory and feed it |
---|
900 | into xmodmap: |
---|
901 | |
---|
902 | xmodmap - <$HOME/keydefs |
---|
903 | |
---|
904 | This takes care of the arrow keys and the "calculator" key cluster. The |
---|
905 | "+" key will play the role of the DEC "," key. The Sun "-" key will be |
---|
906 | like the DEC "-" key, though it's in a physically different position - |
---|
907 | where the DEC PF4 key is. The PF4 key is ... damn, I'm not sure where |
---|
908 | "key 105" is. I *think* it may be on the leftmost key of the group of |
---|
909 | four just above the "calculator" key cluster. |
---|
910 | |
---|
911 | I also execute the following (this is all in my xinitrc file): |
---|
912 | |
---|
913 | xmodmap -e 'keysym KP_Decimal = KP_Decimal' |
---|
914 | xmodmap -e 'keysym BackSpace = Delete BackSpace' \ |
---|
915 | -e 'keysym Delete = BackSpace Delete' |
---|
916 | xmodmap -e 'keysym KP_Decimal = Delete Delete KP_Decimal' |
---|
917 | xmodmap -e 'add mod1 = Meta_R' |
---|
918 | xmodmap -e 'add mod1 = Meta_L' |
---|
919 | |
---|
920 | Beware of one thing about xmodmap: Keymap changes are applied to the |
---|
921 | *whole workstation*, not just to individual windows. There is, in fact, |
---|
922 | no way I know of to apply them to individual windows. These definitions |
---|
923 | *may* confuse some Unix programs (and/or some Unix users). |
---|
924 | |
---|
925 | If you're using Motif, you may also need to apply bindings at the Motif |
---|
926 | level. If just using xmodmap doesn't work, I can try and dig that stuff |
---|
927 | up for you. |
---|
928 | |
---|
929 | (end quote) |
---|
930 | |
---|
931 | NOTE: The rest of the problems in this section have to do with bidirectional |
---|
932 | tty lines and the Solaris Port Monitor. Hopefully these are all fixed in |
---|
933 | C-Kermit 6.0.192 Beta.029, 22 Aug 96. |
---|
934 | |
---|
935 | Reportedly, "C-Kermit ... causes a SPARCstation running Solaris 2.3 |
---|
936 | to panic after the modem connects. I have tried compiling C-Kermit with Sun's |
---|
937 | unbundled C compiler, with GCC Versions 2.4.5 and 2.5.3, with make targets |
---|
938 | 'sunos51', 'sunos51tcp', 'sunos51gcc', and even 'sys5r4', and each time it |
---|
939 | compiles and starts up cleanly, but without fail, as soon as I dial the number |
---|
940 | and get a 'CONNECT' message from the modem, I get: |
---|
941 | |
---|
942 | BAD TRAP |
---|
943 | kermit: Data fault |
---|
944 | kernel read fault at addr=0x45c, pme=0x0 |
---|
945 | Sync Error Reg 80 <INVALID> |
---|
946 | ... |
---|
947 | panic: Data Fault. |
---|
948 | ... |
---|
949 | Rebooting... |
---|
950 | |
---|
951 | The same modem works fine for UUCP/tip calling." Also (reportedly), this only |
---|
952 | happens if the dialout port is configured as in/out via admintool. If it is |
---|
953 | configured as out-only, no problem. This is the same dialing code that works |
---|
954 | on hundreds of other System-V based UNIX OS's. Since it should be impossible |
---|
955 | for a user program to crash the operating system, this problem must be chalked |
---|
956 | up to a Solaris bug. Even if you SET CARRIER OFF, CONNECT, and dial manually |
---|
957 | by typing ATDTnnnnnnn, the system panics as soon as the modem issues its |
---|
958 | CONNECT message. (Clearly, when you are dialing manually, C-Kermit does not |
---|
959 | know a thing about the CONNECT message, and so the panic is almost certainly |
---|
960 | caused by the transition of the Carrier Detect (CD) line from off to on.) |
---|
961 | This problem was reported by many users, all of whom say that C-Kermit worked |
---|
962 | fine on Solaris 2.1 and 2.2. If the speculation about CD is true, then a |
---|
963 | possible workaround might be to configure the modem to leave CD on (or off) |
---|
964 | all the time. Perhaps by the time you read this, a patch will have been |
---|
965 | issued for Solaris 2.3. |
---|
966 | |
---|
967 | The following is from Karl S. Marsh, Systems & Networks Administrator, |
---|
968 | AMBIX Systems Corp, Rochester, NY (begin quote): |
---|
969 | |
---|
970 | "Environment: |
---|
971 | Solaris 2.3 Patch 101318-45 |
---|
972 | C-Kermit 5A(189) (and presumably this applies to 188 and 190 also) |
---|
973 | eeprom setting: |
---|
974 | ttya-rts-dtr-off=false |
---|
975 | ttya-ignore-cd=false |
---|
976 | ttya-mode=19200,8,n,8,- |
---|
977 | |
---|
978 | "To use C-Kermit on a bidirectional port in this environment, do not use |
---|
979 | admintool to configure the port. Use admintool to delete any services running |
---|
980 | on the port and then quit admintool and issue the following command: |
---|
981 | |
---|
982 | pmadm -a -p zsmon -s ttyb -i root -fu -v 1 -m "`ttyadm -b -d /dev/term/b \ |
---|
983 | -l conttyH -m ldterm,ttcompat -s /usr/bin/login -S n`" |
---|
984 | |
---|
985 | [NOTE: This was copied from a fax, so please check it carefully] where: |
---|
986 | |
---|
987 | -a = Add service |
---|
988 | -p = pmtag (zsmon) |
---|
989 | -s = service tag (ttyb) |
---|
990 | -i = id to be associated with service tag (root) |
---|
991 | -fu = create utmp entry |
---|
992 | -v = version of ttyadm |
---|
993 | -m = port monitor-specific portion of the port monitor administrative file |
---|
994 | entry for the service |
---|
995 | -b = set up port for bidirectional use |
---|
996 | -d = full path name of device |
---|
997 | -l = which ttylabel in the /etc/ttydefs file to use |
---|
998 | -m = a list of pushable STREAMS modules |
---|
999 | -s = pathname of service to be invoked when connection request received |
---|
1000 | -S = software carrier detect on or off (n = off) |
---|
1001 | |
---|
1002 | "This is exactly how I was able to get Kermit to work on a bi-directional |
---|
1003 | port without crashing the system." (End quote) |
---|
1004 | |
---|
1005 | On the Solaris problem, also see SunSolve Bug ID 1150457 ("Using C-Kermit, get |
---|
1006 | Bad Trap on receiving prompt from remote system"). Another user reported "So, |
---|
1007 | I have communicated with the Sun tech support person that submitted this bug |
---|
1008 | report [1150457]. Apparently, this bug was fixed under one of the jumbo |
---|
1009 | kernel patches. It would seem that the fix did not live on into 101318-45, as |
---|
1010 | this is EXACTLY the error that I see when I attempt to use kermit on my |
---|
1011 | system." |
---|
1012 | |
---|
1013 | Later (Aug 94)... C-Kermit dialout successfully tested on a Sun4m with a |
---|
1014 | heavily patched Solaris 2.3. The patches most likely to have been relevant: |
---|
1015 | |
---|
1016 | 101318-50: SunOS 5.3: Jumbo patch for kernel (includes libc, lockd) |
---|
1017 | 101720-01: SunOS 5.3: ttymon - prompt not always visible on a modem connection |
---|
1018 | 101815-01: SunOS 5.3: Data fault in put() NULL queue passed from |
---|
1019 | ttycommon_qfull() |
---|
1020 | 101328-01: SunOS 5.3: Automation script to properly setup tty ports prior to |
---|
1021 | PCTS execution |
---|
1022 | |
---|
1023 | Still later (Nov 94): another user (Bo Kullmar in Sweden) reports that after |
---|
1024 | using C-Kermit to dial out on a bidirectional port, the port might not answer |
---|
1025 | subsequent incoming calls, and says "the problem is easy enough to to fix with |
---|
1026 | the Serial Port Manager; I just delete the service and and install it again |
---|
1027 | using the graphical interface, which underneath uses commands like sacadm and |
---|
1028 | pmadm." Later Bo reports, "I have found that if I run Kermit with the |
---|
1029 | following script then it works. This script is for /dev/cua/a, -s a is the |
---|
1030 | last a in /dev/cua/a |
---|
1031 | |
---|
1032 | #! /bin/sh |
---|
1033 | kermit |
---|
1034 | sleep 2 |
---|
1035 | surun pmadm -e -p zsmon -s a |
---|
1036 | |
---|
1037 | (end quote) |
---|
1038 | |
---|
1039 | (3.8) C-KERMIT AND SUNOS |
---|
1040 | |
---|
1041 | Sun SPARCstation users should read the section "Setting up Modem Software" in |
---|
1042 | the Desktop SPARC Sun System & Network Manager's Guide. If you don't set up |
---|
1043 | your serial ports correctly, Kermit (and other communications software) won't |
---|
1044 | work right. |
---|
1045 | |
---|
1046 | Reportedly, C-Kermit does not work correctly on a Sun SPARCstation in an Open |
---|
1047 | Windows window with scrolling enabled. Disable scrolling, or else invoke |
---|
1048 | Kermit in a terminal emulation window (xterm, crttool, vttool) under SunView |
---|
1049 | (this might be fixed in later SunOS releases). |
---|
1050 | |
---|
1051 | On the Sun with Open Windows, an additional symptom has been reported: |
---|
1052 | outbound SunLink X.25 connections "magically" translate CR typed at the |
---|
1053 | keyboard into LF before transmission to the remote host. This doesn't happen |
---|
1054 | under SunView. |
---|
1055 | |
---|
1056 | SET CARRIER ON, when used on the SunOS 4.1 version of C-Kermit (compiled in |
---|
1057 | the BSD universe), causes the program to hang uninterruptibly when SET LINE |
---|
1058 | is issued for a device that is not asserting carrier. When Kermit is built |
---|
1059 | in the Sys V universe on the same computer, there is no problem (it can be |
---|
1060 | interrupted with Ctrl-C). This is apparently a limitation of the BSD-style |
---|
1061 | tty driver. |
---|
1062 | |
---|
1063 | SunOS 4.1 C-Kermit has been observed to dump core when running a complicated |
---|
1064 | script program under cron. The dump invariably occurs in ttoc(), while trying |
---|
1065 | to output a character to a TCP/IP TELNET connection. ttoc() contains a |
---|
1066 | write() call, and when the system or the network is very busy, the write() |
---|
1067 | call can get stuck for long periods of time. To break out of deadlocks caused |
---|
1068 | by stuck write() calls, there is an alarm around the write(). It is possible |
---|
1069 | that the core dump occurs when this alarm signal is caught. (This one has |
---|
1070 | not been observed recently -- possibly fixed in edit 190.) |
---|
1071 | |
---|
1072 | On Sun computers with SunOS 4.0 or 4.1, SET FLOW RTS/CTS works only if the |
---|
1073 | carrier signal is present from the communication device at the time when |
---|
1074 | C-Kermit enters packet mode or CONNECT mode. If carrier is not sensed (e.g. |
---|
1075 | when dialing), C-Kermit does not attempt to turn on RTS/CTS flow control. |
---|
1076 | This is because the SunOS serial device driver does not allow characters to |
---|
1077 | be output if RTS/CTS is set (CRTSCTS) but carrier (and DSR) are not present. |
---|
1078 | Workaround (maybe): SET CARRIER OFF before giving the SET LINE command, |
---|
1079 | establish the connection, then SET FLOW RTS/CTS |
---|
1080 | |
---|
1081 | It has also been reported that RTS/CTS flow control under SunOS 4.1 through |
---|
1082 | 4.1.3 works only on INPUT, not on output, and that there is a patch from Sun |
---|
1083 | to correct this problem: Patch-ID# T100513-04, 20 July 1993 (this patch might |
---|
1084 | apply only to SunOS 4.1.3). It might also be necessary to configure the |
---|
1085 | eeprom parameters of the serial port; e.g. do the following as root at the |
---|
1086 | shell prompt: |
---|
1087 | |
---|
1088 | eeprom ttya-ignore-cd=false |
---|
1089 | eeprom ttya-rts-dtr-off=true |
---|
1090 | |
---|
1091 | There have been reports of file transfer failures on Sun-3 systems when using |
---|
1092 | long packets and/or large window sizes. One user says that when this happens, |
---|
1093 | the console issues many copies of this message: |
---|
1094 | |
---|
1095 | chaos vmunix: zs1: ring buffer overflow |
---|
1096 | |
---|
1097 | This means that SunOS is not scheduling Kermit frequently enough to service |
---|
1098 | interrupts from the zs serial device (Zilog 8350 SCC serial communication |
---|
1099 | port) before its input silo overflows. Workaround: use smaller packets |
---|
1100 | and/or a smaller window size, or use "nice" to increase Kermit's priority. |
---|
1101 | Use hardware flow control if available, or remove other active processes |
---|
1102 | before running Kermit. |
---|
1103 | |
---|
1104 | SunLink X.25 support in C-Kermit 5A(190) has been built and tested |
---|
1105 | successfully under SunOS 4.1.3b and SunLink X.25 7.00. |
---|
1106 | |
---|
1107 | (3.9) C-KERMIT AND ULTRIX |
---|
1108 | |
---|
1109 | There is no hardware flow control in Ultrix. That's not a Kermit deficiency, |
---|
1110 | but an Ultrix one. |
---|
1111 | |
---|
1112 | Reportedly, DEC ULTRIX 4.3 is immune to C-Kermit's disabling of SIGQUIT, |
---|
1113 | which is the signal that is generated when the user types Ctrl-\, which kills |
---|
1114 | the current process (i.e. C-Kermit) and dumps core. Diagnosis and cure |
---|
1115 | unknown. Workaround: before starting C-Kermit -- or for that matter, when you |
---|
1116 | first log in because this applies to all processes, not just Kermit -- give |
---|
1117 | the following UNIX command: |
---|
1118 | |
---|
1119 | stty quit undef |
---|
1120 | |
---|
1121 | Certain operations driven by RS-232 modem signal do not work on DECstations or |
---|
1122 | other DEC platforms whose serial interfaces use MMP connectors (DEC version of |
---|
1123 | RJ45 telephone jack with with offset tab). These connectors convey only the |
---|
1124 | DSR and DTR modem signals, but not carrier (CD), RTS, CTS, or RI. Use SET |
---|
1125 | CARRIER OFF to enable communication, or "hotwire" DSR to CD. |
---|
1126 | |
---|
1127 | (3.10) C-KERMIT AND UNIXWARE |
---|
1128 | |
---|
1129 | Using the UnixWare 1.1 Application Server, one user reports a system panic |
---|
1130 | when the following script program is executed: |
---|
1131 | |
---|
1132 | set line /dev/tty4 |
---|
1133 | set speed 9600 |
---|
1134 | output \13 |
---|
1135 | connect |
---|
1136 | |
---|
1137 | The panic does not happen if a PAUSE is inserted: |
---|
1138 | |
---|
1139 | set line /dev/tty4 |
---|
1140 | set speed 9600 |
---|
1141 | pause 1 |
---|
1142 | output \13 |
---|
1143 | connect |
---|
1144 | |
---|
1145 | This is using a Stallion EasyIO card installed as board 0 on IRQ 12 on |
---|
1146 | a Gateway 386 with the Stallion-supplied driver. The problem was reported |
---|
1147 | to Novell and Stallion, resolution pending. (Reportedly, this problem |
---|
1148 | is now fixed.) |
---|
1149 | |
---|
1150 | (3.11) C-KERMIT AND APOLLO SR10 |
---|
1151 | |
---|
1152 | Reportedly, version 5A(190), when built under Apollo SR10 using "make |
---|
1153 | sr10-bsd", compiles, links, and executes OK, but leaves the terminal unusable |
---|
1154 | after it exits -- the "cs7" or "cs8" (character size) parameter has become |
---|
1155 | cs5. The terminal must be reset from another terminal. Cause and cure |
---|
1156 | unknown. Suggested workaround: Wrap Kermit in a shell script something like: |
---|
1157 | |
---|
1158 | kermit @* |
---|
1159 | stty sane |
---|
1160 | |
---|
1161 | (3.12) C-KERMIT AND TANDY XENIX 3.0 |
---|
1162 | |
---|
1163 | Reportedly, if you type lots of Ctrl-C's during execution of the |
---|
1164 | initialization file, ghost Kermit processes will be created, and will compete |
---|
1165 | for the keyboard. They can only be removed via "kill -9" from another |
---|
1166 | terminal, or by rebooting. Diagnosis -- something strange happening with |
---|
1167 | the SIGINT handler while the process is reading the directory (it seems to |
---|
1168 | occur during the SET PROMPT [\v(dir)] ... sequence). Cure: unknown. |
---|
1169 | Workaround: don't interrupt C-Kermit while it is executing its init file on |
---|
1170 | the Tandy 16/6000. |
---|
1171 | |
---|
1172 | (3.13) C-KERMIT AND OSF/1 (DIGITAL UNIX) |
---|
1173 | |
---|
1174 | Reportedly, if a modem is set for &S0 (assert DSR at all times), the system |
---|
1175 | resets or drops DTR every 30 seconds; reportedly DEC says to set &S1. |
---|
1176 | |
---|
1177 | Digital UNIX 3.2 evidently wants to believe your terminal is one line longer |
---|
1178 | than you say it is, e.g. when a "more" or "man" command is given. This is has |
---|
1179 | nothing to do with C-Kermit, but tends to annoy those who use Kermit or other |
---|
1180 | terminal emulators to access Digital UNIX systems. Workaround: tell UNIX |
---|
1181 | to "stty rows 23" (or whatever). |
---|
1182 | |
---|
1183 | (3.14) C-KERMIT AND SGI IRIX |
---|
1184 | |
---|
1185 | Reportedly on Silicon Graphics (SGI) machines with IRIX 4.0, Kermit cannot be |
---|
1186 | suspended by typing the suspend ("swtch") character if it was started from |
---|
1187 | csh, even though other programs can be suspended this way, and even though the |
---|
1188 | Z and SUSPEND commands still work correctly. This is evidently because IRIX's |
---|
1189 | csh does not deliver the SIGTSTP signal to Kermit. The reason other programs |
---|
1190 | can be suspended in the same environment is probably that they do not trap |
---|
1191 | SIGTSTP themselves, so the shell is doing the suspending rather than the |
---|
1192 | application. |
---|
1193 | |
---|
1194 | Reportedly some Indys have bad serial port hardware. IRIX 5.2, for example, |
---|
1195 | needs patch 151 to work around this; or upgrade to a later release. |
---|
1196 | Similarly, IRIX 5.2 has several problems with serial i/o, flow control, etc. |
---|
1197 | Again, patch or upgrade. |
---|
1198 | |
---|
1199 | For hardware flow control on IRIX, use the ttyf* (modem control AND hardware |
---|
1200 | flow control) devices and not the ttyd* (direct) or ttym* (modem control but |
---|
1201 | no hardward flow control) ones, and obtain the proper "hardware handshaking" |
---|
1202 | cable from SGI, which is incompatible with the ones for the Macintosh and |
---|
1203 | NeXT even though they look the same. "man serial" for further info. |
---|
1204 | |
---|
1205 | (3.15) C-KERMIT AND THE BEBOX |
---|
1206 | |
---|
1207 | The BeBox isn't a real product yet, and BeOS -- particularly the POSIX pieces |
---|
1208 | of it -- aren't finished. As the POSIX bits are fleshed out, a lot of the |
---|
1209 | Be-specific code can Be removed. The workarounds in this version are for |
---|
1210 | DR7, contributed by an anonymous donor, sufficient to: |
---|
1211 | |
---|
1212 | - set line /dev/serial2 (and probably the other serial ports) |
---|
1213 | - set speed 115200 (and at least some of the lower baud rates) |
---|
1214 | - connect |
---|
1215 | - set modem type hayes (and likely others, too) |
---|
1216 | - dial [phone number] |
---|
1217 | - set send packet length 2048 (other lengths for both send and receive) |
---|
1218 | - set receive packet length 2048 |
---|
1219 | - set file type binary (text mode works, too) |
---|
1220 | (with remote kermit session in server mode) |
---|
1221 | - put bedrop.jpg |
---|
1222 | - get bedrop.jpg |
---|
1223 | - get bedrop.jpg bedrop.jpg2 |
---|
1224 | - finish, bye |
---|
1225 | |
---|
1226 | The following do not work: |
---|
1227 | - kermit does not detect modem hangup |
---|
1228 | - !/RUN/PUSH [commandline command] |
---|
1229 | - running kermit in remote mode |
---|
1230 | - using other protocols (x/y/zmodem) |
---|
1231 | - TCP networking interface (Be's TCP/IP API has a ways to go, still) |
---|
1232 | |
---|
1233 | (4) GENERAL UNIX-SPECIFIC HINTS, LIMITATIONS, AND BUGS |
---|
1234 | |
---|
1235 | In version 6.0, the default C-Kermit prompt includes your current (working) |
---|
1236 | directory; for example: |
---|
1237 | |
---|
1238 | [/usr/olga] C-Kermit> |
---|
1239 | |
---|
1240 | If that directory is on an NFS-mounted disk, and NFS stops working or the |
---|
1241 | disk becomes unavailable, C-Kermit will hang waiting for NFS and/or the disk |
---|
1242 | to come back. Whether you can interrupt C-Kermit when it is hung this way |
---|
1243 | depends on the specific OS. Kermit has called the operating systems's |
---|
1244 | getcwd() function, and is waiting for it to return. Some versions of UNIX |
---|
1245 | (e.g. HP-UX 9.x) allow this function to be interrupted with SIGINT (Ctrl-C), |
---|
1246 | others (such as HP-UX 8.x) do not. To avoid this effect, you can always |
---|
1247 | use SET PROMPT change your prompt to something that does not involve calling |
---|
1248 | getcwd(), but if NFS is not responding, C-Kermit will still hang any time you |
---|
1249 | give a command that refers to the current directory. Also note that in some |
---|
1250 | cases, the uninterruptibility of NFS-dependent system or library calls is |
---|
1251 | considered a bug, and sometimes there are patches. For HP-UX, for example: |
---|
1252 | |
---|
1253 | HP-UX 10.20 libc PHCO_8764 |
---|
1254 | HP-UX 10.10 libc PHCO_8763 |
---|
1255 | HP-UX 9.x libc PHCO_7747 S700 |
---|
1256 | HP-UX 9.x libc PHCO_6779 S800 |
---|
1257 | |
---|
1258 | You might have reason to make C-Kermit the login shell for a specific user, |
---|
1259 | by entering the pathname of Kermit (possibly with command-line switches, such |
---|
1260 | as -x to put it in server mode) into the shell field of the /etc/passwd file. |
---|
1261 | This works pretty well. In some cases, for "ultimate security", you might |
---|
1262 | want to use a version built with -DNOPUSH (see ckccfg.doc) for this, but even |
---|
1263 | if you don't, then PUSHing or shelling out from C-Kermit just brings up a |
---|
1264 | new copy of C-Kermit (but warning: this does not prevent the user from |
---|
1265 | explicitly running a shell; e.g. "run /bin/sh"; use NOPUSH to prevent this). |
---|
1266 | |
---|
1267 | C-Kermit will not work as expected on a remote UNIX system, when used through |
---|
1268 | the "splitvt" or GNU "screen" programs. In this case, terminal connections to |
---|
1269 | the remote UNIX system work, but attempts to transfer files fail because the |
---|
1270 | screen optimization (or at least, line wrapping, control-character absorption) |
---|
1271 | done by this package interferes with Kermit's packets. |
---|
1272 | |
---|
1273 | You might try the following -- what we call "doomsday Kermit" settings to |
---|
1274 | push packets through even the densest and most obstructive connections, such |
---|
1275 | as "screen" and "splitvt" (and certain kinds of 3270 protocol emulators): |
---|
1276 | Give these commands to BOTH Kermit programs: |
---|
1277 | |
---|
1278 | SET FLOW NONE |
---|
1279 | SET CONTROL PREFIX ALL |
---|
1280 | SET RECEIVE PACKET-LENGTH 70 |
---|
1281 | SET RECEIVE START 62 |
---|
1282 | SET SEND START 62 |
---|
1283 | SET SEND PAUSE 100 |
---|
1284 | SET BLOCK B |
---|
1285 | |
---|
1286 | If it works, it will be slow. |
---|
1287 | |
---|
1288 | On UNIX workstations equipped with DOS emulators like SoftPC, watch out for |
---|
1289 | what these emulators do to the serial port drivers. After using a DOS |
---|
1290 | emulator, particularly if you use it to run DOS communications software, you |
---|
1291 | might have to reconfigure the serial ports for use by UNIX. |
---|
1292 | |
---|
1293 | On AT&T 7300 (3B1) machines, you might have to "stty nl1" before starting |
---|
1294 | C-Kermit. Do this if characters are lost during communications operations. |
---|
1295 | |
---|
1296 | Under the bash shell (versions prior to 1.07 from CWRU), "pushing" to an |
---|
1297 | inferior shell and then exiting back to Kermit leaves Kermit in the background |
---|
1298 | such that it must be explicitly fg'd. This is reportedly fixed in version |
---|
1299 | 1.07 of bash. |
---|
1300 | |
---|
1301 | Interruption by Ctrl-Z makes UNIX C-Kermit try to suspend itself with |
---|
1302 | kill(0,SIGSTOP), but only on systems that support job control, as determined |
---|
1303 | by whether the symbol SIGTSTP is defined (or on POSIX or SVR4 systems, if |
---|
1304 | syconf(_SC_JOB_CONTROL) or _POSIX_JOB_CONTROL in addition to SIGTSTP). |
---|
1305 | However, if Kermit is running under a login shell (such as the original Bourne |
---|
1306 | shell) that does not support job control, the user's session hangs and must be |
---|
1307 | logged out from another terminal, or hung up on. There is no way Kermit can |
---|
1308 | defend itself against this. If you use a non-job control shell on a computer |
---|
1309 | that supports job control, give a command like "stty susp undef" to fix it so |
---|
1310 | the suspend signal is not attached to any particular key, or give the command |
---|
1311 | SET SUSPEND OFF to C-Kermit, or build C-Kermit with -DNOJC. |
---|
1312 | |
---|
1313 | Reportedly, the UNIX C-Kermit server, under some conditions, on certain |
---|
1314 | particular systems, fails to log out its login session upon receipt of a |
---|
1315 | BYE command. Before relying on the BYE command working, test it a few times |
---|
1316 | to make sure it works on your system: there might be system configuration or |
---|
1317 | security mechanisms to prevent an inferior process (like Kermit) from |
---|
1318 | killing a superior one (like the login shell). |
---|
1319 | |
---|
1320 | (5) INITIALIZATION AND COMMAND FILES |
---|
1321 | |
---|
1322 | C-Kermit's initialization file for UNIX is .kermrc (lowercase, starts with |
---|
1323 | period) in your home directory, unless Kermit was built with the system-wide |
---|
1324 | initialization-file option (see ckuins.doc). |
---|
1325 | |
---|
1326 | C-Kermit identifies your home directory based on the environment variable, |
---|
1327 | HOME. Most UNIX systems set this variable automatically when you log in. If |
---|
1328 | C-Kermit can't find your initialization file, check your HOME variable: |
---|
1329 | |
---|
1330 | echo $HOME (at the UNIX prompt) |
---|
1331 | |
---|
1332 | or: |
---|
1333 | |
---|
1334 | echo \$(HOME) (at the C-Kermit prompt) |
---|
1335 | |
---|
1336 | If HOME is not defined, or is defined incorrectly, add the appropriate |
---|
1337 | definition to your UNIX .profile or .login file, depending on your shell: |
---|
1338 | |
---|
1339 | setenv HOME full-pathname-of-your-home-directory (C-Shell, .login file) |
---|
1340 | or: |
---|
1341 | HOME=full-pathname-of-your-home-directory (sh, ksh, .profile file) |
---|
1342 | export HOME |
---|
1343 | |
---|
1344 | NOTE: Various other operations depend on the correct definition of HOME. |
---|
1345 | These include the "tilde-expansion" feature, which allows you to refer to |
---|
1346 | your home directory as "~" in filenames used in C-Kermit commands, e.g. |
---|
1347 | |
---|
1348 | send ~/.kermrc |
---|
1349 | |
---|
1350 | as well as the \v(home) variable. |
---|
1351 | |
---|
1352 | Prior to version 5A(190), C-Kermit would look for its initialization file in |
---|
1353 | the current directory if it was not found in the home directory. This feature |
---|
1354 | was removed from 5A(190) because it was a security risk. Some people, however, |
---|
1355 | liked this behavior and had .kermrc files in all their directories that would |
---|
1356 | set up things appropriately for the files therein. If you want this behavior, |
---|
1357 | you can accomplish it in various ways, for example: |
---|
1358 | |
---|
1359 | . Create a shell alias, for example: |
---|
1360 | alias kd="kermit -Y ./.kermrc" |
---|
1361 | |
---|
1362 | . Create a .kermrc file in your home directory, whose contents are: |
---|
1363 | take ./.kermrc |
---|
1364 | |
---|
1365 | The TAKE command does not search your UNIX PATH for command files. If a |
---|
1366 | command file is not in the current directory, you must give a full path |
---|
1367 | specification for it. This poses a problem for TAKE commands that are |
---|
1368 | themselves in TAKE files. See the trick used in CKETEST.INI... |
---|
1369 | |
---|
1370 | Suppose you need to pass a password from the UNIX command line to a C-Kermit |
---|
1371 | script program, in such a way that it does not show up in "ps" or "w" listings. |
---|
1372 | Here is a method (not guaranteed to be 100% secure, but definitely more secure |
---|
1373 | than the more obvious methods): |
---|
1374 | |
---|
1375 | echo mypassword | kermit myscript |
---|
1376 | |
---|
1377 | The "myscript" file contains all the commands that need to be executed during |
---|
1378 | the Kermit session, up to and including EXIT, and also includes an ASK or ASKQ |
---|
1379 | command to read the password from standard input, which has been piped in from |
---|
1380 | the UNIX 'echo' command, but it must not include a CONNECT command. Only |
---|
1381 | "kermit myscript" shows up in the ps listing. |
---|
1382 | |
---|
1383 | (6) COMMUNICATION SPEED SELECTION |
---|
1384 | |
---|
1385 | Version-7 based UNIX implementations, including 4.3 BSD and earlier and |
---|
1386 | UNIX systems based upon BSD, use a 4-bit field to record a serial device's |
---|
1387 | terminal speed. This leaves room for 16 speeds, which are normally: |
---|
1388 | |
---|
1389 | 0, 50, 75, 110, 134.5, 150, 200, 300, 600, 1200, 1800, 2400, 4800, and 9600 |
---|
1390 | |
---|
1391 | The remaining two are usually called EXTA and EXTB, and are defined by the |
---|
1392 | particular UNIX implementation. C-Kermit determines which speeds are |
---|
1393 | available on your system based on whether symbols for them are defined in your |
---|
1394 | terminal device header files. EXTA is generally assumed to be 19200 and EXTB |
---|
1395 | 38400, but these assumptions might be wrong, or they might not apply to a |
---|
1396 | particular device that does not support these speeds. Presumably, if you try |
---|
1397 | to set a speed that is not legal on a particular device, the driver will |
---|
1398 | return an error, but this can not be guaranteed. |
---|
1399 | |
---|
1400 | On these systems, it is usually not possible to select a speed of 14400 bps |
---|
1401 | for use with V.32bis modems. In that case, use 19200 or 38400 bps, configure |
---|
1402 | your modem to lock its interface speed and to use RTS/CTS flow control, and |
---|
1403 | tell C-Kermit to SET SPEED RTS/CTS and SET DIAL SPEED-MATCHING OFF. |
---|
1404 | |
---|
1405 | Some recent versions of UNIX, and/or terminal device drivers that come with |
---|
1406 | certain third-party add-in high-speed serial communication interfaces, use the |
---|
1407 | low "baud rates" to stand for higher ones. For example, SET SPEED 50 gets you |
---|
1408 | 57600 bps; SET SPEED 75 gets you 76800; SET SPEED 110 gets 115200. |
---|
1409 | |
---|
1410 | SCO ODT 3.0 is an example where a "baud-rate-table patch" can be applied that |
---|
1411 | can rotate the tty driver baud rate table such that 600=57600 and 1800=115k |
---|
1412 | baud. Similarly for Digiboard multiport/portservers, which have a |
---|
1413 | "fastbaud" setting that does this. |
---|
1414 | |
---|
1415 | The situation is similar, but different, in System V. SVID Third Edition |
---|
1416 | lists the same speeds, 0 through 38400. |
---|
1417 | |
---|
1418 | For further details, read the section TERMINAL SPEEDS in ckuins.doc. |
---|
1419 | |
---|
1420 | (7) COMMUNICATIONS AND DIALING |
---|
1421 | |
---|
1422 | The SET CARRIER command works as advertised only if the underlying operating |
---|
1423 | system and device drivers support this feature; in particular only if a read() |
---|
1424 | operation returns immediately with an error code if the carrier signal goes |
---|
1425 | away. And, of course, if the devices themselves (e.g. modems) |
---|
1426 | are configured appropriately and the cables convey the carrier signal, etc. |
---|
1427 | |
---|
1428 | When UNIX C-Kermit exits, it closes (and must close) the communications |
---|
1429 | device. If you were dialed out, this will most likely hang up the connection. |
---|
1430 | If you want to get out of Kermit and still use Kermit's communication device, |
---|
1431 | you have several choices: |
---|
1432 | |
---|
1433 | 1. Shell out from Kermit or suspend Kermit, and refer to the device literally |
---|
1434 | (as in "term -blah -blah < /dev/cua > /dev/cua"). |
---|
1435 | |
---|
1436 | 2. Shell out from Kermit and use the device's file descriptor which Kermit |
---|
1437 | makes available to you in the \v(ttyfd) variable. |
---|
1438 | |
---|
1439 | 3. Use C-Kermit's REDIRECT command. See the CKCKER.UPD file about this. |
---|
1440 | |
---|
1441 | If you are having trouble dialing: |
---|
1442 | |
---|
1443 | 1. Make sure the dialout line is configured correctly. More |
---|
1444 | about this below. |
---|
1445 | |
---|
1446 | 2. Make sure all necessary patches are installed for your operating |
---|
1447 | system. |
---|
1448 | |
---|
1449 | 3. If you can't dial on a "bidirectional" line, then configure it for |
---|
1450 | outbound-only (remove the getty) and try again. (The mechanisms -- if |
---|
1451 | any -- for grabbing bidirectional lines for dialout vary wildly |
---|
1452 | among UNIX implementations and releases, and C-Kermit -- which runs on |
---|
1453 | well over 300 different UNIX variations -- makes no effort to keep up |
---|
1454 | with them; the recommended method for coping with this situation is to |
---|
1455 | wrap C-Kermit in a shell script that takes the appropriate actions.) |
---|
1456 | |
---|
1457 | 4. Make sure C-Kermit's SET DIAL and SET MODEM parameters agree with the |
---|
1458 | modem you are actually using -- pay particular attention to SET DIAL |
---|
1459 | SPEED-MATCHING. |
---|
1460 | |
---|
1461 | 5. Try SET DIAL HANGUP OFF before the DIAL command. Also, SET DIAL DISPLAY |
---|
1462 | ON to watch what's happening. See section 8 of ckuins.doc. |
---|
1463 | |
---|
1464 | 6. Read pages 50-67 of "Using C-Kermit". |
---|
1465 | |
---|
1466 | 7. As a last resort, don't use the DIAL command at all; SET CARRIER OFF and |
---|
1467 | CONNECT to the modem and dial interactively, or write a script program to |
---|
1468 | dial the modem. |
---|
1469 | |
---|
1470 | Make sure your dialout line is correctly configured for dialing out (as |
---|
1471 | opposed to login). The method for doing this is different for each kind of |
---|
1472 | UNIX system. Consult your system documentation for configuring lines for |
---|
1473 | dialing out (for example, SUN SparcStation IPC users should read the section |
---|
1474 | "Setting up Modem Software" in the Desktop SPARC Sun System & Network |
---|
1475 | Manager's Guide; HP-9000 workstation users should consult the manual |
---|
1476 | "Configuring HP-UX for Peripherals", etc). |
---|
1477 | |
---|
1478 | Symptom: DIAL works, but a subsequent CONNECT command does not. Diagnosis: |
---|
1479 | the modem is not asserting Carrier Detect (CD) after the connection is made, |
---|
1480 | or the cable does not convey the CD signal. Cure: Reconfigure the modem, |
---|
1481 | replace the cable. Workaround: SET CARRIER OFF (at least in System-V based |
---|
1482 | UNIX versions). |
---|
1483 | |
---|
1484 | C-Kermit tries to use the 8th bit for data when parity is NONE, and this |
---|
1485 | generally works on real UNIX terminal (tty) devices, but it often does not |
---|
1486 | work when the UNIX system is accessed over a network via telnet or rlogin |
---|
1487 | protocols, including (in many cases) through terminal servers. For example, |
---|
1488 | an Encore computer with Annex terminal servers only gives a 7-bit path if |
---|
1489 | the rlogin protocol is selected in the terminal server but it gives the full |
---|
1490 | 8 bits if the proprietary RDP protocol is used. |
---|
1491 | |
---|
1492 | If file transfer does not work through a host to which you have rlogin'd, |
---|
1493 | use "rlogin -8" rather than "rlogin". If that doesn't work, tell both Kermit |
---|
1494 | programs to "set parity space". |
---|
1495 | |
---|
1496 | The Encore TELNET server does not allow long bursts of input. When you have |
---|
1497 | a TELNET connection to an Encore, tell C-Kermit on the Encore to SET RECEIVE |
---|
1498 | PACKET-LENGTH 200 or thereabouts. |
---|
1499 | |
---|
1500 | For Berkeley-UNIX-based systems (4.3BSD and earlier), Kermit includes code to |
---|
1501 | use LPASS8 mode when parity is none, which is supposed to allow 8-bit data and |
---|
1502 | Xon/Xoff flow control at the same time. However, as of edit 174, this code is |
---|
1503 | entirely disabled because it is unreliable: even though the host operating |
---|
1504 | system might (or might not) support LPASS8 mode correctly, the host access |
---|
1505 | protocols (terminal servers, telnet, rlogin, etc) generally have no way of |
---|
1506 | finding out about it and therefore render it ineffective, causing file |
---|
1507 | transfer failures. So as of edit 174, Kermit once again uses rawmode for |
---|
1508 | 8-bit data, and so there is no Xon/Xoff flow control during file transfer or |
---|
1509 | terminal emulation in the Berkeley-based versions (4.3 and earlier, not 4.4). |
---|
1510 | |
---|
1511 | Also on Berkeley-based systems (4.3 and earlier), there is apparently no way |
---|
1512 | to configure a dialout line for proper carrier handling, i.e. ignore carrier |
---|
1513 | during dialing, require carrier thereafter, get a fatal error on any attempt |
---|
1514 | to read from the device after carrier drops (this is handled nicely in System |
---|
1515 | V by manipulation of the CLOCAL flag). The symptom is that carrier loss does |
---|
1516 | not make C-Kermit pop back to the prompt automatically. This is evident on |
---|
1517 | the NeXT, for example, but not on SunOS, which supports the CLOCAL flag. This |
---|
1518 | is not a Kermit problem, but a limitation of the underlying operating system. |
---|
1519 | For example, the cu program on the NeXT doesn't notice carrier loss either, |
---|
1520 | whereas cu on the Sun does. |
---|
1521 | |
---|
1522 | On certain AT&T UNIX systems equipped with AT&T modems, DIAL and HANGUP don't |
---|
1523 | work right. Workarounds: (1) SET DIAL HANGUP OFF before attempting to dial; |
---|
1524 | (2) If HANGUP doesn't work, SET LINE, and then SET LINE <device> to totally |
---|
1525 | close and reopen the device. If all else fails, SET CARRIER OFF. |
---|
1526 | |
---|
1527 | C-Kermit does not contain any particular support for AT&T DataKit devices. |
---|
1528 | You can use Kermit software to dial in to a DataKit line, but C-Kermit does |
---|
1529 | not contain the specialized code required to dial out from a DataKit line. If |
---|
1530 | the UNIX system is connected to DataKit via serial ports, dialout should work |
---|
1531 | normally (e.g. set line /dev/ttym1, set speed 19200, connect, and then see the |
---|
1532 | DESTINATION: prompt, from which you can connect to another computer on the |
---|
1533 | DataKit network or to an outgoing modem pool, etc). But if the UNIX system |
---|
1534 | is connected to the DataKit network through the special DataKit interface |
---|
1535 | board, then SET LINE to a DataKit pseudodevice (such as /dev/dk031t) will not |
---|
1536 | work (you must use the DataKit "dk" or "dkcu" program instead). |
---|
1537 | |
---|
1538 | In some BSD-based UNIX C-Kermit versions, SET LINE to a port that has nothing |
---|
1539 | plugged in to it with SET CARRIER ON will hang the program (as it should), but |
---|
1540 | it can't be interrupted with Ctrl-C. The interrupt trap is correctly armed, |
---|
1541 | but apparently the UNIX open() call cannot be interrupted in this case. When |
---|
1542 | SET CARRIER is OFF or AUTO, the SET LINE will eventually return, but then the |
---|
1543 | program hangs (uninterruptibly) when the EXIT or QUIT command (or, presumably, |
---|
1544 | another SET LINE command) is given. The latter is probably because of the |
---|
1545 | attempt to hang up the modem. (In edit 169, a timeout alarm was placed around |
---|
1546 | this operation.) |
---|
1547 | |
---|
1548 | With SET DIAL HANGUP OFF in effect, the DIAL command might work only once, |
---|
1549 | but not again on the same device. In that case, give a SET LINE command |
---|
1550 | with no arguments to close the device, and then another SET LINE command for |
---|
1551 | the desired device. Or rebuild your version of Kermit with the -DCLSOPN |
---|
1552 | compile-time switch (see ckuins.doc). |
---|
1553 | |
---|
1554 | The DIAL command says "To cancel: Type your interrupt character (normally |
---|
1555 | Ctrl-C)." This is just one example of where program messages and |
---|
1556 | documentation assume your interrupt character is Ctrl-C. But it might be |
---|
1557 | something else. In most (but not necessarily all) cases, the character |
---|
1558 | referred to is the one that generates the SIGINT signal. If Ctrl-C doesn't |
---|
1559 | act as an interrupt character for you, type the Unix command "stty -a" or |
---|
1560 | "stty all" or "stty everything" to see what your interrupt character is. |
---|
1561 | (Kermit could be made to find out what the interrupt character is, but this |
---|
1562 | would require a lot of system-dependent coding and #ifdefs, and a new routine |
---|
1563 | and interface between the system-dependent and system-independent parts of the |
---|
1564 | program.) |
---|
1565 | |
---|
1566 | In general, the hangup operation on a serial communication device is prone |
---|
1567 | to failure. C-Kermit tries to support many, many different kinds of |
---|
1568 | computers, and there seems to be no portable method for hanging up a modem |
---|
1569 | connection (i.e. turning off the RS-232 DTR signal and then turning it back on |
---|
1570 | again). If HANGUP, DIAL, and/or Ctrl-\H do not work for you, and you are a |
---|
1571 | programmer, look at the tthang() function in ckutio.c and see if you can add |
---|
1572 | code to make it work correctly for your system, and send the code to the |
---|
1573 | address above. (NOTE: This problem has been largely sidestepped as of edit |
---|
1574 | 188, in which Kermit first attempts to hang up the modem by "escaping back" |
---|
1575 | via +++ and then giving the modem's hangup command, e.g. ATH0, when DIAL |
---|
1576 | MODEM-HANGUP is ON, which is the default setting.) |
---|
1577 | |
---|
1578 | Even when Kermit's modem-control software is configured correctly for your |
---|
1579 | computer, it can only work right if your modem is also configured to assert |
---|
1580 | the CD signal when it is connected to the remote modem and to hang up the |
---|
1581 | connection when your computer drops the DTR signal. So before deciding Kermit |
---|
1582 | doesn't work with your modem, check your modem configuration AND the cable (if |
---|
1583 | any) connecting your modem to the computer -- it should be a straight-through |
---|
1584 | modem cable conducting the signals FG, SG, TD, RD, RTS, CTS, DSR, DTR, CD, |
---|
1585 | and RI. |
---|
1586 | |
---|
1587 | Many UNIX systems keep aliases for dialout devices; for example, /dev/acu |
---|
1588 | might be an alias for /dev/tty00. But most of these UNIX systems also use |
---|
1589 | UUCP lockfile conventions that do not take this aliasing into account, so if |
---|
1590 | one user assigns (e.g.) /dev/acu, then another user can still assign the same |
---|
1591 | device by referring to its other name. This is not a Kermit problem -- |
---|
1592 | Kermit must follow the lockfile conventions used by the vendor-supplied |
---|
1593 | software (cu, tip, uucp). |
---|
1594 | |
---|
1595 | The SET FLOW-CONTROL KEEP option should be given *before* any communication |
---|
1596 | (dialing, terminal emulation, file transfer, INPUT/OUTPUT/TRANSMIT, etc) is |
---|
1597 | attempted, if you want C-Kermit to use all of the device's preexisting |
---|
1598 | flow-control related settings. The default flow-control setting is XON/XOFF, |
---|
1599 | and it will take effect when the first communication-related command is given, |
---|
1600 | and a subsequent SET FLOW KEEP command will not necessarily know how to |
---|
1601 | restore *all* of the device's original flow-control settings. |
---|
1602 | |
---|
1603 | (8) HARDWARE FLOW CONTROL |
---|
1604 | |
---|
1605 | SET FLOW RTS/CTS is available in UNIX C-Kermit only when the underlying |
---|
1606 | operating system provides an Application Program Interface (API) for turning |
---|
1607 | this feature on and off under program control, which turns out to be a rather |
---|
1608 | rare feature among UNIX systems. To see if your UNIX C-Kermit version |
---|
1609 | supports hardware flow control, type "set flow ?" at the C-Kermit prompt, and |
---|
1610 | look for "rts/cts" among the options. Other common situations include: |
---|
1611 | |
---|
1612 | 1. The API is available, so "set flow rts/cts" appears as a valid C-Kermit |
---|
1613 | command, but it doesn't do anything because the device driver (part of |
---|
1614 | the operating system) was never coded to do hardware flow control. This |
---|
1615 | is common among System V R4 implementations (details below). |
---|
1616 | |
---|
1617 | 2. The API is not available, so "set flow rts/cts" does NOT appear as a valid |
---|
1618 | C-Kermit command, but you can still get RTS/CTS flow control by selecting |
---|
1619 | a specially named device in your SET LINE command. Examples: |
---|
1620 | |
---|
1621 | NeXTSTEP: /dev/cufa instead of /dev/cua, /dev/cufb instead of /dev/cub |
---|
1622 | (68040 only; "man zs" for further info). |
---|
1623 | |
---|
1624 | IRIX: /dev/ttyf2 instead of /dev/ttyd2 or /dev/ttym2 ("man 7 serial"). |
---|
1625 | |
---|
1626 | 3. The API is available, doesn't work, but a workaround as in (2) can be used. |
---|
1627 | |
---|
1628 | 4. The API is available, but Kermit doesn't know about it. In these cases, |
---|
1629 | you can usually use an stty command to enable RTS/CTS on the device, e.g. |
---|
1630 | "stty crtscts" or "stty ctsflow", "stty rtsflow", before starting Kermit, |
---|
1631 | and then tell Kermit to SET FLOW KEEP. |
---|
1632 | |
---|
1633 | 5. No API and no special device drivers. Hardware flow control is completely |
---|
1634 | unavailable. |
---|
1635 | |
---|
1636 | System V R4 based UNIXes are supposed to supply a <termiox.h> file, which |
---|
1637 | gives Kermit the necessary interface to command the terminal driver to |
---|
1638 | enable/disable hardware flow control. Unfortunately, but predictably, many |
---|
1639 | implementations of SVR4 whimsically place this file in /usr/include/sys rather |
---|
1640 | than /usr/include (where SVID clearly specifies it should be; see SVID, Third |
---|
1641 | Edition, V1, termiox(BA_DEV). Thus if you build C-Kermit with any of the |
---|
1642 | makefile entries that contain -DTERMIOX or -DSTERMIOX (the latter to select |
---|
1643 | <sys/termiox.h>), C-Kermit will have "set flow rts/cts" and possibly other |
---|
1644 | hardware flow-control related commands. BUT... That does not necessarily |
---|
1645 | mean that they will work. In some cases, the underlying functions are simply |
---|
1646 | not coded into the operating system. |
---|
1647 | |
---|
1648 | (9) TERMINAL CONNECTION AND KEY MAPPING |
---|
1649 | |
---|
1650 | UNIX C-Kermit's SET KEY command currently can not be used with keys that |
---|
1651 | generate "wide" scan codes or multibyte sequences, such as workstation |
---|
1652 | function or arrow keys, because UNIX C-Kermit does not have direct access to |
---|
1653 | the keyboard. More about this in CKCKER.BWR. |
---|
1654 | |
---|
1655 | However, many UNIX workstations and/or console drivers provide their own key |
---|
1656 | mapping feature. With xterm, for example, you can use 'xmodmap' ("man |
---|
1657 | xmodmap" for details); here is an xterm mapping to map the Sun keyboard to DEC |
---|
1658 | VT200 values for use with VT-terminal oriented applications like VMS EVE: |
---|
1659 | |
---|
1660 | keycode 101=KP_0 |
---|
1661 | keycode 119=KP_1 |
---|
1662 | keycode 120=KP_2 |
---|
1663 | keycode 121=KP_3 |
---|
1664 | keycode 98=KP_4 |
---|
1665 | keycode 99=KP_5 |
---|
1666 | keycode 100=KP_6 |
---|
1667 | keycode 75=KP_7 |
---|
1668 | keycode 76=KP_8 |
---|
1669 | keycode 77=KP_9 |
---|
1670 | keycode 52=KP_F1 |
---|
1671 | keycode 53=KP_F2 |
---|
1672 | keycode 54=KP_F3 |
---|
1673 | keycode 57=KP_Decimal |
---|
1674 | keycode 28=Left |
---|
1675 | keycode 29=Right |
---|
1676 | keycode 30=KP_Separator |
---|
1677 | keycode 105=KP_F4 |
---|
1678 | keycode 78=KP_Subtract |
---|
1679 | keycode 8=Left |
---|
1680 | keycode 10=Right |
---|
1681 | keycode 32=Up |
---|
1682 | keycode 33=Down |
---|
1683 | keycode 97=KP_Enter |
---|
1684 | |
---|
1685 | Users of Linux consoles can use loadkeys ("man dumpkeys loadkeys keytables" |
---|
1686 | for details. The format used by loadkeys is compatible with that used by |
---|
1687 | Xmodmap, although it is not definitely certain that the keycodes are |
---|
1688 | compatible for different keyboard types (e.g. Sun vs HP vs PC, etc). |
---|
1689 | |
---|
1690 | UNIX GNU EMACS includes a "kermit" library that allows Kermit connections to |
---|
1691 | be made to other computers from within an EMACS window. As of June 1994, |
---|
1692 | there is also a Kermit file transfer library for GNU EMACS. |
---|
1693 | |
---|
1694 | (10) FILE TRANSFER |
---|
1695 | |
---|
1696 | UNIX C-Kermit does not reject incoming files on the basis of size. There |
---|
1697 | appears to be no good (reliable, portable) way to determine in advance how |
---|
1698 | much disk space is available, either on the device, or (when quotas are |
---|
1699 | involved) to the user. |
---|
1700 | |
---|
1701 | File transfer will fail if the incoming file is bigger than your ULIMIT. |
---|
1702 | Use the UNIX ulimit command to examine or change your ULIMIT (the number is |
---|
1703 | in 512-byte blocks, i.e. 0.5K). |
---|
1704 | |
---|
1705 | UNIX C-Kermit discards all carriage returns from incoming files when in text |
---|
1706 | mode. |
---|
1707 | |
---|
1708 | If C-Kermit is receiving a file on a dialup connection and the connection |
---|
1709 | hangs up, the SIGHUP signal is delivered to the top-level shell, which kills |
---|
1710 | all processes (including Kermit and any of its subforks) and closes all open |
---|
1711 | files, including the file that was being received. Even if you have told |
---|
1712 | Kermit to SET FILE INCOMPLETE DISCARD, the partially received file is kept. |
---|
1713 | See comments in ckutio.c (search for SIGHUP) for details. |
---|
1714 | |
---|
1715 | If you SET FILE DISPLAY FULLSCREEN, and C-Kermit complains "Sorry, terminal |
---|
1716 | type not supported", it means that the terminal library (termcap or termlib) |
---|
1717 | that C-Kermit was built with does not know about a terminal whose name is the |
---|
1718 | current value of your TERM environment variable. If this happens, EXIT from |
---|
1719 | C-Kermit and set a UNIX terminal type from among the supported values that is |
---|
1720 | also supported by your terminal emulator, or else have an entry for your |
---|
1721 | terminal type added to the system termcap and/or terminfo database. |
---|
1722 | |
---|
1723 | If you attempt to suspend C-Kermit during local-mode file transfer and then |
---|
1724 | continue it in the background (via bg), it will block for "tty output" if |
---|
1725 | you are using the FULLSCREEN file transfer display. This is apparently |
---|
1726 | a problem with curses. Moving a local-mode file transfer back and forth |
---|
1727 | between foreground and background works correctly, however, with the SERIAL, |
---|
1728 | CRT, or NONE file transfer displays. |
---|
1729 | |
---|
1730 | If C-Kermit's command parser no longer echoes, or otherwise acts strangely, |
---|
1731 | after returning from a file transfer with the fullscreen (curses) display, |
---|
1732 | and your version of UNIX is based on AT&T System V, then try rebuilding your |
---|
1733 | version of C-Kermit with -DCK_NEWTERM. Similarly if it echoes doubly, which |
---|
1734 | might even happen during a subsequent CONNECT session. If rebuilding with |
---|
1735 | -DCK_NEWTERM doesn't fix it, then there is something very strange about your |
---|
1736 | systems curses library, and you should probably not use it. Tell C-Kermit |
---|
1737 | to SET FILE DISPLAY CRT or anything else other than FULLSCREEN, or rebuild |
---|
1738 | without -DCK_CURSES, and without linking with (termlib and) curses. |
---|
1739 | |
---|
1740 | It has been observed on a couple platforms -- e.g. BSDI and QNX -- that the |
---|
1741 | curses display works properly only once. The second and subsequent times, |
---|
1742 | the display is a mess. The reason is unknown, the cure is unknown. See the |
---|
1743 | comments in screenc() in ckuusx.c. In one other case (one of the Linux |
---|
1744 | distributions), a cure was obtained by linking to a different curses library |
---|
1745 | (ncurses rather than curses). |
---|
1746 | |
---|
1747 | Reportedly, when using "MSEND *" from a 14-character filename UNIX system to |
---|
1748 | another system (e.g. BSD) that allows longer names, with SET FILE NAMES |
---|
1749 | LITERAL, any files with 14-character names will have a space added to the end |
---|
1750 | of the name on the receiving machine (this *should* be fixed in 6.0). |
---|
1751 | |
---|
1752 | Optimum file transfer performance is a matter of tuning parameters like packet |
---|
1753 | length, window size, control-character unprefixing, and on serial connections, |
---|
1754 | ensuring there is an effective flow control method, preferably hardware (such |
---|
1755 | as RTS/CTS). |
---|
1756 | |
---|
1757 | However, a fully-configured C-Kermit program can be slower than a minimally |
---|
1758 | configured one simply because of its size. A command-line-only version that |
---|
1759 | is stripped of every conceivable feature not affecting file transfer (such as |
---|
1760 | "sunos41m" for the Sun or "dellsys5r4m" for Dell) can move files faster than a |
---|
1761 | full-featured one. Thus, it might make sense to keep a minimal version |
---|
1762 | available as well as a full-featured one. See the files ckuins.doc and |
---|
1763 | ckccfg.doc as well as the makefile for how to do this. |
---|
1764 | |
---|
1765 | A fairly substantial reduction in size and a noticeable improvement in speed |
---|
1766 | can be obtained simply by rebuilding C-Kermit without the debugging feature: |
---|
1767 | |
---|
1768 | make <entryname> KFLAGS=-DNODEBUG |
---|
1769 | |
---|
1770 | See ckccfg.doc for more detailed information about configuration. |
---|
1771 | |
---|
1772 | (11) EXTERNAL FILE TRANSFER PROTOCOLS |
---|
1773 | |
---|
1774 | UNIX C-Kermit can be used in conjunction with other communications software |
---|
1775 | in various ways. C-Kermit can be invoked from another communications program |
---|
1776 | as an "external protocol", and C-Kermit can also invoke other communication |
---|
1777 | software to perform external protocols. |
---|
1778 | |
---|
1779 | This sort of operation makes sense only when you are dialing out from your |
---|
1780 | UNIX system. If the UNIX system is the one you have dialed in to, you don't |
---|
1781 | need any of these tricks. Just run the desired software on your UNIX system |
---|
1782 | instead of Kermit. When dialing out from a UNIX system, the difficulty is |
---|
1783 | getting two programs to share the same communication device in spite of the |
---|
1784 | UNIX UUCP lockfile mechanism, which would normally prevent any sharing, and |
---|
1785 | preventing the external protocol from closing (and therefore hanging up) the |
---|
1786 | device when it exits back to the program that invoked it. |
---|
1787 | (This section deleted; see ckcker.upd.) |
---|
1788 | |
---|
1789 | "pcomm" is a general-purpose terminal program that provides file transfer |
---|
1790 | capabilities itself (X- and YMODEM variations) and the ability to call on |
---|
1791 | external programs to do file transfers (ZMODEM and Kermit, for example). You |
---|
1792 | can tell pcomm the command to send or receive a file with an external |
---|
1793 | protocol: |
---|
1794 | send receive |
---|
1795 | ZMODEM sz <filename> rz |
---|
1796 | Kermit kermit -s <filename> kermit -r |
---|
1797 | |
---|
1798 | pcomm runs external programs for file transfer by making stdin and stdout |
---|
1799 | point to the modem port, and then exec-ing "/bin/sh -c xxx" (where xxx is the |
---|
1800 | appropriate command). However, C-Kermit does not treat stdin and stdout as |
---|
1801 | the communication device unless you instruct it: |
---|
1802 | |
---|
1803 | send receive |
---|
1804 | Kermit kermit -l 0 -s <filename> kermit -l 0 -r |
---|
1805 | |
---|
1806 | The "-l 0" option means to use file descriptor 0 for the communication device. |
---|
1807 | |
---|
1808 | In general, any program can pass any open file descriptor to C-Kermit for the |
---|
1809 | communication device in the "-l" command-line option. When Kermit is given |
---|
1810 | a number as the argument to the "-l" option, it simply uses it as a file |
---|
1811 | descriptor, and it does not attempt to close it upon exit. |
---|
1812 | |
---|
1813 | Here's another example, for Seyon (a Linux communication program). First try |
---|
1814 | the technique above. If that works, fine; otherwise... If Seyon does not |
---|
1815 | give you a way to access and pass along the file descriptor, but it starts up |
---|
1816 | the Kermit program with its standard i/o redirected to its (Seyon's) |
---|
1817 | communications file descriptor, you can also experiment with the following |
---|
1818 | method, which worked here in brief tests on SunOS. Instead of having Seyon |
---|
1819 | use "kermit -r" or "kermit -s filename" as its Kermit protocol commands, use |
---|
1820 | something like this (examples assume C-Kermit 6.0): |
---|
1821 | |
---|
1822 | For serial connections: |
---|
1823 | |
---|
1824 | kermit -YqQl 0 -r <-- to receive |
---|
1825 | kermit -YqQl 0 -s filename(s) <-- to send one or more files |
---|
1826 | |
---|
1827 | For Telnet connections: |
---|
1828 | |
---|
1829 | kermit -YqQF 0 -r <-- to receive |
---|
1830 | kermit -YqQF 0 -s filename(s) <-- to send one or more files |
---|
1831 | |
---|
1832 | Command line options: |
---|
1833 | |
---|
1834 | Y - skip executing the init file |
---|
1835 | Q - use fast file transfer settings |
---|
1836 | l 0 - transfer files using file descriptor 0 for a serial connection |
---|
1837 | F 0 - transfer files using file descriptor 0 for a Telnet connection |
---|
1838 | q - quiet - no messages |
---|
1839 | r - receive |
---|
1840 | s - send |
---|
1841 | |
---|
1842 | (11.2) INVOKING EXTERNAL PROTOCOLS FROM C-KERMIT |
---|
1843 | |
---|
1844 | (This section is obsolete, but not totally useless. |
---|
1845 | See section 8 of CKCKER.UPD.) |
---|
1846 | |
---|
1847 | After you have opened a communication link with C-Kermit's SET LINE (SET PORT) |
---|
1848 | or SET HOST (TELNET) command, C-Kermit makes its file descriptor available to |
---|
1849 | you in the \v(ttyfd) variable so you can make it available to other programs |
---|
1850 | that you RUN from C-Kermit. Here, for example, C-Kermit runs itself as an |
---|
1851 | external protocol: |
---|
1852 | |
---|
1853 | C-Kermit>set modem type hayes |
---|
1854 | C-Kermit>set line /dev/acu |
---|
1855 | C-Kermit>set speed 2400 |
---|
1856 | C-Kermit>dial 7654321 |
---|
1857 | Call complete. |
---|
1858 | C-Kermit>echo \v(ttyfd) |
---|
1859 | 3 |
---|
1860 | C-Kermit>run kermit -l \v(ttyfd) |
---|
1861 | |
---|
1862 | Other programs that accept open file descriptors on the command line can be |
---|
1863 | started in the same way. |
---|
1864 | |
---|
1865 | You can also use your shell's i/o redirection facilities to assign C-Kermit's |
---|
1866 | open file descriptor (ttyfd) to stdin or stdout. For example, old versions of |
---|
1867 | the UNIX ZMODEM programs, sz and rz, when invoked as external protocols, |
---|
1868 | expect to find the communication device assigned to stdin and stdout with no |
---|
1869 | option for specifying any other file descriptor on the sz or rz command line. |
---|
1870 | However, you can still invoke sz and rz as exterior protocols from C-Kermit if |
---|
1871 | your current shell ($SHELL variable) is ksh (the Korn shell) or bash (the |
---|
1872 | Bourne-Again shell), which allows assignment of arbitrary file descriptors to |
---|
1873 | stdin and stdout: |
---|
1874 | |
---|
1875 | C-Kermit> run rz <&\v(ttyfd) >&\v(ttyfd) |
---|
1876 | |
---|
1877 | or: |
---|
1878 | |
---|
1879 | C-Kermit> run sz oofa.zip <&\v(ttyfd) >&\v(ttyfd) |
---|
1880 | |
---|
1881 | In version 5A(190) and later, you can use C-Kermit's REDIRECT command, if it |
---|
1882 | is available in your version of C-Kermit, to accomplish the same thing without |
---|
1883 | going through the shell: |
---|
1884 | |
---|
1885 | C-Kermit> redirect rz |
---|
1886 | |
---|
1887 | or: |
---|
1888 | |
---|
1889 | C-Kermit> redirect sz oofa.zip |
---|
1890 | |
---|
1891 | A complete set of rz,sz,rb,sb,rx,sx macros for UNIX C-Kermit is defined in |
---|
1892 | the file ckurzsz.ini. It automatically chooses the best redirection method. |
---|
1893 | |
---|
1894 | (11.3) USING C-KERMIT WITH TERM |
---|
1895 | |
---|
1896 | The "term" program provides an error-corrected, multiplexed connection |
---|
1897 | between two UNIX systems, allowing you to run multiple applications over a |
---|
1898 | single connection, for example several terminal windows and a file transfer |
---|
1899 | simultaneously. Term depends on a communications application (such as |
---|
1900 | C-Kermit) to make the connection and then redirect it to term's standard i/o. |
---|
1901 | The advantages of using C-Kermit rather than other communication programs for |
---|
1902 | this include: |
---|
1903 | |
---|
1904 | . C-Kermit's script language lets you automate the entire process. |
---|
1905 | |
---|
1906 | . With C-Kermit's REDIRECT command, term sessions are not limited to serial |
---|
1907 | connections, but can work over network connections (TCP/IP, X.25) too. |
---|
1908 | |
---|
1909 | Here is an example showing how to set up a term session between two UNIX |
---|
1910 | systems with with C-Kermit (assuming the connection has already been made |
---|
1911 | by C-Kermit, e.g. by dialing up): |
---|
1912 | |
---|
1913 | C-Kermit> connect |
---|
1914 | login: xxx |
---|
1915 | Password: xxx |
---|
1916 | $ exec term -r -s 38400 -A |
---|
1917 | ^\c (escape back) |
---|
1918 | C-Kermit>redirect term -s 38400 -A & |
---|
1919 | C-Kermit>push |
---|
1920 | $ |
---|
1921 | |
---|
1922 | Now you can run term clients such as trsh and tupload at the local shell |
---|
1923 | prompt. |
---|
1924 | |
---|
1925 | (12) MISCELLANEOUS |
---|
1926 | |
---|
1927 | If C-Kermit has problems creating files in writable directories when it is |
---|
1928 | installed setuid or setgid on BSD-based versions of UNIX such |
---|
1929 | as NeXTSTEP 3.0, it probably needs to be rebuilt with the -DSW_ACC_ID |
---|
1930 | comilation switch (see ckuins.doc). |
---|
1931 | |
---|
1932 | Reportedly, when coming into a Sequent UNIX (DYNIX) system through an X.25 |
---|
1933 | connection, Kermit doesn't work right because the Sequent's FIONREAD ioctl |
---|
1934 | returns incorrect data. To work around, use the 1-character-at-a-time version |
---|
1935 | of myread() in ckutio.c (i.e. undefine MYREAD in ckutio.c and rebuild the |
---|
1936 | program). |
---|
1937 | |
---|
1938 | ------------------------------ |
---|
1939 | |
---|
1940 | USER REPORTS - |
---|
1941 | |
---|
1942 | Date: Thu, 12 Mar 92 1:59:25 MEZ |
---|
1943 | From: Walter Mecky <walter@rent-a-guru.de> |
---|
1944 | Subject: Help.Unix.sw |
---|
1945 | To: svr4@pcsbst.pcs.com, source@usl.com |
---|
1946 | |
---|
1947 | PRODUCT: Unix |
---|
1948 | RELEASE: Dell SVR4 V2.1 (is USL V3.0) |
---|
1949 | MACHINE: AT-386 |
---|
1950 | PATHNAME: /usr/lib/libc.so.1 |
---|
1951 | /usr/ccs/lib/libc.a |
---|
1952 | ABSTRACT: Function ttyname() does not close its file descriptor |
---|
1953 | DESCRIPTION: |
---|
1954 | ttyname(3C) opens /dev but never closes it. So if it is called |
---|
1955 | often enough the open(2) in ttyname() fails. Because the broken |
---|
1956 | ttyname() is in the shared lib too all programs using it can |
---|
1957 | fail if they call it often enough. One important program is |
---|
1958 | uucico which calls ttyname for every file it transfers. |
---|
1959 | |
---|
1960 | Here is a little test program if your system has the bug: |
---|
1961 | |
---|
1962 | #include <stdlib.h> |
---|
1963 | #include <stdio.h> |
---|
1964 | main() { |
---|
1965 | int i = 0; |
---|
1966 | while (ttyname(0) != NULL) |
---|
1967 | i++; |
---|
1968 | perror("ttyname"); |
---|
1969 | printf("i=%d\n", i); |
---|
1970 | } |
---|
1971 | |
---|
1972 | If this program runs longer than some seconds you don't have the bug. |
---|
1973 | |
---|
1974 | WORKAROUND: |
---|
1975 | None |
---|
1976 | FIX: |
---|
1977 | Very easy if you have source code. |
---|
1978 | |
---|
1979 | Another user reports some more explicit symptoms and recoveries: |
---|
1980 | |
---|
1981 | > What happens is when invoking ckermit we get one of the following |
---|
1982 | > error messages: |
---|
1983 | > You must set line |
---|
1984 | > Not a tty |
---|
1985 | > No more processes. |
---|
1986 | > One of the following three actions clears the peoblem: |
---|
1987 | > shutdown -y -g0 -i6 |
---|
1988 | > kill -9 the ttymon with the highest PID |
---|
1989 | > Invoke sysadm and disable then enable the line you want to use. |
---|
1990 | > Turning off respawn of sac -t 300 and going to getty's and uugetty's |
---|
1991 | > does not help. |
---|
1992 | > |
---|
1993 | > Also C-Kermit reports "?timed out closing /dev/ttyxx". |
---|
1994 | > If this happens all is well. |
---|
1995 | |
---|
1996 | ------------------------------ |
---|
1997 | |
---|
1998 | (Note: the following problem also occurs on SGI and probably many other |
---|
1999 | UNIX systems): |
---|
2000 | |
---|
2001 | From: James Spath <spath@jhunix.hcf.jhu.edu> |
---|
2002 | To: Info-Kermit-Request@cunixf.cc.columbia.edu |
---|
2003 | Date: Wed, 9 Sep 1992 20:20:28 -0400 |
---|
2004 | Subject: C-Kermit vs uugetty (or init) on Sperry 5000 |
---|
2005 | |
---|
2006 | We have sucessfully compiled the above release on a Unisys/Sperry 5000/95. We |
---|
2007 | used the sys5r3 option, rather than sys5r2 since we have VR3 running on our |
---|
2008 | system. In order to allow dialout access to non-superusers, we had to do |
---|
2009 | "chmod 666 /dev/tty###", where it had been -rw--w--w- (owned by uucp), and to |
---|
2010 | do "chmod +w /usr/spool/locks". We have done text and binary file transfers |
---|
2011 | through local and remote connections. |
---|
2012 | |
---|
2013 | The problem concerning uucp ownership and permissions is worse than I thought |
---|
2014 | at first. Apparently init or uugetty changes the file permissions after each |
---|
2015 | session. So I wrote the following C program to open a set of requested tty |
---|
2016 | lines. I run this for any required outgoing line prior to a Kermit session. |
---|
2017 | |
---|
2018 | ------ cut here ------- |
---|
2019 | /* opentty.c -- force allow read on tty lines for modem i/o */ |
---|
2020 | /* idea from: restrict.c -- Systsem 5 Admin book Thomas/Farrow p. 605 */ |
---|
2021 | /* /jes jim spath {spath@jhunix.hcj.jhu.edu } */ |
---|
2022 | /* 08-Sep-92 NO COPYRIGHT. */ |
---|
2023 | /* this must be suid to open other tty lines */ |
---|
2024 | |
---|
2025 | /* #define DEBUG */ |
---|
2026 | #define TTY "/dev/tty" |
---|
2027 | #define LOK "/usr/spool/locks/LCK..tty" |
---|
2028 | #include <stdio.h> |
---|
2029 | |
---|
2030 | /* allowable lines: */ |
---|
2031 | #define TOTAL_LINES 3 |
---|
2032 | static char allowable[TOTAL_LINES][4] = { "200", "201", "300" }; |
---|
2033 | static int total=TOTAL_LINES; |
---|
2034 | int allow; |
---|
2035 | |
---|
2036 | /* states: */ |
---|
2037 | #define TTY_UNDEF 0 |
---|
2038 | #define TTY_LOCK 1 |
---|
2039 | #define TTY_OKAY 2 |
---|
2040 | |
---|
2041 | main(argc, argv) |
---|
2042 | int argc; char *argv[]; { |
---|
2043 | char device[512]; |
---|
2044 | char lockdev[512]; |
---|
2045 | int i; |
---|
2046 | if (argc == 1) { |
---|
2047 | fprintf(stderr, "usage: open 200 [...]\n"); |
---|
2048 | } |
---|
2049 | while (--argc > 0 && (*++argv) != NULL ) { |
---|
2050 | #ifdef DEBUG |
---|
2051 | fprintf(stderr, "TRYING: %s%s\n", TTY, *argv); |
---|
2052 | #endif |
---|
2053 | sprintf(device, "%s%s", TTY, *argv); |
---|
2054 | sprintf(lockdev, "%s%s", LOK, *argv); |
---|
2055 | allow = TTY_UNDEF; i = 0; |
---|
2056 | while (i <= total) { /* look at all defined lines */ |
---|
2057 | #ifdef DEBUG |
---|
2058 | fprintf(stderr, "LOCKFILE? %s?\n", lockdev); |
---|
2059 | #endif |
---|
2060 | if (access(lockdev, 00) == 0) { |
---|
2061 | allow=TTY_LOCK; |
---|
2062 | break; |
---|
2063 | } |
---|
2064 | #ifdef DEBUG |
---|
2065 | fprintf(stderr, "DOES:%s==%s?\n", allowable[i], *argv); |
---|
2066 | #endif |
---|
2067 | if (strcmp(allowable[i], *argv) == 0) |
---|
2068 | allow=TTY_OKAY; |
---|
2069 | i++; |
---|
2070 | } |
---|
2071 | #ifdef DEBUG |
---|
2072 | fprintf(stderr, "allow=%d\n", allow); |
---|
2073 | #endif |
---|
2074 | switch (allow) { |
---|
2075 | case TTY_UNDEF: |
---|
2076 | fprintf (stderr, "open: not allowed on %s\n", *argv); |
---|
2077 | break; |
---|
2078 | case TTY_LOCK: |
---|
2079 | fprintf (stderr, "open: device locked: %s\n", lockdev); |
---|
2080 | break; |
---|
2081 | case TTY_OKAY: |
---|
2082 | /* attempt to change mode on device */ |
---|
2083 | if (chmod (device, 00666) < 0) |
---|
2084 | fprintf (stderr, "open: cannot chmod on %s\n", device); |
---|
2085 | break; |
---|
2086 | default: |
---|
2087 | fprintf (stderr, "open: FAULT\n"); |
---|
2088 | } |
---|
2089 | } |
---|
2090 | exit (0); |
---|
2091 | } |
---|
2092 | |
---|
2093 | ------------------------------ |
---|
2094 | |
---|
2095 | (End of CKUKER.BWR) |
---|