Imported Upstream version 302
[ckermit.git] / ckubwr.txt
1
2    [1]The Columbia Crown The Kermit Project | Columbia University
3    612 West 115th Street, New York NY 10025 USA o [2]kermit@columbia.edu
4    ...since 1981
5    [3]Home [4]Kermit 95 [5]C-Kermit [6]Scripts [7]Current [8]New [9]FAQ
6    [10]Support
7
8 C-Kermit Unix Hints and Tips
9
10      Frank da Cruz
11      [11]The Kermit Project, [12]Columbia University
12
13    As of: C-Kermit 9.0.302, 20 August 2011
14    This page last updated: Sun Aug 21 12:08:52 2011 (New York USA Time)
15
16      IF YOU ARE READING A PLAIN-TEXT version of this document, note it is
17      a plain-text dump of a Web page. You can visit the original (and
18      possibly more up-to-date) Web page here:
19
20   [13]http://www.columbia.edu/kermit/ckubwr.html
21
22      Since the material in this file has been accumulating since 1985,
23      some (much) of it might be dated.
24
25 Known problems with C-Kermit 9.0
26
27      * Domain name resolution does not work in Solaris 10 or 11 (fixed in
28        [14]9.0.301).
29      * UUCP lockfile failure in FreeBSD 8 (fixed in [15]9.0.302).
30      * Build failure FreeBSD 9 (fixed in [16]9.0.302).
31      * Opening new SSH sessions after closing previous ones sometimes
32        fails.
33      * Heimdal Kerberos not supported.
34
35    [ [17]C-Kermit ] [ [18]Installation Instructions ] [ [19]TUTORIAL ]
36
37 CONTENTS
38
39     1. [20]INTRODUCTION
40     2. [21]PREBUILT C-KERMIT BINARIES
41     3. [22]PLATFORM-SPECIFIC NOTES
42     4. [23]GENERAL UNIX-SPECIFIC LIMITATIONS AND BUGS
43     5. [24]INITIALIZATION AND COMMAND FILES
44     6. [25]COMMUNICATION SPEED SELECTION
45     7. [26]COMMUNICATIONS AND DIALING
46     8. [27]HARDWARE FLOW CONTROL
47     9. [28]TERMINAL CONNECTION AND KEY MAPPING
48    10. [29]FILE TRANSFER
49    11. [30]EXTERNAL FILE TRANSFER PROTOCOLS
50    12. [31]SECURITY
51    13. [32]MISCELLANEOUS USER REPORTS
52    14. [33]THIRD-PARTY DRIVERS
53
54    Quick Links:   [ [34]Linux ] [ [35]*BSD ] [[36]Mac OS X] [ [37]AIX ] [
55    [38]HP-UX ] [ [39]Solaris ] [ [40]SCO ]
56
57 1. INTRODUCTION
58
59    [ [41]Top ] [ [42]Contents ] [ [43]Next ]
60
61    SECTION CONTENTS
62
63   1.1. [44]Documentation
64   1.2. [45]Technical Support
65   1.3. [46]The Year 2000
66   1.4. [47]The Euro
67
68    THIS IS WHAT USED TO BE CALLED the "beware file" for the Unix version
69    of C-Kermit, previously distributed as ckubwr.txt and, before that, as
70    ckuker.bwr, after the fashion of old Digital Equipment Corporation
71    (DEC) software releases that came with release notes (describing what
72    had changed) and a "beware file" listing known bugs, limitations,
73    "non-goals", and things to watch out for. The C-Kermit beware file has
74    been accumulating since 1985, and it applies to many different hardware
75    platforms and operating systems, and many versions of them, so it is
76    quite large. Prior to C-Kermit 8.0, it was distributed only in
77    plain-text format. Now it is available as a Web document with links,
78    internal cross references, and so on, to make it easier to use.
79
80    This document applies to Unix C-Kermit in general, as well as to
81    specific Unix variations like [48]Linux, [49]AIX, [50]HP-UX,
82    [51]Solaris, and so on, and should be read in conjunction with the
83    [52]platform-independent C-Kermit beware file, which contains similar
84    information, but applying to all versions of C-Kermit (VMS, Windows,
85    OS/2, AOS/VS, VOS, etc, as well as to Unix).
86
87    There is much in this document that is (only) of historical interest.
88    The navigation links should help you skip directly to the sections that
89    are relevant to you. Numerous offsite Web links are supposed to lead to
90    further information but, as you know, Web links go stale frequently and
91    without warning. If you can supply additional, corrected, updated, or
92    better Web links, please feel free to [53]let me know.
93
94 1.1. Documentation
95
96    [ [54]Top ] [ [55]Contents ] [ [56]Next ]
97
98    C-Kermit 6.0 is documented in the book [57]Using C-Kermit, Second
99    Edition, by Frank da Cruz and Christine M. Gianone, Digital Press,
100    Burlington, MA, USA, ISBN 1-55558-164-1 (1997), 622 pages. This remains
101    the definitive C-Kermit documentation. Until the third edition is
102    published (sorry, there is no firm timeframe for this), please also
103    refer to:
104
105    [58]Supplement to Using C-Kermit, Second Edition, For C-Kermit 7.0
106           Thorough documentation of features new to version 7.0.
107
108    [59]Supplement to Using C-Kermit, Second Edition, For C-Kermit 8.0
109           Thorough documentation of features new to version 8.0.
110
111    [60]Supplement to Using C-Kermit, Second Edition, For C-Kermit 9.0
112           Thorough documentation of features new to version 9.0.
113
114 1.2. Technical Support
115
116    [ [61]Top ] [ [62]Contents ] [ [63]Section Contents ] [ [64]Next ] [
117    [65]Previous ]
118
119    For information on how to get technical support, please visit:
120
121     [66]http://www.columbia.edu/kermit/support.html
122
123 1.3. The Year 2000
124
125    [ [67]Top ] [ [68]Contents ] [ [69]Section Contents ] [ [70]Next ] [
126    [71]Previous ]
127
128    The Unix version of C-Kermit, release 6.0 and later, is "Year 2000
129    compliant", but only if the underlying operating system is too. Contact
130    your Unix operating system vendor to find out which operating system
131    versions, patches, hardware, and/or updates are required. (Quite a few
132    old Unixes are still in operation in the new millenium, but with their
133    date set 28 years in the past so at least the non-year parts of the
134    calendar are correct.)
135
136    As of C-Kermit 6.0 (6 September 1996), post-millenium file dates are
137    recognized, transmitted, received, and reproduced correctly during the
138    file transfer process in C-Kermit's File Attribute packets. If
139    post-millenium dates are not processed correctly on the other end, file
140    transfer still takes place, but the modification or creation date of
141    the received file might be incorrect. The only exception would be if
142    the "file collision update" feature is being used to prevent
143    unnecessary transfer of files that have not changed since the last time
144    a transfer took place; in this case, a file might be transferred
145    unnecessarily, or it might not be transferred when it should have been.
146    Correct operation of the update feature depends on both Kermit programs
147    having the correct date and time.
148
149    Of secondary importance are the time stamps in the transaction and/or
150    debug logs, and the date-related script programming constructs, such as
151    \v(date), \v(ndate), \v(day), \v(nday), and perhaps also the
152    time-related ones, \v(time) and \v(ntime), insofar as they might be
153    affected by the date. The \v(ndate) is a numeric-format date of the
154    form yyyymmdd, suitable for both lexical and numeric comparison and
155    sorting: e.g. 19970208 or 20011231. If the underlying operating system
156    returns the correct date information, these variables will have the
157    proper values. If not, then scripts that make decisions based on these
158    variables might not operate correctly.
159
160    Most date-related code is based upon the C Library asctime() string,
161    which always has a four-digit year. In Unix, the one bit of code in
162    C-Kermit that is an exception to this rule is several calls to
163    localtime(), which returns a pointer to a tm struct, in which the year
164    is presumed to be expressed as "years since 1900". The code depends on
165    this assumption. Any platforms that violate it will need special
166    coding. As of this writing, no such platforms are known.
167
168    Command and script programming functions that deal with dates use
169    C-Kermit specific code that always uses full years.
170
171 1.4. The Euro
172
173    [ [72]Top ] [ [73]Contents ] [ [74]Section Contents ] [ [75]Previous ]
174
175    C-Kermit 7.0 and later support Unicode (ISO 10646), ISO 8859-15 Latin
176    Alphabet 9, PC Code Page 858, Windows Code Pages 1250 and 1251, and
177    perhaps other character sets, that encode the Euro symbol, and can
178    translate among them as long as no intermediate character-set is
179    involved that does not include the Euro.
180
181 2. PREBUILT C-KERMIT BINARIES
182
183    [ [76]Top ] [ [77]Contents ] [ [78]Next ] [ [79]Previous ]
184
185    It is often dangerous to run a binary C-Kermit (or any other) program
186    built on a different computer. Particularly if that computer had a
187    different C compiler, libraries, operating system version, processor
188    features, etc, and especially if the program was built with shared
189    libraries, because as soon as you update the libraries on your system,
190    they no longer match the ones referenced in the binary, and the binary
191    might refuse to load when you run it, in which case you'll see error
192    messages similar to:
193
194   Could not load program kermit
195   Member shr4.o not found or file not an archive
196   Could not load library libcurses.a[shr4.o]
197   Error was: No such file or directory
198
199    (These samples are from AIX.) To avoid this problem, we try to build
200    C-Kermit with statically linked libraries whenever we can, but this is
201    increasingly impossible as shared libraries become the norm.
202
203    It is often OK to run a binary built on an earlier OS version, but it
204    is rarely possible (or safe) to run a binary built on a later one, for
205    example to run a binary built under Solaris 8 on Solaris 2.6. Sometimes
206    even the OS-or-library patch/ECO level makes a difference.
207
208    A particularly insidious problem occurs when a binary was built on a
209    version of the OS that has patches from the vendor (e.g. to libraries);
210    in many cases you won't be able to run such a binary on an unpatched
211    version of the same platform.
212
213    When in doubt, build C-Kermit from the source code on the computer
214    where it is to be run (if possible!). If not, ask us for a binary
215    specific to your configuration. We might have one, and if we don't, we
216    might be able to find somebody who will build one for you.
217
218 3. NOTES ON SPECIFIC UNIX VERSIONS
219
220    [ [80]Top ] [ [81]Contents ] [ [82]Next ] [ [83]Previous ]
221
222    SECTION CONTENTS
223
224   3.0.  [84]C-KERMIT ON PC-BASED UNIXES
225   3.1.  [85]C-KERMIT AND AIX
226   3.2.  [86]C-KERMIT AND HP-UX
227   3.3.  [87]C-KERMIT AND LINUX
228   3.4.  [88]C-KERMIT AND NEXTSTEP
229   3.5.  [89]C-KERMIT AND QNX
230   3.6.  [90]C-KERMIT AND SCO
231   3.7.  [91]C-KERMIT AND SOLARIS
232   3.8.  [92]C-KERMIT AND SUNOS
233   3.9.  [93]C-KERMIT AND ULTRIX
234   3.10. [94]C-KERMIT AND UNIXWARE
235   3.11. [95]C-KERMIT AND APOLLO SR10
236   3.12. [96]C-KERMIT AND TANDY XENIX 3.0
237   3.13. [97]C-KERMIT AND OSF/1 (DIGITAL UNIX) (TRU64 UNIX)
238   3.14. [98]C-KERMIT AND SGI IRIX
239   3.15. [99]C-KERMIT AND THE BEBOX
240   3.16. [100]C-KERMIT AND DG/UX
241   3.17. [101]C-KERMIT AND SEQUENT DYNIX
242   3.18. [102]C-KERMIT AND {FREE,OPEN,NET}BSD
243   3.19. [103]C-KERMIT AND MAC OS X
244   3.20. [104]C-KERMIT AND COHERENT
245
246    The following sections apply to specific Unix versions. Most of them
247    contain references to FAQs (Frequently Asked Questions), but these tend
248    to be ephemeral. For possibly more current information see:
249
250   [105]http://www.faqs.org
251   [106]http://aplawrence.com/Unixart/newtounix.html
252
253    One thread that runs through many of them, and implicitly perhaps
254    through all, concerns the problems that occur when trying to dial out
255    on a serial device that is (also) enabled for dialing in. The
256    "solutions" to this problem are many, varied, diverse, and usually
257    gross, involving configuring the device for bidirectional use. This is
258    done in a highly OS-dependent and often obscure manner, and the effects
259    (good or evil) are also highly dependent on the particular OS (and
260    getty variety, etc). Many examples are given in the [107]OS-specific
261    sections below.
262
263    An important point to keep in mind is that C-Kermit is a
264    cross-platform, portable software program. It was not designed
265    specifically and only for your particular Unix version, or for that
266    matter, for Unix in particular at all. It also runs on VMS, AOS/VS,
267    VOS, and other non-Unix platforms. All the Unix versions of C-Kermit
268    share common i/o modules, with compile-time #ifdef constructions used
269    to account for the differences among the many Unix products and
270    releases. If you think that C-Kermit is behaving badly or missing
271    something on your particular Unix version, you might be right -- we
272    can't claim to be expert in hundreds of different OS / version /
273    hardware / library combinations. If you're a programmer, take a look at
274    the source code and [108]send us your suggested fixes or changes. Or
275    else just [109]send us a report about what seems to be wrong and we'll
276    see what we can do.
277
278 3.0. C-KERMIT ON PC-BASED UNIXES
279
280    [ [110]Top ] [ [111]Contents ] [ [112]Section Contents ] [ [113]Next ]
281
282    Also see: [114]http://www.pcunix.com/.
283
284    SECTION CONTENTS
285
286   3.0.1. [115]Interrupt Conflicts
287   3.0.2. [116]Windows-Specific Hardware
288   3.0.3. [117]Modems
289   3.0.4. [118]Character Sets
290   3.0.5. [119]Keyboard, Screen, and Mouse Access
291   3.0.6. [120]Laptops
292
293 3.0.1. Interrupt Conflicts
294
295    [ [121]Top ] [ [122]Contents ] [ [123]Section Contents ] [ [124]Next ]
296
297    PCs are not the best platform for real operating systems like Unix. The
298    architecture suffers from numerous deficiencies, not the least of which
299    is the stiflingly small number of hardware interrupts (either 7 or 15,
300    many of which are preallocated). Thus adding devices, using multiple
301    serial ports, etc, is always a challenge and often a nightmare. The
302    free-for-all nature of the PC market and the lack of standards combined
303    with the diversity of Unix OS versions make it difficult to find
304    drivers for any particular device on any particular version of Unix.
305
306    Of special interest to Kermit users is the fact that there is no
307    standard provision in the PC architecture for more than 2 communication
308    (serial) ports. COM3 and COM4 (or higher) will not work unless you (a)
309    find out the hardware address and interrupt for each, (b) find out how
310    to provide your Unix version with this information, and (c) actually
311    set up the configuration in the Unix startup files (or whatever other
312    method is used). Watch out for interrupt conflicts, especially when
313    using a serial mouse, and don't expect to be able to use more than two
314    serial ports.
315
316    The techniques for resolving interrupt conflicts are different for each
317    operating system (Linux, NetBSD, etc). In general, there is a
318    configuration file somewhere that lists COM ports, something like this:
319
320   com0    at isa? port 0x3f8 irq 4      # DOS COM1
321   com1    at isa? port 0x2f8 irq 3      # DOS COM2
322
323    The address and IRQ values in this file must agree with the values in
324    the PC BIOS and with the ports themselves, and there must not be more
325    than one device with the same interrupt. Unfortunately, due to the
326    small number of available interrupts, installing new devices on a PC
327    almost always creates a conflict. Here is a typical tale from a Linux
328    user (Fred Smith) about installing a third serial port:
329
330      ...problems can come from a number of causes. The one I fought with
331      for some time, and finally conquered, was that my modem is on an
332      add-in serial port, cua3/IRQ5. By default IRQ5 has a very low
333      priority, and does not get enough service in times when the system
334      is busy to prevent losing data. This in turn causes many resends.
335      There are two 'fixes' that I know of, one is to relax hard disk
336      interrupt hogging by using the correct parameter to hdparm, but I
337      don't like that one because the hdparm man page indicates it is
338      risky to use. The other one, the one I used, was to get 'irqtune'
339      and use it to give IRQ5 the highest priority instead of nearly the
340      lowest. Completely cured the problem.
341
342    Here's another one from a newsgroup posting:
343
344      After much hair pulling, I've discovered why my serial port won't
345      work. Apparently my [PC] has three serial devices (two comm ports
346      and an IR port), of which only two at a time can be active. I looked
347      in the BIOS setup and noticed that the IR port was activated, but
348      didn't realize at the time that this meant that COM2 was thereby
349      de-activated. I turned off the IR port and now the serial port works
350      as advertised.
351
352 3.0.2. Windows-Specific Hardware
353
354    [ [125]Top ] [ [126]Contents ] [ [127]Section Contents ] [ [128]Next ]
355    [ [129]Previous ]
356
357    To complicate matters, the PC platform is becoming increasingly and
358    inexorably Windows-oriented. More and more add-on devices are "Windows
359    only" -- meaning they are incomplete and rely on proprietary
360    Windows-based software drivers to do the jobs that you would expect the
361    device itself to do. PCMCIA, PCI, or "Plug-n-Play" devices are rarely
362    supported on PC-based Unix versions such as SCO; Winmodems,
363    Winprinters, and the like are not supported on any Unix variety (with
364    [130]a few exceptions). The self-proclaimed Microsoft PC 97 (or later)
365    standard only makes matters worse since its only purpose to ensure that
366    PCs are "optimized to run Windows 95 and Windows NT 4.0 and future
367    versions of these operating systems".
368
369    With the exception noted (the Lucent modem, perhaps a handful of others
370    by the time you read this), drivers for "Win" devices are available
371    only for Windows, since the Windows market dwarfs that of any
372    particular Unix brand, and for that matter all Unixes (or for that
373    matter, all non-Windows operating systems) combined. If your version of
374    Unix (SCO, Linux, BSDI, FreeBSD, etc) does not support a particular
375    device, then C-Kermit can't use it either. C-Kermit, like any Unix
376    application, must access all devices through drivers and not directly
377    because Unix is a real operating system.
378
379    Don't waste time thinking that you, or anybody else, could write a
380    Linux (or other Unix) driver for a Winmodem or other "Win" device.
381    First of all, these devices generally require realtime control, but
382    since Unix is a true multitasking operating system, realtime device
383    control is not possible outside the kernel. Second, the specifications
384    for these devices are secret and proprietary, and each one (and each
385    version of each one) is potentially different. Third, a Winmodem driver
386    would be enormously complex; it would take years to write and debug, by
387    which time it would be obsolete.
388
389    A more recent generation of PCs (circa 1999-2000) is marketed as
390    "Legacy Free". One can only speculate what that could mean. Most likely
391    it means it will ONLY run the very latest versions of Windows, and is
392    made exclusively of Winmodems, Winprinters, Winmemory, and Win-CPU-fans
393    (Legacy Free is a concept [131]pioneered by Microsoft).
394
395    Before you buy a new PC or add-on equipment, especially serial ports,
396    internal modems, or printers, make sure they are compatible with your
397    version of Unix. This is becoming an ever-greater challenge; only a
398    huge company like Microsoft can afford to be constantly cranking out
399    and/or verifying drivers for the thousands of video boards, sound
400    cards, network adapters, SCSI adapters, buses, etc, that spew forth in
401    an uncontrolled manner from all corners of the world on a daily basis.
402    With very few exceptions, makers of PCs assemble the various components
403    and then verify them only with Windows, which they must do since they
404    are, no doubt, preloading the PC with Windows. To find a modern PC that
405    is capable of running a variety of non-Windows operating systems (e.g.
406    Linux, SCO OpenServer, Unixware, and Solaris) is a formidable challenge
407    requiring careful study of each vendor's "compatibility lists" and
408    precise attention to exact component model numbers and revision levels.
409
410 3.0.3. Modems
411
412    [ [132]Top ] [ [133]Contents ] [ [134]Section Contents ] [ [135]Next ]
413    [ [136]Previous ]
414
415    External modems are recommended:
416
417      * They don't need any special drivers.
418      * You can use the lights and speaker to troubleshoot dialing.
419      * You can share them among all types of computers.
420      * You can easily turn them off and on when power-cycling seems
421        warranted.
422      * They are more likely to have manuals.
423
424    Internal PC modems (even when they are not Winmodems, which is
425    increasingly unlikely in new PCs) are always trouble, especially in
426    Unix. Even when they work for dialing out, they might not work for
427    dialing in, etc. Problems that occur when using an internal modem can
428    almost always be eliminated by switching to an external one. Even when
429    an internal modem is not a Winmodem or Plug-n-Play, it is often a
430    no-name model of unknown quality -- not the sort of thing you want
431    sitting directly on your computer's bus. (Even if it does not cause
432    hardware problems, it probably came without a command list, so no Unix
433    software will know how to control it.) For more about Unix compatible
434    modems, see:
435
436   [137]http://www.idir.net/~gromitkc/winmodem.html
437
438    Remember that PCs, even now -- more than two decades after they were
439    first introduced -- are not (in general) capable of supporting more
440    than 2 serial devices. Here's a short success story from a recent
441    newsgroup posting: "I have a Diamond SupraSonic II dual modem in my
442    machine. What I had to end up doing is buying a PS/2 mouse and port and
443    install it. Had to get rid of my serial mouse. I also had to disable
444    PnP in my computer bios. I was having IRQ conflicts between my serial
445    mouse and 'com 3'. Both modems work fine for me. My first modem is
446    ttyS0 and my second is ttyS1." Special third-party multiport boards
447    such as [138]DigiBoard are available for certain Unix platforms
448    (typically SCO, maybe Linux) that come with special platform-specific
449    drivers.
450
451 3.0.4. Character Sets
452
453    [ [139]Top ] [ [140]Contents ] [ [141]Section Contents ] [ [142]Next ]
454    [ [143]Previous ]
455
456    PCs generally have PC code pages such as CP437 or CP850, and these are
457    often used by PC-based Unix operating systems, particularly on the
458    console. These are supported directly by C-Kermit's SET FILE
459    CHARACTER-SET and SET TERMINAL CHARACTER-SET commands. Some PC-based
460    Unix versions, such as recent Red Hat Linux releases, might also
461    support Microsoft Windows code pages such as CP1252, or even Latin
462    Alphabet 1 itself (perhaps displayed with CP437 glyphs). (And work is
463    in progress to support Unicode UTF8 in Linux.)
464
465    Certain Windows code pages are not supported directly by C-Kermit, but
466    since they are ISO Latin Alphabets with nonstandard "extensions" in the
467    C1 control range, you can substitute the corresponding Latin alphabet
468    (or other character set) in any C-Kermit character-set related
469    commands:
470
471   Windows Code Page    Substitution
472    CP 1004              Latin-1
473    CP 1051              HP Roman-8
474
475    Other Windows code pages are mostly (or totally) incompatible with
476    their Latin Alphabet counterparts (e.g. CP1250 and Latin-2), and
477    several of these are already supported by C-Kermit 7.0 and later (1250,
478    1251, and 1252).
479
480 3.0.5. Keyboard, Screen, and Mouse Access
481
482    [ [144]Top ] [ [145]Contents ] [ [146]Section Contents ] [ [147]Next ]
483    [ [148]Previous ]
484
485    Finally, note that as a real operating system, Unix (unlike Windows)
486    does not provide the intimate connection to the PC keyboard, screen,
487    and mouse that you might expect. Unix applications can not "see" the
488    keyboard, and therefore can not be programmed to understand F-keys,
489    Editing keys, Arrow keys, Alt-key combinations, and the like. This is
490    because:
491
492     a. Unix is a portable operating system, not only for PCs;
493     b. Unix sessions can come from anywhere, not just the PC's own
494        keyboard and screen; and:
495     c. even though it might be possible for an application that actually
496        is running on the PC's keyboard and screen to access these devices
497        directly, there are no APIs (outside of X) for this.
498
499 3.0.6. Laptops
500
501    [ [149]Top ] [ [150]Contents ] [ [151]Section Contents ] [
502    [152]Previous ]
503
504    (To be filled in . . .)
505
506 3.1. C-KERMIT AND AIX
507
508    [ [153]Top ] [ [154]Contents ] [ [155]Section Contents ] [ [156]Next ]
509    [ [157]Previous ]
510
511    SECTION CONTENTS
512
513   3.1.1. [158]AIX: General
514   3.1.2. [159]AIX: Network Connections
515   3.1.3. [160]AIX: Serial Connections
516   3.1.4. [161]AIX: File Transfer
517   3.1.5. [162]AIX: Xterm Key Map
518
519    For additional information see:
520      * [163]http://www.emerson.emory.edu/services/aix-faq/
521      * [164]http://www.faqs.org/faqs/by-newsgroup/comp/comp.unix.aix.html
522      * [165]http://www.cis.ohio-state.edu/hypertext/faq/usenet/aix-faq/top
523        .html
524      * [166]http://aixpdslib.seas.ucla.edu/
525      * [167]http://www.rootvg.net (AIX history)
526      * [168]ftp://rtfm.mit.edu/pub/usenet/news.answers/aix-faq/part1
527      * [169]ftp://mirrors.aol.com/pub/rtfm/usenet-by-hierarchy/comp/unix/a
528        ix
529
530    and/or read the [170]comp.unix.aix newsgroup.
531   ________________________________________________________________________
532
533 3.1.1. AIX: General
534
535    [ [171]Top ] [ [172]Contents ] [ [173]Section Contents ] [ [174]Next ]
536
537    About AIX version numbers: "uname -a" tells the two-digit version
538    number, such as 3.2 or 4.1. The three-digit form can be seen with the
539    "oslevel" command (this information is unavailable at the API level and
540    is reportedly obtained by scanning the installed patch list).
541    Supposedly all three-digit versions within the same two-digit version
542    (e.g. 4.3.1, 4.3.2) are binary compatible; i.e. a binary built on any
543    one of them should run on all others, but who knows. Most AIX advocates
544    tell you that any AIX binary will run on any AIX version greater than
545    or equal to the one under which it was built, but experience with
546    C-Kermit suggests otherwise. It is always best to run a binary built
547    under your exact same AIX version, down to the third decimal place, if
548    possible. Ideally, build it from source code yourself. Yes, this advice
549    would be easier to follow if AIX came with a C compiler.
550   ________________________________________________________________________
551
552 3.1.2. AIX: Network Connections
553
554    [ [175]Top ] [ [176]Contents ] [ [177]Section Contents ] [ [178]Next ]
555    [ [179]Previous ]
556
557    File transfers into AIX 4.2 or 4.3 through the AIX Telnet or Rlogin
558    server have been observed to fail (or accumulate huge numbers of
559    correctable errors, or even disconnect the session), when exactly the
560    same kind of transfers into AIX 4.1 work without incident, as do such
561    transfers into all non-AIX platforms on the same kind of connections
562    (with a few exceptions noted elsewhere in this document). AIX 4.3.3
563    seems to be particularly fragile in this regard; the weakness seems to
564    be in its pseudoterminal (pty) driver. High-speed streaming transfers
565    work perfectly, however, if the AIX Telnet server and pty driver are
566    removed from the picture; e.g, by using "set host * 3000" on AIX.
567
568    The problem can be completely cured by replacing the IBM Telnet server
569    with [180]MIT's Kerberos Telnet server -- even if you don't actually
570    use the Kerberos part. Diagnosis: AIX pseudoterminals (which are
571    controlled by the Telnet server to give you a login terminal for your
572    session) have quirks that not even IBM knows about. The situation with
573    AIX 5.x is not known, but if it has the same problem, the same cure is
574    available.
575
576    Meanwhile, the only remedy when going through the IBM Telnet server is
577    to cut back on Kermit's performance settings until you find a
578    combination that works:
579
580      * SET STREAMING OFF
581      * SET WINDOW-SIZE small-number
582      * SET { SEND, RECEIVE } PACKET-LENGTH small-number
583      * SET PREFIXING { CAUTIOUS, ALL }
584
585    In some cases, severe cutbacks are required, e.g. those implied by the
586    ROBUST command. Also be sure that the AIX C-Kermit on the remote end
587    has "set flow none" (which is the default). NOTE: Maybe this one can
588    also be addressed by starting AIX telnetd with the "-a" option. The
589    situation with SSH connections is not known, but almost certainly the
590    same.
591
592    When these problems occur, the system error log contains:
593
594   LABEL:          TTY_TTYHOG
595   IDENTIFIER:     0873CF9F
596   Type:           TEMP
597   Resource Name:  pts/1
598
599   Description
600   TTYHOG OVER-RUN
601
602   Failure Causes
603   EXCESSIVE LOAD ON PROCESSOR
604
605   Recommended Actions
606   REDUCE SYSTEM LOAD.
607   REDUCE SERIAL PORT BAUD RATE
608
609    Before leaving the topic of AIX pseudoterminals, it is very likely that
610    Kermit's PTY and SSH commands do not work well either, for the same
611    reason that Telnet connections into AIX don't work well. A brief test
612    with "pty rlogin somehost" got a perfectly usable terminal (CONNECT)
613    session, but file-transfer problems like those just described.
614
615    Reportedly, telnet from AIX 4.1-point-something to non-Telnet ports
616    does not work unless the port number is in the /etc/services file; it's
617    not clear from the report whether this is a problem with AIX Telnet (in
618    which case it would not affect Kermit), or with the sockets library (in
619    which case it would). The purported fix is IBM APAR IX61523.
620
621    C-Kermit SET HOST or TELNET from one AIX 3.1 (or earlier) system to
622    another won't work right unless you set your local terminal type to
623    something other than AIXTERM. When your terminal type is AIXTERM, AIX
624    TELNET sends two escapes whenever you type one, and the AIX telnet
625    server swallows one of them. This has something to do with the "hft"
626    device. This behavior seems to be removed in AIX 3.2 and later.
627   ________________________________________________________________________
628
629 3.1.3. AIX: Serial Connections
630
631    [ [181]Top ] [ [182]Contents ] [ [183]Section Contents ] [ [184]Next ]
632    [ [185]Previous ]
633
634    In AIX 3, 4, or 5, C-Kermit won't be able to "set line /dev/tty0" (or
635    any other dialout device) if you haven't installed "cu" or "uucp" on
636    your system, because installing these is what creates the UUCP lockfile
637    directory. If SET LINE commands always result in "Sorry, access to lock
638    denied", even when C-Kermit has been given the same owner, group, and
639    permissions as cu:
640
641   -r-sr-xr-x   1 uucp     uucp       67216 Jul 27 1999  cu
642
643    and even when you run it as root, then you must go back and install
644    "cu" from your AIX installation media.
645
646    According to IBM's "From Strength to Strength" document (21 April
647    1998), in AIX 4.2 and later "Async supports speeds on native serial
648    ports up to 115.2kbps". However, no API is documented to achieve serial
649    speeds higher than 38400 bps. Apparently the way to do this -- which
650    might or might not work only on the IBM 128-port multiplexer -- is:
651
652   cxma-stty fastbaud /dev/tty0
653
654    which, according to "man cxma-stty":
655
656      fastbaud Alters the baud rate table, so 50 baud becomes 57600 baud.
657      -fastbaud Restores the baud rate table, so 57600 baud becomes 50
658      baud.
659
660    Presumably (but not certainly) this extrapolates to 110 "baud" becomes
661    76800 bps, and 150 becomes 115200 bps. So to use high serial speeds in
662    AIX 4.2 or 4.3, the trick would be to give the "cxma-stty fastbaud"
663    command for the desired tty device before starting Kermit, and then use
664    "set speed 50", "set speed 110", or "set speed 150" to select 56700,
665    76800, or 115200 bps. It is not known whether cxma-stty requires
666    privilege.
667
668    According to one report, "Further investigation with IBM seems to
669    indicate that the only hardware capable of doing this is the 128-port
670    multiplexor with one (or more) of the 16 port breakout cables (Enhanced
671    Remote Async Node 16-Port EIA-232). We are looking at about CDN$4,000
672    in hardware just to hang a 56kb modem on there. Of course, we can then
673    hang 15 more, if we want. This hardware combo is described to be good
674    to 230.4kbps."
675
676    Another report says (quote from AIX newsgroup, March 1999):
677
678      The machine type and the adapter determine the speed that one can
679      actually run at. The older microchannel machines have much slower
680      crystal frequencies and may not go beyond 76,800. A feature put into
681      AIX 421 allows one to key in non-POSIX baud rates and if the uart
682      can support that speed, it will get set. this applies also to 43p's
683      and beyond. 115200 is the max for the 43P's native serial port. As
684      crytal frequencies continue to increase, the built-in serial ports
685      speeds will improve. To use 'uucp' or 'ate' at the higher baud
686      rates, configure the port for the desired speed, but set the speed
687      of uucp or ate to 50. Any non-POSIX speeds set in the ttys
688      configuration will the be used. In the case of the 128-port adapters
689      or the ISA 8-port or PCI 8-port adapter, there are only a few higher
690      baud rates.
691
692     a. Change the port to enable high baud rates:
693           + B50 for 57600
694           + B75 for 76800
695           + B110 for 115200
696           + B200 for 230000
697     b. chdev -l ttyX -a fastbaud=enable
698           + For the 128 ports original style rans, only 57600 bps is
699             supported.
700           + For the new enhanced RANs, up to 230Kbps is supported.
701
702    In AIX 2.2.1 on the RT PC with the 8-port multiplexer, SET SPEED 38400
703    gives 9600 bps, but SET SPEED 19200 gives 19200 (on the built-in S1
704    port).
705
706    Note that some RS/6000s (e.g. the IBM PowerServer 320) have nonstandard
707    rectangular 10-pin serial ports; the DB-25 connector is NOT a serial
708    port; it is a parallel printer port. IBM cables are required for the
709    serial ports, (The IBM RT PC also had rectangular serial ports --
710    perhaps the same as these, perhaps different.)
711
712    If you dial in to AIX through a modem that is connected directly to an
713    AIX port (e.g. on the 128-port multiplexer) and find that data is lost,
714    especially when uploading files to the AIX system (and system error
715    logs report buffer overruns on the port):
716
717     1. Make sure the port and modem are BOTH configured for hardware
718        (RTS/CTS) flow control. The port is configured somewhere in the
719        system configuration, outside of Kermit.
720     2. Tell C-Kermit to "set flow keep"; experimentation shows that SET
721        FLOW RTS/CTS has no effect when used in remote mode (i.e. on
722        /dev/tty, as opposed to a specify port device).
723     3. Fixes for bugs in the original AIX 4.2 tty (serial i/o) support and
724        other AIX bugs are available from IBM at:
725   [186]http://service.software.ibm.com/rs6000/
726
727        Downloads -> Software Fixes -> Download FixDist gets an application
728        for looking up known problems.
729
730    Many problems reported with bidirectional terminal lines on AIX 3.2.x
731    on the RS/6000. Workaround: don't use bidirectional terminal lines, or
732    write a shell-script wrapper for Kermit that turns getty off on the
733    line before starting Kermit, or before Kermit attempts to do the SET
734    LINE. (But note: These problems MIGHT be fixed in C-Kermit 6.0 and
735    later.) The commands for turning getty off and on (respectively) are
736    /usr/sbin/pdisable and /usr/sbin/penable.
737   ________________________________________________________________________
738
739 3.1.4. AIX: File Transfer
740
741    [ [187]Top ] [ [188]Contents ] [ [189]Section Contents ] [ [190]Next ]
742    [ [191]Previous ]
743
744    Evidently AIX 4.3 (I don't know about earlier versions) does not allow
745    open files to be overwritten. This can cause Kermit transfers to fail
746    when FILE COLLISION is OVERWRITE, where they might work on other Unix
747    varieties or earlier AIX versions.
748
749    Transfer of binary -- and maybe even text -- files can fail in AIX if
750    the AIX terminal has particular port can have character-set translation
751    done for it by the tty driver. The following advice from a
752    knowledgeable AIX user:
753
754      [This feature] has to be checked (and set/cleared) with a separate
755      command, unfortunately stty doesn't handle this. To check:
756
757   $ setmaps
758   input map: none installed
759   output map: none installed
760
761      If it says anything other than "none installed" for either one, it
762      is likely to cause a problem with kermit. To get rid of installed
763      maps:
764
765   $ setmaps -t NOMAP
766
767      However, I seem to recall that with some versions of AIX before
768      3.2.5, only root could change the setting. I'm not sure what
769      versions - it might have only been under AIX 3.1 that this was true.
770      At least with AIX 3.2.5 an ordinary user can set or clear the maps.
771
772    On the same problem, another knowledgeable AIX user says:
773
774      The way to get information on the NLS mapping under AIX (3.2.5
775      anyway) is as follows. From the command line type:
776
777   lsattr -l tty# -a imap -a omap -E -H
778
779      Replace the tty number for the number sign above. This will give a
780      human readable output of the settings that looks like this;
781
782   # lsattr -l tty2 -a imap -a omap -E -H
783   attribute value description     user_settable
784
785   imap      none  INPUT map file  True
786   omap      none  OUTPUT map file True
787
788      If you change the -H to a -O, you get output that can easily be
789      processed by another program or a shell script, for example:
790
791   # lsattr -l tty2 -a imap -a omap -E -O
792   #imap:omap
793   none:none
794
795      To change the settings from the command line, the chdev command is
796      used with the following syntax.
797
798   chdev -l tty# -a imap='none' -a omap='none'
799
800      Again substituting the appropriate tty port number for the number
801      sign, "none" being the value we want for C-Kermit. Of course, the
802      above can also be changed by using the SMIT utility and selecting
803      devices - tty. (...end quote)
804
805    In 2007 I noticed the following on high-speed SSH connections (local
806    network) into AIX 5.3: streaming transfers into AIX just don't work.
807    The same might be true for Telnet connections; I have no way to check.
808    It appears that the AIX pty driver and/or the SSH (and possibly Telnet)
809    server are not capable of receiving a steady stream of incoming data at
810    high speed. Solution: unknown. Workaround: put "set streaming off" in
811    your .kermrc or .mykermrc file, since streaming is the default for
812    network connections.
813   ________________________________________________________________________
814
815 3.1.5. AIX: Xterm Key Map
816
817    [ [192]Top ] [ [193]Contents ] [ [194]Section Contents ] [
818    [195]Previous ]
819
820    Here is a sample configuration for setting up an xterm keyboard for
821    VT220 or higher terminal emulation on AIX, courtesy of Bruce Momjian,
822    Drexel Hill, PA. Xterm can be started like this:
823
824   xterm $XTERMFLAGS +rw +sb +ls $@ -tm 'erase ^? intr ^c' -name vt220 \
825           -title vt220 -tn xterm-220 "$@" &
826
827 ---------------------------------------------------------------------------
828   XTerm*VT100.Translations: #override \n\
829           <Key>Home: string(0x1b) string("[3~") \n \
830           <Key>End: string(0x1b) string("[4~") \n
831   vt220*VT100.Translations: #override \n\
832   Shift   <Key>F1: string("[23~") \n \
833   Shift   <Key>F2: string("[24~") \n \
834   Shift   <Key>F3: string("[25~") \n \
835   Shift   <Key>F4: string("[26~") \n \
836   Shift   <Key>F5: string("[K~") \n \
837   Shift   <Key>F6: string("[31~") \n \
838   Shift   <Key>F7: string("[31~") \n \
839   Shift   <Key>F8: string("[32~") \n \
840   Shift   <Key>F9: string("[33~") \n \
841   Shift   <Key>F10: string("[34~") \n \
842   Shift   <Key>F11: string("[28~") \n \
843   Shift   <Key>F12: string("[29~") \n \
844           <Key>Print: string(0x1b) string("[32~") \n\
845           <Key>Cancel: string(0x1b) string("[33~") \n\
846           <Key>Pause: string(0x1b) string("[34~") \n\
847           <Key>Insert: string(0x1b) string("[2~") \n\
848           <Key>Delete: string(0x1b) string("[3~") \n\
849           <Key>Home: string(0x1b) string("[1~") \n\
850           <Key>End: string(0x1b) string("[4~") \n\
851           <Key>Prior: string(0x1b) string("[5~") \n\
852           <Key>Next: string(0x1b) string("[6~") \n\
853           <Key>BackSpace: string(0x7f) \n\
854           <Key>Num_Lock: string(0x1b) string("OP") \n\
855           <Key>KP_Divide: string(0x1b) string("Ol") \n\
856           <Key>KP_Multiply: string(0x1b) string("Om") \n\
857           <Key>KP_Subtract: string(0x1b) string("OS") \n\
858           <Key>KP_Add: string(0x1b) string("OM") \n\
859           <Key>KP_Enter: string(0x1b) string("OM") \n\
860           <Key>KP_Decimal: string(0x1b) string("On") \n\
861           <Key>KP_0: string(0x1b) string("Op") \n\
862           <Key>KP_1: string(0x1b) string("Oq") \n\
863           <Key>KP_2: string(0x1b) string("Or") \n\
864           <Key>KP_3: string(0x1b) string("Os") \n\
865           <Key>KP_4: string(0x1b) string("Ot") \n\
866           <Key>KP_5: string(0x1b) string("Ou") \n\
867           <Key>KP_6: string(0x1b) string("Ov") \n\
868           <Key>KP_7: string(0x1b) string("Ow") \n\
869           <Key>KP_8: string(0x1b) string("Ox") \n\
870           <Key>KP_9: string(0x1b) string("Oy") \n
871
872   !       <Key>Up: string(0x1b) string("[A") \n\
873   !       <Key>Down: string(0x1b) string("[B") \n\
874   !       <Key>Right: string(0x1b) string("[C") \n\
875   !       <Key>Left: string(0x1b) string("[D") \n\
876
877   *visualBell:    true
878   *saveLines:     1000
879   *cursesemul:    true
880   *scrollKey:     true
881   *scrollBar:     true
882
883 3.2. C-KERMIT AND HP-UX
884
885    [ [196]Top ] [ [197]Contents ] [ [198]Section Contents ] [ [199]Next ]
886    [ [200]Previous ]
887
888    SECTION CONTENTS
889
890   3.2.0. [201]Common Problems
891   3.2.1. [202]Building C-Kermit on HP-UX
892   3.2.2. [203]File Transfer
893   3.2.3. [204]Dialing Out and UUCP Lockfiles in HP-UX
894   3.2.4. [205]Notes on Specific HP-UX Releases
895   3.2.5. [206]HP-UX and X.25
896
897    REFERENCES
898
899    For further information, read the [207]comp.sys.hp.hpux newsgroup.
900
901    C-Kermit is included as part of the HP-UX operating system by contract
902    between Hewlett Packard and Columbia University for HP-UX 10.00 and
903    later. Each level of HP-UX includes a freshly built C-Kermit binary in
904    /bin/kermit, which should work correctly. Binaries built for regular
905    HP-UX may be used on Trusted HP-UX and vice-versa, except for use as
906    IKSD because of the different authentication methods.
907
908    Note that HP does not update C-Kermit versions for any but its most
909    current HP-UX release. So, for example, HP-UX 10.20 has C-Kermit 6.0;
910    11.00 has C-Kermit 7.0, and 11.22 has 8.0. Of course, as with all
911    software, older Kermit versions have bugs (such as buffer overflow
912    vulnerabilities) that are fixed in later versions. From time to time,
913    HP discovers one of these (long-ago fixed) bugs and issues a security
914    alert for the older OS's, recommending some draconian measure to avoid
915    the problem. The true fix in each situation is to install the current
916    release of C-Kermit.
917
918 3.2.0. Common Problems
919
920    [ [208]Top ] [ [209]Contents ] [ [210]Section Contents ] [ [211]Next ]
921
922    Some HP workstations have a BREAK/RESET key. If you hit this key while
923    C-Kermit is running, it might kill or suspend the C-Kermit process.
924    C-Kermit arms itself against these signals, but evidently the
925    BREAK/RESET key is -- at least in some circumstances, on certain HP-UX
926    versions -- too powerful to be caught. (Some report that the first
927    BREAK/RESET shows up as SIGINT and is caught by C-Kermit's former
928    SIGINT handler even when SIGINT is currently set to SIG_IGN; the second
929    kills Kermit; other reports suggest the first BREAK/RESET sends a
930    SIGTSTP (suspend signal) to Kermit, which it catches and suspends
931    itself. You can tell C-Kermit to ignore suspend signals with SET
932    SUSPEND OFF. You can tell C-Kermit to ignore SIGINT with SET COMMAND
933    INTERRUPTION OFF. It is not known whether these commands also grant
934    immunity to the BREAK/RESET key (one report states that with SET
935    SUSPEND OFF, the BREAK/RESET key is ignored the first four times, but
936    kills Kermit the 5th time). In any case:
937
938     1. If this key is mapped to SIGINT or SIGTSTP, C-Kermit catches or
939        ignores it, depending on which mode (CONNECT, command, etc) Kermit
940        is in.
941     2. If it causes HP-UX to kill C-Kermit, there is nothing C-Kermit can
942        do to prevent it.
943
944    When HP-UX is on the remote end of the connection, it is essential that
945    HP-UX C-Kermit be configured for Xon/Xoff flow control (this is the
946    default, but in case you change it and then experience file-transfer
947    failures, this is a likely reason).
948
949 3.2.1. Building C-Kermit on HP-UX
950
951    [ [212]Top ] [ [213]Contents ] [ [214]Section Contents ] [ [215]Next ]
952    [ [216]Previous ]
953
954      This section applies mainly to old (pre-10.20) HP-UX version on old,
955      slow, and/or memory-constrained hardware.
956
957    During the C-Kermit 6.0 Beta cycle, something happened to ckcpro.w (or,
958    more precisely, the ckcpro.c file that is generated from it) which
959    causes HP optimizing compilers under HP-UX versions 7.0 and 8.0
960    (apparently on all platforms) as well as under HP-UX 9.0 on Motorola
961    platforms only, to blow up. In versions 7.0 and 8.0 the problem has
962    spread to other modules.
963
964    The symptoms vary from the system grinding to a halt, to the compiler
965    crashing, to the compilation of the ckcpro.c module taking very long
966    periods of time, like 9 hours. This problem is handled by compiling the
967    modules that tickle it without optimization; the new C-Kermit makefile
968    takes care of this, and shows how to do it in case the same thing
969    begins happening with other modules.
970
971    On HP-UX 9.0, a kernel parameter, maxdsiz (maximum process data segment
972    size), seems to be important. On Motorola systems, it is 16MB by
973    default, whereas on RISC systems the default is much bigger. Increasing
974    maxdsiz to about 80MB seems to make the problem go away, but only if
975    the system also has a lot of physical memory -- otherwise it swaps
976    itself to death.
977
978    The optimizing compiler might complain about "some optimizations
979    skipped" on certain modules, due to lack of space available to the
980    optimizer. You can increase the space (the incantation depends on the
981    particular compiler version -- see the [217]makefile), but doing so
982    tends to make the compilations take a much longer time. For example,
983    the "hpux0100o+" makefile target adds the "+Onolimit" compiler flag,
984    and about an hour to the compile time on an HP-9000/730. But it *does*
985    produce an executable that is about 10K smaller :-)
986
987    In the makefile, all HP-UX entries automatically skip optimization of
988    problematic modules.
989
990 3.2.2. File Transfer
991
992    [ [218]Top ] [ [219]Contents ] [ [220]Section Contents ] [ [221]Next ]
993    [ [222]Previous ]
994
995    Telnet connections into HP-UX versions up to and including 11.11 (and
996    possibly 11.20) tend not to lend themselves to file transfer due to
997    limitations, restrictions, and/or bugs in the HP-UX Telnet server
998    and/or pseudoterminal (pty) driver.
999
1000    In C-Kermit 6.0 (1996) an unexpected slowness was noted when
1001    transferring files over local Ethernet connections when an HP-UX system
1002    (9.05 or 10.00) was on the remote end. The following experiment was
1003    conducted to determine the cause. C-Kermit 6.0 was used; the situation
1004    is slightly better using C-Kermit 7.0's streaming feature and HP-UX
1005    10.20 on the far end.
1006
1007    The systems were HP-UX 10.00 (on 715/33) and SunOS 4.1.3 (on Sparc-20),
1008    both on the same local 10Mbps Ethernet, packet length 4096, parity
1009    none, control prefixing "cautious", using only local disks on each
1010    machine -- no NFS. In the C-Kermit 6.0 (ACK/NAK) case, the window size
1011    was 20; in the streaming case there is no window size (i.e. it is
1012    infinite). The test file was C-Kermit executable, transferred in binary
1013    mode. Conditions were relatively poor: the Sun and the local net
1014    heavily loaded; the HP system is old, slow, and memory-constrained.
1015
1016                    C-Kermit 6.0...    C-Kermit 7.0...
1017  Local    Remote   ACK/NAK........    Streaming......
1018  Client   Server   Send    Receive    Send    Receive
1019   Sun      HP       36       18        64       18
1020   HP       HP       25       15        37       16
1021   HP       Sun      77       83       118       92
1022   Sun      Sun      60       60       153      158
1023
1024    So whenever HP is the remote we have poor performance. Why?
1025
1026      * Changing file display to CRT has no effect (so it's not the curses
1027        library on the client side).
1028      * Changing TCP RECV-BUFFER or SEND-BUFFER has little effect.
1029      * Telling the client to make a binary-mode connection (SET TELNET
1030        BINARY REQUESTED, which successfully negotiates a binary
1031        connection) has no effect on throughput.
1032
1033    BUT... If I start HP-UX C-Kermit as a TCP service:
1034
1035   set host * 3000
1036   server
1037
1038    and then from the client "set host xxx 3000", I get:
1039
1040                    C-Kermit 6.0...    C-Kermit 7.0...
1041  Local    Remote   ACK/NAK........    Streaming......
1042  Client   Server   Send    Receive    Send    Receive
1043   Sun      HP       77       67       106      139
1044   HP       HP       50       50        64       62
1045   HP       Sun      57       85       155      105
1046   Sun      Sun      57       50       321      314
1047
1048    Therefore the HP-UX telnet server or pty driver seems to be adding more
1049    overhead than the SunOS one, and most others. When going through this
1050    type of connection (a remote telnet server) there is little Kermit can
1051    do improve matters, since the telnet server and pty driver are between
1052    the two Kermits, and neither Kermit program can have any influence over
1053    them (except putting the Telnet connection in binary mode, but that
1054    doesn't help).
1055
1056    (The numbers for the HP-HP transfers are lower than the others since
1057    both Kermit processes are running on the same slow 33MHz CPU.)
1058
1059    Matters seem to have deteriorated in HP-UX 11. Now file transfers over
1060    Telnet connections fail completely, rather than just being slow. In the
1061    following trial, a Telnet connection was made from Kermit 95 to HP-UX
1062    11.11 on an HP-9000/785/B2000 over local 10Mbps Ethernet running
1063    C-Kermit 8.00 in server mode (under the HP-UX Telnet server):
1064
1065                    Text........    Binary......
1066   Stream  Pktlen   GET     SEND    GET     SEND
1067     On     4000    Fail    Fail    Fail    Fail
1068     Off    4000    Fail    Fail    Fail    Fail
1069     Off    2000    OK      Fail    OK      Fail
1070     On     2000    OK      Fail    OK      Fail
1071     On     3000    Fail    Fail    Fail    Fail
1072     On     2500    Fail    Fail    Fail    Fail
1073     On     2047    OK      Fail    OK      Fail
1074     On     2045    OK      Fail    OK      Fail
1075     Off     500    OK      OK      OK      OK
1076     On      500    OK      Fail    OK      Fail
1077     On      240    OK      Fail    OK      Fail
1078
1079    As you can see, downloads are problematic unless the receiver's Kermit
1080    packet length is 2045 or less, but uploads work only with streaming
1081    disabled and the packet length restricted to 500. To force file
1082    transfers to work on this connection, the desktop Kermit must be told
1083    to:
1084
1085   set streaming off
1086   set receive packet-length 2000
1087   set send packet-length 500
1088
1089    However, if a connection is made between the same two programs on the
1090    same two computers over the same network, but this time a direct
1091    socket-to-socket connection bypassing the HP-UX Telnet server and pty
1092    driver (tell HP-UX C-Kermit to "set host /server * 3000 /raw"; tell
1093    desktop client program to "set host blah 3000 /raw"), everything works
1094    perfectly with the default Kermit settings (streaming, 4K packets,
1095    liberal control-character unprefixing, 8-bit transparency, etc):
1096
1097                    Text........    Binary......
1098   Stream  Pktlen   GET     SEND    GET     SEND
1099     On     4000    OK      OK      OK      OK
1100
1101    And in this case, transfer rates were approximately 900,000 cps. To
1102    verify that the behavior reported here is not caused by the new Kermit
1103    release, the same experiment was performed on a Telnet connection from
1104    the same PC over the same network to the old 715/33 running HP-UX 10.20
1105    and C-Kermit 8.00. Text and binary uploads and downloads worked
1106    perfectly (albeit slowly) with all the default settings -- streaming,
1107    4K packets, etc.
1108
1109 3.2.3. Dialing Out and UUCP Lockfiles in HP-UX
1110
1111    [ [223]Top ] [ [224]Contents ] [ [225]Section Contents ] [ [226]Next ]
1112    [ [227]Previous ]
1113
1114    HP workstations do not come with dialout devices configured; you have
1115    to do it yourself (as root). First look in /dev to see what's there;
1116    for example in HP-UX 10.00 or later:
1117
1118   ls -l /dev/cua*
1119   ls -l /dev/tty*
1120
1121    If you find a tty0p0 device but no cua0p0, you'll need to creat one if
1122    you want to dial out; the tty0p0 does not work for dialing out. It's
1123    easy: start SAM; in the main Sam window, double-click on Peripheral
1124    Device, then in the Peripheral Devices window, double-click on
1125    Terminals and Modems. In the Terminals and Modems dialog, click on
1126    Actions, then choose "Add modem" and fill in the blanks. For example:
1127    Port number 0, speed 57600 (higher speeds tend not to work reliably),
1128    "Use device for calling out", do NOT "Receive incoming calls" (unless
1129    you know what you are doing), leave "CCITT modem" unchecked unless you
1130    really have one, and do select "Use hardware flow control (RTS/CTS)".
1131    Then click OK. This creates cua0p0 as well as cul0p0 and ttyd0p0
1132
1133    If the following sequence:
1134
1135   set line /dev/cua0p0 ; or other device
1136   set speed 115200     ; or other normal speed
1137
1138    produces the message "?Unsupported line speed". This means either that
1139    the port is not configured for dialout (go into SAM as described above
1140    and make sure "Use device for calling out" is selected), or else that
1141    speed you have given (such as 460800) is supported by the operating
1142    system but not by the physical device (in which case, use a lower speed
1143    like 57600).
1144
1145    In HP-UX 9.0, serial device names began to change. The older names
1146    looked like "/dev/cua00", "/dev/tty01", etc (sometimes with only one
1147    digit). The newer names have two digits with the letter "p" in between.
1148    HP-UX 8.xx and earlier have the older form, HP-UX 10.00 and later have
1149    the newer form. HP-UX 9.xx has the newer form on Series 800 machines,
1150    and the older form on other hardware models. The situation is
1151    summarized in the following table (the Convio 10.0 column applies to
1152    HP-UX 10 and 11).
1153
1154   Converged HP-UX Serial I/O Filenames : TTY Mux Naming
1155   ---------------------------------------------------------------------
1156   General meaning      Old Form     S800 9.0           Convio 10.0
1157   ---------------------------------------------------------------------
1158   tty* hardwired ports  tty<YY>     tty<X>p<Y>         tty<D>p<p>
1159                                     diag:mux<X>        diag:mux<D>
1160   ---------------------------------------------------------------------
1161   ttyd* dial-in modems  ttyd<YY>    ttyd<X>p<Y>        ttyd<D>p<p>
1162                                     diag:ttyd<X>p<Y>   diag:ttyd<D>p<p>
1163   ---------------------------------------------------------------------
1164   cua* auto-dial out    cua<YY>     cua<X>p<Y>         cua<D>p<p>
1165                                     diag:cua<X>p<Y>
1166   ---------------------------------------------------------------------
1167   cul* dial-out         cul<YY>     cul<X>p<Y>         cul<D>p<p>
1168                                     diag:cul<X>p<Y>
1169   ---------------------------------------------------------------------
1170    <X>= LU (Logical Unit)  <D>= Devspec (decimal card instance)
1171    <Y> or <YY> = Port      <p>= Port
1172
1173    For dialing out, you should use the cua or cul devices. When C-Kermit's
1174    CARRIER setting is AUTO or ON, C-Kermit should pop back to its prompt
1175    automatically if the carrier signal drops, e.g. when you log out from
1176    the remote computer or service. If you use the tty<D>p<d> (e.g. tty0p0)
1177    device, the carrier signal should be ignored. The tty<D>p<d> device
1178    should be used for direct connections where the carrier signal does not
1179    follow RS-232 conventions (use the cul device for hardwired connections
1180    through a true null modem). Do not use the ttyd<D>p<d> device for
1181    dialing out.
1182
1183    Kermit's access to serial devices is controlled by "UUCP lockfiles",
1184    which are intended to prevent different users using different software
1185    programs (Kermit, cu, etc, and UUCP itself) from accessing the same
1186    serial device at the same time. When a device is in use by a particular
1187    user, a file with a special name is created in:
1188
1189   /var/spool/locks  (HP-UX 10.00 and later)
1190   /usr/spool/uucp   (HP-UX 9.xx and earlier)
1191
1192    The file's name indicates the device that is in use, and its contents
1193    indicates the process ID (pid) of the process that is using the device.
1194    Since serial devices and the locks directory are not both publicly
1195    readable and writable, Kermit and other communication software must be
1196    installed setuid to the owner (bin) of the serial device and setgid to
1197    the group (daemon) of the /var/spool/locks directory. Kermit's setuid
1198    and setgid privileges are enabled only when opening the device and
1199    accessing the lockfiles.
1200
1201    Let's say "unit" means a string of decimal digits (the interface
1202    instance number) followed (in HP-UX 10.00 and later) by the letter "p"
1203    (lowercase), followed by another string of decimal digits (the port
1204    number on the interface), e.g.:
1205
1206   "0p0", "0p1", "1p0", etc       (HP-UX 10.00 and later)
1207   "0p0", "0p1", "1p0", etc       (HP-UX 9.xx on Series 800)
1208   "00",  "01",  "10",  "0", etc  (HP-UX 9.xx not on Series 800)
1209   "00",  "01",  "10",  "0", etc  (HP-UX 8.xx and earlier)
1210
1211    Then a normal serial device (driver) name consists of a prefix ("tty",
1212    "ttyd", "cua", "cul", or possibly "cuad" or "culd") followed by a unit,
1213    e.g. "cua0p0". Kermit's treatment of UUCP lockfiles is as close as
1214    possible to that of the HP-UX "cu" program. Here is a table of the
1215    lockfiles that Kermit creates for unit 0p0:
1216
1217   Selection      Lockfile 1     Lockfile 2
1218   /dev/tty0p0    LCK..tty0p0    (none)
1219 * /dev/ttyd0p0   LCK..ttyd0p0   (none)
1220   /dev/cua0p0    LCK..cua0p0    LCK..ttyd0p0
1221   /dev/cul0p0    LCK..cul0p0    LCK..ttyd0p0
1222   /dev/cuad0p0   LCK..cuad0p0   LCK..ttyd0p0
1223   /dev/culd0p0   LCK..culd0p0   LCK..ttyd0p0
1224   <other>        LCK..<other>   (none)
1225
1226    (* = Dialin device, should not be used.)
1227
1228    In other words, if the device name begins with "cu", a second lockfile
1229    for the "ttyd" device, same unit, is created, which should prevent
1230    dialin access on that device.
1231
1232    The <other> case allows for symbolic links, etc, but of course it is
1233    not foolproof since we have no way of telling which device is really
1234    being used.
1235
1236    When C-Kermit tries to open a dialout device whose name ends with a
1237    "unit", it searches the lockfile directory for all possible names for
1238    the same unit. For example, if user selects /dev/cul2p3, Kermit looks
1239    for lockfiles named:
1240
1241   LCK..tty2p3
1242   LCK..ttyd2p3
1243   LCK..cua2p3
1244   LCK..cul2p3
1245   LCK..cuad2p3
1246   LCK..culd2p3
1247
1248    If any of these files are found, Kermit opens them to find out the ID
1249    (pid) of the process that created them; if the pid is still valid, the
1250    process is still active, and so the SET LINE command fails and the user
1251    is informed of the pid so s/he can use "ps" to find out who is using
1252    the device.
1253
1254    If the pid is not valid, the file is deleted. If all such files (i.e.
1255    with same "unit" designation) are successfully removed, then the SET
1256    LINE command succeeds; up to six messages are printed telling the user
1257    which "stale lockfiles" are being removed.
1258
1259    When the "set line" command succeeds in HP-UX 10.00 and later, C-Kermit
1260    also creates a Unix System V R4 "advisory lock" as a further precaution
1261    (but not guarantee) against any other process obtaining access to the
1262    device while you are using it.
1263
1264    If the selected device was in use by "cu", Kermit can't open it,
1265    because "cu" has changed its ownership, so we never get as far as
1266    looking at the lockfiles. In the normal case, we can't even look at the
1267    device to see who the owner is because it is visible only to its
1268    (present) owner. In this case, Kermit says (for example):
1269
1270   /dev/cua0p0: Permission denied
1271
1272    When Kermit releases a device it has successfully opened, it removes
1273    all the lockfiles that it created. This also happens whenever Kermit
1274    exits "under its own power".
1275
1276    If Kermit is killed with a device open, the lockfile(s) are left
1277    behind. The next Kermit program that tries to assign the device, under
1278    any of its various names, will automatically clean up the stale
1279    lockfiles because the pids they contain are invalid. The behavior of cu
1280    and other communication programs under these conditions should be the
1281    same.
1282
1283    Here, by the way, is a summary of the differences between the HP-UX
1284    port driver types from John Pezzano of HP:
1285
1286      There are three types of device files for each port.
1287
1288      The ttydXXX device file is designed to work as follows:
1289
1290     1. The process that opens it does NOT get control of the port until CD
1291        is asserted. This was intentional (over 15 years ago) to allow
1292        getty to open the port but not control it until someone called in.
1293        If a process wants to use the direct or callout device files
1294        (ttyXXX and culXXX respectively), they will then get control and
1295        getty would be blocked. This eliminated the need to use uugetty
1296        (and its inherent problems with lock files) for modems. You can see
1297        this demonstrated by the fact that "ps -ef" shows a ? in the tty
1298        column for the getty process as getty does not have the port yet.
1299     2. Once CD is asserted, the port is controlled by getty (or the
1300        process handling an incoming call) if there was no process using
1301        the port. The ? in the "ps" command now shows the port. At this
1302        point, the port accepts data.
1303
1304      Therefore you should use either the callout culXXX device file
1305      (immediate control but no data until CD is asserted) or the direct
1306      device file ttyXXX which gives immediate control and immediate data
1307      and which ignores by default modem control signals.
1308
1309      The ttydXXX device should be used only for callin and my
1310      recommendation is to use it only for getty and uugetty.
1311
1312 3.2.4 Notes on Specific HP-UX Releases
1313
1314    SECTION CONTENTS
1315
1316   3.2.4.1. [228]HP-UX 11
1317   3.2.4.2. [229]HP-UX 10
1318   3.2.4.3. [230]HP-UX 9
1319   3.2.4.4. [231]HP-UX 8
1320   3.2.4.5. [232]HP-UX 7 and Earlier
1321
1322 3.2.4.1. HP-UX 11
1323
1324    [ [233]Top ] [ [234]Contents ] [ [235]Section Contents ] [ [236]Next ]
1325
1326    As noted in [237]Section 3.2.2, the HP-UX 11 Telnet server and/or
1327    pseudoterminal driver are a serious impediment to file transfer over
1328    Telnet connections into HP-UX. If you have a Telnet connection into
1329    HP-UX 11, tell your desktop Kermit program to:
1330
1331   set streaming off
1332   set receive packet-length 2000
1333   set send packet-length 500
1334
1335    File transfer speeds over connections from HP-UX 11 (dialed or Telnet)
1336    are not impeded whatsoever, and can go at whatever speed is allowed by
1337    the connection and the Kermit partner on the far end.
1338
1339    PA-RISC binaries for HP-UX 10.20 or later should run on any PA-RISC
1340    system, S700 or S800, as long as the binary was not built under a later
1341    HP-UX version than the host operating system. HP-UX 11.00 and 11.11 are
1342    only for PA-RISC systems. HP-UX 11.20 is only for IA64 (subsequent
1343    HP-UX releases will be for both PA-RISC and IA64). To check binary
1344    compatibility, the following C-Kermit 8.0 binaries were run
1345    successfully on an HP-9000/785 with HP-UX 11.11:
1346
1347      * Model 7xx HP-UX 10.20
1348      * Model 8xx HP-UX 10.20
1349      * Model 7xx HP-UX 11.00
1350      * Model 8xx HP-UX 11.00
1351      * Model 7xx HP-UX 11.11
1352      * Model 8xx HP-UX 11.11
1353
1354    Binaries built under some of the earlier HP-UX releases, such as 9.05,
1355    might also work, but only if built for the same hardware family (e.g.
1356    s700).
1357
1358 3.2.4.2. HP-UX 10
1359
1360    [ [238]Top ] [ [239]Contents ] [ [240]Section Contents ] [ [241]Next ]
1361    [ [242]Previous ]
1362
1363    Beginning in HP-UX 10.10, libcurses is linked to libxcurses, the new
1364    UNIX95 (X/Open) version of curses, which has some serious bugs; some
1365    routines, when called, would hang and never return, some would dump
1366    core. Evidently libxcurses contains a select() routine, and whenever
1367    C-Kermit calls what it thinks is the regular (sockets) select(), it
1368    gets the curses one, causing a segmentation fault. There is a patch for
1369    this from HP, PHCO_8086, "s700_800 10.10 libcurses patch", "shared lib
1370    curses program hangs on 10.10", "10.10 enhanced X/Open curses core
1371    dumps due to using wrong select call", 96/08/02 (you can tell if the
1372    patch is installed with "what /usr/lib/libxcurses.1"; the unpatched
1373    version is 76.20, the patched one is 76.20.1.2). It has been verified
1374    that C-Kermit works OK with the patched library, but results are not
1375    definite for HP-UX 10.20 or higher.
1376
1377    To ensure that C-Kermit works even on non-patched HP-UX 10.10 systems,
1378    separate makefile entries are provided for HP-UX 10.00/10.01, 10.10,
1379    10.20, etc, in which the entries for 10.10 and above link with
1380    libHcurses, which is "HP curses", the one that was used in 10.00/10.01.
1381    HP-UX 11.20 and later, however, link with libcurses, as libHcurses
1382    disappeared in 11.20.
1383
1384 3.2.4.3. HP-UX 9
1385
1386    [ [243]Top ] [ [244]Contents ] [ [245]Section Contents ] [ [246]Next ]
1387    [ [247]Previous ]
1388
1389    HP-UX 9.00 and 9.01 need patch PHNE_10572 (note: this replaces
1390    PHNE_3641) for hptt0.o, asio0.o, and ttycomn.o in libhp-ux.a. Contact
1391    Hewlett Packard if you need this patch. Without it, the dialout device
1392    (tty) will be hung after first use; subsequent attempts to use will
1393    return an error like "device busy". (There are also equivalent patches
1394    for s700 9.03 9.05 9.07 (PHNE_10573) and s800 9.00 9.04 (PHNE_10416).
1395
1396    When C-Kermit is in server mode, it might have trouble executing REMOTE
1397    HOST commands. This problem happens under HP-UX 9.00 (Motorola) and
1398    HP-UX 9.01 (RISC) IF the C-Shell is the login shell AND with the
1399    C-Shell Revision 70.15. Best thing is to install HP's Patch PHCO_4919
1400    for Series 300/400 and PHCO_5015 for the Series 700/800. PHCO_5015 is
1401    called "s700_800 9.X cumulative csh(1) patch with memory leak fix"
1402    which works for HP-UX 9.00, 9.01, 9.03, 9.04, 9.05 and 9.07. At least
1403    you need C-Shell Revision 72.12!
1404
1405    C-Kermit works fine -- including its curses-based file-transfer display
1406    -- on the console terminal, in a remote session (e.g. when logged in to
1407    the HP 9000 on a terminal port or when telnetted or rlogin'd), and in
1408    an HP-VUE hpterm window or an xterm window.
1409
1410 3.2.4.4. HP-UX 8
1411
1412    [ [248]Top ] [ [249]Contents ] [ [250]Section Contents ] [ [251]Next ]
1413    [ [252]Previous ]
1414
1415    To make C-Kermit work on HP-UX 8.05 on a model 720, obtain and install
1416    HP-UX patch PHNE_0899. This patch deals with a lot of driver issues,
1417    particularly related to communication at higher speeds.
1418
1419    One user reports:
1420
1421      On HP-UX 8 DON'T install 'tty patch' PHKL_4656, install PHKL_3047
1422      instead! Yesterday I tried this latest tty patch PHKL_4656 and had
1423      terrible problems. This patch should fix RTS/CTS problems. With text
1424      transfer all looks nice. But when I switched over to binary files
1425      the serial interface returned only rubish to C-Kermit. All sorts of
1426      protocol, CRC and packed errors I had. After several tests and after
1427      uninstalling that patch, all transfers worked fine. MB's of data
1428      without any errors. So keep your fingers away from that patch. If
1429      anybody needs the PHKL_3047 patch I have it here. It is no longer
1430      available from HP's patch base.
1431
1432 3.2.4.5. HP-UX 7 and Earlier
1433
1434    [ [253]Top ] [ [254]Contents ] [ [255]Section Contents ] [
1435    [256]Previous ]
1436
1437    When transferring files into HP-UX 5 or 6 over a Telnet connection, you
1438    must not use streaming, and you must not use a packet length greater
1439    than 512. However, you can use streaming and longer packets when
1440    sending files from HP-UX on a Telnet connection. In C-Kermit 8.0, the
1441    default receive packet length for HP-UX 5 and 6 was changed to 500 (but
1442    you can still increase it with SET RECEIVE PACKET-LENGTH if you wish,
1443    e.g. for non-Telnet connections). Disable streaming with SET STREAMING
1444    OFF.
1445
1446    The HP-UX 5.00 version of C-Kermit does not include the fullscreen
1447    file-transfer because of problems with the curses library.
1448
1449    If HP-UX 5.21 with Wollongong TCP/IP is on the remote end of a Telnet
1450    connection, streaming transfers to HP-UX invariably fail. Workaround:
1451    SET STREAMING OFF. Packets longer than about 1000 should not be used.
1452    Transfers from these systems, however, can use streaming and/or longer
1453    packets.
1454
1455    Reportedly, "[there is] a bug in C-Kermit using HP-UX version 5.21 on
1456    the HP-9000 series 500 computers. It only occurs when the controlling
1457    terminal is using an HP-27140 six-port modem mux. The problem is not
1458    present if the controlling terminal is logged into an HP-27130
1459    eight-port mux. The symptom is that just after dialing successfully and
1460    connecting Kermit locks up and the port is unusable until both forks of
1461    Kermit and the login shell are killed." (This report predates C-Kermit
1462    6.0 and might no longer apply.)
1463
1464 3.2.5. HP-UX and X.25
1465
1466    [ [257]Top ] [ [258]Contents ] [ [259]Section Contents ] [
1467    [260]Previous ]
1468
1469    Although C-Kermit presently does not include built-in support for HP-UX
1470    X.25 (as it does for the Sun and IBM X.25 products), it can still be
1471    used to make X.25 connections as follows: start Kermit and then telnet
1472    to localhost. After logging back in, start padem as you would normally
1473    do to connect over X.25. Padem acts as a pipe between Kermit and X.25.
1474    In C-Kermit 7.0, you might also be able to avoid the "telnet localhost"
1475    step by using:
1476
1477   C-Kermit> pty padem address
1478
1479    This works if padem uses standard i/o (who knows?).
1480
1481 3.3. C-KERMIT AND LINUX
1482
1483    [ [261]Top ] [ [262]Contents ] [ [263]Section Contents ] [ [264]Next ]
1484    [ [265]Previous ]
1485
1486    SECTION CONTENTS
1487
1488   3.3.1. [266]Problems Building C-Kermit for Linux
1489   3.3.2. [267]Problems with Serial Devices in Linux
1490   3.3.3. [268]Terminal Emulation in Linux
1491   3.3.4. [269]Dates and Times
1492   3.3.5. [270]Startup Errors
1493   3.3.6. [271]The Fullscreen File Transfer Display
1494
1495      (August 2010) Reportedly C-Kermit packages for certain Linux
1496      distributions such as Centos and Ubuntu have certain features
1497      disabled, for example the SSH command, SET HOST PTY /SSH, and
1498      perhaps anything else to do with SSH and/or pseudoterminals and who
1499      knows what else. If you download the regular package ("tarball")
1500      from the Kermit Project and build from it ("make linux"), everything
1501      is fine.
1502
1503      C-Kermit in Ubuntu 10.04 and 9.10 was reported slow to start because
1504      it was trying to resolve the IP address 255.255.255.255. Later, also
1505      in recent Debian versions. The following is seen in the strace:
1506
1507 write(3, "RESOLVE-ADDRESS 255.255.255.255\n", 32)
1508
1509      This is not Kermit Project code. Turns out to be something in
1510      glibc's resolver, and can be fixed by changing /etc/nsswitch.conf,
1511      but it might break other software, such as [272]Avahi or anything
1512      (such as Gnome, Java, or Cups) that depends on it. I'm not sure
1513      where it happens; I don't think Kermit tries to get its IP address
1514      at startup time, only when it's needed or asked for, e.g. when
1515      making a connection or evaluating \v(ipaddress).
1516
1517    REFERENCES
1518
1519    For further information, read the [273]comp.os.linux.misc,
1520    [274]comp.os.linux.answers, and other Linux-oriented newsgroups, and
1521    see:
1522
1523    The Linux Document Project (LDP)
1524           [275]http://www.tldp.org/
1525
1526    The Linux FAQ
1527           [276]http://www.tldp.org/FAQ/Linux-FAQ.html
1528
1529    The Linux HOWTOs (especially the Serial HOWTO)
1530
1531      [277]http://www.tldp.org/HOWTO/Serial-HOWTO.html
1532
1533      [278]http://tldp.org/HOWTO/Modem-HOWTO.html
1534
1535      [279]ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO
1536
1537      [280]ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO
1538
1539      [281]http://www.tldp.org/HOWTO/
1540
1541      [282]http://www.tldp.org/hmirrors.html
1542
1543    Linux Vendor Tech Support Pages:
1544
1545      [283]http://www.redhat.com/apps/support/
1546
1547      [284]http://www.debian.org/support
1548
1549      [285]http://www.slackware.com/support/
1550
1551      [286]http://www.caldera.com/support/
1552
1553      [287]SUSE Linux Support
1554
1555      [288]http://www.mandrake.com/support/
1556
1557      [289]http://www.turbolinux.com/support/
1558
1559    Linux Winmodem Support
1560           [290]http://www.linmodems.org/
1561
1562    Also see general comments on PC-based Unixes in [291]Section 3.0.
1563
1564    What Linux version is it? -- "uname -a" supplies only kernel
1565    information, but these days it's the distribution that matters: Red Hat
1566    7.3, Debian 2.2, Slackware 8.0, etc. Unfortunately there's no
1567    consistent way to get the distribution version. Usually it's in a
1568    distribution-specific file:
1569
1570      Red Hat:   /etc/issue or /etc/redhat-release
1571      Debian:    /etc/debian_version
1572      Slackware: /etc/slackware-version (at least in later versions)
1573
1574    Did you know: DECnet is available for Linux? See:
1575
1576   [292]http://linux.dreamtime.org/decnet/
1577
1578    (But there is no support for it in C-Kermit -- anybody interested in
1579    adding it, please [293]let me know).
1580
1581    Before proceeding, let's handle the some of the most frequently asked
1582    question in the Linux newsgroups:
1583
1584     1. Neither C-Kermit nor any other Linux application can use Winmodems,
1585        except in the [294]rare cases where Linux drivers have been written
1586        for them. See [295]Section 3.0.2 for details.
1587     2. "Why does it take such a long time to make a telnet connection to
1588        (or from) my Linux PC?" (this applies to C-Kermit and to regular
1589        Telnet). Most telnet servers these days perform reverse DNS lookups
1590        on the client (for security and/or logging reasons). If the Telnet
1591        client's address cannot be found by the server's local DNS server,
1592        the DNS request goes out to the Internet at large, and this can
1593        take quite some time. The solution to this problem is to make sure
1594        that both client and host are registered in DNS, and that the
1595        registrations are exported. C-Kermit itself performs reverse DNS
1596        lookups unless you tell it not to; this is to allow C-Kermit to let
1597        you know which host it is actually connected to in case you have
1598        made a connection to a host pool (multihomed host). You can disable
1599        C-Kermit's reverse DNS lookup with SET TCP REVERSE-DNS-LOOKUP OFF.
1600     3. (Any question that has the word "Telnet" in it...) The knee-jerk
1601        reaction is "don't use Telnet, use SSH!" There's nothing wrong with
1602        Telnet. In fact it's far superior to SSH as a protocol in terms of
1603        features and extensibility, not to mention platform neutrality. The
1604        issue lurking behind the knee-jerk reaction is security. SSH is
1605        thought to be secure, whereas Telnet is thought to be insecure.
1606        This is true for clear-text Telnet (because passwords travel in the
1607        clear across the network), but apparently few people realize that
1608        [296]secure Telnet clients and servers have been available for
1609        years, and these are more secure than SSH (for reasons explained
1610        [297]HERE).
1611     4. (Any question that has the word "FTP" in it...) The knee-jerk
1612        reaction being "Don't use FTP, use SCP!" (or SFTP). Same answer as
1613        above, but moreso. SCP and SFTP are not only not platform neutral,
1614        they're diversity-hostile. They transfer files only in binary mode,
1615        which mangles text files across different platforms, to the same
1616        degree the platform's text-file record format and character set
1617        differ. An extreme example would be an Variable-Block format EBCDIC
1618        text file on an IBM mainframe, binary transfer of which to Unix
1619        would do you little good indeed. FTP was designed with diversity in
1620        mind and secure versions are available.
1621
1622 3.3.1. Problems Building C-Kermit for Linux
1623
1624    [ [298]Top ] [ [299]Contents ] [ [300]Section Contents ] [ [301]Next ]
1625
1626    Modern Linux distributions like Red Hat give you a choice at
1627    installation whether to include "developer tools". Obviously, you can't
1628    build C-Kermit or any other C program from source code if you have not
1629    installed the developer tools. But to confuse matters, you might also
1630    have to choose (separately) to install the "curses" or "ncurses"
1631    terminal control library; thus it is possible to install the C compiler
1632    and linker, but omit the (n)curses library and headers. If curses is
1633    not installed, you will not be able to build a version of C-Kermit that
1634    supports the fullscreen file-transfer display, in which case you'll
1635    need to use the "linuxnc" makefile target (nc = No Curses) or else
1636    install ncurses before building.
1637
1638    There are all sorts of confusing issues caused by the many and varied
1639    Linux distributions. Some of the worst involve the curses library and
1640    header files: where are they, what are they called, which ones are they
1641    really? Other vexing questions involve libc5 vs libc6 vs glibc vs
1642    glibc2 (C libraries), gcc vs egcs vs lcc (compilers), plus using or
1643    avoiding features that were added in a certain version of Linux or a
1644    library or a distribution, and are not available in others. As of
1645    C-Kermit 8.0, these questions should be resolved by the "linux"
1646    makefile target itself, which does a bit of looking around to see
1647    what's what, and then sets the appropriate CFLAGS.
1648
1649 3.3.2. Problems with Serial Devices in Linux
1650
1651    [ [302]Top ] [ [303]Contents ] [ [304]Section Contents ] [ [305]Next ]
1652    [ [306]Previous ]
1653
1654      Also see: "man setserial", "man irqtune".
1655      And: [307]Sections 3.0, [308]6, [309]7, and [310]8 of this document.
1656
1657      NOTE: Red Hat Linux 7.2 and later include a new API that allows
1658      serial-port arbitration by non-setuid/gid programs. This API has not
1659      yet been added to C-Kermit. If C-Kermit is to be used for dialing
1660      out on Red Hat 7.2 or later, it must still be installed as described
1661      in in Sections [311]10 and [312]11 of the [313]Installation
1662      Instructions.
1663
1664    Don't expect it to be easy. Queries like the following are posted to
1665    the Linux newsgroups almost daily:
1666
1667      Problem of a major kind with my Compaq Presario 1805 in the sense
1668      that the pnpdump doesn't find the modem and the configuration tells
1669      me that the modem is busy when I set everything by hand!
1670
1671      I have <some recent SuSE distribution>, kernel 2.0.35. Using the
1672      Compaq tells me that the modem (which is internal) is on COM2, with
1673      the usual IRQ and port numbers. Running various Windows diagnostics
1674      show me AT-style commands exchanged so I have no reason to believe
1675      that it is a Winmodem. Also, the diagnostics under Win98 tell me
1676      that I am talking to an NS 16550AN.
1677
1678    [Editor's note: This does not necessarily mean it isn't a Winmodem.]
1679
1680      Under Linux, no joy trying to talk to the modem on /dev/cua1 whether
1681      via minicom, kppp, or chat; kppp at least tells me that tcgetattr()
1682      failed.
1683
1684      Usage of setserial:
1685
1686   setserial /dev/cua1 port 0x2F8 irq 3 autoconfig
1687   setserial -g /dev/cua1
1688
1689      tells me that the uart is 'unknown'. I have tried setting the UART
1690      manually via. setserial to 16550A, 16550, and the other one (8550?)
1691      (I didn't try 16540). None of these manual settings resulted in any
1692      success.
1693
1694      A look at past articles leads me to investigate PNP issues by
1695      calling pnpdump but pnpdump returns "no boards found". I have looked
1696      around on my BIOS (Phoenix) and there is not much evidence of it
1697      being PNP aware. However for what it calls "Serial port A", it
1698      offers a choice of Auto, Disabled or Manual settings (currently set
1699      to Auto), but using the BIOS interface I tried to change to 'manual'
1700      and saw the default settings offered to be were 0x3F8 and IRQ 4
1701      (COM1). The BIOS menus did not give me any chance to configure COM2
1702      or any "modem". I ended up not saving any BIOS changes in the course
1703      of my investigations.
1704
1705    You can also find out a fair amount about your PC's hardware
1706    configuration in the text files in /proc, e.g.:
1707
1708   -r--r--r--    1 root            0 Sep  4 14:00 /proc/devices
1709   -r--r--r--    1 root            0 Sep  4 14:00 /proc/interrupts
1710   -r--r--r--    1 root            0 Sep  4 14:00 /proc/ioports
1711   -r--r--r--    1 root            0 Sep  4 14:00 /proc/pci
1712
1713    From the directory listing they look like empty files, but in fact they
1714    are text files that you "cat":
1715
1716 $ cat /proc/pci
1717    Bus  0, device  14, function  0:
1718      Serial controller: US Robotics/3Com 56K FaxModem Model 5610 (rev 1).
1719        IRQ 10.
1720        I/O at 0x1050 [0x1057].
1721
1722 $ setserial -g /dev/ttyS4
1723 /dev/ttyS4, UART: 16550A, Port: 0x1050, IRQ: 10
1724
1725 $ cat /proc/ioports
1726 1050-1057 : US Robotics/3Com 56K FaxModem Model 5610
1727    1050-1057 : serial(auto)
1728
1729 $ cat /proc/interrupts
1730             CPU0
1731    0:    7037515          XT-PIC  timer
1732    1:          2          XT-PIC  keyboard
1733    2:          0          XT-PIC  cascade
1734    4:          0          XT-PIC  serial
1735    8:          1          XT-PIC  rtc
1736    9:     209811          XT-PIC  usb-uhci, eth0
1737   14:     282015          XT-PIC  ide0
1738   15:          6          XT-PIC  ide1
1739
1740    Watch out for PCI, PCMCIA and Plug-n-Play devices, Winmodems, and the
1741    like (see cautions in [314]Section 3.0 Linux supports Plug-n-Play
1742    devices to some degree via the isapnp and pnpdump programs; read the
1743    man pages for them. (If you don't have them, look on your installation
1744    CD for isapnptool or download it from sunsite or a sunsite mirror or
1745    other politically correct location du jour).
1746
1747    PCI modems do not use standard COM port addresses. The I/O address and
1748    IRQ are assigned by the BIOS. All you need to do to get one working,
1749    find out the I/O address and interrupt number with (as root) "lspci -v
1750    | more" and then give the resulting address and interrupt number to
1751    setserial.
1752
1753    Even when you have a real serial port, always be wary of interrupt
1754    conflicts and similar PC hardware configuration issues: a PC is not a
1755    real computer like other Unix workstations -- it is generally pieced
1756    together from whatever random components were the best bargain on the
1757    commodity market the week it was built. Once it's assembled and boxed,
1758    not even the manufacturer will remember what it's made of or how it was
1759    put together because they've moved on to a new model. Their job is to
1760    get it (barely) working with Windows; for Linux and other OS's you are
1761    on your own.
1762
1763    "set line /dev/modem" or "set line /dev/ttyS2", etc, results in an
1764    error, "/dev/modem is not a tty". Cause unknown, but obviously a driver
1765    issue, not a Kermit one (Kermit uses "isatty()" to check that the
1766    device is a tty, so it knows it will be able to issue all the
1767    tty-related ioctl's on it, like setting the speed & flow control). Try
1768    a different name (i.e. driver) for the same port, e.g. "set line
1769    /dev/cua2" or whatever.
1770
1771    To find what serial ports were registered at the most recent system
1772    boot, type (as root): "grep tty /var/log/dmesg".
1773
1774    "set modem type xxx" (where xxx is the name of a modem) followed by
1775    "set line /dev/modem" or "set
1776    line /dev/ttyS2", etc, hangs (but can be interrupted with Ctrl-C).
1777    Experimentation shows that if the modem is configured to always assert
1778    carrier (&C0) the same command does not hang. Again, a driver issue.
1779    Use /dev/cua2 (or whatever) instead. (Or not -- hopefully none of these
1780    symptoms occurs in C-Kermit 7.0 or later.)
1781
1782    "set line /dev/cua0" reports "Device is busy", but "set line
1783    /dev/ttyS0" works OK.
1784
1785    In short: If the cua device doesn't work, try the corresponding ttyS
1786    device. If the ttyS device doesn't work, try the corresponding cua
1787    device -- but note that Linux developers do not recommend this, and are
1788    phasing out the cua devices. From /usr/doc/faq/howto/Serial-HOWTO:
1789
1790    12.4. What's The Real Difference Between the /dev/cuaN And /dev/ttySN
1791           Devices?
1792           The only difference is the way that the devices are opened. The
1793           dialin devices /dev/ttySN are opened in blocking mode, until CD
1794           is asserted (ie someone connects). So, when someone wants to use
1795           the /dev/cuaN device, there is no conflict with a program
1796           watching the /dev/ttySN device (unless someone is connected of
1797           course). The multiple /dev entries, allow operation of the same
1798           physical device with different operating characteristics. It
1799           also allows standard getty programs to coexist with any other
1800           serial program, without the getty being retrofitted with locking
1801           of some sort. It's especially useful since standard Unix kernel
1802           file locking, and UUCP locking are both advisory and not
1803           mandatory.
1804
1805    It was discovered during development of C-Kermit 7.0 that rebuilding
1806    C-Kermit with -DNOCOTFMC (No Close/Open To Force Mode Change) made the
1807    aforementioned problem with /dev/ttyS0 go away. It is not yet clear,
1808    however, what its affect might be on the /dev/cua* devices. As of 19
1809    March 1998, this option has been added to the CFLAGS in the makefile
1810    entries for Linux ("make linux").
1811
1812    Note that the cua device is now "deprecated", and new editions of Linux
1813    will phase (have phased) it out in favor of the ttyS device. See (if
1814    it's still there):
1815
1816   [315]http://linuxwww.db.erau.edu/mail_archives/linux-kernel/Mar_98/1441.html
1817
1818    (no, of course it isn't; you'll have to use your imagination). One user
1819    reported that C-Kermit 7.0, when built with egcs 1.1.2 and run on Linux
1820    2.2.6 with glibc 2.1 (hardware unknown but probably a PC) dumps core
1821    when given a "set line /dev/ttyS1" command. When rebuilt with gcc, it
1822    works fine.
1823
1824    All versions of Linux seem to have the following deficiency: When a
1825    modem call is hung up and CD drops, Kermit can no longer read the modem
1826    signals; SHOW COMMUNICATIONS says "Modem signals not available". The
1827    TIOCMGET ioctl() returns -1 with errno 5 ("I/O Error").
1828
1829    The Linux version of POSIX tcsendbreak(), which is used by C-Kermit to
1830    send regular (275msec) and long (1.5sec) BREAK signals, appears to
1831    ignore its argument (despite its description in the man page and info
1832    topic), and always sends a regular 275msec BREAK. This has been
1833    observed in Linux versions ranging from Debian 2.1 to Red Hat 7.1.
1834
1835 3.3.3. Terminal Emulation in Linux
1836
1837    [ [316]Top ] [ [317]Contents ] [ [318]Section Contents ] [ [319]Next ]
1838    [ [320]Previous ]
1839
1840    C-Kermit is not a terminal emulator. For a brief explanation of why
1841    not, see [321]Section 3.0.5. For a fuller explanation, [322]ClICK HERE.
1842
1843    In Unix, terminal emulation is supplied by the Window in which you run
1844    Kermit: the regular console screen, which provides Linux Console
1845    "emulation" via the "console" termcap entry, or under X-Windows in an
1846    xterm window, which gives VTxxx emulation. An xterm that includes color
1847    ANSI and VT220 emulation is available with Xfree86:
1848
1849   [323]http://dickey.his.com/xterm/xterm.html
1850
1851    Before starting C-Kermit in an xterm window, you might need to tell the
1852    xterm window's shell to "stty sane".
1853
1854    To set up your PC console keyboard to send VT220 key sequences when
1855    using C-Kermit as your communications program in an X terminal window
1856    (if it doesn't already), create a file somewhere (e.g. in /root/)
1857    called .xmodmaprc, containing something like the following:
1858
1859   keycode 77  = KP_F1       ! Num Lock     => DEC Gold (PF1)
1860   keycode 112 = KP_F2       ! Keypad /     => DEC PF1
1861   keycode 63  = KP_F3       ! Keypad *     => DEC PF3
1862   keycode 82  = KP_F4       ! Keypad -     => DEC PF4
1863   keycode 111 = Help        ! Print Screen => DEC Help
1864   keycode 78  = F16         ! Scroll Lock  => DEC Do
1865   keycode 110 = F16         ! Pause        => DEC Do
1866   keycode 106 = Find        ! Insert       => DEC Find
1867   keycode 97  = Insert      ! Home         => DEC Insert
1868   keycode 99  = 0x1000ff00  ! Page Up      => DEC Remove
1869   keycode 107 = Select      ! Delete       => DEC Select
1870   keycode 103 = Page_Up     ! End          => DEC Prev Screen
1871   keycode 22  = Delete      ! Backspace sends Delete (127)
1872
1873    Then put "xmodmap filename" in your .xinitrc file (in your login
1874    directory), e.g.
1875
1876   xmodmap /root/.xmodmaprc
1877
1878    Of course you can move things around. Use the xev program to find out
1879    key codes.
1880
1881    Console-mode keys are mapped separately using loadkeys, and different
1882    keycodes are used. Find out what they are with showkey.
1883
1884    For a much more complete VT220/320 key mapping for [324]Xfree86 xterm,
1885    [325]CLICK HERE.
1886
1887 3.3.4. Dates and Times
1888
1889    [ [326]Top ] [ [327]Contents ] [ [328]Section Contents ] [ [329]Next ]
1890    [ [330]Previous ]
1891
1892    If C-Kermit's date-time (e.g. as shown by its DATE command) differs
1893    from the system's date and time:
1894
1895     a. Make sure the libc to which Kermit is linked is set to GMT or is
1896        not set to any time zone. Watch out for mixed libc5/libc6 systems;
1897        each must be set independently.
1898     b. If you have changed your TZ environment variable, make sure it is
1899        exported. This is normally done in /etc/profile or /etc/TZ.
1900
1901 3.3.5. Startup Errors
1902
1903    [ [331]Top ] [ [332]Contents ] [ [333]Section Contents ] [ [334]Next ]
1904    [ [335]Previous ]
1905
1906    C-Kermit should work on all versions of Linux current through March
1907    2003, provided it was built on the same version you have, with the same
1908    libraries and header files (just get the source code and "make linux").
1909    Binaries tend not to travel well from one Linux machine to another, due
1910    to their many differences. There is no guarantee that a particular
1911    C-Kermit binary will not stop working at a later date, since Linux
1912    tends to change out from under its applications. If that happens,
1913    rebuild C-Kermit from source. If something goes wrong with the build
1914    process, look on the [336]C-Kermit website for a newer version. If you
1915    have the latest version, then [337]report the problem to us.
1916
1917    Inability to transfer files in Red Hat 7.2: the typical symptom would
1918    be if you start Kermit and tell it to RECEIVE, it fails right away with
1919    "?/dev/tty: No such device or address" or "?Bad file descriptor". One
1920    report says this is because of csh, and if you change your shell to
1921    bash or other shell, it doesn't happen. Another report cite bugs in Red
1922    Hat 7.2 Telnetd "very seldom (if ever) providing a controlling tty, and
1923    lots of other people piled on saying they have the same problem.") A
1924    third theory is that this happens only when Linux has been installed
1925    without "virtual terminal support".
1926
1927    A search of RedHat's errata pages shows a bug advisory (RHBA-2001-153)
1928    issued 13 November 2001, but updated 6 December, about this same
1929    symptom (but with tcsh and login.) Seems that login was not always
1930    assigning a controlling TTY for the session, which would make most use
1931    of "/dev/tty" somewhat less than useful.
1932
1933   [338]http://www.redhat.com/support/errata/RHBA-2001-153.html
1934
1935    Quoting: "Due to terminal handling problems in /bin/login, tcsh would
1936    not find the controlling terminal correctly, and a shell in single user
1937    mode would exhibit strange terminal input characteristics. This update
1938    fixes both of these problems."
1939
1940    Since the Red Hat 5.1 release (circa August 1998), there have been
1941    numerous reports of prebuilt Linux executables, and particularly the
1942    Kermit RPM for Red Hat Linux, not working; either it won't start at
1943    all, or it gives error messages about "terminal type unknown" and
1944    refuses to initialize its curses support. The following is from the
1945    [339]Kermit newsgroup:
1946
1947      From: rchandra@hal9000.buf.servtech.com
1948      Newsgroups: comp.protocols.kermit.misc
1949      Subject: Red Hat Linux/Intel 5.1 and ncurses: suggestions
1950      Date: 22 Aug 1998 15:54:46 GMT
1951      Organization: Verio New York
1952      Keywords: RedHat RPM 5.1
1953
1954      Several factors can influence whether "linux" is recognized as a
1955      terminal type on many Linux systems.
1956
1957     1. Your program, or the libraries it linked with (if statically
1958        linked), or the libraries it dynamically links with at runtime, are
1959        looking for an entry in /etc/termcap that isn't there. (not likely,
1960        but possible... I believe but am not certain that this is a very
1961        old practice in very old [n]curses library implementations to use a
1962        single file for all terminal descriptions.)
1963     2. Your program, or the libraries...are looking for a terminfo file
1964        that just plain isn't there. (also not so likely, since many people
1965        in other recent message threads said that other programs work OK).
1966     3. Your program, or the libraries...are looking for a terminfo file
1967        that is stored at a pathname that isn't expected by your program,
1968        the libraries--and so on. I forgot if I read this in the errata Web
1969        page or where exactly I discovered this (Netscape install? Acrobat
1970        install?), but it may just be that one libc (let's say for sake of
1971        argument, libc5, but I don't know this to be true) expects your
1972        terminfo to be in /usr/share/terminfo, and the other (let's say
1973        libc6/glibc) expects /usr/lib/terminfo. I remember that the
1974        specific instructions in this bugfix/workaround were to do the
1975        following or equivalent:
1976   cd /usr/lib
1977   ln -s ../share/terminfo ./terminfo
1978
1979        or:
1980   ln -s /usr/share/terminfo /usr/lib/terminfo
1981
1982      So what this says is that the terminfo database/directory structure
1983      can be accessed by either path. When something goes to reference
1984      /usr/lib/terminfo, the symlink redirects it to essentially
1985      /usr/share/terminfo, which is where it really resides on your
1986      system. I personally prefer wherever possible to use relative
1987      symlinks, because they still hold, more often than break, across
1988      mount points, particularly NFS mounts, where the directory structure
1989      may be different on the different systems.
1990
1991    Evidently the terminfo file moved between Red Hat 5.0 and 5.1, but Red
1992    Hat did not include a link to let applications built prior to 5.1 find
1993    it. Users reported that installing the link fixes the problem.
1994
1995 3.3.6. The Fullscreen File Transfer Display
1996
1997    [ [340]Top ] [ [341]Contents ] [ [342]Section Contents ] [
1998    [343]Previous ]
1999
2000    Starting with ncurses versions dated 1998-12-12 (about a year before
2001    ncurses 5.0), ncurses sets the terminal for buffered i/o, but
2002    unfortunately is not able to restore it upon exit from curses (via
2003    endwin()). Thus after a file transfer that uses the fullscreen file
2004    transfer display, the terminal no longer echos nor responds immediately
2005    to Tab, ?, and other special command characters. The same thing happens
2006    on other platforms that use ncurses, e.g. FreeBSD. Workarounds:
2007
2008      * Use SET XFER DISPLAY BRIEF, CRT, SERIAL, or NONE instead of
2009        FULLSCREEN; or:
2010      * Rebuild with KFLAGS=-DNONOSETBUF (C-Kermit 8.0)
2011
2012    In Red Hat 7.1, when using C-Kermit in a Gnome terminal window, it was
2013    noticed that when the fullscreen file transfer display exits (via
2014    endwin()), the previous (pre-file-transfer-display) screen is restored.
2015    Thus you can't look at the completed display to see what happened. This
2016    is a evidently a new feature of xterm. I can only speculate that
2017    initscreen() and endwin() must send some kind of special escape
2018    sequences that command xterm to save and restore the screen. To defeat
2019    this effect, tell Linux you have a vt100 or other xterm-compatible
2020    terminal that is not actually an xterm, or else tell Kermit to SET
2021    TRANSFER DISPLAY to something besides FULLSCREEN.
2022
2023 3.4. C-KERMIT AND NEXTSTEP
2024
2025    [ [344]Top ] [ [345]Contents ] [ [346]Section Contents ] [ [347]Next ]
2026    [ [348]Previous ]
2027
2028    Run C-Kermit in a Terminal, Stuart, or xterm window, or when logged in
2029    remotely through a serial port or TELNET connection. C-Kermit does not
2030    work correctly when invoked directly from the NeXTSTEP File Viewer or
2031    Dock. This is because the terminal-oriented gtty, stty, & ioctl calls
2032    don't work on the little window that NeXTSTEP pops up for non-NeXTSTEP
2033    applications like Kermit. CBREAK and No-ECHO settings do not take
2034    effect in the command parser -- commands are parsed strictly line at a
2035    time. "set line /dev/cua" works. During CONNECT mode, the console stays
2036    in cooked mode, so characters are not transmitted until carriage return
2037    or linefeed is typed, and you can't escape back. If you want to run
2038    Kermit directly from the File Viewer, then launch it from a shell
2039    script that puts it in the desired kind of window, something like this
2040    (for "Terminal"):
2041
2042   Terminal -Lines 24 -Columns 80 -WinLocX 100 -WinLocY 100 $FONT $FONTSIZE \
2043   -SourceDotLogin -Shell /usr/local/bin/kermit &
2044
2045    C-Kermit does not work correctly on a NeXT with NeXTSTEP 3.0 to which
2046    you have established an rlogin connection, due to a bug in NeXTSTEP
2047    3.0, which has been reported to NeXT.
2048
2049    The SET CARRIER command has no effect on the NeXT -- this is a
2050    limitation of the NeXTSTEP serial-port device drivers.
2051
2052    Hardware flow control on the NeXT is selected not by "set flow rts/cts"
2053    in Kermit (since NeXTSTEP offers no API for this), but rather, by using
2054    a specially-named driver for the serial device: /dev/cufa instead
2055    /dev/cua; /dev/cufb instead of /dev/cub. This is available only on
2056    68040-based NeXT models (the situation for Intel NeXTSTEP
2057    implementations is unknown).
2058
2059    NeXT-built 68030 and 68040 models have different kinds of serial
2060    interfaces; the 68030 has a Macintosh-like RS-422 interface, which
2061    lacks RTS and CTS signals; the 68040 has an RS-423 (RS-232 compatible)
2062    interface, which supports the commonly-used modem signals. WARNING: the
2063    connectors look exactly the same, but the pins are used in completely
2064    DIFFERENT ways -- different cables are required for the two kinds of
2065    interfaces.
2066
2067      IF YOU GET LOTS OF RETRANSMISSIONS during file transfer, even when
2068      using a /dev/cuf* device and the modem is correctly configured for
2069      RTS/CTS flow control, YOU PROBABLY HAVE THE WRONG KIND OF CABLE.
2070
2071    On the NeXT, Kermit reportedly (by TimeMon) causes the kernel to use a
2072    lot of CPU time when using a "set line" connection. That's because
2073    there is no DMA channel for the NeXT serial port, so the port must
2074    interrupt the kernel for each character in or out.
2075
2076    One user reported trouble running C-Kermit on a NeXT from within NeXT's
2077    Subprocess class under NeXTstep 3.0, and/or when rlogin'd from one NeXT
2078    to another: Error opening /dev/tty:, congm: No such device or address.
2079    Diagnosis: Bug in NeXTSTEP 3.0, cure unknown.
2080
2081 3.5. C-KERMIT AND QNX
2082
2083    [ [349]Top ] [ [350]Contents ] [ [351]Section Contents ] [ [352]Next ]
2084    [ [353]Previous ]
2085
2086    See also: The [354]comp.os.qnx newsgroup.
2087
2088    Support for QNX 4.x was added in C-Kermit 5A(190). This is a
2089    full-function implementation, thoroughly tested on QNX 4.21 and later,
2090    and verified to work in both 16-bit and 32-bit versions. The 16-bit
2091    version was dropped in C-Kermit 7.0 since it can no longer be built
2092    successfully (after stripping most most features, I succeeded in
2093    getting it to compile and link without complaint, but the executable
2094    just beeps when you run it); for 16-bit QNX 4.2x, use C-Kermit 6.0 or
2095    earlier, or else [355]G-Kermit.
2096
2097    The 32-bit version (and the 16-bit version prior to C-Kermit 7.0)
2098    supports most of C-Kermit's advanced features including TCP/IP, high
2099    serial speeds, hardware flow-control, modem-signal awareness, curses
2100    support, etc.
2101
2102    BUG: In C-Kermit 6.0 on QNX 4.22 and earlier, the fullscreen file
2103    transfer display worked fine the first time, but was fractured on
2104    subsequent file transfers. Cause and cure unknown. In C-Kermit 7.0 and
2105    QNX 4.25, this no longer occurs. It is not known if it would occur in
2106    C-Kermit 7.0 or later on earlier QNX versions.
2107
2108    Dialout devices are normally /dev/ser1, /dev/ser2, ..., and can be
2109    opened explicitly with SET LINE. Reportedly, "/dev/ser" (no unit
2110    number) opens the first available /dev/sern device.
2111
2112    Like all other Unix C-Kermit implementations, QNX C-Kermit does not
2113    provide any kind of terminal emulation. Terminal specific functions are
2114    provided by your terminal, terminal window (e.g. QNX Terminal or
2115    xterm), or emulator.
2116
2117    QNX C-Kermit, as distributed, does not include support for UUCP
2118    line-locking; the QNX makefile entries (qnx32 and qnx16) include the
2119    -DNOUUCP switch. This is because QNX, as distributed, does not include
2120    UUCP, and its own communications software (e.g. qterm) does not use
2121    UUCP line locking. If you have a UUCP product installed on your QNX
2122    system, remove the -DNOUUCP switch from the makefile entry and rebuild.
2123    Then check to see that Kermit's UUCP lockfile conventions are the same
2124    as those of your UUCP package; if not, read the [356]UUCP lockfile
2125    section of the [357]Installation Instructions and make the necessary
2126    changes to the makefile entry (e.g. add -DHDBUUCP).
2127
2128    QNX does, however, allow a program to get the device open count. This
2129    can not be a reliable form of locking unless all applications do it, so
2130    by default, Kermit uses this information only for printing a warning
2131    message such as:
2132
2133   C-Kermit>set line /dev/ser1
2134   WARNING - "/dev/ser1" looks busy...
2135
2136    However, if you want to use it as a lock, you can do so with:
2137
2138   SET QNX-PORT-LOCK { ON, OFF }
2139
2140    This is OFF by default; if you set in ON, C-Kermit will fail to open
2141    any dialout device when its open count indicates that another process
2142    has it open. SHOW COMM (in QNX only) displays the setting, and if you
2143    have a port open, it also shows the open count.
2144
2145    As of C-Kermit 8.0, C-Kermit's "open-count" form of line locking works
2146    only in QNX4, not in QNX6 (this might change in a future C-Kermit
2147    release).
2148
2149 3.6. C-KERMIT AND SCO
2150
2151    [ [358]Top ] [ [359]Contents ] [ [360]Section Contents ] [ [361]Next ]
2152    [ [362]Previous ]
2153
2154    SECTION CONTENTS
2155
2156 3.6.1. [363]SCO XENIX
2157 3.6.2. [364]SCO UNIX and OSR5
2158 3.6.3. [365]Unixware
2159 3.6.4. [366]Open UNIX 8
2160
2161    REFERENCES
2162
2163      * The comp.unix.sco.* newsgroups.
2164      * [367]Section 3.10 below for Unixware.
2165      * The following FAQs:
2166
2167         The comp.sco.misc FAQ:
2168                 [368]http://aplawrence.com/SCOFAQ/
2169
2170         Caldera (SCO) comp.unix.sco.programmer FAQ:
2171                 [369]http://www.zenez.com/cgi-bin/scoprogfaq/faq.pl
2172
2173         The UnixWare 7/OpenUNIX 8 FAQ:
2174                 [370]http://www.zenez.com/cgi-bin/scouw7faq/faq.pl
2175                 [371]http://zenez.pcunix.com/cgi-bin/scouw7faq/faq.pl
2176
2177         High Speed Modems for SCO Unix:
2178                 [372]http://pcunix.com/Unixart/modems.html
2179
2180         The UnixWare FAQ
2181                 [373]http://www.freebird.org/faq/
2182
2183         The UnixWare 1.x and 2.0 Programmer FAQ
2184                 [374]http://www.freebird.org/faq/developer.html
2185
2186         Caldera Support Knowledge Base
2187                 [375]http://support.caldera.com/caldera
2188
2189         [376]http://stage.caldera.com/ta/
2190                 Caldera (SCO) Technical Article Search Center
2191
2192         [377]http://aplawrence.com/newtosco.html
2193                 New to SCO (Tony Lawrence)
2194
2195    The same comments regarding terminal emulation and key mapping apply to
2196    SCO operating systems as to all other Unixes. C-Kermit is not a
2197    terminal emulator, and you can't use it to map F-keys, Arrow keys, etc.
2198    The way to do this is with xmodmap (xterm) or loadkeys (console). For a
2199    brief explanation, see [378]Section 3.0.5. For a fuller explanation,
2200    [379]ClICK HERE.
2201
2202    Also see general comments on PC-based Unixes in [380]Section 3.0.
2203
2204 3.6.1. SCO XENIX
2205
2206    [ [381]Top ] [ [382]Contents ] [ [383]Section Contents ] [ [384]Next ]
2207
2208    Old Xenix versions... Did you know: Xenix 3.0 is *older* than Xenix
2209    2.0?
2210
2211    In Xenix 2.3.4 and probably other Xenix versions, momentarily dropping
2212    DTR to hang up a modem does not work. DTR goes down but does not come
2213    up again. Workaround: Use SET MODEM HANGUP-METHOD MODEM-COMMAND.
2214    Anybody who would like to fix this is welcome to take a look at
2215    tthang() in [385]ckutio.c. Also: modem signals can not be read in
2216    Xenix, and the maximum serial speed is 38400.
2217
2218    There is all sorts of confusion among SCO versions, particularly when
2219    third- party communications boards and drivers are installed, regarding
2220    lockfile naming conventions, as well as basic functionality. As far as
2221    lockfiles go, all bets are off if you are using a third-party multiport
2222    board. At least you have the source code. Hopefully you also have a C
2223    compiler :-)
2224
2225    Xenix 2.3.0 and later claim to support RTSFLOW and CTSFLOW, but this is
2226    not modern bidirectional hardware flow control; rather it implements
2227    the original RS-232 meanings of these signals for unidirectional
2228    half-duplex line access: If both RTSFLOW and CTSFLOW bits are set,
2229    Xenix asserts RTS when it wants to send data and waits for CTS
2230    assertion before it actually starts sending data (also, reportedly,
2231    even this is broken in Xenix 2.3.0 and 2.3.1).
2232
2233 3.6.2. SCO UNIX AND OSR5
2234
2235    [ [386]Top ] [ [387]Contents ] [ [388]Section Contents ] [ [389]Next ]
2236    [ [390]Previous ]
2237
2238    SCO systems tend to use different names (i.e. drivers) for the same
2239    device. Typically /dev/tty1a refers to a terminal device that has no
2240    modem control; open, read, write, and close operations do not depend on
2241    carrier. On the other hand, /dev/tty1A (same name, but with final
2242    letter upper case), is the same device with modem control, in which
2243    carrier is required (the SET LINE command does not complete until
2244    carrier appears, read/write operations fail if there is no carrier,
2245    etc).
2246
2247    SCO OpenServer 5.0.5 and earlier do not support the reading of modem
2248    signals. Thus "show comm" does not list modem signals, and C-Kermit
2249    does not automatically pop back to its prompt when the modem hangs up
2250    the connection (drops CD). The ioctl() call for this is simply not
2251    implemented, at least not in the standard drivers. OSR5.0.6 attempts to
2252    deal with modem signals but fails; however OSR5.0.6a appears to
2253    function properly.
2254
2255    Dialing is likely not to work well in SCO OpenServer 5.0.x because many
2256    of the serial-port APIs simply do not operate when using the standard
2257    drivers. For example, if DTR is dropped by the recommended method
2258    (setting speed to 0 for half a seconds, then restoring the speed), DTR
2259    and RTS go down but never come back up. When in doubt SET MODEM
2260    HANGUP-METHOD MODEM-COMMAND or SET DIAL HANGUP OFF.
2261
2262    On the other hand, certain functions that might not (do not) work right
2263    or at all when using SCO drivers (e.g. high serial speeds, hardware
2264    flow control, and/or reading of modem signals) might work right when
2265    using third-party drivers. (Example: hardware flow control works,
2266    reportedly, only on uppercase device like tty1A -- not tty1a -- and
2267    only when CLOCAL is clear when using the SCO sio driver, but there are
2268    no such restrictions in, e.g., [391]Digiboard drivers).
2269
2270    One user reports that he can't transfer large files with C-Kermit under
2271    SCO OSR5.0.0 and 5.0.4 -- after the first 5K, everything falls apart.
2272    Same thing without Kermit -- e.g. with ftp over a PPP connection.
2273    Later, he said that replacing SCO's SIO driver with FAS, an alternative
2274    communications driver, made the problem go away:
2275
2276   [392]ftp://ftp.fu-berlin.de/pub/unix/driver/fas
2277
2278    With regard to bidirectional serial ports on OpenServer 5.0.4, the
2279    following advice appeared on an SCO-related newsgroup:
2280
2281      No amount of configuration information is going to help you on 5.0.4
2282      unless it includes the kludge for the primary problem. With almost
2283      every modem, the 5.0.4 getty will barf messages and may or may not
2284      connect. There are 2 solutions and only one works on 5.0.4. Get the
2285      atdialer binary from a 5.0.0 system and substitute it for the native
2286      5.0.4 atdialer. The other solution is to upgrade to 5.0.5. And, most
2287      of all, on any OpenServer products, do NOT run the badly broken
2288      Modem Manager. Configure the modems in the time honored way that
2289      dates back to Xenix.
2290
2291    Use SCO-provided utilities for switching the directionality of a modem
2292    line, such as "enable" and "disable" commands. For example, to dial out
2293    on tty1a, which is normally set up for logins:
2294
2295   disable tty1a
2296   kermit -l /dev/tty1a
2297   enable tty1a
2298
2299    If a tty device is listed as an ACU in /usr/lib/uucp/Devices and is
2300    enabled, getty resets the ownership and permissions to uucp.uucp and
2301    640 every time the device is released. If you want to use the device
2302    only for dialout, and you want to specify other owners or permissions,
2303    you should disable it in /usr/lib/uucp/Devices; this will prevent getty
2304    from doing things to it. You should also changes the device's file
2305    modes in /etc/conf/node.d/sio by changing fields 5-7 for the desired
2306    device(s); this determines how the devices are set if you relink the
2307    kernel.
2308
2309    One SCO user of C-Kermit 5A(190) reported that only one copy of Kermit
2310    can run at a time when a Stallion Technologies multiport boards are
2311    installed. Cause, cure, and present status unknown (see [393]Section 14
2312    for more info regarding Stallion).
2313
2314    Prior to SCO OpenServer 5.0.4, the highest serial port speed supported
2315    by SCO was 38400. However, in some SCO versions (e.g. OSR5) it is
2316    possible to map rarely-used lower speeds (like 600 and 1800) to higher
2317    ones like 57600 and 115200. To find out how, go to
2318    [394]http://www.sco.com/ and search for "115200". In OSR5.0.4, serial
2319    speeds up to 921600 are supported through the POSIX interface; C-Kermit
2320    6.1.193 or later, when built for OSR5.0.4 using /bin/cc (NOT the UDK,
2321    which hides the high-speed definitions from CPP), supports these
2322    speeds, but you might be able to run this binary on earlier releases to
2323    get the high serial speeds, depending on various factors, described by
2324    Bela Lubkin of SCO:
2325
2326   Serial speeds under SCO Unix / Open Desktop / OpenServer
2327   ========================================================
2328   Third party drivers (intelligent serial boards) may provide any speeds
2329   they desire; most support up to 115.2Kbps.
2330
2331   SCO's "sio" driver, which is used to drive standard serial ports with
2332   8250/16450/16550 and similar UARTs, was limited to 38400bps in older
2333   releases.  Support for rates through 115.2Kbps was added in the
2334   following releases:
2335
2336     SCO OpenServer Release 5.0.0 (requires supplement "rs40b")
2337     SCO OpenServer Release 5.0.2 (requires supplement "rs40a" or "rs40b")
2338     SCO OpenServer Release 5.0.4 or later
2339     SCO Internet FastStart Release 1.0.0 or later
2340
2341    SCO supplements are at [395]ftp://ftp.sco.com/; the "rs40" series are
2342    under directory /Supplements/internet
2343
2344    Kermit includes the high serial speeds in all OSR5 builds, but that
2345    does not necessarily mean they work. For example, on our in-house 5.0.5
2346    system, SET SPEED 57600 or higher seems to succeed (no error occurs)
2347    but when we read the speed back the driver says it is 50. Similarly,
2348    76800 becomes 75, and 115200 becomes 110. Testing shows the resulting
2349    speed is indeed the low one we read back, not the high one we asked
2350    for. Moral: Use speeds higher than 38400 with caution on SCO OSR5.
2351
2352    Reportedly, if you have a script that makes a TCP/IP SET HOST (e.g.
2353    Telnet) connection to SCO 3.2v4.2 with TCP/IP 1.2.1, and then does the
2354    following:
2355
2356   script $ exit
2357   hangup
2358
2359    this causes a pseudoterminal (pty) to be consumed on the SCO system; if
2360    you do it enough times, it will run out of ptys. An "exit" command is
2361    being sent to the SCO shell, and a HANGUP command is executed locally,
2362    so the chances are good that both sides are trying to close the
2363    connection at once, perhaps inducing a race condition in which the
2364    remote pty is not released. It was speculated that this would be fixed
2365    by applying SLS net382e, but it did not. Meanwhile, the workaround is
2366    to insert a "pause" between the SCRIPT and HANGUP commands. (The
2367    situation with later SCO releases is not known.)
2368
2369    SCO UNIX and OpenServer allow their console and/or terminal drivers to
2370    be configured to translate character sets for you. DON'T DO THIS WHEN
2371    USING KERMIT! First of all, you don't need it -- Kermit itself already
2372    does this for you. And second, it will (a) probably ruin the formatting
2373    of your screens (depending on which emulation you are using); and (b)
2374    interfere with all sorts of other things -- legibility of non-ASCII
2375    text on the terminal screen, file transfer, etc. Use:
2376
2377   mapchan -n
2378
2379    to turn off this feature.
2380
2381    Note that there is a multitude of SCO entries in the makefile, many of
2382    them exhibiting an unusually large number of compiler options. Some
2383    people actually understand all of this. Reportedly, things are settling
2384    down with SCO OpenServer 5.x and Unixware 7 (and Open UNIX 8 and who
2385    knows what the next one will be -- Linux probably) -- the SCO UDK
2386    compiler is said to generate binaries that will run on either platform,
2387    by default, automatically. When using gcc or egcs, on the other hand,
2388    differences persist, plus issues regarding the type of binary that is
2389    generated (COFF, ELF, etc), and where and how it can run. All of this
2390    could stand further clarification by SCO experts.
2391
2392 3.6.3. Unixware
2393
2394    [ [396]Top ] [ [397]Contents ] [ [398]Section Contents ] [ [399]Next ]
2395    [ [400]Previous ]
2396
2397    Unixware changed hands several times before landing at SCO, and so has
2398    its [401]own section in this document. (Briefly: AT&T UNIX Systems
2399    Laboratories sold the rights to the UNIX name and to System V R4 (or
2400    R5?) to Novell; later Novell spun its UNIX division off into a new
2401    company called Univel, which eventually was bought by SCO, which later
2402    was bought by Caldera, which later sort of semi-spun-off SCO...)
2403
2404 3.6.4. Open UNIX 8
2405
2406    [ [402]Top ] [ [403]Contents ] [ [404]Section Contents ] [
2407    [405]Previous ]
2408
2409    SCO was bought by Caldera in 2000 or 2001 and evolved Unixware 7.1 into
2410    Caldera Open UNIX 8.00. It's just like Unixware 7.1 as far as Kermit is
2411    concerned (the Unixware 7.1 makefile target works for Open UNIX 8.00,
2412    and in fact a Unixware 7.1 Kermit binary built on Unixware 7.1 runs
2413    under OU8; a separate OU8 makefile target exists simply to generate an
2414    appropriate program startup herald). Open Unix is now defunct;
2415    subsequent releases are called UnixWare again (e.g. UnixWare 7.1.3).
2416
2417 3.7. C-KERMIT AND SOLARIS
2418
2419    [ [406]Top ] [ [407]Contents ] [ [408]Section Contents ] [ [409]Next ]
2420    [ [410]Previous ]
2421
2422    SECTION CONTENTS
2423
2424 3.7.1. [411]Serial Port Configuration
2425 3.7.2. [412]Serial Port Problems
2426 3.7.3. [413]SunLink X.25
2427 3.7.4. [414]Sun Workstation Keyboard Mapping
2428 3.7.5. [415]Solaris 2.4 and Earlier
2429
2430    REFERENCES
2431
2432      * The [416]comp.unix.solaris newsgroup
2433      * [417]http://access1.sun.com/
2434      * [418]http://docs.sun.com/
2435      * [419]http://www.sunhelp.com/
2436      * [420]http://www.wins.uva.nl/pub/solaris/solaris2/
2437      * [421]http://www.wins.uva.nl/cgi-bin/sfaq.cgi
2438      * [422]ftp://ftp.wins.uva.nl/pub/solaris
2439      * [423]http://www.science.uva.nl/pub/solaris/solaris2.html
2440
2441    And about serial communications in particular, see "Celeste's Tutorial
2442    on Solaris 2.x Modems and Terminals":
2443
2444   [424]http://www.stokely.com/
2445
2446    In particular:
2447
2448   [425]http://www.stokely.com/unix.sysadm.resources/faqs.sun.html
2449
2450    For PC-based Solaris, also see general comments on PC-based Unixes in
2451    [426]Section 3.0. Don't expect Solaris or any other kind of Unix to
2452    work right on a PC until you resolve all interrupt conflicts. Don't
2453    expect to be able to use COM3 or COM4 (or even COM2) until you have
2454    configured their addresses and interrupts.
2455
2456 3.7.1. Serial Port Configuration
2457
2458    [ [427]Top ] [ [428]Contents ] [ [429]Section Contents ] [ [430]Section
2459    Contents ] [ [431]Next ]
2460
2461    Your serial port can't be used -- or at least won't work right -- until
2462    it is enabled in Solaris. For example, you get a message like "SERIAL:
2463    Operation would block" when attempting to dial. This probably indicates
2464    that the serial port has not been enabled for use with modems. You'll
2465    need to follow the instructions in your system setup or management
2466    manual, such as (e.g.) the Desktop SPARC Sun System & Network Manager's
2467    Guide, which should contain a section "Setting up Modem Software"; read
2468    it and follow the instructions. These might (or might not) include
2469    running a program called "eeprom", editing some system configuration
2470    file (such as, for example:
2471
2472   /platform/i86pc/kernel/drv/asy.conf
2473
2474    and then doing a configuration reboot, or running some other programs
2475    like drvconfig and devlinks. "man eeprom" for details.
2476
2477    Also, on certain Sun models like IPC, the serial port hardware might
2478    need to have a jumper changed to make it an RS-232 port rather than
2479    RS-423.
2480
2481    eeprom applies only to real serial ports, not to "Spiff" devices
2482    (serial port expander), in which case setup with Solaris' admintool is
2483    required.
2484
2485    Another command you might need to use is pmadm, e.g.:
2486
2487   pmadm -d -p zsmon -s tty3
2488   pmadm -e -p zsmon -s tty3
2489
2490    You can use the following command to check if a process has the device
2491    open:
2492
2493   fuser -f /dev/term/3
2494
2495    In some cases, however (according to Sun support, May 2001) "It is
2496    still possible that a zombie process has hold of the port EVEN IF there
2497    is no lock file and the fuser command comes up empty. In that case, the
2498    only way to resolve the problem is by rebooting."
2499
2500    If you can't establish communication through a serial port to a device
2501    that is not asserting CD (Carrier Detect), try setting the environment
2502    variable "ttya-ignore-cd" to "true" (replace "ttya" with the port
2503    name).
2504
2505 3.7.2. Serial Port Problems
2506
2507    [ [432]Top ] [ [433]Contents ] [ [434]Section Contents ] [ [435]Next ]
2508    [ [436]Previous ]
2509
2510    Current advice from Sun is to always the /dev/cua/x devices for dialing
2511    out, rather than the /dev/term/x. Nevertheless, if you have trouble
2512    dialing out with one, try the other.
2513
2514    Reportedly, if you start C-Kermit and "set line" to a port that has a
2515    modem connected to it that is not turned on, and then "set flow
2516    rts/cts", there might be some (unspecified) difficulties closing the
2517    device because the CTS signal is not coming in from the modem.
2518
2519 3.7.3. SunLink X.25
2520
2521    [ [437]Top ] [ [438]Contents ] [ [439]Section Contents ] [ [440]Next ]
2522    [ [441]Previous ]
2523
2524    The built-in SunLink X.25 support for Solaris 2.3/2.4./25 and SunLink
2525    8.01 or 9.00 works OK provided the X.25 system has been installed and
2526    initialized properly. Packet sizes might need to be reduced to 256,
2527    maybe even less, depending on the configuration of the X.25
2528    installation. On one connection where C-Kermit 6.0 was tested, very
2529    large packets and window sizes could be used in one direction, but only
2530    very small ones would work in the other.
2531
2532    In any case, according to Sun, C-Kermit's X.25 support is superfluous
2533    with SunLink 8.x / Solaris 2.3. Quoting an anonymous Sun engineer:
2534
2535      ... there is now no need to include any X.25 code within kermit. As
2536      of X.25 8.0.1 we support the use of kermit, uucp and similar
2537      protocols over devices of type /dev/xty. This facility was there in
2538      8.0, and should also work on the 8.0 release if patch 101524 is
2539      applied, but I'm not 100% sure it will work in all cases, which is
2540      why we only claim support from 8.0.1 onwards.
2541
2542      When configuring X.25, on the "Advanced Configuration->Parameters"
2543      screen of the x25tool you can select a number of XTY devices. If you
2544      set this to be > 1, press Apply, and reboot, you will get a number
2545      of /dev/xty entries created.
2546
2547      Ignore /dev/xty0, it is a special case. All the others can be used
2548      exactly as if they were a serial line (e.g. /dev/tty) connected to a
2549      modem, except that instead of using Hayes-style commands, you use
2550      PAD commands.
2551
2552      From kermit you can do a 'set line' command to, say, /dev/xty1, then
2553      set your dialing command to be "CALL 12345678", etc. All the usual
2554      PAD commands will work (SET, PAR, etc).
2555
2556      I know of one customer in Australia who is successfully using this,
2557      with kermit scripts, to manage some X.25-connected switches. He used
2558      standard kermit, compiled for Solaris 2, with X.25 8.0 xty devices.
2559
2560 3.7.4. Sun Workstation Keyboard Mapping
2561
2562    [ [442]Top ] [ [443]Contents ] [ [444]Section Contents ] [ [445]Next ]
2563    [ [446]Previous ]
2564
2565    Hints for using a Sun workstation keyboard for VT emulation when
2566    accessing VMS, from the [447]comp.os.vms newsgroup:
2567
2568      From: Jerry Leichter <leichter@smarts.com>
2569      Newsgroups: comp.os.vms
2570      Subject: Re: VT100 keyboard mapping to Sun X server
2571      Date: Mon, 19 Aug 1996 12:44:21 -0400
2572
2573      > I am stuck right now using a Sun keyboard (type 5) on systems
2574      running SunOS
2575      > and Solaris. I would like to use EVE on an OpenVMS box with
2576      display back to
2577      > the Sun. Does anyone know of a keyboard mapping (or some other
2578      procedure)
2579      > which will allow the Sun keyboard to approximate a VT100/VT220?
2580
2581      You can't get it exactly - because the keypad has one fewer key -
2582      but you can come pretty close. Here's a set of keydefs I use:
2583
2584   keycode 101=KP_0
2585   keycode 119=KP_1
2586   keycode 120=KP_2
2587   keycode 121=KP_3
2588   keycode 98=KP_4
2589   keycode 99=KP_5
2590   keycode 100=KP_6
2591   keycode 75=KP_7
2592   keycode 76=KP_8
2593   keycode 77=KP_9
2594   keycode 52=KP_F1
2595   keycode 53=KP_F2
2596   keycode 54=KP_F3
2597   keycode 57=KP_Decimal
2598   keycode 28=Left
2599   keycode 29=Right
2600   keycode 30=KP_Separator
2601   keycode 105=KP_F4
2602   keycode 78=KP_Subtract
2603   keycode 8=Left
2604   keycode 10=Right
2605   keycode 32=Up
2606   keycode 33=Down
2607   keycode 97=KP_Enter
2608
2609      Put this in a file - I use "keydefs" in my home directory and feed
2610      it into xmodmap:
2611
2612   xmodmap - <$HOME/keydefs
2613
2614      This takes care of the arrow keys and the "calculator" key cluster.
2615      The "+" key will play the role of the DEC "," key. The Sun "-" key
2616      will be like the DEC "-" key, though it's in a physically different
2617      position - where the DEC PF4 key is. The PF4 key is ... damn, I'm
2618      not sure where "key 105" is. I *think* it may be on the leftmost key
2619      of the group of four just above the "calculator" key cluster.
2620
2621      I also execute the following (this is all in my xinitrc file):
2622
2623   xmodmap -e 'keysym KP_Decimal = KP_Decimal'
2624   xmodmap -e 'keysym BackSpace = Delete BackSpace' \
2625           -e 'keysym Delete = BackSpace Delete'
2626   xmodmap -e 'keysym KP_Decimal = Delete Delete KP_Decimal'
2627   xmodmap -e 'add mod1 = Meta_R'
2628   xmodmap -e 'add mod1 = Meta_L'
2629
2630      Beware of one thing about xmodmap: Keymap changes are applied to the
2631      *whole workstation*, not just to individual windows. There is, in
2632      fact, no way I know of to apply them to individual windows. These
2633      definitions *may* confuse some Unix programs (and/or some Unix
2634      users).
2635
2636      If you're using Motif, you may also need to apply bindings at the
2637      Motif level. If just using xmodmap doesn't work, I can try and dig
2638      that stuff up for you.
2639
2640 3.7.5. Solaris PPP Connections
2641
2642    [ [448]Top ] [ [449]Contents ] [ [450]Section Contents ] [ [451]Next ]
2643    [ [452]Previous ]
2644
2645    The following is a report from a user of C-Kermit 8.0 on Solaris 8 and
2646    9, who had complained that while Kermit file transfers worked perfectly
2647    on direct (non-PPP) dialout connections, they failed miserably on PPP
2648    connections. We suggested that the PPP dialer probably was not setting
2649    the port and/or modem up in the same way that Kermit did:
2650
2651      I want to get back on this and tell you what the resolution was. You
2652      pointed me in the direction of flow control, which turned out to be
2653      the key.
2654
2655      Some discussion on the comp.unix.solaris newsgroup led to some
2656      comments from Greg Andrews about the need to use the uucp driver to
2657      talk to the modem (/dev/cua/a). I had to remind Greg that no matter
2658      what the manpages for the zs and se drivers say, the ppp that Sun
2659      released with Solaris 8 7/01, and has in Solaris 9, is a setuid root
2660      program, and simply trying to make a pppd call from user space
2661      specifying /dev/cua/a would fail because of permissions. Greg
2662      finally put the question to the ppp people, who came back with
2663      information that is not laid out anywhere in the docs available for
2664      Solaris users. Namely, put /dev/cua/a in one of the privileged
2665      options files in the /etc/ppp directory. That, plus resetting the
2666      OBP ttya-ignore-cd flag (this is Sun hardware) to false, seems to
2667      have solved the problems.
2668
2669      While I note that I had installed Kermit suid to uucp to use
2670      /dev/cua/a on this particular box, it seems to run fine through
2671      /dev/term/a. Not so with pppd.
2672
2673      With this change in place, I seem to be able to upload and download
2674      through telnet run on Kermit with the maximum length packets. I note
2675      that the window allocation display does show STREAMING, using
2676      telnet. Running ssh on Kermit, I see the standard 1 of 30 windows
2677      display, and note that there appears to be a buffer length limit
2678      between 1000 and 2000 bytes. Run with 1000, and it's tick-tock,
2679      solid as a rock. With 2000 I see timeout errors and RTS/CTS action
2680      on the modem.
2681
2682    Kermit's packet-length and other controls let you make adjustments like
2683    this to get around whatever obstacles might be thrown up -- in this
2684    case (running Kermit over ssh), the underling Solaris PTY driver.
2685
2686 3.7.6. Solaris 2.4 and Earlier
2687
2688    [ [453]Top ] [ [454]Contents ] [ [455]Section Contents ] [
2689    [456]Previous ]
2690
2691    C-Kermit can't be compiled successfully under Solaris 2.3 using
2692    SUNWspro cc 2.0.1 unless at least some of the following patches are
2693    applied to cc (it is not known which one(s), if any, fix the problem):
2694
2695      * 100935-01 SparcCompiler C 2.0.1: bad code generated when addresses
2696        of two double arguments are involved
2697      * 100961-05 SPARCcompilers C 2.0.1: conditional expression with
2698        function returning structure gives wrong value
2699      * 100974-01 SparcWorks 2.0.1: dbx jumbo patch
2700      * 101424-01 SPARCworks 2.0.1 maketool SEGV's instantly on Solaris 2.3
2701
2702    With unpatched cc 2.0.1, the symptom is that certain modules generate
2703    truncated object files, resulting in many unresolved references at link
2704    time.
2705
2706      The rest of the problems in this section have to do with
2707      bidirectional terminal ports and the Solaris Port Monitor. A bug in
2708      C-Kermit 5A ticked a bug in Solaris. The C-Kermit bug was fixed in
2709      version 6.0, and the Solaris bug was fixed in 2.4 (I think, or maybe
2710      2.5).
2711
2712    Reportedly, "C-Kermit ... causes a SPARCstation running Solaris 2.3 to
2713    panic after the modem connects. I have tried compiling C-Kermit with
2714    Sun's unbundled C compiler, with GCC Versions 2.4.5 and 2.5.3, with
2715    make targets 'sunos51', 'sunos51tcp', 'sunos51gcc', and even 'sys5r4',
2716    and each time it compiles and starts up cleanly, but without fail, as
2717    soon as I dial the number and get a 'CONNECT' message from the modem, I
2718    get:
2719
2720   BAD TRAP
2721   kermit: Data fault
2722   kernel read fault at addr=0x45c, pme=0x0
2723   Sync Error Reg 80 <INVALID>
2724   ...
2725   panic: Data Fault.
2726   ...
2727   Rebooting...
2728
2729    The same modem works fine for UUCP/tip calling." Also (reportedly),
2730    this only happens if the dialout port is configured as in/out via
2731    admintool. If it is configured as out-only, no problem. This is the
2732    same dialing code that works on hundreds of other System-V based Unix
2733    OS's. Since it should be impossible for a user program to crash the
2734    operating system, this problem must be chalked up to a Solaris bug.
2735    Even if you SET CARRIER OFF, CONNECT, and dial manually by typing
2736    ATDTnnnnnnn, the system panics as soon as the modem issues its CONNECT
2737    message. (Clearly, when you are dialing manually, C-Kermit does not
2738    know a thing about the CONNECT message, and so the panic is almost
2739    certainly caused by the transition of the Carrier Detect (CD) line from
2740    off to on.) This problem was reported by many users, all of whom say
2741    that C-Kermit worked fine on Solaris 2.1 and 2.2. If the speculation
2742    about CD is true, then a possible workaround might be to configure the
2743    modem to leave CD on (or off) all the time. Perhaps by the time you
2744    read this, a patch will have been issued for Solaris 2.3.
2745
2746    The following is from Karl S. Marsh, Systems & Networks Administrator,
2747    AMBIX Systems Corp, Rochester, NY:
2748
2749      Environment: Solaris 2.3 Patch 101318-45 C-Kermit 5A(189) (and
2750      presumably this applies to 188 and 190 also). eeprom setting:
2751
2752   ttya-rts-dtr-off=false
2753   ttya-ignore-cd=false
2754   ttya-mode=19200,8,n,8,-
2755
2756      To use C-Kermit on a bidirectional port in this environment, do not
2757      use admintool to configure the port. Use admintool to delete any
2758      services running on the port and then quit admintool and issue the
2759      following command:
2760
2761   pmadm -a -p zsmon -s ttyb -i root -fu -v 1 -m "`ttyadm -b -d /dev/term/b \
2762   -l conttyH -m ldterm,ttcompat -s /usr/bin/login -S n`"
2763
2764      [NOTE: This was copied from a blurry fax, so please check it
2765      carefully] where:
2766
2767   -a = Add service
2768   -p = pmtag (zsmon)
2769   -s = service tag (ttyb)
2770   -i = id to be associated with service tag (root)
2771   -fu = create utmp entry
2772   -v = version of ttyadm
2773   -m = port monitor-specific portion of the port monitor administrative file
2774        entry for the service
2775   -b = set up port for bidirectional use
2776   -d = full path name of device
2777   -l = which ttylabel in the /etc/ttydefs file to use
2778   -m = a list of pushable STREAMS modules
2779   -s = pathname of service to be invoked when connection request received
2780   -S = software carrier detect on or off (n = off)
2781
2782      "This is exactly how I was able to get Kermit to work on a
2783      bi-directional port without crashing the system."
2784
2785    On the Solaris problem, also see SunSolve Bug ID 1150457 ("Using
2786    C-Kermit, get Bad Trap on receiving prompt from remote system").
2787    Another user reported "So, I have communicated with the Sun tech
2788    support person that submitted this bug report [1150457]. Apparently,
2789    this bug was fixed under one of the jumbo kernel patches. It would seem
2790    that the fix did not live on into 101318-45, as this is EXACTLY the
2791    error that I see when I attempt to use kermit on my system."
2792
2793    Later (Aug 94)... C-Kermit dialout successfully tested on a Sun4m with
2794    a heavily patched Solaris 2.3. The patches most likely to have been
2795    relevant:
2796
2797      * 101318-50: SunOS 5.3: Jumbo patch for kernel (includes libc, lockd)
2798      * 101720-01: SunOS 5.3: ttymon - prompt not always visible on a modem
2799        connection
2800      * 101815-01: SunOS 5.3: Data fault in put() NULL queue passed from
2801        ttycommon_qfull()
2802      * 101328-01: SunOS 5.3: Automation script to properly setup tty ports
2803        prior to PCTS execution
2804
2805    Still later (Nov 94): another user (Bo Kullmar in Sweden) reports that
2806    after using C-Kermit to dial out on a bidirectional port, the port
2807    might not answer subsequent incoming calls, and says "the problem is
2808    easy enough to fix with the Serial Port Manager; I just delete the
2809    service and install it again using the graphical interface, which
2810    underneath uses commands like sacadm and pmadm." Later Bo reports, "I
2811    have found that if I run Kermit with the following script then it
2812    works. This script is for /dev/cua/a, "-s a" is the last a in
2813    /dev/cua/a:
2814
2815   #! /bin/sh
2816   kermit
2817   sleep 2
2818   surun pmadm -e -p zsmon -s a
2819
2820 3.8. C-KERMIT AND SUNOS
2821
2822    [ [457]Top ] [ [458]Contents ] [ [459]Section Contents ] [ [460]Next ]
2823    [ [461]Previous ]
2824
2825    For additional information, see "Celeste's Tutorial on SunOS 4.1.3+
2826    Modems and Terminals":
2827
2828   [462]http://www.stokely.com/
2829
2830    For FAQs, etc, from Sun, see:
2831      * [463]http://access1.sun.com/
2832
2833    For history of Sun models and SunOS versions, see (should be all the
2834    same):
2835      * [464]http://www.ludd.luth.se/~bear/project/sun/sun.hardware.txt
2836      * [465]ftp://ftp.netcom.com/pub/ru/rubicon/sun.hdwr.ref
2837      * [466]ftp://ftp.intnet.net/pub/SUN/Sun-Hardware-Ref
2838
2839    Sun SPARCstation users should read the section "Setting up Modem
2840    Software" in the Desktop SPARC Sun System & Network Manager's Guide. If
2841    you don't set up your serial ports correctly, Kermit (and other
2842    communications software) won't work right.
2843
2844    Also, on certain Sun models like IPC, the serial port hardware might
2845    need to have a jumper changed to make it an RS-232 port rather than
2846    RS-423.
2847
2848    Reportedly, C-Kermit does not work correctly on a Sun SPARCstation in
2849    an Open Windows window with scrolling enabled. Disable scrolling, or
2850    else invoke Kermit in a terminal emulation window (xterm, crttool,
2851    vttool) under SunView (this might be fixed in later SunOS releases).
2852
2853    On the Sun with Open Windows, an additional symptom has been reported:
2854    outbound SunLink X.25 connections "magically" translate CR typed at the
2855    keyboard into LF before transmission to the remote host. This doesn't
2856    happen under SunView.
2857
2858    SET CARRIER ON, when used on the SunOS 4.1 version of C-Kermit
2859    (compiled in the BSD universe), causes the program to hang
2860    uninterruptibly when SET LINE is issued for a device that is not
2861    asserting carrier. When Kermit is built in the Sys V universe on the
2862    same computer, there is no problem (it can be interrupted with Ctrl-C).
2863    This is apparently a limitation of the BSD-style tty driver.
2864
2865    SunOS 4.1 C-Kermit has been observed to dump core when running a
2866    complicated script program under cron. The dump invariably occurs in
2867    ttoc(), while trying to output a character to a TCP/IP TELNET
2868    connection. ttoc() contains a write() call, and when the system or the
2869    network is very busy, the write() call can get stuck for long periods
2870    of time. To break out of deadlocks caused by stuck write() calls, there
2871    is an alarm around the write(). It is possible that the core dump
2872    occurs when this alarm signal is caught. (This one has not been
2873    observed recently -- possibly fixed in edit 190.)
2874
2875    On Sun computers with SunOS 4.0 or 4.1, SET FLOW RTS/CTS works only if
2876    the carrier signal is present from the communication device at the time
2877    when C-Kermit enters packet mode or CONNECT mode. If carrier is not
2878    sensed (e.g. when dialing), C-Kermit does not attempt to turn on
2879    RTS/CTS flow control. This is because the SunOS serial device driver
2880    does not allow characters to be output if RTS/CTS is set (CRTSCTS) but
2881    carrier (and DSR) are not present. Workaround (maybe): SET CARRIER OFF
2882    before giving the SET LINE command, establish the connection, then SET
2883    FLOW RTS/CTS
2884
2885    It has also been reported that RTS/CTS flow control under SunOS 4.1
2886    through 4.1.3 works only on INPUT, not on output, and that there is a
2887    patch from Sun to correct this problem: Patch-ID# T100513-04, 20 July
2888    1993 (this patch might apply only to SunOS 4.1.3). It might also be
2889    necessary to configure the eeprom parameters of the serial port; e.g.
2890    do the following as root at the shell prompt:
2891
2892   eeprom  ttya-ignore-cd=false
2893   eeprom  ttya-rts-dtr-off=true
2894
2895    There have been reports of file transfer failures on Sun-3 systems when
2896    using long packets and/or large window sizes. One user says that when
2897    this happens, the console issues many copies of this message:
2898
2899   chaos vmunix: zs1: ring buffer overflow
2900
2901    This means that SunOS is not scheduling Kermit frequently enough to
2902    service interrupts from the zs serial device (Zilog 8350 SCC serial
2903    communication port) before its input silo overflows. Workaround: use
2904    smaller packets and/or a smaller window size, or use "nice" to increase
2905    Kermit's priority. Use hardware flow control if available, or remove
2906    other active processes before running Kermit.
2907
2908    SunLink X.25 support in C-Kermit 5A(190) was built and tested
2909    successfully under SunOS 4.1.3b and SunLink X.25 7.00.
2910
2911 3.9. C-KERMIT AND ULTRIX
2912
2913    [ [467]Top ] [ [468]Contents ] [ [469]Section Contents ] [ [470]Next ]
2914    [ [471]Previous ]
2915
2916    See also: The [472]comp.unix.ultrix and [473]comp.sys.dec newsgroups.
2917
2918    There is no hardware flow control in Ultrix. That's not a Kermit
2919    deficiency, but an Ultrix one.
2920
2921    When sending files to C-Kermit on a Telnet connection to a remote
2922    Ultrix system, you must SET PREFIXING ALL (or at least prefix more
2923    control characters than are selected by SET PREFIXING CAUTIOUS).
2924
2925    Reportedly, DEC ULTRIX 4.3 is immune to C-Kermit's disabling of
2926    SIGQUIT, which is the signal that is generated when the user types
2927    Ctrl-\, which kills the current process (i.e. C-Kermit) and dumps core.
2928    Diagnosis and cure unknown. Workaround: before starting C-Kermit -- or
2929    for that matter, when you first log in because this applies to all
2930    processes, not just Kermit -- give the following Unix command:
2931
2932   stty quit undef
2933
2934    Certain operations driven by RS-232 modem signal do not work on
2935    DECstations or other DEC platforms whose serial interfaces use MMP
2936    connectors (DEC version of RJ45 telephone jack with offset tab). These
2937    connectors convey only the DSR and DTR modem signals, but not carrier
2938    (CD), RTS, CTS, or RI. Use SET CARRIER OFF to enable communication, or
2939    "hotwire" DSR to CD.
2940
2941    The maximum serial speed on the DECstation 5000 is normally 19200, but
2942    various tricks are available (outside Kermit) to enable higher rates.
2943    For example, on the 5000/200, 19200 can be remapped (somehow, something
2944    to do with "a bit in the SIR", whatever that is) to 38400, but in
2945    software you must still refer to this speed as 19200; you can't have
2946    19200 and 38400 available at the same time.
2947
2948    19200, reportedly, is also the highest speed supported by Ultrix, but
2949    NetBSD reportedly supports speeds up to 57600 on the DECstation,
2950    although whether and how well this works is another question.
2951
2952    In any case, given the lack of hardware flow control in Ultrix, high
2953    serial speeds are problematic at best.
2954
2955 3.10. C-KERMIT AND UNIXWARE
2956
2957    [ [474]Top ] [ [475]Contents ] [ [476]Section Contents ] [ [477]Next ]
2958    [ [478]Previous ]
2959
2960    See also:
2961      * The Freebird Project (Unixware software repository)
2962        [479]http://www.freebird.org/
2963      * The UnixWare FAQ: [480]http://www.freebird.org/faq/
2964      * The following newsgroups:
2965           + [481]comp.unix.unixware.misc
2966           + [482]comp.unix.sco.misc.
2967
2968    Also see general comments on PC-based Unixes in [483]Section 3.0. By
2969    the way, this section is separate from the SCO (Caldera) section
2970    because at the time this section was started, Unixware was owned by a
2971    company called Univel. Later it was sold to Novell, and then to SCO.
2972    Still later, SCO was sold to Caldera.
2973
2974    In Unixware 2.0 and later, the preferred serial device names (drivers)
2975    are /dev/term/00 (etc), rather than /dev/tty00 (etc). Note the
2976    following correspondence of device names and driver characteristics:
2977
2978   New name       Old name     Description
2979   /dev/term/00   /dev/tty00   ???
2980   /dev/term/00h  /dev/tty00h  Modem signals and hardware flow control
2981   /dev/term/00m  /dev/tty00m  Modem signals(?)
2982   /dev/term/00s  /dev/tty00s  Modem signals and software flow control
2983   /dev/term/00t  /dev/tty00t  ???
2984
2985    Lockfile names use device.major.minor numbers, e.g.:
2986
2987   /var/spool/locks/LK.7679.003.005
2988
2989    The minor number varies according to the device name suffix (none, h,
2990    m, s, or t). Only the device and major number are compared, and thus
2991    all of the different names for the same physical device (e.g. all of
2992    those shown in the table above) interlock effectively.
2993
2994    Prior to UnixWare 7, serial speeds higher than 38400 are not supported.
2995    In UnixWare 7, we also support 57600 and 115200, plus some unexpected
2996    ones like 14400, 28800, and 76800, by virtue of a strange new
2997    interface, evidently peculiar to UnixWare 7, discovered while digging
2998    through the header files: tcsetspeed(). Access to this interface is
2999    allowed only in POSIX builds, and thus the UnixWare 7 version of
3000    C-Kermit is POSIX-based, unlike C-Kermit for Unixware 1.x and 2.x
3001    (since the earlier UnixWare versions did not support high serial
3002    speeds, period).
3003
3004    HOWEVER, turning on POSIX features engages all of the "#if
3005    (!_POSIX_SOURCE)" clauses in the UnixWare header files, which in turn
3006    prevent us from having modem signals, access to the hardware flow
3007    control APIs, select(), etc -- in short, all the other things we need
3008    in communications software, especially when high speeds are used. Oh
3009    the irony. And so C-Kermit must be shamelessly butchered -- as it has
3010    been so many times before -- to allow us to have the needed features
3011    from the POSIX and non-POSIX worlds. See the UNIXWAREPOSIX sections of
3012    [484]ckutio.c.
3013
3014    After the butchery, we wind up with Unixware 2.x having full
3015    modem-signal capability, but politically-correct Unixware 7.x lacking
3016    the ability to automatically detect a broken connection when carrier
3017    drops.
3018
3019    Meanwhile the Unixware tcsetspeed() function allows any number at all
3020    (any long, 0 or positive) as an argument and succeeds if the number is
3021    a legal bit rate for the serial device, and fails otherwise. There is
3022    no list anywhere of legal speeds. Thus the SET SPEED keyword table
3023    ("set speed ?" to see it) is hardwired based on trial and error with
3024    all known serial speeds, the maximum being 115200. However, to allow
3025    for the possibility that other speeds might be allowed in the future
3026    (or with different port drivers), the SET SPEED command for UnixWare 7
3027    only allows you to specify any number at all; a warning is printed if
3028    the number is not in the list, but the number is accepted anyway; the
3029    command succeeds if tcsetspeed() accepts the number, and fails
3030    otherwise.
3031
3032    In C-Kermit 8.0 testing, it was noticed that the POSIX method for
3033    hanging up the phone by dropping DTR (set speed 0, pause, restore
3034    speed) did not actually drop DTR. The APIs do not return any error
3035    indication, but nothing happens. I changed tthang() to skip the special
3036    case I had made for Unixware and instead follow the normal path: if
3037    TIOCSDTR is defined use that, otherwise blah blah... It turns out
3038    TIOCSDTR *is* defined, and it works.
3039
3040    So in Unixware (at least in 2.1.3) we can read modem signals, hangup by
3041    toggling DTR, and so on, BUT... But once the remote hangs up and
3042    Carrier drops, the API for reading modem signals ceases to function;
3043    although the device is still open, the TIOCMGET ioctl always raises
3044    errno 6 = ENXIO, "No such device or address".
3045
3046    Old business:
3047
3048    Using C-Kermit 6.0 on the UnixWare 1.1 Application Server, one user
3049    reported a system panic when the following script program is executed:
3050
3051   set line /dev/tty4
3052   set speed 9600
3053   output \13
3054   connect
3055
3056    The panic does not happen if a PAUSE is inserted:
3057
3058   set line /dev/tty4
3059   set speed 9600
3060   pause 1
3061   output \13
3062   connect
3063
3064    This is using a Stallion EasyIO card installed as board 0 on IRQ 12 on
3065    a Gateway 386 with the Stallion-supplied driver. The problem was
3066    reported to Novell and Stallion and (reportedly) is now fixed.
3067
3068 3.11. C-KERMIT AND APOLLO SR10
3069
3070    [ [485]Top ] [ [486]Contents ] [ [487]Section Contents ] [ [488]Next ]
3071    [ [489]Previous ]
3072
3073    Reportedly, version 5A(190), when built under Apollo SR10 using "make
3074    sr10-bsd", compiles, links, and executes OK, but leaves the terminal
3075    unusable after it exits -- the "cs7" or "cs8" (character size)
3076    parameter has become cs5. The terminal must be reset from another
3077    terminal. Cause and cure unknown. Suggested workaround: Wrap Kermit in
3078    a shell script something like:
3079
3080   kermit @*
3081   stty sane
3082
3083 3.12. C-KERMIT AND TANDY XENIX 3.0
3084
3085    [ [490]Top ] [ [491]Contents ] [ [492]Section Contents ] [ [493]Next ]
3086    [ [494]Previous ]
3087
3088    C-Kermit 7.0 was too big to be built on Tandy Xenix, even in a minimum
3089    configuration; version 6.0 is the last one that fits.
3090
3091    Reportedly, in C-Kermit 6.0, if you type lots of Ctrl-C's during
3092    execution of the initialization file, ghost Kermit processes will be
3093    created, and will compete for the keyboard. They can only be removed
3094    via "kill -9" from another terminal, or by rebooting. Diagnosis --
3095    something strange happening with the SIGINT handler while the process
3096    is reading the directory (it seems to occur during the SET PROMPT
3097    [\v(dir)] ... sequence). Cure: unknown. Workaround: don't interrupt
3098    C-Kermit while it is executing its init file on the Tandy 16/6000.
3099
3100 3.13. C-KERMIT AND OSF/1 (DIGITAL UNIX) (TRU64 UNIX)
3101
3102    [ [495]Top ] [ [496]Contents ] [ [497]Section Contents ] [ [498]Next ]
3103    [ [499]Previous ]
3104
3105    While putting together and testing C-Kermit 8.0, it was discovered that
3106    binaries built for one version of Tru64 Unix (e.g. 4.0G) might exhibit
3107    very strange behavior if run on a different version of Tru64 Unix (e.g.
3108    5.1A). The typical symptom was that a section of the initialization
3109    file would be skipped, notably locating the dialing and/or network
3110    directory as well as finding and executing the customization file,
3111    ~/.mykermrc. This problem also is reported to occur on Tru64 Unix 5.0
3112    (Rev 732) even when running a C-Kermit binary that was built there.
3113    However, the Tru64 5.1A binary works correctly on 5.0. Go figure.
3114
3115    When making Telnet connections to a Digital Unix or Tru64 system, and
3116    your Telnet client forwards your user name, the Telnet server evidently
3117    stuffs the username into login's standard input, and you see:
3118
3119   login: ivan
3120   Password:
3121
3122    This is clearly going to play havoc with scripts that look for
3123    "login:". Workaround (when Kermit is your Telnet client): SET LOGIN
3124    USER to nothing, to prevent Kermit from sending your user ID.
3125
3126    Before you can use a serial port on a new Digital Unix system, you must
3127    run uucpsetup to enable or configure the port. Evidently the /dev/tty00
3128    and 01 devices that appear in the configuration are not usable;
3129    uucpsetup turns them into /dev/ttyd00 and 01, which are. Note that
3130    uucpsetup and other uucp-family programs are quite primitive -- they
3131    only know about speeds up to 9600 bps and their selection of modems
3132    dates from the early 1980s. None of this affects Kermit, though -- with
3133    C-Kermit, you can use speeds up to 115200 bps (at least in DU4.0 and
3134    later) and modern modems with hardware flow control and all the rest.
3135
3136    Reportedly, if a modem is set for &S0 (assert DSR at all times), the
3137    system resets or drops DTR every 30 seconds; reportedly DEC says to set
3138    &S1.
3139
3140    Digital Unix 3.2 evidently wants to believe your terminal is one line
3141    longer than you say it is, e.g. when a "more" or "man" command is
3142    given. This is has nothing to do with C-Kermit, but tends to annoy
3143    those who use Kermit or other terminal emulators to access Digital Unix
3144    systems. Workaround: tell Unix to "stty rows 23" (or whatever).
3145
3146    Reportedly, there is some bizarre behavior when trying to use a version
3147    of C-Kermit built on one Digital Unix 4.0 system on another one,
3148    possibly due to differing OS or library revision levels; for example,
3149    the inability to connect to certain TCP/IP hosts. Solution: rebuild
3150    C-Kermit from source code on the system where you will be using it.
3151
3152    Digital Unix tgetstr() causes a segmentation fault. C-Kermit 7.0 added
3153    #ifdefs to avoid calling this routine in Digital Unix. As a result, the
3154    SCREEN commands always send ANSI escape sequences -- even though curses
3155    knows your actual terminal type.
3156
3157    Reportedly the Tru64 Unix 4.0E 1091 Telnet server does not tolerate
3158    streaming transfers into itself, at least not when the sending Kermit
3159    is on the same local network. Solution: tell one Kermit or the other
3160    (or both) to "set streaming off". This might or might be the case with
3161    earlier and/or later Tru64, Digital Unix, and OSF/1 releases.
3162
3163 3.14. C-KERMIT AND SGI IRIX
3164
3165    [ [500]Top ] [ [501]Contents ] [ [502]Section Contents ] [ [503]Next ]
3166    [ [504]Previous ]
3167
3168    See also:
3169      * The [505]comp.sys.sgi.misc and [506]comp.sys.sgi.admin newsgroups.
3170        [507]The SGI website
3171      * The SGI FAQ:
3172           + [508]http://www-viz.tamu.edu/~sgi-faq/
3173           + [509]ftp://viz.tamu.edu/pub/sgi/faq/
3174
3175    About IRIX version numbers: "uname -a" tells the "two-digit" version
3176    number, such as "5.3" or "6.5". The three-digit form can be seen with
3177    "uname -R". (this information is unavailable at the simple API level).
3178    Supposedly all three-digit versions within the same two-digit version
3179    (e.g. 6.5.2, 6.5.3) are binary compatible; i.e. a binary built on any
3180    one of them should run on all others. The "m" suffix denotes just
3181    patches; the "f" suffix indicates that features were added.
3182
3183    An IRIX binary built on lower MIPS model (Instruction Set Architecture,
3184    ISA) can run on higher models, but not vice versa:
3185
3186      MIPS1 R3000 and below
3187      MIPS2 R4000
3188      MIPS3 R4x00
3189      MIPS4 R5000 and above
3190
3191    Furthermore, there are different Application Binary Interfaces (ABIs):
3192
3193      COFF    32 bits, IRIX 5.3, 5.2, 5.1, 4.x and below
3194      o32 ELF 32 bits, IRIX 5.3, 6.0 - 6.5
3195      N32 ELF 32 bits, IRIX 6.2 - 6.5
3196      N64 ELF 64 bits, IRIX 6.2 - 6.5
3197
3198    Thus a prebuilt IRIX binary works on a particular machine only if (a)
3199    the machine's IRIX version (to one decimal place) is equal to or
3200    greater than the version under which the binary was built; (b) the
3201    machine's MIPS level is greater or equal to that of the binary; and (c)
3202    the machine supports the ABI of the binary. If all three conditions are
3203    not satisfied, of course, you can build a binary yourself from source
3204    code since, unlike some other Unix vendors, SGI does supply a C
3205    compiler and libraries.
3206
3207    SGI did not supply an API for hardware flow control prior to IRIX 5.2.
3208    C-Kermit 6.1 and higher for IRIX 5.2 and higher supports hardware flow
3209    control in the normal way, via "set flow rts/cts".
3210
3211    For hardware flow control on earlier IRIX and/or C-Kermit versions, use
3212    the ttyf* (modem control AND hardware flow control) devices and not the
3213    ttyd* (direct) or ttym* (modem control but no hardware flow control)
3214    ones, and obtain the proper "hardware handshaking" cable from SGI,
3215    which is incompatible with the ones for the Macintosh and NeXT even
3216    though they look the same ("man serial" for further info) and tell
3217    Kermit to "set flow keep" and "set modem flow rts/cts".
3218
3219    Serial speeds higher than 38400 are available in IRIX 6.2 and later, on
3220    O-class machines (e.g. Origin, Octane) only, and are supported by
3221    C-Kermit 7.0 and later. Commands such as "set speed 115200" may be
3222    given on other models (e.g. Iris, Indy, Indigo) but will fail because
3223    the OS reports an invalid speed for the device.
3224
3225    Experimentation with both IRIX 5.3 and 6.2 shows that when logged in to
3226    IRIX via Telnet, that remote-mode C-Kermit can't send files if the
3227    packet length is greater than 4096; the Telnet server evidently has
3228    this restriction (or bug), since there is no problem sending long
3229    packets on serial or rlogin connections. However, it can receive files
3230    with no problem if the packet length is greater than 4096. As a
3231    workaround, the FAST macro for IRIX includes "set send packet-length
3232    4000". IRIX 6.5.1 does not have this problem, so evidently it was fixed
3233    some time after IRIX 6.2. Tests show file-transfer speeds are better
3234    (not worse) with 8K packets than with 4K packets from IRIX 6.5.1.
3235
3236    Reportedly some Indys have bad serial port hardware. IRIX 5.2, for
3237    example, needs patch 151 to work around this; or upgrade to a later
3238    release. Similarly, IRIX 5.2 has several problems with serial i/o, flow
3239    control, etc. Again, patch or upgrade.
3240
3241    Reportedly on machines with IRIX 4.0, Kermit cannot be suspended by
3242    typing the suspend ("swtch") character if it was started from csh, even
3243    though other programs can be suspended this way, and even though the Z
3244    and SUSPEND commands still work correctly. This is evidently because
3245    IRIX's csh does not deliver the SIGTSTP signal to Kermit. The reason
3246    other programs can be suspended in the same environment is probably
3247    that they do not trap SIGTSTP themselves, so the shell is doing the
3248    suspending rather than the application.
3249
3250    Also see notes about IRIX 3.x in the [510]C-Kermit for Unix
3251    Installation Instructions.
3252
3253    If you have problems making TCP/IP connections in versions of IRIX
3254    built with GCC 2.95.2, see the bugs section of:
3255
3256   [511]http://freeware.sgi.com/Installable/gcc-2.95.2.html.
3257
3258    Reportedly, if you allow gcc to compile C-Kermit on Irix you should be
3259    aware that there might be problems with some of the network code. The
3260    specifics are at
3261    [512]http://freeware.sgi.com/Installable/gcc-2.95.2.html; scroll down
3262    to the "known bugs" section at the end of the document.
3263
3264 3.15. C-KERMIT AND THE BEBOX
3265
3266    [ [513]Top ] [ [514]Contents ] [ [515]Section Contents ] [ [516]Next ]
3267    [ [517]Previous ]
3268
3269    See also: The [518]comp.sys.be newsgroup.
3270
3271    The BeBox has been discontinued and BeOS repositioned for PC platforms.
3272    The POSIX parts of BeOS are not finished, nor is the sockets library,
3273    therefore a fully functional version of C-Kermit is not possible. In
3274    version 6.0 of C-Kermit, written for BeOS DR7, it was possible to:
3275
3276      * set line /dev/serial2 (and probably the other serial ports)
3277      * set speed 115200 (and at least some of the lower baud rates)
3278      * connect
3279      * set modem type hayes (and likely others, too)
3280      * dial phone-number
3281      * set send packet-length 2048 (other lengths for both send and
3282        receive)
3283      * set receive packet length 2048
3284      * set file type binary (text mode works, too) (with remote kermit
3285        session in server mode)
3286      * put bedrop.jpg
3287      * get bedrop.jpg
3288      * get bedrop.jpg bedrop.jpg2
3289      * finish, bye
3290
3291    The following do not work:
3292      * kermit does not detect modem hangup
3293      * !/RUN/PUSH [commandline command]
3294      * Running kermit in remote mode
3295      * Using other protocols (x/y/zmodem)
3296      * TCP networking interface (Be's TCP/IP API has a ways to go, still)
3297
3298    C-Kermit does not work on BeOS DR8 because of changes in the underlying
3299    APIs. Unfortunately not enough changes were made to allow the regular
3300    POSIX-based C-Kermit to work either. Note: the lack of a fork() service
3301    requires the select()-based CONNECT module, but there is no select().
3302    There is a select() in DR8, but it doesn't work.
3303
3304    C-Kermit 7.0 was built for BeOS 4.5 and works in remote mode. It does
3305    not include networking support since the APIs are still not there. It
3306    is not known if dialing out works, but probably not. Be experts are
3307    welcome to lend a hand.
3308
3309 3.16. C-KERMIT AND DG/UX
3310
3311    [ [519]Top ] [ [520]Contents ] [ [521]Section Contents ] [ [522]Next ]
3312    [ [523]Previous ]
3313
3314    Somebody downloaded the C-Kermit 6.0 binary built under DG/UX 5.40 and
3315    ran it under DG/UX 5.4R3.10 -- it worked OK except that file dates for
3316    incoming files were all written as 1 Jan 1970. Cause and cure unknown.
3317    Workaround: SET ATTRIBUTE DATE OFF. Better: Use a version of C-Kermit
3318    built under and for DG/UX 5.4R3.10.
3319
3320 3.17. C-KERMIT AND SEQUENT DYNIX
3321
3322    [ [524]Top ] [ [525]Contents ] [ [526]Section Contents ] [ [527]Next ]
3323    [ [528]Previous ]
3324
3325    Reportedly, when coming into a Sequent Unix (DYNIX) system through an
3326    X.25 connection, Kermit doesn't work right because the Sequent's
3327    FIONREAD ioctl returns incorrect data. To work around, use the
3328    1-character-at-a-time version of myread() in ckutio.c (i.e. undefine
3329    MYREAD in ckutio.c and rebuild the program). This is unsatisfying
3330    because two versions of the program would be needed -- one for use over
3331    X.25, and the other for serial and TCP/IP connections.
3332
3333 3.18. C-KERMIT AND FREEBSD, OPENBSD, and NETBSD
3334
3335    [ [529]Top ] [ [530]Contents ] [ [531]Section Contents ] [ [532]Next ]
3336    [ [533]Previous ]
3337
3338    Some NebBSD users have reported difficulty escaping back from CONNECT
3339    mode, usually when running NetBSD on non-PC hardware. Probably a
3340    keyboard issue.
3341
3342    NetBSD users have also reported that C-Kermit doesn't pop back to the
3343    prompt if the modem drops carrier. This needs to be checked out & fixed
3344    if possible.
3345
3346    (All the above seems to work properly in C-Kermit 7.0 and later.)
3347
3348 3.19. C-KERMIT AND MAC OS X
3349
3350    [ [534]Top ] [ [535]Contents ] [ [536]Section Contents ] [ [537]Next ]
3351    [ [538]Previous ]
3352
3353    Mac OS X is Apple's 4.4BSD Unix variety, closely related to FreeBSD,
3354    but different. "uname -a" is singularly uninformative, as in Linux,
3355    giving only the Darwin kernel version number. The way to find out the
3356    actual Mac OS X version is with
3357
3358      /usr/bin/sw_vers -productName
3359      /usr/bin/sw_vers -productVersion
3360
3361    or:
3362
3363      fgrep -A 1 'ProductVersion'
3364      /System/Library/CoreServices/SystemVersion.plist
3365
3366    Here are some points to be aware of:
3367
3368      * A big gotcha for Kermit users is that Mac OS X does not support
3369        serial ports and, as far as I can tell, doesn't support its
3370        built-in modem either, for anything other than making Internet
3371        connections. Macintoshes capable of running Mac OS X, such as the
3372        G5 and later, come without serial ports and without any APIs to
3373        support them, and also without the UUCP family of programs
3374        (including cu), nor any standard for serial-port lockfile
3375        directory.
3376      * Early versions of Mac OS X came without Curses, Termlib, or
3377        Terminfo libraries. Later versions seem to have ncurses (it would
3378        seem that Mac OS X 10.3.9 was the first mature and complete version
3379        of Mac OS X). Kermit uses curses for its file-transfer display. See
3380        elsewhere about curses-vs-ncurses confusion.
3381      * In the HFS+ file system, filenames are case-folded. Thus "makefile"
3382        and "Makefile" are the same file. So, for example, suppose you are
3383        sending two distinct files, Foo and FOO, from (say) Linux to Mac OS
3384        X. This will produce a file collision that will be handled
3385        according to Mac OS X C-Kermit's FILE COLLISION setting, which by
3386        default is BACKUP, so the Mac will wind up with files called FOO
3387        and Foo.~1~.
3388      * HSF+ files that are composed of a resource fork and a data fork...
3389        I doubt that C-Kermit does anything useful with them. There is no
3390        code in C-Kermit for traditional two-forked Macintosh files, but it
3391        could be added if there is any demand (code for this existed in
3392        [539]Mac Kermit, the old pre-Mac-OS-X Macintosh version of
3393        C-Kermit).
3394      * In case you want to transfer a traditional Macintosh text file (or
3395        data fork of a file that is plain text), you can use these C-Kermit
3396        commands:
3397
3398 set file eol cr
3399 set file character-set apple-quickdraw
3400 send /text filename
3401
3402      * File or pathnames that include spaces must be enclosed in either
3403        doublequotes or curly braces in C-Kermit commands.
3404      * Mac OS X can use a third-party package manager called "fink".
3405        Various fink packages for C-Kermit are floating around that are not
3406        standard releases. For example, there's a C-Kermit 8.0.201 package
3407        in which C-Kermit was modified (at least) to use a UUCP lockfile
3408        directory that does not exist on vanilla Mac OS X systems.
3409
3410 Mac OS X and Serial Ports
3411
3412    Apple is in the forefront of companies that believe serial ports have
3413    no use in the modern world and so has simply eliminated all traces of
3414    them from its machines and OS. But of course serial ports are still
3415    needed to connect not only to external modems, but also to the control
3416    ports of hubs, routers, terminal servers, PBXs, and similar devices,
3417    not to mention barcode readers, POS systems and components, speaking
3418    devices, hand calculators such as the HP48, automated factory-floor
3419    equipment, and scientific, medical, and lab equipment (to name a few).
3420    Among workers in these areas, there is a need to add serial ports back
3421    onto this platform, which is being filled by third-party products such
3422    as the [540]Keyspan High Speed USB Serial Adapter USA-19HS, which has a
3423    DB-9 male connector. To use the Keyspan device, you must install the
3424    accompanying device drivers, which winds up giving you serial ports
3425    with names like /dev/cu.USA19H3b1P1.1, /dev/cu.KeySerial1,
3426    /dev/tty.KeySerial1.
3427
3428    C-Kermit 9.0 works "out of the box" with third-party serial ports on
3429    Mac OS X, because it is built by default ("make macosx") without the
3430    "UUCP lockfile" feature. If you have C-Kermit 9.0 on a personal
3431    Macintosh, you can skip the next section.
3432
3433 Mac OS X Serial Ports with C-Kermit 8.0 and earlier
3434
3435    In earlier versions of C-Kermit, you'll need to either build a special
3436    -DNOUUCP version, or deal with the UUCP port contention sytem in
3437    [541]all its glory (this is usually an exercise in futility because any
3438    other applications on your Mac that use the serial port will not
3439    necessarily follow the same conventions):
3440
3441     1. su (or sudo -s)
3442        chgrp xxxx /var/spool/lock
3443        chmod g+w /var/spool/lock
3444        chgrp xxxx /dev/cu.*
3445        (where xxxx is the name of the group for users to whom serial-port
3446        access is to be granted). Use "admin" or other existing group, or
3447        create a new group if desired. NB:
3448
3449      In the absence of official guidance from Apple or anyone else, we
3450      choose /var/spool/lock as the lockfile directory because this
3451      directory (a) already exists on vanilla Mac OS X installations, and
3452      (b) it is the directory used for serial-port lockfiles on many other
3453      platforms.
3454     2. Put all users who need access to the serial port in the same group.
3455     3. Make sure the serial device files that are to be used by C-Kermit
3456        have group read-write permission and (if you care) lack world
3457        read-write permission, e.g.:
3458
3459      chmod g+rw,o-rw /dev/cu.*
3460
3461    If you do the above, then there's no need to become root to use Kermit,
3462    or to make Kermit suid or sgid. Just do this:
3463
3464 chmod 775 wermit
3465 mv wermit /usr/local/kermit
3466
3467    (or whatever spot is more appropriate, e.g. /usr/bin/). For greater
3468    detail about installation, [542]CLICK HERE.
3469
3470    Alternatively, to build a pre-9.0 version of C-Kermit without UUCP
3471    lockfile support, set the NOUUCP flag; e.g. (for Mac OS 10.4):
3472
3473      make macosx10.4 KFLAGS=-DNOUUCP
3474
3475    This circumvents the SET PORT failure "?Access to lockfile directory
3476    denied". But it also sacrifices Kermit's ability to ensure that only
3477    one copy of Kermit can have the device open at a time, since Mac OS X
3478    is the same as all other varieties of Unix in that exclusive access to
3479    serial ports is not enforced in any way. But if it's for your own
3480    desktop machine that nobody else uses, a -DNOUUCP version might be
3481    adequate and preferable to the alternatives.
3482
3483    To build C-Kermit 9.0 with UUCP support, do:
3484
3485      make macosx KFLAGS=-UNOUUCP
3486
3487    (note: "-U", not "-D).
3488
3489 RS-232 versus RS-422
3490
3491    Meanwhile, back when Macs had serial ports, they were not RS-232 (the
3492    standard for connecting computers with nearby modems) but rather RS-422
3493    or -423 (a standard for connecting serial devices over longer
3494    distances). Macintosh serial ports do not support modems well because
3495    they do not have enough wires (or more properly in the case RS-422/423,
3496    wire pairs) to convey a useful subset of modem signals.
3497
3498    Keyspan also sells a [543]USB Twin Serial Adapter that gives you two
3499    Mini-Din8 RS-422 ports, that are no better (or worse) for communicating
3500    with modems or serial devices than a real Mac Din-8 port was. In
3501    essence, you get Data In, Data Out, and two modem signals. It looks to
3502    me as if the signals chosen by Keyspan are RTS and CTS. This gives you
3503    hardware flow control, but at the expense of Carrier Detect. Thus to
3504    use C-Kermit with a Keyspan USB serial port, you must tell C-Kermit to:
3505
3506 set modem type none                ; (don't expect a modem)
3507 set carrier-watch off              ; (ignore carrier signal)
3508 set port /dev/cu.USA19H3b1P1.1     ; (open the port)
3509 set flow rts/cts                   ; (this is the default)
3510 set speed 57600                    ; (or whatever)
3511 connect                            ; (or DIAL or whatever)
3512
3513    Use Ctrl-\C in the normal manner to escape back to the C-Kermit>
3514    prompt. Kermit can't pop back to its prompt automatically when Carrier
3515    drops because there is no Carrier signal in the physical interface.
3516
3517    Here's a typical sequence for connecting to Cisco devices (using a
3518    mixture of command-line options and interactive commands at the
3519    prompt):
3520
3521 $ ckermit -l /dev/cu.USA19H3b1P1.1 -b 9600
3522 C-Kermit> set carrier-watch off
3523 C-Kermit> connect
3524
3525    Instructions for the built-in modem (if any) remain to be written due
3526    to lack of knowledge. If you can contribute instructions, hints, or
3527    tips, please [544]send them in.
3528
3529 3.20. C-KERMIT AND COHERENT
3530
3531    [ [545]Top ] [ [546]Contents ] [ [547]Section Contents ] [
3532    [548]Previous ]
3533
3534    Also see:
3535
3536      [549]http://www.uni-giessen.de/faq/archiv/coherent-faq.general/msg000
3537    00.html
3538
3539    Mark Williams COHERENT was perhaps the first commercial Unix-based
3540    operating system for PCs, first appearing about 1983 or -84 for the
3541    PC/XT (?), and popular until about 1993, when Linux took over.
3542    C-Kermit, as of version 8.0, is still current for COHERENT 386 4.2
3543    (i.e. only for i386 and above). Curses is included, but lots of other
3544    features are omitted due to lack of the appropriate OS features, APIs,
3545    libraries, hardware, or just space: e.g. TCP/IP, floating-point
3546    arithmetic, learned scripts. Earlier versions of COHERENT ran on 8086
3547    and 80286, but these are to small to build or run C-Kermit, but
3548    G-Kermit should be OK (as might be ancient versions of C-Kermit).
3549
3550    You can actually build a version with floating point support -- just
3551    take -DNOFLOAT out of CFLAGS and add -lm to LIBS; NOFLOAT is the
3552    default because COHERENT tends to run on old PCs that don't have
3553    floating-point hardware. You can also add "-f" to CFLAGS to have it
3554    link in the floating-point emulation library. Also I'm not sure why
3555    -DNOLEARN is included, since it depends on select(), which COHERENT
3556    has.
3557
3558 4. GENERAL UNIX-SPECIFIC HINTS, LIMITATIONS, AND BUGS
3559
3560    [ [550]Top ] [ [551]Contents ] [ [552]Next ] [ [553]Previous ]
3561
3562 4.1. Modem Signals
3563
3564    There seems to be an escalating demand for the ability to control "dumb
3565    serial devices" (such as "smartcard readers", barcode readers, etc) by
3566    explicitly manipulating modem signals, particularly RTS. This might
3567    have been easy to do in DOS, where there is no operating system
3568    standing between the application and the serial device, but it is
3569    problematic in Unix, where modem signals are controlled by the serial
3570    device driver. If the driver does not provide an API for doing this,
3571    then the application can't do it. If it does provide an API, expect it
3572    to be totally different on each Unix platform, since there is no
3573    standard for this.
3574
3575 4.2. NFS Troubles
3576
3577    Beginning with C-Kermit 6.0, the default C-Kermit prompt includes your
3578    current (working) directory; for example:
3579
3580   [/usr/olga] C-Kermit>
3581
3582    (In C-Kermit 7.0 the square braces were replaced by round parentheses
3583    to avoid conflicts with ISO 646 national character sets.)
3584
3585    If that directory is on an NFS-mounted disk, and NFS stops working or
3586    the disk becomes unavailable, C-Kermit will hang waiting for NFS and/or
3587    the disk to come back. Whether you can interrupt C-Kermit when it is
3588    hung this way depends on the specific OS. Kermit has called the
3589    operating systems's getcwd() function, and is waiting for it to return.
3590    Some versions of Unix (e.g. HP-UX 9.x) allow this function to be
3591    interrupted with SIGINT (Ctrl-C), others (such as HP-UX 8.x) do not. To
3592    avoid this effect, you can always use SET PROMPT to change your prompt
3593    to something that does not involve calling getcwd(), but if NFS is not
3594    responding, C-Kermit will still hang any time you give a command that
3595    refers to an NFS-mounted directory. Also note that in some cases, the
3596    uninterruptibility of NFS-dependent system or library calls is
3597    considered a bug, and sometimes there are patches. For HP-UX, for
3598    example:
3599
3600                                                         replaced by:
3601   HP-UX 10.20     libc    PHCO_8764                     PHCO_14891/PHCO_16723
3602   HP-UX 10.10     libc    PHCO_8763                     PHCO_14254/PHCO_16722
3603   HP-UX 9.x       libc    PHCO_7747       S700          PHCO_13095
3604   HP-UX 9.x       libc    PHCO_6779       S800          PHCO_11162
3605
3606 4.3. C-Kermit as Login Shell
3607
3608    You might have reason to make C-Kermit the login shell for a specific
3609    user, by entering the pathname of Kermit (possibly with command-line
3610    switches, such as -x to put it in server mode) into the shell field of
3611    the /etc/passwd file. This works pretty well. In some cases, for
3612    "ultimate security", you might want to use a version built with
3613    -DNOPUSH (see the [554]Configurations Options document for this, but
3614    even if you don't, then PUSHing or shelling out from C-Kermit just
3615    brings up a new copy of C-Kermit (but warning: this does not prevent
3616    the user from explicitly running a shell; e.g. "run /bin/sh"; use
3617    NOPUSH to prevent this).
3618
3619 4.4. C-Kermit versus screen and splitvt
3620
3621    C-Kermit file transfers will probably not work if attempted through the
3622    "splitvt" or GNU "screen" programs because the screen optimization (or
3623    at least, line wrapping, control-character absorption) done by this
3624    package interferes with Kermit's packets.
3625
3626    The same can apply to any other environment in which the user's session
3627    is captured, monitored, recorded, or manipulated. Examples include the
3628    'script' program (for making a typescript of a session), the
3629    Computronics PEEK package and pksh (at least versions of it prior to
3630    1.9K), and so on.
3631
3632    You might try the following -- what we call "doomsday Kermit" --
3633    settings to push packets through even the densest and most obstructive
3634    connections, such as "screen" and "splitvt" (and certain kinds of 3270
3635    protocol emulators): Give these commands to BOTH Kermit programs:
3636
3637   SET FLOW NONE
3638   SET CONTROL PREFIX ALL
3639   SET RECEIVE PACKET-LENGTH 70
3640   SET RECEIVE START 62
3641   SET SEND START 62
3642   SET SEND PAUSE 100
3643   SET BLOCK B
3644
3645    If it works, it will be slow.
3646
3647 4.5. C-Kermit versus DOS Emulators
3648
3649    On Unix workstations equipped with DOS emulators like SoftPC, watch out
3650    for what these emulators do to the serial port drivers. After using a
3651    DOS emulator, particularly if you use it to run DOS communications
3652    software, you might have to reconfigure the serial ports for use by
3653    Unix.
3654
3655 4.6. C-Kermit versus Job Control
3656
3657    Interruption by Ctrl-Z makes Unix C-Kermit try to suspend itself with
3658    kill(0,SIGTSTP), but only on platforms that support job control, as
3659    determined by whether the symbol SIGTSTP is defined (or on POSIX or
3660    SVR4 systems, if syconf(_SC_JOB_CONTROL) or _POSIX_JOB_CONTROL in
3661    addition to SIGTSTP). However, if Kermit is running under a login shell
3662    (such as the original Bourne shell) that does not support job control,
3663    the user's session hangs and must be logged out from another terminal,
3664    or hung up on. There is no way Kermit can defend itself against this.
3665    If you use a non-job control shell on a computer that supports job
3666    control, give a command like "stty susp undef" to fix it so the suspend
3667    signal is not attached to any particular key, or give the command SET
3668    SUSPEND OFF to C-Kermit, or build C-Kermit with -DNOJC.
3669
3670 4.7. Dates and Times
3671
3672    Unix time conversion functions typically apply locale rules to return
3673    local time in terms of any seasonal time zone change in effect for the
3674    given date. The diffdate function assumes that the same timezone rules
3675    are in effect for both dates, but a date with timezone information will
3676    be converted to the local time zone in effect at the given time, e.g.,
3677    a GMT specification will produce either a Standard Time or Daylight
3678    Savings Time, depending on which applies at the given time. An example
3679    using the 2001 seasonal change from EDT (-0400) to EST (-0500):
3680
3681   C-Kermit> DATE 20011028 05:01:02 GMT  ; EDT
3682   20011028 01:01:02
3683   C-Kermit> DATE 20011028 06:01:02 GMT  ; EST
3684   20011028 01:01:02
3685   C-Kermit>
3686
3687    but the implicit change in timezone offset is not recognized:
3688
3689   C-Kermit> echo \fdiffdate(20011028 05:01:02 GMT, 20011028 06:01:02 GMT)
3690   +0:00
3691   C-Kermit>
3692
3693    Date/time arithmetic, offsets, delta times, and timezone support are
3694    new to C-Kermit 8.0, and might be expected to evolve and improve in
3695    subsequent releases.
3696
3697    On some platforms, files downloaded with HTTP receive the current
3698    timestamp, rather than the HTTP "Last Modified" time (this can be fixed
3699    by including utime.h, e.g. in SunOS and Tru64...).
3700
3701 4.8. Pseudoterminals
3702
3703    The SSH and PTY commands work by assigning a pseudoterminal and reading
3704    and writing from it. Performance varies according to the specific
3705    platform ranging from very fast to very flow.
3706
3707    SSH and PTY commands can fail if (a) all pseudoterminals are in use; or
3708    (b) you do not have read/write access to the pseudoterminal that was
3709    assigned. An example of (b) was reported with the Zipslack Slackware
3710    Linux distribution, in which the pseudoterminals were created with
3711    crw-r--r-- permission, instead of crw-rw-rw-.
3712
3713 4.9. Miscellaneous
3714
3715      * Reportedly, the Unix C-Kermit server, under some conditions, on
3716        certain particular systems, fails to log out its login session upon
3717        receipt of a BYE command. Before relying on the BYE command
3718        working, test it a few times to make sure it works on your system:
3719        there might be system configuration or security mechanisms to
3720        prevent an inferior process (like Kermit) from killing a superior
3721        one (like the login shell).
3722      * On AT&T 7300 (3B1) machines, you might have to "stty nl1" before
3723        starting C-Kermit. Do this if characters are lost during
3724        communications operations.
3725      * Under the bash shell (versions prior to 1.07 from CWRU), "pushing"
3726        to an inferior shell and then exiting back to Kermit leaves Kermit
3727        in the background such that it must be explicitly fg'd. This is
3728        reportedly fixed in version 1.07 of bash (and definitely in modern
3729        bash versions).
3730
3731 5. INITIALIZATION AND COMMAND FILES
3732
3733    [ [555]Top ] [ [556]Contents ] [ [557]Next ] [ [558]Previous ]
3734
3735    C-Kermit's initialization file for Unix is .kermrc (lowercase, starts
3736    with period) in your home directory, unless Kermit was built with the
3737    system-wide initialization-file option (see the [559]C-Kermit for Unix
3738    Installation Instructions).
3739
3740    C-Kermit identifies your home directory based on the environment
3741    variable, HOME. Most Unix systems set this variable automatically when
3742    you log in. If C-Kermit can't find your initialization file, check your
3743    HOME variable:
3744
3745   echo $HOME      (at the Unix prompt)
3746
3747    or:
3748
3749   echo \$(HOME)   (at the C-Kermit prompt)
3750
3751    If HOME is not defined, or is defined incorrectly, add the appropriate
3752    definition to your Unix .profile or .login file, depending on your
3753    shell:
3754
3755   setenv HOME full-pathname-of-your-home-directory  (C-Shell, .login file)
3756
3757    or:
3758
3759   HOME=full-pathname-of-your-home-directory         (sh, ksh, .profile file)
3760   export HOME
3761
3762    NOTE: Various other operations depend on the correct definition of
3763    HOME. These include the "tilde-expansion" feature, which allows you to
3764    refer to your home directory as "~" in filenames used in C-Kermit
3765    commands, e.g.:
3766
3767   send ~/.kermrc
3768
3769    as well as the \v(home) variable.
3770
3771    Prior to version 5A(190), C-Kermit would look for its initialization
3772    file in the current directory if it was not found in the home
3773    directory. This feature was removed from 5A(190) because it was a
3774    security risk. Some people, however, liked this behavior and had
3775    .kermrc files in all their directories that would set up things
3776    appropriately for the files therein. If you want this behavior, you can
3777    accomplish it in various ways, for example:
3778
3779      * Create a shell alias, for example:
3780   alias kd="kermit -Y ./.kermrc"
3781
3782      * Create a .kermrc file in your home directory, whose contents are:
3783   take ./.kermrc
3784
3785    Suppose you need to pass a password from the Unix command line to a
3786    C-Kermit script program, in such a way that it does not show up in "ps"
3787    or "w" listings. Here is a method (not guaranteed to be 100% secure,
3788    but definitely more secure than the more obvious methods):
3789
3790   echo mypassword | kermit myscript
3791
3792    The "myscript" file contains all the commands that need to be executed
3793    during the Kermit session, up to and including EXIT, and also includes
3794    an ASK or ASKQ command to read the password from standard input, which
3795    has been piped in from the Unix 'echo' command, but it must not include
3796    a CONNECT command. Only "kermit myscript" shows up in the ps listing.
3797
3798 6. COMMUNICATION SPEED SELECTION
3799
3800    [ [560]Top ] [ [561]Contents ] [ [562]Next ] [ [563]Previous ]
3801
3802    Version-7 based Unix implementations, including 4.3 BSD and earlier and
3803    Unix systems based upon BSD, use a 4-bit field to record a serial
3804    device's terminal speed. This leaves room for 16 speeds, of which the
3805    first 14 are normally:
3806
3807      0, 50, 75, 110, 134.5, 150, 200, 300, 600, 1200, 1800, 2400, 4800,
3808      and 9600
3809
3810    The remaining two are usually called EXTA and EXTB, and are defined by
3811    the particular Unix implementation. C-Kermit determines which speeds
3812    are available on your system based on whether symbols for them are
3813    defined in your terminal device header files. EXTA is generally assumed
3814    to be 19200 and EXTB 38400, but these assumptions might be wrong, or
3815    they might not apply to a particular device that does not support these
3816    speeds. Presumably, if you try to set a speed that is not legal on a
3817    particular device, the driver will return an error, but this can not be
3818    guaranteed.
3819
3820    On these systems, it is usually not possible to select a speed of 14400
3821    bps for use with V.32bis modems. In that case, use 19200 or 38400 bps,
3822    configure your modem to lock its interface speed and to use RTS/CTS
3823    flow control, and tell C-Kermit to SET FLOW RTS/CTS and SET DIAL
3824    SPEED-MATCHING OFF.
3825
3826    The situation is similar, but different, in System V. SVID Third
3827    Edition lists the same speeds, 0 through 38400.
3828
3829    Some versions of Unix, and/or terminal device drivers that come with
3830    certain third-party add-in high-speed serial communication interfaces,
3831    use the low "baud rates" to stand for higher ones. For example, SET
3832    SPEED 50 gets you 57600 bps; SET SPEED 75 gets you 76800; SET SPEED 110
3833    gets 115200.
3834
3835    SCO ODT 3.0 is an example where a "baud-rate-table patch" can be
3836    applied that can rotate the tty driver baud rate table such that
3837    600=57600 and 1800=115k baud. Similarly for Digiboard
3838    multiport/portservers, which have a "fastbaud" setting that does this.
3839    Linux has a "setserial" command that can do it, etc.
3840
3841    More modern Unixes support POSIX-based speed setting, in which the
3842    selection of speeds is not limited by a 4-bit field. C-Kermit 6.1
3843    incorporates a new mechanism for finding out (at compile time) which
3844    serial speeds are supported by the operating system that does not
3845    involve editing of source code by hand; on systems like Solaris 5.1,
3846    IRIX 6.2, and SCO OSR5.0.4, "set speed ?" will list speeds up to 460800
3847    or 921600. In C-Kermit 7.0 and later:
3848
3849     1. If a symbol for a particular speed (say B230400 for 230400 bps)
3850        appears in whatever header file defines acceptable serial speeds
3851        (e.g. <termbits.h> or <sys/termios.h> or <sys/ttydev.h>, etc), the
3852        corresponding speed will appear in C-Kermit's "set speed ?" list.
3853     2. The fact that a given speed is listed in the header files and
3854        appears in C-Kermit's list does not mean the driver will accept it.
3855        For example, a computer might have some standard serial ports plus
3856        some add-on ones with different drivers that accept a different
3857        repertoire of speeds.
3858     3. The fact that a given speed is accepted by the driver does not
3859        guarantee the underlying hardware can accept it.
3860
3861    When Kermit is given a "set speed" command for a particular device, the
3862    underlying system service is called to set the speed; its return code
3863    is checked and the SET SPEED command fails if the return code indicates
3864    failure. Regardless of the system service return status, the device's
3865    speed is then read back and if it does not match the speed that was
3866    requested, an error message is printed and the command fails.
3867
3868    Even when the command succeeds, this does not guarantee successful
3869    operation at a particular speed, especially a high one. That depends on
3870    electricity, information theory, etc. How long is the cable, what is
3871    its capacitance, how well is it shielded, etc, not to mention that
3872    every connection has two ends and its success depends on both of them.
3873    (With the obvious caveats about internal modems, is the cable really
3874    connected, interrupt conflicts, etc etc etc).
3875
3876    Note, in particular, that there is a certain threshold above which
3877    modems can not "autobaud" -- i.e. detect the serial interface speed
3878    when you type AT (or whatever else the modem's recognition sequence
3879    might be). Such modems need to be engaged at a lower speed (say 2400 or
3880    9600 or even 115200 -- any speed below their autobaud threshold) and
3881    then must be given a modem-specific command (which can be found in the
3882    modem manual) to change their interface speed to the desired higher
3883    speed, and then the software must also be told to change to the new,
3884    higher speed.
3885
3886    For additional information, read [564]Section 9.5 of the Installation
3887    Instructions, plus any platform-specific notes in [565]Section 3 above.
3888
3889 7. COMMUNICATIONS AND DIALING
3890
3891    [ [566]Top ] [ [567]Contents ] [ [568]Next ] [ [569]Previous ]
3892
3893 7.1. Serial Ports and Modems
3894
3895    If you SET LINE to a serial port modem-control device that has nothing
3896    plugged in to it, or has a modem connected that is powered off, and you
3897    have not given a prior SET MODEM TYPE or SET CARRIER-WATCH OFF command,
3898    the SET LINE command is likely to hang. In most cases, you can Ctrl-C
3899    out. If not, you'll have to kill C-Kermit from another terminal.
3900
3901    Similarly, if you give a SET MODEM TYPE HAYES (or USR, or any other
3902    modem type besides DIRECT, NONE, or UNKNOWN) and then SET LINE to an
3903    empty port, the subsequent close (implicit or explicit) is liable to
3904    hang or even crash (through no fault of Kermit's -- the hanging or
3905    crashing is inside a system call such as cfsetospeed() or close()).
3906
3907    The SET CARRIER-WATCH command works as advertised only if the
3908    underlying operating system and device drivers support this feature; in
3909    particular only if a read() operation returns immediately with an error
3910    code if the carrier signal goes away or, failing that, if C-Kermit can
3911    obtain the modem signals from the device driver (you can tell by giving
3912    a "set line" command to a serial device, and then a "show
3913    communications" command -- if modem signals are not listed, C-Kermit
3914    won't be able to detect carrier loss, the WAIT command will not work,
3915    etc). Of course, the device itself (e.g. modem) must be configured
3916    appropriately and the cables convey the carrier and other needed
3917    signals, etc.
3918
3919    If you dial out from Unix system, but then notice a lot of weird
3920    character strings being stuck into your session at random times
3921    (especially if they look like +++ATQ0H0 or login banners or prompts),
3922    that means that getty is also trying to control the same device. You'll
3923    need to dial out on a device that is not waiting for a login, or else
3924    disable getty on the device.
3925
3926    As of version 7.0, C-Kermit makes explicit checks for the Carrier
3927    Detect signal, and so catches hung-up connections much better than 6.0
3928    and earlier. However, it still can not be guaranteed to catch every
3929    ever CD on-to-off transition. For example, when the HP-UX version of
3930    C-Kermit is in CONNECT mode on a dialed connection and CARRIER-WATCH ON
3931    or AUTO, and you turn off the modem, HP-UX is stuck in a read() that
3932    never returns. (C-Kermit does not pop back to its prompt automatically,
3933    but you can still escape back.)
3934
3935    If, on the other hand, you log out from the remote system, and it hangs
3936    up, and CD drops on the local modem, C-Kermit detects this and pops
3937    back to the prompt as it should. (Evidently there can be a difference
3938    between CD and DSR turning off at the same time, versus CD turning off
3939    while DSR stays on; experimentation with &S0/&S1/&S2 on your modem
3940    might produce the desired results).
3941
3942    When Unix C-Kermit exits, it closes (and must close) the communications
3943    device. If you were dialed out, this will most likely hang up the
3944    connection. If you want to get out of Kermit and still use Kermit's
3945    communication device, you have several choices:
3946
3947     1. Shell out from Kermit or suspend Kermit, and refer to the device
3948        literally (as in "term -blah -blah < /dev/cua > /dev/cua").
3949     2. Shell out from Kermit and use the device's file descriptor which
3950        Kermit makes available to you in the \v(ttyfd) variable.
3951     3. Use C-Kermit's REDIRECT command.
3952     4. Use C-Kermit new EXEC /REDIRECT command.
3953
3954    If you are having trouble dialing:
3955
3956     1. Make sure the dialout line is configured correctly. More about this
3957        below.
3958     2. Make sure all necessary patches are installed for your operating
3959        system.
3960     3. If you can't dial on a "bidirectional" line, then configure it for
3961        outbound-only (remove the getty) and try again. (The mechanisms --
3962        if any -- for grabbing bidirectional lines for dialout vary wildly
3963        among Unix implementations and releases, and C-Kermit -- which runs
3964        on well over 300 different Unix variations -- makes no effort to
3965        keep up with them; the recommended method for coping with this
3966        situation is to wrap C-Kermit in a shell script that takes the
3967        appropriate actions.)
3968     4. Make sure C-Kermit's SET DIAL and SET MODEM parameters agree with
3969        the modem you are actually using -- pay particular attention to SET
3970        DIAL SPEED-MATCHING.
3971     5. If MODEM HANGUP-METHOD is set to RS232-SIGNAL, change it to
3972        MODEM-COMMAND. Or vice-versa.
3973     6. Try SET DIAL HANGUP OFF before the DIAL command. Also, SET DIAL
3974        DISPLAY ON to watch what's happening. See [570]Section 8 of the
3975        [571]Installation Instructions.
3976     7. Read pages 50-67 of [572]Using C-Kermit.
3977     8. As a last resort, don't use the DIAL command at all; SET CARRIER
3978        OFF and CONNECT to the modem and dial interactively, or write a
3979        script program to dial the modem.
3980
3981    Make sure your dialout line is correctly configured for dialing out (as
3982    opposed to login). The method for doing this is different for each kind
3983    of Unix system. Consult your system documentation for configuring lines
3984    for dialing out (for example, Sun SparcStation IPC users should read
3985    the section "Setting up Modem Software" in the Desktop SPARC Sun System
3986    & Network Manager's Guide; HP-9000 workstation users should consult the
3987    manual Configuring HP-UX for Peripherals, etc).
3988
3989    Symptom: DIAL works, but a subsequent CONNECT command does not.
3990    Diagnosis: the modem is not asserting Carrier Detect (CD) after the
3991    connection is made, or the cable does not convey the CD signal. Cure:
3992    Reconfigure the modem, replace the cable. Workaround: SET CARRIER OFF
3993    (at least in System-V based Unix versions).
3994
3995    For Berkeley-Unix-based systems (4.3BSD and earlier), Kermit includes
3996    code to use LPASS8 mode when parity is none, which is supposed to allow
3997    8-bit data and Xon/Xoff flow control at the same time. However, as of
3998    edit 174, this code is entirely disabled because it is unreliable: even
3999    though the host operating system might (or might not) support LPASS8
4000    mode correctly, the host access protocols (terminal servers, telnet,
4001    rlogin, etc) generally have no way of finding out about it and
4002    therefore render it ineffective, causing file transfer failures. So as
4003    of edit 174, Kermit once again uses rawmode for 8-bit data, and so
4004    there is no Xon/Xoff flow control during file transfer or terminal
4005    emulation in the Berkeley-based versions (4.3 and earlier, not 4.4).
4006
4007    Also on Berkeley-based systems (4.3 and earlier), there is apparently
4008    no way to configure a dialout line for proper carrier handling, i.e.
4009    ignore carrier during dialing, require carrier thereafter, get a fatal
4010    error on any attempt to read from the device after carrier drops (this
4011    is handled nicely in System V by manipulation of the CLOCAL flag). The
4012    symptom is that carrier loss does not make C-Kermit pop back to the
4013    prompt automatically. This is evident on the NeXT, for example, but not
4014    on SunOS, which supports the CLOCAL flag. This is not a Kermit problem,
4015    but a limitation of the underlying operating system. For example, the
4016    cu program on the NeXT doesn't notice carrier loss either, whereas cu
4017    on the Sun does.
4018
4019    On certain AT&T Unix systems equipped with AT&T modems, DIAL and HANGUP
4020    don't work right. Workarounds: (1) SET DIAL HANGUP OFF before
4021    attempting to dial; (2) If HANGUP doesn't work, SET LINE, and then SET
4022    LINE <device> to totally close and reopen the device. If all else
4023    fails, SET CARRIER OFF.
4024
4025    C-Kermit does not contain any particular support for AT&T DataKit
4026    devices. You can use Kermit software to dial in to a DataKit line, but
4027    C-Kermit does not contain the specialized code required to dial out
4028    from a DataKit line. If the Unix system is connected to DataKit via
4029    serial ports, dialout should work normally (e.g. set line /dev/ttym1,
4030    set speed 19200, connect, and then see the DESTINATION: prompt, from
4031    which you can connect to another computer on the DataKit network or to
4032    an outgoing modem pool, etc). But if the Unix system is connected to
4033    the DataKit network through the special DataKit interface board, then
4034    SET LINE to a DataKit pseudodevice (such as /dev/dk031t) will not work
4035    (you must use the DataKit "dk" or "dkcu" program instead). In C-Kermit
4036    7.0 and later, you can make Kermit connections "though" dk or dkcu
4037    using "set line /pty".
4038
4039    In some BSD-based Unix C-Kermit versions, SET LINE to a port that has
4040    nothing plugged in to it with SET CARRIER ON will hang the program (as
4041    it should), but it can't be interrupted with Ctrl-C. The interrupt trap
4042    is correctly armed, but apparently the Unix open() call cannot be
4043    interrupted in this case. When SET CARRIER is OFF or AUTO, the SET LINE
4044    will eventually return, but then the program hangs (uninterruptibly)
4045    when the EXIT or QUIT command (or, presumably, another SET LINE
4046    command) is given. The latter is probably because of the attempt to
4047    hang up the modem. (In edit 169, a timeout alarm was placed around this
4048    operation.)
4049
4050    With SET DIAL HANGUP OFF in effect, the DIAL command might work only
4051    once, but not again on the same device. In that case, give a CLOSE
4052    command to close the device, and then another SET LINE command to
4053    re-open the same device. Or rebuild your version of Kermit with the
4054    -DCLSOPN compile-time switch.
4055
4056    The DIAL command says "To cancel: Type your interrupt character
4057    (normally Ctrl-C)." This is just one example of where program messages
4058    and documentation assume your interrupt character is Ctrl-C. But it
4059    might be something else. In most (but not necessarily all) cases, the
4060    character referred to is the one that generates the SIGINT signal. If
4061    Ctrl-C doesn't act as an interrupt character for you, type the Unix
4062    command "stty -a" or "stty all" or "stty everything" to see what your
4063    interrupt character is. (Kermit could be made to find out what the
4064    interrupt character is, but this would require a lot of
4065    platform-dependent coding and #ifdefs, and a new routine and interface
4066    between the platform-dependent and platform-independent parts of the
4067    program.)
4068
4069    In general, the hangup operation on a serial communication device is
4070    prone to failure. C-Kermit tries to support many, many different kinds
4071    of computers, and there seems to be no portable method for hanging up a
4072    modem connection (i.e. turning off the RS-232 DTR signal and then
4073    turning it back on again). If HANGUP, DIAL, and/or Ctrl-\H do not work
4074    for you, and you are a programmer, look at the tthang() function in
4075    ckutio.c and see if you can add code to make it work correctly for your
4076    system, and send the code to the address above. (NOTE: This problem has
4077    been largely sidestepped as of edit 188, in which Kermit first attempts
4078    to hang up the modem by "escaping back" via +++ and then giving the
4079    modem's hangup command, e.g. ATH0, when DIAL MODEM-HANGUP is ON, which
4080    is the default setting.)
4081
4082    Even when Kermit's modem-control software is configured correctly for
4083    your computer, it can only work right if your modem is also configured
4084    to assert the CD signal when it is connected to the remote modem and to
4085    hang up the connection when your computer drops the DTR signal. So
4086    before deciding Kermit doesn't work with your modem, check your modem
4087    configuration AND the cable (if any) connecting your modem to the
4088    computer -- it should be a straight-through [573]modem cable conducting
4089    the signals FG, SG, TD, RD, RTS, CTS, DSR, DTR, CD, and RI.
4090
4091    Many Unix systems keep aliases for dialout devices; for example,
4092    /dev/acu might be an alias for /dev/tty00. But most of these Unix
4093    systems also use UUCP lockfile conventions that do not take this
4094    aliasing into account, so if one user assigns (e.g.) /dev/acu, then
4095    another user can still assign the same device by referring to its other
4096    name. This is not a Kermit problem -- Kermit must follow the lockfile
4097    conventions used by the vendor-supplied software (cu, tip, uucp).
4098
4099    The SET FLOW-CONTROL KEEP option should be given *before* any
4100    communication (dialing, terminal emulation, file transfer,
4101    INPUT/OUTPUT/TRANSMIT, etc) is attempted, if you want C-Kermit to use
4102    all of the device's preexisting flow-control related settings. The
4103    default flow-control setting is XON/XOFF, and it will take effect when
4104    the first communication-related command is given, and a subsequent SET
4105    FLOW KEEP command will not necessarily know how to restore *all* of the
4106    device's original flow-control settings.
4107
4108 7.2. Network Connections
4109
4110    C-Kermit tries to use the 8th bit for data when parity is NONE, and
4111    this generally works on real Unix terminal (tty) devices, but it often
4112    does not work when the Unix system is accessed over a network via
4113    telnet or rlogin protocols, including (in many cases) through terminal
4114    servers. For example, an Encore computer with Annex terminal servers
4115    only gives a 7-bit path if the rlogin protocol is selected in the
4116    terminal server but it gives the full 8 bits if the proprietary RDP
4117    protocol is used.
4118
4119    If file transfer does not work through a host to which you have
4120    rlogin'd, use "rlogin -8" rather than "rlogin". If that doesn't work,
4121    tell both Kermit programs to "set parity space".
4122
4123    The Encore TELNET server does not allow long bursts of input. When you
4124    have a TELNET connection to an Encore, tell C-Kermit on the Encore to
4125    SET RECEIVE PACKET-LENGTH 200 or thereabouts.
4126
4127 8. HARDWARE FLOW CONTROL
4128
4129    [ [574]Top ] [ [575]Contents ] [ [576]Next ] [ [577]Previous ]
4130
4131    SET FLOW RTS/CTS is available in Unix C-Kermit only when the underlying
4132    operating system provides an Application Program Interface (API) for
4133    turning this feature on and off under program control, which turns out
4134    to be a rather rare feature among Unix systems. To see if your Unix
4135    C-Kermit version supports hardware flow control, type "set flow ?" at
4136    the C-Kermit prompt, and look for "rts/cts" among the options. Other
4137    common situations include:
4138
4139     1. The API is available, so "set flow rts/cts" appears as a valid
4140        C-Kermit command, but it doesn't do anything because the device
4141        driver (part of the operating system) was never coded to do
4142        hardware flow control. This is common among System V R4
4143        implementations (details below).
4144     2. The API is not available, so "set flow rts/cts" does NOT appear as
4145        a valid C-Kermit command, but you can still get RTS/CTS flow
4146        control by selecting a specially named device in your SET LINE
4147        command. Examples:
4148           + NeXTSTEP: /dev/cufa instead of /dev/cua, /dev/cufb instead of
4149             /dev/cub (68040 only; "man zs" for further info).
4150           + IRIX: /dev/ttyf2 instead of /dev/ttyd2 or /dev/ttym2 ("man 7
4151             serial").
4152     3. The API is available, doesn't work, but a workaround as in (2) can
4153        be used.
4154     4. The API is available, but Kermit doesn't know about it. In these
4155        cases, you can usually use an stty command to enable RTS/CTS on the
4156        device, e.g. "stty crtscts" or "stty ctsflow", "stty rtsflow",
4157        before starting Kermit, and then tell Kermit to SET FLOW KEEP.
4158     5. No API and no special device drivers. Hardware flow control is
4159        completely unavailable.
4160
4161    System V R4 based Unixes are supposed to supply a <termiox.h> file,
4162    which gives Kermit the necessary interface to command the terminal
4163    driver to enable/disable hardware flow control. Unfortunately, but
4164    predictably, many implementations of SVR4 whimsically place this file
4165    in /usr/include/sys rather than /usr/include (where SVID clearly
4166    specifies it should be; see SVID, Third Edition, V1, termiox(BA_DEV).
4167    Thus if you build C-Kermit with any of the makefile entries that
4168    contain -DTERMIOX or -DSTERMIOX (the latter to select <sys/termiox.h>),
4169    C-Kermit will have "set flow rts/cts" and possibly other hardware
4170    flow-control related commands. BUT... That does not necessarily mean
4171    that they will work. In some cases, the underlying functions are simply
4172    not coded into the operating system.
4173
4174    WARNING: When hardware flow control is available, and you enable in
4175    Kermit on a device that is not receiving the CTS signal, Kermit can
4176    hang waiting for CTS to come up. This is most easily seen when the
4177    local serial port has nothing plugged in to it, or is connected to an
4178    external modem that is powered off.
4179
4180 9. TERMINAL CONNECTION AND KEY MAPPING
4181
4182    [ [578]Top ] [ [579]Contents ] [ [580]Next ] [ [581]Previous ]
4183
4184    C-Kermit is not a terminal emulator. Refer to page 147 of [582]Using
4185    C-Kermit, 2nd Edition: "Most versions of C-Kermit -- Unix, VMS, AOS/VS,
4186    VOS, etc -- provide terminal connection without emulation. These
4187    versions act as a 'semitransparent pipe' between the remote computer
4188    and your terminal, terminal emulator, console driver, or window, which
4189    in turn emulates (or is) a specific kind of terminal." The environment
4190    in which you run C-Kermit is up to you.
4191
4192    If you are an X Windows user, you should be aware of an alternative to
4193    xterm that supports VT220 emulation, from Thomas E. Dickey:
4194
4195   [583]http://dickey.his.com/xterm/xterm.html
4196
4197    Unix C-Kermit's SET KEY command currently can not be used with keys
4198    that generate "wide" scan codes or multibyte sequences, such as
4199    workstation function or arrow keys, because Unix C-Kermit does not have
4200    direct access to the keyboard.
4201
4202    However, many Unix workstations and/or console drivers provide their
4203    own key mapping feature. With xterm, for example, you can use 'xmodmap'
4204    ("man xmodmap" for details); here is an xterm mapping to map the Sun
4205    keyboard to DEC VT200 values for use with VT-terminal oriented
4206    applications like VMS EVE:
4207
4208   keycode 101=KP_0
4209   keycode 119=KP_1
4210   keycode 120=KP_2
4211   keycode 121=KP_3
4212   keycode 98=KP_4
4213   keycode 99=KP_5
4214   keycode 100=KP_6
4215   keycode 75=KP_7
4216   keycode 76=KP_8
4217   keycode 77=KP_9
4218   keycode 52=KP_F1
4219   keycode 53=KP_F2
4220   keycode 54=KP_F3
4221   keycode 57=KP_Decimal
4222   keycode 28=Left
4223   keycode 29=Right
4224   keycode 30=KP_Separator
4225   keycode 105=KP_F4
4226   keycode 78=KP_Subtract
4227   keycode 8=Left
4228   keycode 10=Right
4229   keycode 32=Up
4230   keycode 33=Down
4231   keycode 97=KP_Enter
4232
4233    Users of Linux consoles can use loadkeys ("man dumpkeys loadkeys
4234    keytables" for details. The format used by loadkeys is compatible with
4235    that used by Xmodmap, although it is not definitely certain that the
4236    keycodes are compatible for different keyboard types (e.g. Sun vs HP vs
4237    PC, etc).
4238
4239 10. FILE TRANSFER
4240
4241    [ [584]Top ] [ [585]Contents ] [ [586]Next ] [ [587]Previous ]
4242
4243    On most platforms, C-Kermit can not handle files longer than 2^31 or
4244    2^32 bytes long, because it uses the traditional file i/o APIs that use
4245    32-bit words to represent the file size. To accommodate longer files,
4246    we would have to switch to a new and different API. Unfortunately, each
4247    platform has a different one, a nightmare to handle in portable code.
4248    The C-Kermit file code was written in the days long before files longer
4249    than 2GB were supported or even contemplated in the operating systems
4250    where C-Kermit ran.
4251
4252    If uploads (or downloads) fail immediately, give the CAUTIOUS command
4253    to Kermit and try again. If they still fail, then try SET PREFIXING
4254    ALL. If they still fail, try SET PARITY SPACE. If they still fail, try
4255    ROBUST.
4256
4257    If reception (particularly of large files and/or binary files) begins
4258    successfully but then fail consistently after a certain amount of bytes
4259    have been sent, check:
4260
4261      * Your ulimit ("ulimit -a")
4262      * The amount of available space on the target disk ("df ." or "df -k
4263        .")
4264      * Your personal disk quota (platform- and site-dependent)
4265      * The maximum file size on the receiver's file system (e.g. 2GB in
4266        old versions the Linux VFS file system, and/or in applications that
4267        have not been recoded to use new "large file" APIs).
4268      * If it's an NFS-mounted disk (if so, try uploading to a local disk)
4269      * Is there an "idle limit" on the receiving end?
4270
4271    If none of these seem to explain it, then the problem is not size
4272    related, but reflects some clash between the file contents and the
4273    characteristics of the connection, in which case follow the
4274    instructions in the first paragraph of this section.
4275
4276    Suppose two copies of Kermit are receiving files into the same
4277    directory, and the files have the same name, e.g. "foo.bar". Whichever
4278    one starts first opens an output file called "foo.bar". The second one
4279    sees there is already a foo.bar file, and so renames the existing
4280    foo.bar to foo.bar.~1~ (or whatever). When the first file has been
4281    received completely, Kermit goes to change its modification time and
4282    permissions to those given by the file sender in the Attribute packet.
4283    But in Unix, the APIs for doing this take a filename, not a file
4284    descriptor. Since the first Kermit's file has been renamed, and the
4285    second Kermit is using the original name, the first Kermit changes the
4286    modtime and permissions of the second Kermit's file, not its own.
4287    Although there might be a way to work around this in the code, e.g.
4288    using inode numbers to keep track of which file is which, this would be
4289    tricky and most likely not very portable. It's better to set up your
4290    application to prevent such things from happening, which is easy enough
4291    using the script language, filename templates, etc.
4292
4293    Suppose you start C-Kermit with a command-line argument to send or
4294    receive a file (e.g. "kermit -r") and then type Ctrl-\c immediately
4295    afterwards to escape back and initiate the other end of the transfer,
4296    BUT your local Kermit's escape character is not Ctrl-\. In this case,
4297    the local Kermit passes the Ctrl-\ to the remote system, and if this is
4298    Unix, Ctrl-\ is likely to be its SIGQUIT character, which causes the
4299    current program to halt and dump core. Well, just about the first thing
4300    C-Kermit does when it starts is to disable the SIGQUIT signal. However,
4301    it is still possible for SIGQUIT to cause Kermit to quit and dump core
4302    if it is delivered while Kermit is being loaded or started, before the
4303    signal can be disabled. There's nothing Kermit itself can do about
4304    this, but you can prevent it from happening by disabling SIGQUIT in
4305    your Unix session. The command is usually something like:
4306
4307   stty quit undef
4308
4309    Unix C-Kermit does not reject incoming files on the basis of size.
4310    There appears to be no good (reliable, portable) way to determine in
4311    advance how much disk space is available, either on the device, or
4312    (when quotas or other limits are involved) to the user.
4313
4314    Unix C-Kermit discards all carriage returns from incoming files when in
4315    text mode.
4316
4317    If C-Kermit has problems creating files in writable directories when it
4318    is installed setuid or setgid on BSD-based versions of Unix such as
4319    NeXTSTEP 3.0, it probably needs to be rebuilt with the -DSW_ACC_ID
4320    compilation switch.
4321
4322    If you SET FILE DISPLAY FULLSCREEN, and C-Kermit complains "Sorry,
4323    terminal type not supported", it means that the terminal library
4324    (termcap or termlib) that C-Kermit was built with does not know about a
4325    terminal whose name is the current value of your TERM environment
4326    variable. If this happens, but you want to have the fullscreen file
4327    transfer display, EXIT from C-Kermit and set a Unix terminal type from
4328    among the supported values that is also supported by your terminal
4329    emulator, or else have an entry for your terminal type added to the
4330    system termcap and/or terminfo database.
4331
4332    If you attempt to suspend C-Kermit during local-mode file transfer and
4333    then continue it in the background (via bg), it will block for "tty
4334    output" if you are using the FULLSCREEN file transfer display. This is
4335    apparently a problem with curses. Moving a local-mode file transfer
4336    back and forth between foreground and background works correctly,
4337    however, with the SERIAL, CRT, BRIEF, or NONE file transfer displays.
4338
4339    If C-Kermit's command parser no longer echoes, or otherwise acts
4340    strangely, after returning from a file transfer with the fullscreen
4341    (curses) display, and the curses library for your version of Unix
4342    includes the newterm() function, then try rebuilding your version of
4343    C-Kermit with -DCK_NEWTERM. Similarly if it echoes doubly, which might
4344    even happen during a subsequent CONNECT session. If rebuilding with
4345    -DCK_NEWTERM doesn't fix it, then there is something very strange about
4346    your system's curses library, and you should probably not use it. Tell
4347    C-Kermit to SET FILE DISPLAY CRT, BRIEF, or anything else other than
4348    FULLSCREEN, and/or rebuild without -DCK_CURSES, and without linking
4349    with (termlib and) curses. Note: This problem seemed to have escalated
4350    in C-Kermit 7.0, and -DCK_NEWTERM had to be added to many builds that
4351    previously worked without it: Linux, AIX 4.1, DG/UX, etc. In the Linux
4352    case, it is obviously because of changes in the (n)curses library; the
4353    cause in the other cases is not known.
4354
4355    C-Kermit creates backup-file names (such as "oofa.txt.~1~") based on
4356    its knowledge of the maximum filename length on the platform where it
4357    is running, which is learned at compile time, based on MAXNAMLEN or
4358    equivalent symbols from the system header files. But suppose C-Kermit
4359    is receiving files on a Unix platform that supports long filenames, but
4360    the incoming files are being stored on an NFS-mounted file system that
4361    supports only short names. NFS maps the external system to the local
4362    APIs, so C-Kermit has no way of knowing that long names will be
4363    truncated. Or that C-Kermit is running on a version of Unix that
4364    supports both long-name and short-name file systems simultaneously
4365    (such as HP-UX 7.00). This can cause unexpected behavior when creating
4366    backup files, or worse. For example, you are sending a group of files
4367    whose names are differentiated only by characters past the point at
4368    which they would be truncated, each file will overwrite the previous
4369    one upon arrival.
4370
4371 11. EXTERNAL FILE TRANSFER PROTOCOLS
4372
4373    [ [588]Top ] [ [589]Contents ] [ [590]Next ] [ [591]Previous ]
4374
4375    SECTION CONTENTS
4376
4377   11.1. [592]C-Kermit as an External Protocol
4378   11.2. [593]Invoking External Protocols from C-Kermit
4379
4380    Unix C-Kermit can be used in conjunction with other communications
4381    software in various ways. C-Kermit can be invoked from another
4382    communications program as an "external protocol", and C-Kermit can also
4383    invoke other communication software to perform external protocols.
4384
4385    This sort of operation makes sense only when you are dialing out from
4386    your Unix system (or making a network connection from it). If the Unix
4387    system is the one you have dialed in to, you don't need any of these
4388    tricks. Just run the desired software on your Unix system instead of
4389    Kermit. When dialing out from a Unix system, the difficulty is getting
4390    two programs to share the same communication device in spite of the
4391    Unix UUCP lockfile mechanism, which would normally prevent any sharing,
4392    and preventing the external protocol from closing (and therefore
4393    hanging up) the device when it exits back to the program that invoked
4394    it.
4395
4396 11.1. C-KERMIT AS AN EXTERNAL PROTOCOL
4397
4398    [ [594]Top ] [ [595]Contents ] [ [596]Section Contents ] [ [597]Next ]
4399
4400    (This section deleted; see [598]Using C-Kermit, 2nd Ed, Chapter 14.)
4401
4402    "pcomm" is a general-purpose terminal program that provides file
4403    transfer capabilities itself (X- and YMODEM variations) and the ability
4404    to call on external programs to do file transfers (ZMODEM and Kermit,
4405    for example). You can tell pcomm the command to send or receive a file
4406    with an external protocol:
4407                         Send                            Receive
4408         ZMODEM          sz filename                     rz
4409         Kermit          kermit -s filename              kermit -r
4410
4411    pcomm runs external programs for file transfer by making stdin and
4412    stdout point to the modem port, and then exec-ing "/bin/sh -c xxx"
4413    (where xxx is the appropriate command). However, C-Kermit does not
4414    treat stdin and stdout as the communication device unless you instruct
4415    it:
4416
4417
4418                         Send                            Receive
4419         Kermit          kermit -l 0 -s filename         kermit -l 0 -r
4420
4421    The "-l 0" option means to use file descriptor 0 for the communication
4422    device.
4423
4424    In general, any program can pass any open file descriptor to C-Kermit
4425    for the communication device in the "-l" command-line option. When
4426    Kermit is given a number as the argument to the "-l" option, it simply
4427    uses it as a file descriptor, and it does not attempt to close it upon
4428    exit.
4429
4430    Here's another example, for Seyon (a Linux communication program).
4431    First try the technique above. If that works, fine; otherwise... If
4432    Seyon does not give you a way to access and pass along the file
4433    descriptor, but it starts up the Kermit program with its standard i/o
4434    redirected to its (Seyon's) communications file descriptor, you can
4435    also experiment with the following method, which worked here in brief
4436    tests on SunOS. Instead of having Seyon use "kermit -r" or "kermit -s
4437    filename" as its Kermit protocol commands, use something like this
4438    (examples assume C-Kermit 6.0):
4439
4440    For serial connections:
4441
4442   kermit -YqQl 0 -r                     <-- to receive
4443   kermit -YqQl 0 -s filename(s)         <-- to send one or more files
4444
4445    For Telnet connections:
4446
4447   kermit -YqQF 0 -r                     <-- to receive
4448   kermit -YqQF 0 -s filename(s)         <-- to send one or more files
4449
4450    Command line options:
4451
4452   Y    - skip executing the init file
4453   Q    - use fast file transfer settings (default in 8.0)
4454   l 0  - transfer files using file descriptor 0 for a serial connection
4455   F 0  - transfer files using file descriptor 0 for a Telnet connection
4456   q    - quiet - no messages
4457   r    - receive
4458   s    - send
4459
4460 11.2. INVOKING EXTERNAL PROTOCOLS FROM C-KERMIT
4461
4462    [ [599]Top ] [ [600]Contents ] [ [601]Section Contents ] [
4463    [602]Previous ]
4464
4465      (This section is obsolete, but not totally useless. See Chapter 14
4466      of [603]Using C-Kermit, 2nd Edition).
4467
4468    After you have opened a communication link with C-Kermit's SET LINE
4469    (SET PORT) or SET HOST (TELNET) command, C-Kermit makes its file
4470    descriptor available to you in the \v(ttyfd) variable so you can pass
4471    it along to other programs that you RUN from C-Kermit. Here, for
4472    example, C-Kermit runs itself as an external protocol:
4473
4474   C-Kermit>set modem type hayes
4475   C-Kermit>set line /dev/acu
4476   C-Kermit>set speed 2400
4477   C-Kermit>dial 7654321
4478    Call complete.
4479   C-Kermit>echo \v(ttyfd)
4480    3
4481   C-Kermit>run kermit -l \v(ttyfd)
4482
4483    Other programs that accept open file descriptors on the command line
4484    can be started in the same way.
4485
4486    You can also use your shell's i/o redirection facilities to assign
4487    C-Kermit's open file descriptor (ttyfd) to stdin or stdout. For
4488    example, old versions of the Unix ZMODEM programs, sz and rz, when
4489    invoked as external protocols, expect to find the communication device
4490    assigned to stdin and stdout with no option for specifying any other
4491    file descriptor on the sz or rz command line. However, you can still
4492    invoke sz and rz as exterior protocols from C-Kermit if your current
4493    shell ($SHELL variable) is ksh (the Korn shell) or bash (the
4494    Bourne-Again shell), which allows assignment of arbitrary file
4495    descriptors to stdin and stdout:
4496
4497   C-Kermit> run rz <&\v(ttyfd) >&\v(ttyfd)
4498
4499    or:
4500
4501   C-Kermit> run sz oofa.zip <&\v(ttyfd) >&\v(ttyfd)
4502
4503    In version 5A(190) and later, you can use C-Kermit's REDIRECT command,
4504    if it is available in your version of C-Kermit, to accomplish the same
4505    thing without going through the shell:
4506
4507   C-Kermit> redirect rz
4508
4509    or:
4510
4511   C-Kermit> redirect sz oofa.zip
4512
4513    A complete set of rz,sz,rb,sb,rx,sx macros for Unix C-Kermit is defined
4514    in the file ckurzsz.ini. It automatically chooses the best redirection
4515    method (but is redundant since C-Kermit 6.0, which now has built-in
4516    support for external protocols via its SET PROTOCOL command).
4517
4518    Note that external protocols can be used on C-Kermit SET LINE or SET
4519    HOST connections only if they operate through standard input and
4520    standard output. If they open their own connections, Kermit can't
4521    redirect them over its own connection.
4522
4523 12. SECURITY
4524
4525    [ [604]Top ] [ [605]Contents ] [ [606]Next ] [ [607]Previous ]
4526
4527    As of version 7.0, C-Kermit supports a wide range of security options
4528    for authentication and encryption: Kerberos 4, Kerberos 5 / GSSAPI,
4529    SSL/TLS, and SRP. See the separate [608]security document for details.
4530
4531 13. MISCELLANEOUS USER REPORTS
4532
4533    [ [609]Top ] [ [610]Contents ] [ [611]Next ] [ [612]Previous ]
4534
4535 Date: Thu, 12 Mar 92 1:59:25 MEZ
4536 From: Walter Mecky <walter@rent-a-guru.de>
4537 Subject: Help.Unix.sw
4538 To: svr4@pcsbst.pcs.com, source@usl.com
4539
4540 PRODUCT:        Unix
4541 RELEASE:        Dell SVR4 V2.1 (is USL V3.0)
4542 MACHINE:        AT-386
4543 PATHNAME:       /usr/lib/libc.so.1
4544                 /usr/ccs/lib/libc.a
4545 ABSTRACT:       Function ttyname() does not close its file descriptor
4546 DESCRIPTION:
4547         ttyname(3C) opens /dev but never closes it. So if it is called
4548         often enough the open(2) in ttyname() fails. Because the broken
4549         ttyname() is in the shared lib too all programs using it can
4550         fail if they call it often enough. One important program is
4551         uucico which calls ttyname for every file it transfers.
4552
4553
4554    Here is a little test program if your system has the bug:
4555
4556 #include <stdlib.h>
4557 #include <stdio.h>
4558 main() {
4559     int i = 0;
4560     while (ttyname(0) != NULL)
4561       i++;
4562     perror("ttyname");
4563     printf("i=%d\n", i);
4564 }
4565
4566    If this program runs longer than some seconds you don't have the bug.
4567
4568    WORKAROUND: None FIX: Very easy if you have source code.
4569
4570    Another user reports some more explicit symptoms and recoveries:
4571
4572 > What happens is when invoking ckermit we get one of the following
4573 > error messages:
4574 >   You must set line
4575 >   Not a tty
4576 >   No more processes.
4577 > One of the following three actions clears the problem:
4578 >   shutdown -y -g0 -i6
4579 >   kill -9 the ttymon with the highest PID
4580 >   Invoke sysadm and disable then enable the line you want to use.
4581 > Turning off respawn of sac -t 300 and going to getty's and uugetty's
4582 > does not help.
4583 >
4584 > Also C-Kermit reports "?timed out closing /dev/ttyxx".
4585 > If this happens all is well.
4586
4587 ------------------------------
4588
4589    (Note: the following problem also occurs on SGI and probably many other
4590    Unix systems):
4591
4592    From: James Spath <spath@jhunix.hcf.jhu.edu>
4593    To: Info-Kermit-Request@cunixf.cc.columbia.edu
4594    Date: Wed, 9 Sep 1992 20:20:28 -0400
4595    Subject: C-Kermit vs uugetty (or init) on Sperry 5000
4596
4597    We have successfully compiled the above release on a Unisys/Sperry
4598    5000/95. We used the sys5r3 option, rather than sys5r2 since we have
4599    VR3 running on our system. In order to allow dialout access to
4600    non-superusers, we had to do "chmod 666 /dev/tty###, where it had been
4601    -rw--w--w- (owned by uucp), and to do "chmod +w /usr/spool/locks". We
4602    have done text and binary file transfers through local and remote
4603    connections.
4604
4605    The problem concerning uucp ownership and permissions is worse than I
4606    thought at first. Apparently init or uugetty changes the file
4607    permissions after each session. So I wrote the following C program to
4608    open a set of requested tty lines. I run this for any required outgoing
4609    line prior to a Kermit session.
4610
4611    ------ cut here -------
4612 /* opentty.c -- force allow read on tty lines for modem i/o */
4613 /* idea from: restrict.c -- System 5 Admin book Thomas/Farrow p. 605 */
4614 /* /jes jim spath {spath@jhunix.hcj.jhu.edu } */
4615 /* 08-Sep-92 NO COPYRIGHT. */
4616 /* this must be suid to open other tty lines */
4617
4618 /* #define DEBUG */
4619 #define TTY "/dev/tty"
4620 #define LOK "/usr/spool/locks/LCK..tty"
4621 #include <stdio.h>
4622
4623 /* allowable lines: */
4624 #define TOTAL_LINES 3
4625 static char allowable[TOTAL_LINES][4] = { "200", "201", "300" };
4626 static int total=TOTAL_LINES;
4627 int allow;
4628
4629 /* states: */
4630 #define TTY_UNDEF 0
4631 #define TTY_LOCK  1
4632 #define TTY_OKAY  2
4633
4634 main(argc, argv)
4635 int argc; char *argv[]; {
4636     char device[512];
4637     char lockdev[512];
4638     int i;
4639     if (argc == 1) {
4640         fprintf(stderr, "usage: open 200 [...]\n");
4641     }
4642     while (--argc > 0 && (*++argv) != NULL ) {
4643 #ifdef DEBUG
4644         fprintf(stderr, "TRYING: %s%s\n", TTY, *argv);
4645 #endif
4646         sprintf(device, "%s%s", TTY, *argv);
4647         sprintf(lockdev, "%s%s", LOK, *argv);
4648         allow = TTY_UNDEF; i = 0;
4649         while (i <= total) { /* look at all defined lines */
4650 #ifdef DEBUG
4651             fprintf(stderr, "LOCKFILE? %s?\n", lockdev);
4652 #endif
4653             if (access(lockdev, 00) == 0) {
4654                 allow=TTY_LOCK;
4655                 break;
4656             }
4657 #ifdef DEBUG
4658             fprintf(stderr, "DOES:%s==%s?\n", allowable[i], *argv);
4659 #endif
4660             if (strcmp(allowable[i], *argv) == 0)
4661               allow=TTY_OKAY;
4662             i++;
4663         }
4664 #ifdef DEBUG
4665         fprintf(stderr, "allow=%d\n", allow);
4666 #endif
4667         switch (allow) {
4668           case TTY_UNDEF:
4669             fprintf (stderr, "open: not allowed on %s\n", *argv);
4670             break;
4671           case TTY_LOCK:
4672             fprintf (stderr, "open: device locked: %s\n", lockdev);
4673             break;
4674           case TTY_OKAY:
4675             /* attempt to change mode on device */
4676             if (chmod (device, 00666) < 0)
4677               fprintf (stderr, "open: cannot chmod on %s\n", device);
4678             break;
4679           default:
4680             fprintf (stderr, "open: FAULT\n");
4681         }
4682     }
4683     exit (0);
4684 }
4685
4686 14. THIRD-PARTY DRIVERS
4687
4688    [ [613]Top ] [ [614]Contents ] [ [615]Next ] [ [616]Previous ]
4689
4690    Unix versions, especially those for PCs (SCO, Unixware, etc) might be
4691    augmented by third-party communication-board drivers from Digiboard,
4692    Stallion, etc. These can sometimes complicate matters for Kermit
4693    considerably since Kermit has no way of knowing that it is going
4694    through a possibly nonstandard driver. Various examples are listed in
4695    the earlier sections of this document; search for Stallion, Digiboard,
4696    etc. Additionally:
4697
4698      * The Stallion Technologies EasyConnection serial board driver does
4699        not always report the state of DSR as low. From Stallion (October
4700        1997): "Unfortunately, this is a bug in our driver. We have
4701        implemented all of the other TIOMC functions, eg DTR, DCD, RTS and
4702        CTS, but not DSR. Our driver should report the actual state of DSR
4703        on those of our cards that have a DSR signal. That the driver
4704        always reports DSR as not asserted (0), is a bug in the driver. The
4705        driver should be either reporting the state of DSR correctly on
4706        those cards that support DSR or as always asserted (1) on those
4707        cards that do not have a DSR signal. This will be fixed in a future
4708        version of our drivers; at this time I cannot say when this will
4709        be." And later, "As far as I can tell, we don't support the
4710        termios/termiox ioctls that relate specifically to DSR and RI; all
4711        the rest are supported. This will, as I mentioned earlier, be fixed
4712        in the next release of our ATA software."
4713        - World Wide Escalation Support, Stallion Technologies, Toowong
4714        QLD, [617]support@stallion.oz.au.
4715
4716    Later (December 1997, from the same source):
4717
4718      * We have now released a new version of the ATA software, version
4719        5.4.0. This version fixes the problem with the states of the DSR
4720        and RI signals and how they were being reported by the driver. This
4721        is the problem that you reported in October. The DSR signal is
4722        reported correctly on those cards that support the DSR signal, such
4723        as the early revision of the EasyIO card and the EasyConnection 8D4
4724        panel, and as always asserted on those cards that do not support
4725        the DSR signal in the hardware. The new driver is available from
4726        our Web site, [618]www.stallion.com, in the /drivers/ata5/UnixWare
4727        directory.
4728
4729    [ [619]Top ] [ [620]Contents ] [ [621]C-Kermit Home ] [ [622]C-Kermit
4730    8.0 Overview ] [ [623]Kermit Home ]
4731      __________________________________________________________________
4732
4733      C-Kermit 8.0 Unix Hints and Tips / [624]The Kermit Project /
4734    [625]Columbia University / [626]kermit@columbia.edu
4735
4736 References
4737
4738    1. http://www.columbia.edu/
4739    2. mailto:kermit@columbia.edu
4740    3. http://www.columbia.edu/kermit/index.html
4741    4. http://www.columbia.edu/kermit/k95.html
4742    5. http://www.columbia.edu/kermit/ckermit.html
4743    6. http://www.columbia.edu/kermit/ckscripts.html
4744    7. http://www.columbia.edu/kermit/current.html
4745    8. http://www.columbia.edu/kermit/whatsnew.html
4746    9. http://www.columbia.edu/kermit/faq.html
4747   10. http://www.columbia.edu/kermit/support.html
4748   11. http://www.columbia.edu/kermit/
4749   12. http://www.columbia.edu/
4750   13. http://www.columbia.edu/kermit/ckubwr.html
4751   14. http://www.columbia.edu/kermit/ckdaily.html
4752   15. http://www.columbia.edu/kermit/ckdaily.html
4753   16. http://www.columbia.edu/kermit/ckdaily.html
4754   17. http://www.columbia.edu/kermit/ckermit.html
4755   18. http://www.columbia.edu/kermit/ckuins.html
4756   19. http://www.columbia.edu/kermit/ckututor.html
4757   20. http://www.columbia.edu/kermit/ckubwr.html#x1
4758   21. http://www.columbia.edu/kermit/ckubwr.html#x2
4759   22. http://www.columbia.edu/kermit/ckubwr.html#x3
4760   23. http://www.columbia.edu/kermit/ckubwr.html#x4
4761   24. http://www.columbia.edu/kermit/ckubwr.html#x5
4762   25. http://www.columbia.edu/kermit/ckubwr.html#x6
4763   26. http://www.columbia.edu/kermit/ckubwr.html#x7
4764   27. http://www.columbia.edu/kermit/ckubwr.html#x8
4765   28. http://www.columbia.edu/kermit/ckubwr.html#x9
4766   29. http://www.columbia.edu/kermit/ckubwr.html#x10
4767   30. http://www.columbia.edu/kermit/ckubwr.html#x11
4768   31. http://www.columbia.edu/kermit/ckubwr.html#x12
4769   32. http://www.columbia.edu/kermit/ckubwr.html#x13
4770   33. http://www.columbia.edu/kermit/ckubwr.html#x14
4771   34. http://www.columbia.edu/kermit/ckubwr.html#x3.3
4772   35. http://www.columbia.edu/kermit/ckubwr.html#x3.18
4773   36. http://www.columbia.edu/kermit/ckubwr.html#x3.19
4774   37. http://www.columbia.edu/kermit/ckubwr.html#x3.1
4775   38. http://www.columbia.edu/kermit/ckubwr.html#x3.2
4776   39. http://www.columbia.edu/kermit/ckubwr.html#x3.7
4777   40. http://www.columbia.edu/kermit/ckubwr.html#x3.6
4778   41. http://www.columbia.edu/kermit/ckubwr.html#top
4779   42. http://www.columbia.edu/kermit/ckubwr.html#contents
4780   43. http://www.columbia.edu/kermit/ckubwr.html#x2
4781   44. http://www.columbia.edu/kermit/ckubwr.html#x1.1
4782   45. http://www.columbia.edu/kermit/ckubwr.html#x1.2
4783   46. http://www.columbia.edu/kermit/ckubwr.html#x1.3
4784   47. http://www.columbia.edu/kermit/ckubwr.html#x1.4
4785   48. http://www.columbia.edu/kermit/ckubwr.html#x3.3
4786   49. http://www.columbia.edu/kermit/ckubwr.html#x3.1
4787   50. http://www.columbia.edu/kermit/ckubwr.html#x3.2
4788   51. http://www.columbia.edu/kermit/ckubwr.html#x3.7
4789   52. http://www.columbia.edu/kermit/ckcbwr.html
4790   53. mailto:kermit-support@columbia.edu
4791   54. http://www.columbia.edu/kermit/ckubwr.html#top
4792   55. http://www.columbia.edu/kermit/ckubwr.html#contents
4793   56. http://www.columbia.edu/kermit/ckubwr.html#x1.2
4794   57. http://www.columbia.edu/kermit/ck60manual.html
4795   58. http://www.columbia.edu/kermit/ckermit70.html
4796   59. http://www.columbia.edu/kermit/ckermit80.html
4797   60. http://www.columbia.edu/kermit/ckermit90.html
4798   61. http://www.columbia.edu/kermit/ckubwr.html#top
4799   62. http://www.columbia.edu/kermit/ckubwr.html#contents
4800   63. http://www.columbia.edu/kermit/ckubwr.html#x1
4801   64. http://www.columbia.edu/kermit/ckubwr.html#x1.3
4802   65. http://www.columbia.edu/kermit/ckubwr.html#x1.1
4803   66. http://www.columbia.edu/kermit/support.html
4804   67. http://www.columbia.edu/kermit/ckubwr.html#top
4805   68. http://www.columbia.edu/kermit/ckubwr.html#contents
4806   69. http://www.columbia.edu/kermit/ckubwr.html#x1
4807   70. http://www.columbia.edu/kermit/ckubwr.html#x1.4
4808   71. http://www.columbia.edu/kermit/ckubwr.html#x1.2
4809   72. http://www.columbia.edu/kermit/ckubwr.html#top
4810   73. http://www.columbia.edu/kermit/ckubwr.html#contents
4811   74. http://www.columbia.edu/kermit/ckubwr.html#x1
4812   75. http://www.columbia.edu/kermit/ckubwr.html#x1.3
4813   76. http://www.columbia.edu/kermit/ckubwr.html#top
4814   77. http://www.columbia.edu/kermit/ckubwr.html#contents
4815   78. http://www.columbia.edu/kermit/ckubwr.html#x3
4816   79. http://www.columbia.edu/kermit/ckubwr.html#x1
4817   80. http://www.columbia.edu/kermit/ckubwr.html#top
4818   81. http://www.columbia.edu/kermit/ckubwr.html#contents
4819   82. http://www.columbia.edu/kermit/ckubwr.html#x4
4820   83. http://www.columbia.edu/kermit/ckubwr.html#x2
4821   84. http://www.columbia.edu/kermit/ckubwr.html#x3.0
4822   85. http://www.columbia.edu/kermit/ckubwr.html#x3.1
4823   86. http://www.columbia.edu/kermit/ckubwr.html#x3.2
4824   87. http://www.columbia.edu/kermit/ckubwr.html#x3.3
4825   88. http://www.columbia.edu/kermit/ckubwr.html#x3.4
4826   89. http://www.columbia.edu/kermit/ckubwr.html#x3.5
4827   90. http://www.columbia.edu/kermit/ckubwr.html#x3.6
4828   91. http://www.columbia.edu/kermit/ckubwr.html#x3.7
4829   92. http://www.columbia.edu/kermit/ckubwr.html#x3.8
4830   93. http://www.columbia.edu/kermit/ckubwr.html#x3.9
4831   94. http://www.columbia.edu/kermit/ckubwr.html#x3.10
4832   95. http://www.columbia.edu/kermit/ckubwr.html#x3.11
4833   96. http://www.columbia.edu/kermit/ckubwr.html#x3.12
4834   97. http://www.columbia.edu/kermit/ckubwr.html#x3.13
4835   98. http://www.columbia.edu/kermit/ckubwr.html#x3.14
4836   99. http://www.columbia.edu/kermit/ckubwr.html#x3.15
4837  100. http://www.columbia.edu/kermit/ckubwr.html#x3.16
4838  101. http://www.columbia.edu/kermit/ckubwr.html#x3.17
4839  102. http://www.columbia.edu/kermit/ckubwr.html#x3.18
4840  103. http://www.columbia.edu/kermit/ckubwr.html#x3.19
4841  104. http://www.columbia.edu/kermit/ckubwr.html#x3.20
4842  105. http://www.faqs.org/
4843  106. http://aplawrence.com/Unixart/newtounix.html
4844  107. http://www.columbia.edu/kermit/ckubwr.html#x3
4845  108. mailto:kermit-support@columbia.edu
4846  109. http://www.columbia.edu/kermit/support.html
4847  110. http://www.columbia.edu/kermit/ckubwr.html#top
4848  111. http://www.columbia.edu/kermit/ckubwr.html#contents
4849  112. http://www.columbia.edu/kermit/ckubwr.html#x3
4850  113. http://www.columbia.edu/kermit/ckubwr.html#x3.1
4851  114. http://www.pcunix.com/
4852  115. http://www.columbia.edu/kermit/ckubwr.html#x3.0.1
4853  116. http://www.columbia.edu/kermit/ckubwr.html#x3.0.2
4854  117. http://www.columbia.edu/kermit/ckubwr.html#x3.0.3
4855  118. http://www.columbia.edu/kermit/ckubwr.html#x3.0.4
4856  119. http://www.columbia.edu/kermit/ckubwr.html#x3.0.5
4857  120. http://www.columbia.edu/kermit/ckubwr.html#x3.0.6
4858  121. http://www.columbia.edu/kermit/ckubwr.html#top
4859  122. http://www.columbia.edu/kermit/ckubwr.html#contents
4860  123. http://www.columbia.edu/kermit/ckubwr.html#x3.0
4861  124. http://www.columbia.edu/kermit/ckubwr.html#x3.0.2
4862  125. http://www.columbia.edu/kermit/ckubwr.html#top
4863  126. http://www.columbia.edu/kermit/ckubwr.html#contents
4864  127. http://www.columbia.edu/kermit/ckubwr.html#x3.0
4865  128. http://www.columbia.edu/kermit/ckubwr.html#x3.0.3
4866  129. http://www.columbia.edu/kermit/ckubwr.html#x3.0.1
4867  130. http://www.linmodems.org/
4868  131. http://www.microsoft.com/hwdev/platform/PCdesign/LR/default.asp
4869  132. http://www.columbia.edu/kermit/ckubwr.html#top
4870  133. http://www.columbia.edu/kermit/ckubwr.html#contents
4871  134. http://www.columbia.edu/kermit/ckubwr.html#x3.0
4872  135. http://www.columbia.edu/kermit/ckubwr.html#x3.0.4
4873  136. http://www.columbia.edu/kermit/ckubwr.html#x3.0.2
4874  137. http://www.idir.net/~gromitkc/winmodem.html
4875  138. http://www.digi.com/
4876  139. http://www.columbia.edu/kermit/ckubwr.html#top
4877  140. http://www.columbia.edu/kermit/ckubwr.html#contents
4878  141. http://www.columbia.edu/kermit/ckubwr.html#x3.0
4879  142. http://www.columbia.edu/kermit/ckubwr.html#x3.0.5
4880  143. http://www.columbia.edu/kermit/ckubwr.html#x3.0.3
4881  144. http://www.columbia.edu/kermit/ckubwr.html#top
4882  145. http://www.columbia.edu/kermit/ckubwr.html#contents
4883  146. http://www.columbia.edu/kermit/ckubwr.html#x3.0
4884  147. http://www.columbia.edu/kermit/ckubwr.html#x3.0.6
4885  148. http://www.columbia.edu/kermit/ckubwr.html#x3.0.4
4886  149. http://www.columbia.edu/kermit/ckubwr.html#top
4887  150. http://www.columbia.edu/kermit/ckubwr.html#contents
4888  151. http://www.columbia.edu/kermit/ckubwr.html#x3.0
4889  152. http://www.columbia.edu/kermit/ckubwr.html#x3.0.5
4890  153. http://www.columbia.edu/kermit/ckubwr.html#top
4891  154. http://www.columbia.edu/kermit/ckubwr.html#contents
4892  155. http://www.columbia.edu/kermit/ckubwr.html#x3
4893  156. http://www.columbia.edu/kermit/ckubwr.html#x3.2
4894  157. http://www.columbia.edu/kermit/ckubwr.html#x3.0
4895  158. http://www.columbia.edu/kermit/ckubwr.html#x3.1.1
4896  159. http://www.columbia.edu/kermit/ckubwr.html#x3.1.2
4897  160. http://www.columbia.edu/kermit/ckubwr.html#x3.1.3
4898  161. http://www.columbia.edu/kermit/ckubwr.html#x3.1.4
4899  162. http://www.columbia.edu/kermit/ckubwr.html#x3.1.5
4900  163. http://www.emerson.emory.edu/services/aix-faq/
4901  164. http://www.faqs.org/faqs/by-newsgroup/comp/comp.unix.aix.html
4902  165. http://www.cis.ohio-state.edu/hypertext/faq/usenet/aix-faq/top.html
4903  166. http://aixpdslib.seas.ucla.edu/
4904  167. http://www.rootvg.net(AIXhistory)/
4905  168. ftp://rtfm.mit.edu/pub/usenet/news.answers/aix-faq/part1
4906  169. ftp://mirrors.aol.com/pub/rtfm/usenet-by-hierarchy/comp/unix/aix
4907  170. news:comp.unix.aix
4908  171. http://www.columbia.edu/kermit/ckubwr.html#top
4909  172. http://www.columbia.edu/kermit/ckubwr.html#contents
4910  173. http://www.columbia.edu/kermit/ckubwr.html#x3.1
4911  174. http://www.columbia.edu/kermit/ckubwr.html#x3.1.2
4912  175. http://www.columbia.edu/kermit/ckubwr.html#top
4913  176. http://www.columbia.edu/kermit/ckubwr.html#contents
4914  177. http://www.columbia.edu/kermit/ckubwr.html#x3.1
4915  178. http://www.columbia.edu/kermit/ckubwr.html#x3.1.3
4916  179. http://www.columbia.edu/kermit/ckubwr.html#x3.1.1
4917  180. http://www.columbia.edu/kermit/security.html#servers
4918  181. http://www.columbia.edu/kermit/ckubwr.html#top
4919  182. http://www.columbia.edu/kermit/ckubwr.html#contents
4920  183. http://www.columbia.edu/kermit/ckubwr.html#x3.1
4921  184. http://www.columbia.edu/kermit/ckubwr.html#x3.1.4
4922  185. http://www.columbia.edu/kermit/ckubwr.html#x3.1.2
4923  186. http://service.software.ibm.com/rs6000/
4924  187. http://www.columbia.edu/kermit/ckubwr.html#top
4925  188. http://www.columbia.edu/kermit/ckubwr.html#contents
4926  189. http://www.columbia.edu/kermit/ckubwr.html#x3.1
4927  190. http://www.columbia.edu/kermit/ckubwr.html#x3.1.5
4928  191. http://www.columbia.edu/kermit/ckubwr.html#x3.1.3
4929  192. http://www.columbia.edu/kermit/ckubwr.html#top
4930  193. http://www.columbia.edu/kermit/ckubwr.html#contents
4931  194. http://www.columbia.edu/kermit/ckubwr.html#x3.1
4932  195. http://www.columbia.edu/kermit/ckubwr.html#x3.1.4
4933  196. http://www.columbia.edu/kermit/ckubwr.html#top
4934  197. http://www.columbia.edu/kermit/ckubwr.html#contents
4935  198. http://www.columbia.edu/kermit/ckubwr.html#x3
4936  199. http://www.columbia.edu/kermit/ckubwr.html#x3.3
4937  200. http://www.columbia.edu/kermit/ckubwr.html#x3.1
4938  201. http://www.columbia.edu/kermit/ckubwr.html#x3.2.0
4939  202. http://www.columbia.edu/kermit/ckubwr.html#x3.2.1
4940  203. http://www.columbia.edu/kermit/ckubwr.html#x3.2.2
4941  204. http://www.columbia.edu/kermit/ckubwr.html#x3.2.3
4942  205. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4
4943  206. http://www.columbia.edu/kermit/ckubwr.html#x3.2.5
4944  207. news:comp.sys.hp.hpux
4945  208. http://www.columbia.edu/kermit/ckubwr.html#top
4946  209. http://www.columbia.edu/kermit/ckubwr.html#contents
4947  210. http://www.columbia.edu/kermit/ckubwr.html#x3.2
4948  211. http://www.columbia.edu/kermit/ckubwr.html#x3.2.1
4949  212. http://www.columbia.edu/kermit/ckubwr.html#top
4950  213. http://www.columbia.edu/kermit/ckubwr.html#contents
4951  214. http://www.columbia.edu/kermit/ckubwr.html#x3.2
4952  215. http://www.columbia.edu/kermit/ckubwr.html#x3.2.2
4953  216. http://www.columbia.edu/kermit/ckubwr.html#x3.2.0
4954  217. ftp://kermit.columbia.edu/kermit/f/makefile
4955  218. http://www.columbia.edu/kermit/ckubwr.html#top
4956  219. http://www.columbia.edu/kermit/ckubwr.html#contents
4957  220. http://www.columbia.edu/kermit/ckubwr.html#x3.2
4958  221. http://www.columbia.edu/kermit/ckubwr.html#x3.2.3
4959  222. http://www.columbia.edu/kermit/ckubwr.html#x3.2.1
4960  223. http://www.columbia.edu/kermit/ckubwr.html#top
4961  224. http://www.columbia.edu/kermit/ckubwr.html#contents
4962  225. http://www.columbia.edu/kermit/ckubwr.html#x3.2
4963  226. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4
4964  227. http://www.columbia.edu/kermit/ckubwr.html#x3.2.2
4965  228. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.1
4966  229. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.2
4967  230. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.3
4968  231. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.4
4969  232. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.5
4970  233. http://www.columbia.edu/kermit/ckubwr.html#top
4971  234. http://www.columbia.edu/kermit/ckubwr.html#contents
4972  235. http://www.columbia.edu/kermit/ckubwr.html#x3.2
4973  236. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.2
4974  237. http://www.columbia.edu/kermit/ckubwr.html#x3.2.2
4975  238. http://www.columbia.edu/kermit/ckubwr.html#top
4976  239. http://www.columbia.edu/kermit/ckubwr.html#contents
4977  240. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4
4978  241. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.3
4979  242. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.1
4980  243. http://www.columbia.edu/kermit/ckubwr.html#top
4981  244. http://www.columbia.edu/kermit/ckubwr.html#contents
4982  245. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4
4983  246. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.4
4984  247. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.2
4985  248. http://www.columbia.edu/kermit/ckubwr.html#top
4986  249. http://www.columbia.edu/kermit/ckubwr.html#contents
4987  250. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4
4988  251. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.5
4989  252. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.3
4990  253. http://www.columbia.edu/kermit/ckubwr.html#top
4991  254. http://www.columbia.edu/kermit/ckubwr.html#contents
4992  255. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4
4993  256. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.4
4994  257. http://www.columbia.edu/kermit/ckubwr.html#top
4995  258. http://www.columbia.edu/kermit/ckubwr.html#contents
4996  259. http://www.columbia.edu/kermit/ckubwr.html#x3.2
4997  260. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4
4998  261. http://www.columbia.edu/kermit/ckubwr.html#top
4999  262. http://www.columbia.edu/kermit/ckubwr.html#contents
5000  263. http://www.columbia.edu/kermit/ckubwr.html#x3
5001  264. http://www.columbia.edu/kermit/ckubwr.html#x3.4
5002  265. http://www.columbia.edu/kermit/ckubwr.html#x3.2
5003  266. http://www.columbia.edu/kermit/ckubwr.html#x3.3.1
5004  267. http://www.columbia.edu/kermit/ckubwr.html#x3.3.2
5005  268. http://www.columbia.edu/kermit/ckubwr.html#x3.3.3
5006  269. http://www.columbia.edu/kermit/ckubwr.html#x3.3.4
5007  270. http://www.columbia.edu/kermit/ckubwr.html#x3.3.5
5008  271. http://www.columbia.edu/kermit/ckubwr.html#x3.3.6
5009  272. http://en.wikipedia.org/wiki/Avahi_(software)
5010  273. news:comp.os.linux.misc
5011  274. news:comp.os.linux.answers
5012  275. http://www.tldp.org/
5013  276. http://www.tldp.org/FAQ/Linux-FAQ.html
5014  277. http://www.tldp.org/HOWTO/Serial-HOWTO.html
5015  278. http://tldp.org/HOWTO/Modem-HOWTO.html
5016  279. ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO
5017  280. ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO
5018  281. http://www.tldp.org/HOWTO/
5019  282. http://www.tldp.org/hmirrors.html
5020  283. http://www.redhat.com/apps/support/
5021  284. http://www.debian.org/support
5022  285. http://www.slackware.com/support/
5023  286. http://www.caldera.com/support/
5024  287. http://www.novell.com/support/microsites/microsite.do
5025  288. http://www.mandrake.com/support/
5026  289. http://www.turbolinux.com/support/
5027  290. http://www.linmodems.org/
5028  291. http://www.columbia.edu/kermit/ckubwr.html#x3.0
5029  292. http://linux.dreamtime.org/decnet/
5030  293. mailto:kermit-support@columbia.edu
5031  294. http://www.linmodems.org/
5032  295. http://www.columbia.edu/kermit/ckubwr.html#x3.0.2
5033  296. http://www.columbia.edu/kermit/security.html#servers
5034  297. http://www.columbia.edu/kermit/sshclient.html
5035  298. http://www.columbia.edu/kermit/ckubwr.html#top
5036  299. http://www.columbia.edu/kermit/ckubwr.html#contents
5037  300. http://www.columbia.edu/kermit/ckubwr.html#x3
5038  301. http://www.columbia.edu/kermit/ckubwr.html#x3.3.2
5039  302. http://www.columbia.edu/kermit/ckubwr.html#top
5040  303. http://www.columbia.edu/kermit/ckubwr.html#contents
5041  304. http://www.columbia.edu/kermit/ckubwr.html#x3.3
5042  305. http://www.columbia.edu/kermit/ckubwr.html#x3.3.3
5043  306. http://www.columbia.edu/kermit/ckubwr.html#x3.3.1
5044  307. http://www.columbia.edu/kermit/ckubwr.html#x3.0
5045  308. http://www.columbia.edu/kermit/ckubwr.html#x6
5046  309. http://www.columbia.edu/kermit/ckubwr.html#x7
5047  310. http://www.columbia.edu/kermit/ckubwr.html#x8
5048  311. http://www.columbia.edu/kermit/ckuins.html#x10
5049  312. http://www.columbia.edu/kermit/ckuins.html#x11
5050  313. http://www.columbia.edu/kermit/ckuins.html
5051  314. http://www.columbia.edu/kermit/ckubwr.html#x3.0
5052  315. http://linuxwww.db.erau.edu/mail_archives/linux-kernel/Mar_98/1441.html
5053  316. http://www.columbia.edu/kermit/ckubwr.html#top
5054  317. http://www.columbia.edu/kermit/ckubwr.html#contents
5055  318. http://www.columbia.edu/kermit/ckubwr.html#x3.3
5056  319. http://www.columbia.edu/kermit/ckubwr.html#x3.3.4
5057  320. http://www.columbia.edu/kermit/ckubwr.html#x3.3.2
5058  321. http://www.columbia.edu/kermit/ckubwr.html#x3.0.5
5059  322. http://www.columbia.edu/kermit/ckfaq.html#term
5060  323. http://dickey.his.com/xterm/xterm.html
5061  324. http://dickey.his.com/xterm/xterm.html
5062  325. ftp://kermit.columbia.edu/kermit/f/xmodmap.txt
5063  326. http://www.columbia.edu/kermit/ckubwr.html#top
5064  327. http://www.columbia.edu/kermit/ckubwr.html#contents
5065  328. http://www.columbia.edu/kermit/ckubwr.html#x3.3
5066  329. http://www.columbia.edu/kermit/ckubwr.html#x3.3.5
5067  330. http://www.columbia.edu/kermit/ckubwr.html#x3.3.3
5068  331. http://www.columbia.edu/kermit/ckubwr.html#top
5069  332. http://www.columbia.edu/kermit/ckubwr.html#contents
5070  333. http://www.columbia.edu/kermit/ckubwr.html#x3.3
5071  334. http://www.columbia.edu/kermit/ckubwr.html#x3.3.6
5072  335. http://www.columbia.edu/kermit/ckubwr.html#x3.3.4
5073  336. http://www.columbia.edu/kermit/ckermit.html
5074  337. mailto:kermit-support@columbia.edu
5075  338. http://www.redhat.com/support/errata/RHBA-2001-153.html
5076  339. news:comp.protocols.kermit.misc
5077  340. http://www.columbia.edu/kermit/ckubwr.html#top
5078  341. http://www.columbia.edu/kermit/ckubwr.html#contents
5079  342. http://www.columbia.edu/kermit/ckubwr.html#x3.3
5080  343. http://www.columbia.edu/kermit/ckubwr.html#x3.3.5
5081  344. http://www.columbia.edu/kermit/ckubwr.html#top
5082  345. http://www.columbia.edu/kermit/ckubwr.html#contents
5083  346. http://www.columbia.edu/kermit/ckubwr.html#x3
5084  347. http://www.columbia.edu/kermit/ckubwr.html#x3.5
5085  348. http://www.columbia.edu/kermit/ckubwr.html#x3.3
5086  349. http://www.columbia.edu/kermit/ckubwr.html#top
5087  350. http://www.columbia.edu/kermit/ckubwr.html#contents
5088  351. http://www.columbia.edu/kermit/ckubwr.html#x3
5089  352. http://www.columbia.edu/kermit/ckubwr.html#x3.6
5090  353. http://www.columbia.edu/kermit/ckubwr.html#x3.4
5091  354. news:comp.os.qnx
5092  355. http://www.columbia.edu/kermit/gkermit.html
5093  356. http://www.columbia.edu/kermit/ckuins.html#x10
5094  357. http://www.columbia.edu/kermit/ckuins.html
5095  358. http://www.columbia.edu/kermit/ckubwr.html#top
5096  359. http://www.columbia.edu/kermit/ckubwr.html#contents
5097  360. http://www.columbia.edu/kermit/ckubwr.html#x3
5098  361. http://www.columbia.edu/kermit/ckubwr.html#x3.7
5099  362. http://www.columbia.edu/kermit/ckubwr.html#x3.5
5100  363. http://www.columbia.edu/kermit/ckubwr.html#x3.6.1
5101  364. http://www.columbia.edu/kermit/ckubwr.html#x3.6.2
5102  365. http://www.columbia.edu/kermit/ckubwr.html#x3.6.3
5103  366. http://www.columbia.edu/kermit/ckubwr.html#x3.6.4
5104  367. http://www.columbia.edu/kermit/ckubwr.html#x3.10
5105  368. http://aplawrence.com/SCOFAQ/
5106  369. http://www.zenez.com/cgi-bin/scoprogfaq/faq.pl
5107  370. http://www.zenez.com/cgi-bin/scouw7faq/faq.pl
5108  371. http://zenez.pcunix.com/cgi-bin/scouw7faq/faq.pl
5109  372. http://pcunix.com/Unixart/modems.html
5110  373. http://www.freebird.org/faq/
5111  374. http://www.freebird.org/faq/developer.html
5112  375. http://support.caldera.com/caldera
5113  376. http://stage.caldera.com/ta/
5114  377. http://aplawrence.com/newtosco.html
5115  378. http://www.columbia.edu/kermit/ckubwr.html#x3.0.5
5116  379. http://www.columbia.edu/kermit/ckfaq.html#term
5117  380. http://www.columbia.edu/kermit/ckubwr.html#x3.0
5118  381. http://www.columbia.edu/kermit/ckubwr.html#top
5119  382. http://www.columbia.edu/kermit/ckubwr.html#contents
5120  383. http://www.columbia.edu/kermit/ckubwr.html#x3.6
5121  384. http://www.columbia.edu/kermit/ckubwr.html#x3.6.1
5122  385. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
5123  386. http://www.columbia.edu/kermit/ckubwr.html#top
5124  387. http://www.columbia.edu/kermit/ckubwr.html#contents
5125  388. http://www.columbia.edu/kermit/ckubwr.html#x3.6
5126  389. http://www.columbia.edu/kermit/ckubwr.html#x3.6.3
5127  390. http://www.columbia.edu/kermit/ckubwr.html#x3.6.1
5128  391. http://www.digi.com/
5129  392. ftp://ftp.fu-berlin.de/pub/unix/driver/fas
5130  393. http://www.columbia.edu/kermit/ckubwr.html#x14
5131  394. http://www.sco.com/
5132  395. ftp://ftp.sco.com/
5133  396. http://www.columbia.edu/kermit/ckubwr.html#top
5134  397. http://www.columbia.edu/kermit/ckubwr.html#contents
5135  398. http://www.columbia.edu/kermit/ckubwr.html#x3.6
5136  399. http://www.columbia.edu/kermit/ckubwr.html#x3.6.4
5137  400. http://www.columbia.edu/kermit/ckubwr.html#x3.6.2
5138  401. http://www.columbia.edu/kermit/ckubwr.html#x3.10
5139  402. http://www.columbia.edu/kermit/ckubwr.html#top
5140  403. http://www.columbia.edu/kermit/ckubwr.html#contents
5141  404. http://www.columbia.edu/kermit/ckubwr.html#x3.6
5142  405. http://www.columbia.edu/kermit/ckubwr.html#x3.6.3
5143  406. http://www.columbia.edu/kermit/ckubwr.html#top
5144  407. http://www.columbia.edu/kermit/ckubwr.html#contents
5145  408. http://www.columbia.edu/kermit/ckubwr.html#x3
5146  409. http://www.columbia.edu/kermit/ckubwr.html#x3.8
5147  410. http://www.columbia.edu/kermit/ckubwr.html#x3.6
5148  411. http://www.columbia.edu/kermit/ckubwr.html#x3.7.1
5149  412. http://www.columbia.edu/kermit/ckubwr.html#x3.7.2
5150  413. http://www.columbia.edu/kermit/ckubwr.html#x3.7.3
5151  414. http://www.columbia.edu/kermit/ckubwr.html#x3.7.4
5152  415. http://www.columbia.edu/kermit/ckubwr.html#x3.7.5
5153  416. news:comp.unix.solaris
5154  417. http://access1.sun.com/
5155  418. http://docs.sun.com/
5156  419. http://www.sunhelp.com/
5157  420. http://www.wins.uva.nl/pub/solaris/solaris2/
5158  421. http://www.wins.uva.nl/cgi-bin/sfaq.cgi
5159  422. ftp://ftp.wins.uva.nl/pub/solaris
5160  423. http://www.science.uva.nl/pub/solaris/solaris2.html
5161  424. http://www.stokely.com/
5162  425. http://www.stokely.com/unix.sysadm.resources/faqs.sun.html
5163  426. http://www.columbia.edu/kermit/ckubwr.html#x3.0
5164  427. http://www.columbia.edu/kermit/ckubwr.html#top
5165  428. http://www.columbia.edu/kermit/ckubwr.html#contents
5166  429. http://www.columbia.edu/kermit/ckubwr.html#x3
5167  430. http://www.columbia.edu/kermit/ckubwr.html#x3.7
5168  431. http://www.columbia.edu/kermit/ckubwr.html#x3.7.2
5169  432. http://www.columbia.edu/kermit/ckubwr.html#top
5170  433. http://www.columbia.edu/kermit/ckubwr.html#contents
5171  434. http://www.columbia.edu/kermit/ckubwr.html#x3.7
5172  435. http://www.columbia.edu/kermit/ckubwr.html#x3.7.3
5173  436. http://www.columbia.edu/kermit/ckubwr.html#x3.7.1
5174  437. http://www.columbia.edu/kermit/ckubwr.html#top
5175  438. http://www.columbia.edu/kermit/ckubwr.html#contents
5176  439. http://www.columbia.edu/kermit/ckubwr.html#x3.7
5177  440. http://www.columbia.edu/kermit/ckubwr.html#x3.7.4
5178  441. http://www.columbia.edu/kermit/ckubwr.html#x3.7.2
5179  442. http://www.columbia.edu/kermit/ckubwr.html#top
5180  443. http://www.columbia.edu/kermit/ckubwr.html#contents
5181  444. http://www.columbia.edu/kermit/ckubwr.html#x3.7
5182  445. http://www.columbia.edu/kermit/ckubwr.html#x3.7.5
5183  446. http://www.columbia.edu/kermit/ckubwr.html#x3.7.3
5184  447. news:comp.os.vms
5185  448. http://www.columbia.edu/kermit/ckubwr.html#top
5186  449. http://www.columbia.edu/kermit/ckubwr.html#contents
5187  450. http://www.columbia.edu/kermit/ckubwr.html#x3.7
5188  451. http://www.columbia.edu/kermit/ckubwr.html#x3.7.6
5189  452. http://www.columbia.edu/kermit/ckubwr.html#x3.7.4
5190  453. http://www.columbia.edu/kermit/ckubwr.html#top
5191  454. http://www.columbia.edu/kermit/ckubwr.html#contents
5192  455. http://www.columbia.edu/kermit/ckubwr.html#x3.7
5193  456. http://www.columbia.edu/kermit/ckubwr.html#x3.7.5
5194  457. http://www.columbia.edu/kermit/ckubwr.html#top
5195  458. http://www.columbia.edu/kermit/ckubwr.html#contents
5196  459. http://www.columbia.edu/kermit/ckubwr.html#x3
5197  460. http://www.columbia.edu/kermit/ckubwr.html#x3.9
5198  461. http://www.columbia.edu/kermit/ckubwr.html#x3.7
5199  462. http://www.stokely.com/
5200  463. http://access1.sun.com/
5201  464. http://www.ludd.luth.se/~bear/project/sun/sun.hardware.txt
5202  465. ftp://ftp.netcom.com/pub/ru/rubicon/sun.hdwr.ref
5203  466. ftp://ftp.intnet.net/pub/SUN/Sun-Hardware-Ref
5204  467. http://www.columbia.edu/kermit/ckubwr.html#top
5205  468. http://www.columbia.edu/kermit/ckubwr.html#contents
5206  469. http://www.columbia.edu/kermit/ckubwr.html#x3
5207  470. http://www.columbia.edu/kermit/ckubwr.html#x3.10
5208  471. http://www.columbia.edu/kermit/ckubwr.html#x3.8
5209  472. news:comp.unix.ultrix
5210  473. news:comp.sys.dec
5211  474. http://www.columbia.edu/kermit/ckubwr.html#top
5212  475. http://www.columbia.edu/kermit/ckubwr.html#contents
5213  476. http://www.columbia.edu/kermit/ckubwr.html#x3
5214  477. http://www.columbia.edu/kermit/ckubwr.html#x3.11
5215  478. http://www.columbia.edu/kermit/ckubwr.html#x3.9
5216  479. http://www.freebird.org/
5217  480. http://www.freebird.org/faq/
5218  481. news:comp.unix.unixware.misc
5219  482. news:comp.unix.sco.misc
5220  483. http://www.columbia.edu/kermit/ckubwr.html#x3.0
5221  484. ftp://kermit.columbia.edu/kermit/f/ckutio.c
5222  485. http://www.columbia.edu/kermit/ckubwr.html#top
5223  486. http://www.columbia.edu/kermit/ckubwr.html#contents
5224  487. http://www.columbia.edu/kermit/ckubwr.html#x3
5225  488. http://www.columbia.edu/kermit/ckubwr.html#x3.12
5226  489. http://www.columbia.edu/kermit/ckubwr.html#x3.10
5227  490. http://www.columbia.edu/kermit/ckubwr.html#top
5228  491. http://www.columbia.edu/kermit/ckubwr.html#contents
5229  492. http://www.columbia.edu/kermit/ckubwr.html#x3
5230  493. http://www.columbia.edu/kermit/ckubwr.html#x3.13
5231  494. http://www.columbia.edu/kermit/ckubwr.html#x3.11
5232  495. http://www.columbia.edu/kermit/ckubwr.html#top
5233  496. http://www.columbia.edu/kermit/ckubwr.html#contents
5234  497. http://www.columbia.edu/kermit/ckubwr.html#x3
5235  498. http://www.columbia.edu/kermit/ckubwr.html#x3.14
5236  499. http://www.columbia.edu/kermit/ckubwr.html#x3.12
5237  500. http://www.columbia.edu/kermit/ckubwr.html#top
5238  501. http://www.columbia.edu/kermit/ckubwr.html#contents
5239  502. http://www.columbia.edu/kermit/ckubwr.html#x3
5240  503. http://www.columbia.edu/kermit/ckubwr.html#x3.15
5241  504. http://www.columbia.edu/kermit/ckubwr.html#x3.13
5242  505. news:comp.sys.sgi.misc
5243  506. news:comp.sys.sgi.admin
5244  507. http://www.sgi.com/
5245  508. http://www-viz.tamu.edu/~sgi-faq/
5246  509. ftp://viz.tamu.edu/pub/sgi/faq/
5247  510. http://www.columbia.edu/kermit/ckuins.html
5248  511. http://freeware.sgi.com/Installable/gcc-2.95.2.html
5249  512. http://freeware.sgi.com/Installable/gcc-2.95.2.html
5250  513. http://www.columbia.edu/kermit/ckubwr.html#top
5251  514. http://www.columbia.edu/kermit/ckubwr.html#contents
5252  515. http://www.columbia.edu/kermit/ckubwr.html#x3
5253  516. http://www.columbia.edu/kermit/ckubwr.html#x3.16
5254  517. http://www.columbia.edu/kermit/ckubwr.html#x3.14
5255  518. news:comp.sys.be
5256  519. http://www.columbia.edu/kermit/ckubwr.html#top
5257  520. http://www.columbia.edu/kermit/ckubwr.html#contents
5258  521. http://www.columbia.edu/kermit/ckubwr.html#x3
5259  522. http://www.columbia.edu/kermit/ckubwr.html#x3.17
5260  523. http://www.columbia.edu/kermit/ckubwr.html#x3.15
5261  524. http://www.columbia.edu/kermit/ckubwr.html#top
5262  525. http://www.columbia.edu/kermit/ckubwr.html#contents
5263  526. http://www.columbia.edu/kermit/ckubwr.html#x3
5264  527. http://www.columbia.edu/kermit/ckubwr.html#x3.18
5265  528. http://www.columbia.edu/kermit/ckubwr.html#x3.16
5266  529. http://www.columbia.edu/kermit/ckubwr.html#top
5267  530. http://www.columbia.edu/kermit/ckubwr.html#contents
5268  531. http://www.columbia.edu/kermit/ckubwr.html#x3
5269  532. http://www.columbia.edu/kermit/ckubwr.html#x3.19
5270  533. http://www.columbia.edu/kermit/ckubwr.html#x3.17
5271  534. http://www.columbia.edu/kermit/ckubwr.html#top
5272  535. http://www.columbia.edu/kermit/ckubwr.html#contents
5273  536. http://www.columbia.edu/kermit/ckubwr.html#x3
5274  537. http://www.columbia.edu/kermit/ckubwr.html#x3.20
5275  538. http://www.columbia.edu/kermit/ckubwr.html#x3.18
5276  539. http://www.columbia.edu/kermit/mac.html
5277  540. http://www.amazon.com/gp/product/B0000VYJRY?ie=UTF8&tag=aleidmoreldom-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=B0000VYJRY
5278  541. http://www.columbia.edu/kermit/ckuins.html#x10
5279  542. http://www.columbia.edu/kermit/ckuins.html
5280  543. http://www.amazon.com/gp/product/B000FX61MS?ie=UTF8&tag=aleidmoreldom-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=B000FX61MS
5281  544. mailto:kermit@columbia.edu
5282  545. http://www.columbia.edu/kermit/ckubwr.html#top
5283  546. http://www.columbia.edu/kermit/ckubwr.html#contents
5284  547. http://www.columbia.edu/kermit/ckubwr.html#x3
5285  548. http://www.columbia.edu/kermit/ckubwr.html#x3.19
5286  549. http://www.uni-giessen.de/faq/archiv/coherent-faq.general/msg00000.html
5287  550. http://www.columbia.edu/kermit/ckubwr.html#top
5288  551. http://www.columbia.edu/kermit/ckubwr.html#contents
5289  552. http://www.columbia.edu/kermit/ckubwr.html#x5
5290  553. http://www.columbia.edu/kermit/ckubwr.html#x3
5291  554. http://www.columbia.edu/kermit/ckccfg.html
5292  555. http://www.columbia.edu/kermit/ckubwr.html#top
5293  556. http://www.columbia.edu/kermit/ckubwr.html#contents
5294  557. http://www.columbia.edu/kermit/ckubwr.html#x6
5295  558. http://www.columbia.edu/kermit/ckubwr.html#x4
5296  559. http://www.columbia.edu/kermit/ckuins.html
5297  560. http://www.columbia.edu/kermit/ckubwr.html#top
5298  561. http://www.columbia.edu/kermit/ckubwr.html#contents
5299  562. http://www.columbia.edu/kermit/ckubwr.html#x7
5300  563. http://www.columbia.edu/kermit/ckubwr.html#x5
5301  564. http://www.columbia.edu/kermit/ckuins.html#9.5
5302  565. http://www.columbia.edu/kermit/ckubwr.html#x3
5303  566. http://www.columbia.edu/kermit/ckubwr.html#top
5304  567. http://www.columbia.edu/kermit/ckubwr.html#contents
5305  568. http://www.columbia.edu/kermit/ckubwr.html#x8
5306  569. http://www.columbia.edu/kermit/ckubwr.html#x6
5307  570. http://www.columbia.edu/kermit/ckuins.html#x8
5308  571. http://www.columbia.edu/kermit/ckuins.html
5309  572. http://www.columbia.edu/kermit/ck60manual.html
5310  573. http://www.columbia.edu/kermit/cable.html
5311  574. http://www.columbia.edu/kermit/ckubwr.html#top
5312  575. http://www.columbia.edu/kermit/ckubwr.html#contents
5313  576. http://www.columbia.edu/kermit/ckubwr.html#x9
5314  577. http://www.columbia.edu/kermit/ckubwr.html#x7
5315  578. http://www.columbia.edu/kermit/ckubwr.html#top
5316  579. http://www.columbia.edu/kermit/ckubwr.html#contents
5317  580. http://www.columbia.edu/kermit/ckubwr.html#x10
5318  581. http://www.columbia.edu/kermit/ckubwr.html#x8
5319  582. http://www.columbia.edu/kermit/ck60manual.html
5320  583. http://dickey.his.com/xterm/xterm.html
5321  584. http://www.columbia.edu/kermit/ckubwr.html#top
5322  585. http://www.columbia.edu/kermit/ckubwr.html#contents
5323  586. http://www.columbia.edu/kermit/ckubwr.html#x11
5324  587. http://www.columbia.edu/kermit/ckubwr.html#x9
5325  588. http://www.columbia.edu/kermit/ckubwr.html#top
5326  589. http://www.columbia.edu/kermit/ckubwr.html#contents
5327  590. http://www.columbia.edu/kermit/ckubwr.html#x12
5328  591. http://www.columbia.edu/kermit/ckubwr.html#x10
5329  592. http://www.columbia.edu/kermit/ckubwr.html#x11.1
5330  593. http://www.columbia.edu/kermit/ckubwr.html#x11.2
5331  594. http://www.columbia.edu/kermit/ckubwr.html#top
5332  595. http://www.columbia.edu/kermit/ckubwr.html#contents
5333  596. http://www.columbia.edu/kermit/ckubwr.html#x11
5334  597. http://www.columbia.edu/kermit/ckubwr.html#x11.2
5335  598. http://www.columbia.edu/kermit/ck60manual.html
5336  599. http://www.columbia.edu/kermit/ckubwr.html#top
5337  600. http://www.columbia.edu/kermit/ckubwr.html#contents
5338  601. http://www.columbia.edu/kermit/ckubwr.html#x11
5339  602. http://www.columbia.edu/kermit/ckubwr.html#x11.1
5340  603. http://www.columbia.edu/kermit/ck60manual.html
5341  604. http://www.columbia.edu/kermit/ckubwr.html#top
5342  605. http://www.columbia.edu/kermit/ckubwr.html#contents
5343  606. http://www.columbia.edu/kermit/ckubwr.html#x13
5344  607. http://www.columbia.edu/kermit/ckubwr.html#x11
5345  608. http://www.columbia.edu/kermit/security.html
5346  609. http://www.columbia.edu/kermit/ckubwr.html#top
5347  610. http://www.columbia.edu/kermit/ckubwr.html#contents
5348  611. http://www.columbia.edu/kermit/ckubwr.html#x14
5349  612. http://www.columbia.edu/kermit/ckubwr.html#x12
5350  613. http://www.columbia.edu/kermit/ckubwr.html#top
5351  614. http://www.columbia.edu/kermit/ckubwr.html#contents
5352  615. http://www.columbia.edu/kermit/ckubwr.html#x15
5353  616. http://www.columbia.edu/kermit/ckubwr.html#x14
5354  617. mailto:support@stallion.oz.au
5355  618. http://www.stallion.com/
5356  619. http://www.columbia.edu/kermit/ckubwr.html#top
5357  620. http://www.columbia.edu/kermit/ckubwr.html#contents
5358  621. http://www.columbia.edu/kermit/ckermit.html
5359  622. http://www.columbia.edu/kermit/ck80.html
5360  623. http://www.columbia.edu/kermit/index.html
5361  624. http://www.columbia.edu/kermit/index.html
5362  625. http://www.columbia.edu/
5363  626. mailto:kermit@columbia.edu