+++ /dev/null
-
- C-Kermit 8.0 Unix Hints and Tips
-
- Frank da Cruz
- [1]The Kermit Project, [2]Columbia University
-
- As of: C-Kermit 8.0.211 10 April 2004
- This page last updated: Fri Apr 16 16:13:14 2004 (New York USA Time)
-
- IF YOU ARE READING A PLAIN-TEXT version of this document, note it
- is a plain-text dump of a Web page. You can visit the original (and
- possibly more up-to-date) Web page here:
-
- [3]http://www.columbia.edu/kermit/ckubwr.html
-
- Since the material in this file has been accumulating since 1985,
- some (much) of it might be dated. [4]Feedback from experts on
- particular OS's and platforms is always welcome.
-
- [ [5]C-Kermit ] [ [6]Installation Instructions ] [ [7]TUTORIAL ]
- ________________________________________________________________________
-
- CONTENTS
-
- 1. [8]INTRODUCTION
- 2. [9]PREBUILT C-KERMIT BINARIES
- 3. [10]PLATFORM-SPECIFIC NOTES
- 4. [11]GENERAL UNIX-SPECIFIC LIMITATIONS AND BUGS
- 5. [12]INITIALIZATION AND COMMAND FILES
- 6. [13]COMMUNICATION SPEED SELECTION
- 7. [14]COMMUNICATIONS AND DIALING
- 8. [15]HARDWARE FLOW CONTROL
- 9. [16]TERMINAL CONNECTION AND KEY MAPPING
- 10. [17]FILE TRANSFER
- 11. [18]EXTERNAL FILE TRANSFER PROTOCOLS
- 12. [19]SECURITY
- 13. [20]MISCELLANEOUS USER REPORTS
- 14. [21]THIRD-PARTY DRIVERS
-
- Quick Links: [ [22]Linux ] [ [23]*BSD ] [[24]Mac OS X] [ [25]AIX ] [
- [26]HP-UX ] [ [27]Solaris ] [ [28]SCO ] [ [29]DEC/Compaq ]
- ________________________________________________________________________
-
- 1. INTRODUCTION
-
- [ [30]Top ] [ [31]Contents ] [ [32]Next ]
-
- SECTION CONTENTS
-
- 1.1. [33]Documentation
- 1.2. [34]Technical Support
- 1.3. [35]The Year 2000
- 1.4. [36]The Euro
-
- THIS IS WHAT USED TO BE CALLED the "beware file" for the Unix version
- of C-Kermit, previously distributed as ckubwr.txt and, before that, as
- ckuker.bwr, after the fashion of old Digital Equipment Corporation
- (DEC) software releases that came with release notes (describing what
- had changed) and a "beware file" listing known bugs, limitations,
- "non-goals", and things to watch out for. The C-Kermit beware file has
- been accumulating since 1985, and it applies to many different
- hardware platforms and operating systems, and many versions of them,
- so it is quite large. Prior to C-Kermit 8.0, it was distributed only
- in plain-text format. Now it is available as a Web document with
- links, internal cross references, and so on, to make it easier to use.
-
- This document applies to Unix C-Kermit in general, as well as to
- specific Unix variations like [37]Linux, [38]AIX, [39]HP-UX,
- [40]Solaris, and so on, and should be read in conjunction with the
- [41]platform-independent C-Kermit beware file, which contains similar
- information, but applying to all versions of C-Kermit (VMS, Windows,
- OS/2, AOS/VS, VOS, etc, as well as to Unix).
-
- There is much in this document that is (only) of historical interest.
- The navigation links should help you skip directly to the sections
- that are relevant to you. Numerous offsite Web links are supposed to
- lead to further information but, as you know, Web links go stale
- frequently and without warning. If you can supply additional,
- corrected, updated, or better Web links, please feel free to [42]let
- us know.
-
- 1.1. Documentation
-
- [ [43]Top ] [ [44]Contents ] [ [45]Next ]
-
- C-Kermit 6.0 is documented in the book [46]Using C-Kermit, Second
- Edition, by Frank da Cruz and Christine M. Gianone, Digital Press,
- Burlington, MA, USA, ISBN 1-55558-164-1 (1997), 622 pages. This
- remains the definitive C-Kermit documentation. Until the third edition
- is published (sorry, there is no firm timeframe for this), please also
- refer to:
-
- [47]Supplement to Using C-Kermit, Second Edition, For C-Kermit 7.0
- Thorough documentation of features new to version 7.0.
-
- [48]Supplement to Using C-Kermit, Second Edition, For C-Kermit 8.0
- Thorough documentation of features new to version 8.0.
-
- 1.2. Technical Support
-
- [ [49]Top ] [ [50]Contents ] [ [51]Section Contents ] [ [52]Next ] [
- [53]Previous ]
-
- For information on how to get technical support, please visit:
-
- [54]http://www.columbia.edu/kermit/support.html
-
- 1.3. The Year 2000
-
- [ [55]Top ] [ [56]Contents ] [ [57]Section Contents ] [ [58]Next ] [
- [59]Previous ]
-
- The Unix version of C-Kermit, release 6.0 and later, is "Year 2000
- compliant", but only if the underlying operating system is too.
- Contact your Unix operating system vendor to find out which operating
- system versions, patches, hardware, and/or updates are required.
- (Quite a few old Unixes are still in operation in the new millenium,
- but with their date set 28 years in the past so at least the non-year
- parts of the calendar are correct.)
-
- As of C-Kermit 6.0 (6 September 1996), post-millenium file dates are
- recognized, transmitted, received, and reproduced correctly during the
- file transfer process in C-Kermit's File Attribute packets. If
- post-millenium dates are not processed correctly on the other end,
- file transfer still takes place, but the modification or creation date
- of the received file might be incorrect. The only exception would be
- if the "file collision update" feature is being used to prevent
- unnecessary transfer of files that have not changed since the last
- time a transfer took place; in this case, a file might be transferred
- unnecessarily, or it might not be transferred when it should have
- been. Correct operation of the update feature depends on both Kermit
- programs having the correct date and time.
-
- Of secondary importance are the time stamps in the transaction and/or
- debug logs, and the date-related script programming constructs, such
- as \v(date), \v(ndate), \v(day), \v(nday), and perhaps also the
- time-related ones, \v(time) and \v(ntime), insofar as they might be
- affected by the date. The \v(ndate) is a numeric-format date of the
- form yyyymmdd, suitable for both lexical and numeric comparison and
- sorting: e.g. 19970208 or 20011231. If the underlying operating system
- returns the correct date information, these variables will have the
- proper values. If not, then scripts that make decisions based on these
- variables might not operate correctly.
-
- Most date-related code is based upon the C Library asctime() string,
- which always has a four-digit year. In Unix, the one bit of code in
- C-Kermit that is an exception to this rule is several calls to
- localtime(), which returns a pointer to a tm struct, in which the year
- is presumed to be expressed as "years since 1900". The code depends on
- this assumption. Any platforms that violate it will need special
- coding. As of this writing, no such platforms are known.
-
- Command and script programming functions that deal with dates use
- C-Kermit specific code that always uses full years.
-
- 1.4. The Euro
-
- [ [60]Top ] [ [61]Contents ] [ [62]Section Contents ] [ [63]Previous ]
-
- C-Kermit 7.0 and later support Unicode (ISO 10646), ISO 8859-15 Latin
- Alphabet 9, PC Code Page 858, Windows Code Pages 1250 and 1251, and
- perhaps other character sets, that encode the Euro symbol, and can
- translate among them as long as no intermediate character-set is
- involved that does not include the Euro.
- ________________________________________________________________________
-
- 2. PREBUILT C-KERMIT BINARIES
-
- [ [64]Top ] [ [65]Contents ] [ [66]Next ] [ [67]Previous ]
-
- It is often dangerous to run a binary C-Kermit (or any other) program
- built on a different computer. Particularly if that computer had a
- different C compiler, libraries, operating system version, processor
- features, etc, and especially if the program was built with shared
- libraries, because as soon as you update the libraries on your system,
- they no longer match the ones referenced in the binary, and the binary
- might refuse to load when you run it, in which case you'll see error
- messages similar to:
-
- Could not load program kermit
- Member shr4.o not found or file not an archive
- Could not load library libcurses.a[shr4.o]
- Error was: No such file or directory
-
- (These samples are from AIX.) To avoid this problem, we try to build
- C-Kermit with statically linked libraries whenever we can, but this is
- increasingly impossible as shared libraries become the norm.
-
- It is often OK to run a binary built on an earlier OS version, but it
- is rarely possible (or safe) to run a binary built on a later one, for
- example to run a binary built under Solaris 8 on Solaris 2.6.
- Sometimes even the OS-or-library patch/ECO level makes a difference.
-
- A particularly insidious problem occurs when a binary was built on a
- version of the OS that has patches from the vendor (e.g. to
- libraries); in many cases you won't be able to run such a binary on an
- unpatched version of the same platform.
-
- When in doubt, build C-Kermit from the source code on the computer
- where it is to be run (if possible!). If not, ask us for a binary
- specific to your configuration. We might have one, and if we don't, we
- might be able to find somebody who will build one for you.
- ________________________________________________________________________
-
- 3. NOTES ON SPECIFIC UNIX VERSIONS
-
- [ [68]Top ] [ [69]Contents ] [ [70]Next ] [ [71]Previous ]
-
- SECTION CONTENTS
-
- 3.0. [72]C-KERMIT ON PC-BASED UNIXES
- 3.1. [73]C-KERMIT AND AIX
- 3.2. [74]C-KERMIT AND HP-UX
- 3.3. [75]C-KERMIT AND LINUX
- 3.4. [76]C-KERMIT AND NEXTSTEP
- 3.5. [77]C-KERMIT AND QNX
- 3.6. [78]C-KERMIT AND SCO
- 3.7. [79]C-KERMIT AND SOLARIS
- 3.8. [80]C-KERMIT AND SUNOS
- 3.9. [81]C-KERMIT AND ULTRIX
- 3.10. [82]C-KERMIT AND UNIXWARE
- 3.11. [83]C-KERMIT AND APOLLO SR10
- 3.12. [84]C-KERMIT AND TANDY XENIX 3.0
- 3.13. [85]C-KERMIT AND OSF/1 (DIGITAL UNIX) (TRU64 UNIX)
- 3.14. [86]C-KERMIT AND SGI IRIX
- 3.15. [87]C-KERMIT AND THE BEBOX
- 3.16. [88]C-KERMIT AND DG/UX
- 3.17. [89]C-KERMIT AND SEQUENT DYNIX
- 3.18. [90]C-KERMIT AND {FREE,OPEN,NET}BSD
- 3.19. [91]C-KERMIT AND MAC OS X
- 3.20. [92]C-KERMIT AND COHERENT
-
- The following sections apply to specific Unix versions. Most of them
- contain references to FAQs (Frequently Asked Questions), but these
- tend to be ephemeral. For possibly more current information see:
-
- [93]http://www.faqs.org
- [94]http://aplawrence.com/Unixart/newtounix.html
-
- One thread that runs through many of them, and implicitly perhaps
- through all, concerns the problems that occur when trying to dial out
- on a serial device that is (also) enabled for dialing in. The
- "solutions" to this problem are many, varied, diverse, and usually
- gross, involving configuring the device for bidirectional use. This is
- done in a highly OS-dependent and often obscure manner, and the
- effects (good or evil) are also highly dependent on the particular OS
- (and getty variety, etc). Many examples are given in the
- [95]OS-specific sections below.
-
- An important point to keep in mind is that C-Kermit is a
- cross-platform, portable software program. It was not designed
- specifically and only for your particular Unix version, or for that
- matter, for Unix in particular at all. It also runs on VMS, AOS/VS,
- VOS, and other non-Unix platforms. All the Unix versions of C-Kermit
- share common i/o modules, with compile-time #ifdef constructions used
- to account for the differences among the many Unix products and
- releases. If you think that C-Kermit is behaving badly or missing
- something on your particular Unix version, you might be right -- we
- can't claim to be expert in hundreds of different OS / version /
- hardware / library combinations. If you're a programmer, take a look
- at the source code and [96]send us your suggested fixes or changes. Or
- else just [97]send us a report about what seems to be wrong and we'll
- see what we can do.
- ________________________________________________________________________
-
- 3.0. C-KERMIT ON PC-BASED UNIXES
-
- [ [98]Top ] [ [99]Contents ] [ [100]Section Contents ] [ [101]Next ]
-
- Also see: [102]http://www.pcunix.com/.
-
- SECTION CONTENTS
-
- 3.0.1. [103]Interrupt Conflicts
- 3.0.2. [104]Windows-Specific Hardware
- 3.0.3. [105]Modems
- 3.0.4. [106]Character Sets
- 3.0.5. [107]Keyboard, Screen, and Mouse Access
- 3.0.6. [108]Laptops
-
- 3.0.1. Interrupt Conflicts
-
- [ [109]Top ] [ [110]Contents ] [ [111]Section Contents ] [ [112]Next ]
-
- PCs are not the best platform for real operating systems like Unix.
- The architecture suffers from numerous deficiencies, not the least of
- which is the stiflingly small number of hardware interrupts (either 7
- or 15, many of which are preallocated). Thus adding devices, using
- multiple serial ports, etc, is always a challenge and often a
- nightmare. The free-for-all nature of the PC market and the lack of
- standards combined with the diversity of Unix OS versions make it
- difficult to find drivers for any particular device on any particular
- version of Unix.
-
- Of special interest to Kermit users is the fact that there is no
- standard provision in the PC architecture for more than 2
- communication (serial) ports. COM3 and COM4 (or higher) will not work
- unless you (a) find out the hardware address and interrupt for each,
- (b) find out how to provide your Unix version with this information,
- and (c) actually set up the configuration in the Unix startup files
- (or whatever other method is used). Watch out for interrupt conflicts,
- especially when using a serial mouse, and don't expect to be able to
- use more than two serial ports.
-
- The techniques for resolving interrupt conflicts are different for
- each operating system (Linux, NetBSD, etc). In general, there is a
- configuration file somewhere that lists COM ports, something like
- this:
-
- com0 at isa? port 0x3f8 irq 4 # DOS COM1
- com1 at isa? port 0x2f8 irq 3 # DOS COM2
-
- The address and IRQ values in this file must agree with the values in
- the PC BIOS and with the ports themselves, and there must not be more
- than one device with the same interrupt. Unfortunately, due to the
- small number of available interrupts, installing new devices on a PC
- almost always creates a conflict. Here is a typical tale from a Linux
- user (Fred Smith) about installing a third serial port:
-
- ...problems can come from a number of causes. The one I fought with
- for some time, and finally conquered, was that my modem is on an
- add-in serial port, cua3/IRQ5. By default IRQ5 has a very low
- priority, and does not get enough service in times when the system
- is busy to prevent losing data. This in turn causes many resends.
- There are two 'fixes' that I know of, one is to relax hard disk
- interrupt hogging by using the correct parameter to hdparm, but I
- don't like that one because the hdparm man page indicates it is
- risky to use. The other one, the one I used, was to get 'irqtune'
- and use it to give IRQ5 the highest priority instead of nearly the
- lowest. Completely cured the problem.
-
- Here's another one from a newsgroup posting:
-
- After much hair pulling, I've discovered why my serial port won't
- work. Apparently my [PC] has three serial devices (two comm ports
- and an IR port), of which only two at a time can be active. I
- looked in the BIOS setup and noticed that the IR port was
- activated, but didn't realize at the time that this meant that COM2
- was thereby de-activated. I turned off the IR port and now the
- serial port works as advertised.
- ________________________________________________________________________
-
- 3.0.2. Windows-Specific Hardware
-
- [ [113]Top ] [ [114]Contents ] [ [115]Section Contents ] [ [116]Next ]
- [ [117]Previous ]
-
- To complicate matters, the PC platform is becoming increasingly and
- inexorably Windows-oriented. More and more add-on devices are "Windows
- only" -- meaning they are incomplete and rely on proprietary
- Windows-based software drivers to do the jobs that you would expect
- the device itself to do. PCMCIA, PCI, or "Plug-n-Play" devices are
- rarely supported on PC-based Unix versions such as SCO; Winmodems,
- Winprinters, and the like are not supported on any Unix variety (with
- [118]a few exceptions). The self-proclaimed Microsoft PC 97 (or later)
- standard only makes matters worse since its only purpose to ensure
- that PCs are "optimized to run Windows 95 and Windows NT 4.0 and
- future versions of these operating systems".
-
- With the exception noted (the Lucent modem, perhaps a handful of
- others by the time you read this), drivers for "Win" devices are
- available only for Windows, since the Windows market dwarfs that of
- any particular Unix brand, and for that matter all Unixes (or for that
- matter, all non-Windows operating systems) combined. If your version
- of Unix (SCO, Linux, BSDI, FreeBSD, etc) does not support a particular
- device, then C-Kermit can't use it either. C-Kermit, like any Unix
- application, must access all devices through drivers and not directly
- because Unix is a real operating system.
-
- Don't waste time thinking that you, or anybody else, could write a
- Linux (or other Unix) driver for a Winmodem or other "Win" device.
- First of all, these devices generally require realtime control, but
- since Unix is a true multitasking operating system, realtime device
- control is not possible outside the kernel. Second, the specifications
- for these devices are secret and proprietary, and each one (and each
- version of each one) is potentially different. Third, a Winmodem
- driver would be enormously complex; it would take years to write and
- debug, by which time it would be obsolete.
-
- A more recent generation of PCs (circa 1999-2000) is marketed as
- "Legacy Free". One can only speculate what that could mean. Most
- likely it means it will ONLY run the very latest versions of Windows,
- and is made exclusively of Winmodems, Winprinters, Winmemory, and
- Win-CPU-fans (Legacy Free is a concept [119]pioneered by Microsoft).
-
- Before you buy a new PC or add-on equipment, especially serial ports,
- internal modems, or printers, make sure they are compatible with your
- version of Unix. This is becoming an ever-greater challenge; only a
- huge company like Microsoft can afford to be constantly cranking out
- and/or verifying drivers for the thousands of video boards, sound
- cards, network adapters, SCSI adapters, buses, etc, that spew forth in
- an uncontrolled manner from all corners of the world on a daily basis.
- With very few exceptions, makers of PCs assemble the various
- components and then verify them only with Windows, which they must do
- since they are, no doubt, preloading the PC with Windows. To find a
- modern PC that is capable of running a variety of non-Windows
- operating systems (e.g. Linux, SCO OpenServer, Unixware, and Solaris)
- is a formidable challenge requiring careful study of each vendor's
- "compatibility lists" and precise attention to exact component model
- numbers and revision levels.
- ________________________________________________________________________
-
- 3.0.3. Modems
-
- [ [120]Top ] [ [121]Contents ] [ [122]Section Contents ] [ [123]Next ]
- [ [124]Previous ]
-
- External modems are recommended:
-
- * They don't need any special drivers.
- * You can use the lights and speaker to troubleshoot dialing.
- * You can share them among all types of computers.
- * You can easily turn them off and on when power-cycling seems
- warranted.
- * They are more likely to have manuals.
-
- Internal PC modems (even when they are not Winmodems, which is
- increasingly unlikely in new PCs) are always trouble, especially in
- Unix. Even when they work for dialing out, they might not work for
- dialing in, etc. Problems that occur when using an internal modem can
- almost always be eliminated by switching to an external one. Even when
- an internal modem is not a Winmodem or Plug-n-Play, it is often a
- no-name model of unknown quality -- not the sort of thing you want
- sitting directly on your computer's bus. (Even if it does not cause
- hardware problems, it probably came without a command list, so no Unix
- software will know how to control it.) For more about Unix compatible
- modems, see:
-
- [125]http://www.idir.net/~gromitkc/winmodem.html
-
- Remember that PCs, even now -- more than two decades after they were
- first introduced -- are not (in general) capable of supporting more
- than 2 serial devices. Here's a short success story from a recent
- newsgroup posting: "I have a Diamond SupraSonic II dual modem in my
- machine. What I had to end up doing is buying a PS/2 mouse and port
- and install it. Had to get rid of my serial mouse. I also had to
- disable PnP in my computer bios. I was having IRQ conflicts between my
- serial mouse and 'com 3'. Both modems work fine for me. My first modem
- is ttyS0 and my second is ttyS1." Special third-party multiport boards
- such as [126]DigiBoard are available for certain Unix platforms
- (typically SCO, maybe Linux) that come with special platform-specific
- drivers.
- ________________________________________________________________________
-
- 3.0.4. Character Sets
-
- [ [127]Top ] [ [128]Contents ] [ [129]Section Contents ] [ [130]Next ]
- [ [131]Previous ]
-
- PCs generally have PC code pages such as CP437 or CP850, and these are
- often used by PC-based Unix operating systems, particularly on the
- console. These are supported directly by C-Kermit's SET FILE
- CHARACTER-SET and SET TERMINAL CHARACTER-SET commands. Some PC-based
- Unix versions, such as recent Red Hat Linux releases, might also
- support Microsoft Windows code pages such as CP1252, or even Latin
- Alphabet 1 itself (perhaps displayed with CP437 glyphs). (And work is
- in progress to support Unicode UTF8 in Linux.)
-
- Certain Windows code pages are not supported directly by C-Kermit, but
- since they are ISO Latin Alphabets with nonstandard "extensions" in
- the C1 control range, you can substitute the corresponding Latin
- alphabet (or other character set) in any C-Kermit character-set
- related commands:
-
- Windows Code Page Substitution
- CP 1004 Latin-1
- CP 1051 HP Roman-8
-
- Other Windows code pages are mostly (or totally) incompatible with
- their Latin Alphabet counterparts (e.g. CP1250 and Latin-2), and
- several of these are already supported by C-Kermit 7.0 and later
- (1250, 1251, and 1252).
- ________________________________________________________________________
-
- 3.0.5. Keyboard, Screen, and Mouse Access
-
- [ [132]Top ] [ [133]Contents ] [ [134]Section Contents ] [ [135]Next ]
- [ [136]Previous ]
-
- Finally, note that as a real operating system, Unix (unlike Windows)
- does not provide the intimate connection to the PC keyboard, screen,
- and mouse that you might expect. Unix applications can not "see" the
- keyboard, and therefore can not be programmed to understand F-keys,
- Editing keys, Arrow keys, Alt-key combinations, and the like. This is
- because:
-
- a. Unix is a portable operating system, not only for PCs;
- b. Unix sessions can come from anywhere, not just the PC's own
- keyboard and screen; and:
- c. even though it might be possible for an application that actually
- is running on the PC's keyboard and screen to access these devices
- directly, there are no APIs (outside of X) for this.
- ________________________________________________________________________
-
- 3.0.6. Laptops
-
- [ [137]Top ] [ [138]Contents ] [ [139]Section Contents ] [
- [140]Previous ]
-
- (To be filled in . . .)
- ________________________________________________________________________
-
- 3.1. C-KERMIT AND AIX
-
- [ [141]Top ] [ [142]Contents ] [ [143]Section Contents ] [ [144]Next ]
- [ [145]Previous ]
-
- SECTION CONTENTS
-
- 3.1.1. [146]AIX: General
- 3.1.2. [147]AIX: Network Connections
- 3.1.3. [148]AIX: Serial Connections
- 3.1.4. [149]AIX: File Transfer
- 3.1.5. [150]AIX: Xterm Key Map
-
- For additional information see:
- * [151]http://www.emerson.emory.edu/services/aix-faq/
- * [152]http://www.faqs.org/faqs/by-newsgroup/comp/comp.unix.aix.html
- * [153]http://www.cis.ohio-state.edu/hypertext/faq/usenet/aix-faq/to
- p.html
- * [154]http://aixpdslib.seas.ucla.edu/
- * [155]http://www.rootvg.net (AIX history)
- * [156]ftp://rtfm.mit.edu/pub/usenet/news.answers/aix-faq/part1
- * [157]ftp://mirrors.aol.com/pub/rtfm/usenet-by-hierarchy/comp/unix/
- aix
-
- and/or read the [158]comp.unix.aix newsgroup.
- ______________________________________________________________________
-
- 3.1.1. AIX: General
-
- [ [159]Top ] [ [160]Contents ] [ [161]Section Contents ] [ [162]Next ]
-
- About AIX version numbers: "uname -a" tells the two-digit version
- number, such as 3.2 or 4.1. The three-digit form can be seen with the
- "oslevel" command (this information is unavailable at the API level
- and is reportedly obtained by scanning the installed patch list).
- Supposedly all three-digit versions within the same two-digit version
- (e.g. 4.3.1, 4.3.2) are binary compatible; i.e. a binary built on any
- one of them should run on all others, but who knows. Most AIX
- advocates tell you that any AIX binary will run on any AIX version
- greater than or equal to the one under which it was built, but
- experience with C-Kermit suggests otherwise. It is always best to run
- a binary built under your exact same AIX version, down to the third
- decimal place, if possible. Ideally, build it from source code
- yourself. Yes, this advice would be easier to follow if AIX came with
- a C compiler.
- ______________________________________________________________________
-
- 3.1.2. AIX: Network Connections
-
- [ [163]Top ] [ [164]Contents ] [ [165]Section Contents ] [ [166]Next ]
- [ [167]Previous ]
-
- File transfers into AIX 4.2 or 4.3 through the AIX Telnet or Rlogin
- server have been observed to fail (or accumulate huge numbers of
- correctable errors, or even disconnect the session), when exactly the
- same kind of transfers into AIX 4.1 work without incident, as do such
- transfers into all non-AIX platforms on the same kind of connections
- (with a few exceptions noted elsewhere in this document). AIX 4.3.3
- seems to be particularly fragile in this regard; the weakness seems to
- be in its pseudoterminal (pty) driver. High-speed streaming transfers
- work perfectly, however, if the AIX Telnet server and pty driver are
- removed from the picture; e.g, by using "set host * 3000" on AIX.
-
- The problem can be completely cured by replacing the IBM Telnet server
- with [168]MIT's Kerberos Telnet server -- even if you don't actually
- use the Kerberos part. Diagnosis: AIX pseudoterminals (which are
- controlled by the Telnet server to give you a login terminal for your
- session) have quirks that not even IBM knows about. The situation with
- AIX 5.x is not known, but if it has the same problem, the same cure is
- available.
-
- Meanwhile, the only remedy when going through the IBM Telnet server is
- to cut back on Kermit's performance settings until you find a
- combination that works:
-
- * SET STREAMING OFF
- * SET WINDOW-SIZE small-number
- * SET { SEND, RECEIVE } PACKET-LENGTH small-number
- * SET PREFIXING { CAUTIOUS, ALL }
-
- In some cases, severe cutbacks are required, e.g. those implied by the
- ROBUST command. Also be sure that the AIX C-Kermit on the remote end
- has "set flow none" (which is the default). NOTE: Maybe this one can
- also be addressed by starting AIX telnetd with the "-a" option. The
- situation with SSH connections is not known, but almost certainly the
- same.
-
- When these problems occur, the system error log contains:
-
- LABEL: TTY_TTYHOG
- IDENTIFIER: 0873CF9F
- Type: TEMP
- Resource Name: pts/1
-
- Description
- TTYHOG OVER-RUN
-
- Failure Causes
- EXCESSIVE LOAD ON PROCESSOR
-
- Recommended Actions
- REDUCE SYSTEM LOAD.
- REDUCE SERIAL PORT BAUD RATE
-
- Before leaving the topic of AIX pseudoterminals, it is very likely
- that Kermit's PTY and SSH commands do not work well either, for the
- same reason that Telnet connections into AIX don't work well. A brief
- test with "pty rlogin somehost" got a perfectly usable terminal
- (CONNECT) session, but file-transfer problems like those just
- described.
-
- Reportedly, telnet from AIX 4.1-point-something to non-Telnet ports
- does not work unless the port number is in the /etc/services file;
- it's not clear from the report whether this is a problem with AIX
- Telnet (in which case it would not affect Kermit), or with the sockets
- library (in which case it would). The purported fix is IBM APAR
- IX61523.
-
- C-Kermit SET HOST or TELNET from one AIX 3.1 (or earlier) system to
- another won't work right unless you set your local terminal type to
- something other than AIXTERM. When your terminal type is AIXTERM, AIX
- TELNET sends two escapes whenever you type one, and the AIX telnet
- server swallows one of them. This has something to do with the "hft"
- device. This behavior seems to be removed in AIX 3.2 and later.
- ______________________________________________________________________
-
- 3.1.3. AIX: Serial Connections
-
- [ [169]Top ] [ [170]Contents ] [ [171]Section Contents ] [ [172]Next ]
- [ [173]Previous ]
-
- In AIX 3, 4, or 5, C-Kermit won't be able to "set line /dev/tty0" (or
- any other dialout device) if you haven't installed "cu" or "uucp" on
- your system, because installing these is what creates the UUCP
- lockfile directory. If SET LINE commands always result in "Sorry,
- access to lock denied", even when C-Kermit has been given the same
- owner, group, and permissions as cu:
-
- -r-sr-xr-x 1 uucp uucp 67216 Jul 27 1999 cu
-
- and even when you run it as root, then you must go back and install
- "cu" from your AIX installation media.
-
- According to IBM's "From Strength to Strength" document (21 April
- 1998), in AIX 4.2 and later "Async supports speeds on native serial
- ports up to 115.2kbps". However, no API is documented to achieve
- serial speeds higher than 38400 bps. Apparently the way to do this --
- which might or might not work only on the IBM 128-port multiplexer --
- is:
-
- cxma-stty fastbaud /dev/tty0
-
- which, according to "man cxma-stty":
-
- fastbaud Alters the baud rate table, so 50 baud becomes 57600 baud.
- -fastbaud Restores the baud rate table, so 57600 baud becomes 50
- baud.
-
- Presumably (but not certainly) this extrapolates to 110 "baud" becomes
- 76800 bps, and 150 becomes 115200 bps. So to use high serial speeds in
- AIX 4.2 or 4.3, the trick would be to give the "cxma-stty fastbaud"
- command for the desired tty device before starting Kermit, and then
- use "set speed 50", "set speed 110", or "set speed 150" to select
- 56700, 76800, or 115200 bps. It is not known whether cxma-stty
- requires privilege.
-
- According to one report, "Further investigation with IBM seems to
- indicate that the only hardware capable of doing this is the 128-port
- multiplexor with one (or more) of the 16 port breakout cables
- (Enhanced Remote Async Node 16-Port EIA-232). We are looking at about
- CDN$4,000 in hardware just to hang a 56kb modem on there. Of course,
- we can then hang 15 more, if we want. This hardware combo is described
- to be good to 230.4kbps."
-
- Another report says (quote from AIX newsgroup, March 1999):
-
- The machine type and the adapter determine the speed that one can
- actually run at. The older microchannel machines have much slower
- crystal frequencies and may not go beyond 76,800. A feature put
- into AIX 421 allows one to key in non-POSIX baud rates and if the
- uart can support that speed, it will get set. this applies also to
- 43p's and beyond. 115200 is the max for the 43P's native serial
- port. As crytal frequencies continue to increase, the built-in
- serial ports speeds will improve. To use 'uucp' or 'ate' at the
- higher baud rates, configure the port for the desired speed, but
- set the speed of uucp or ate to 50. Any non-POSIX speeds set in the
- ttys configuration will the be used. In the case of the 128-port
- adapters or the ISA 8-port or PCI 8-port adapter, there are only a
- few higher baud rates.
-
- a. Change the port to enable high baud rates:
- + B50 for 57600
- + B75 for 76800
- + B110 for 115200
- + B200 for 230000
- b. chdev -l ttyX -a fastbaud=enable
- + For the 128 ports original style rans, only 57600 bps is
- supported.
- + For the new enhanced RANs, up to 230Kbps is supported.
-
- In AIX 2.2.1 on the RT PC with the 8-port multiplexer, SET SPEED 38400
- gives 9600 bps, but SET SPEED 19200 gives 19200 (on the built-in S1
- port).
-
- Note that some RS/6000s (e.g. the IBM PowerServer 320) have
- nonstandard rectangular 10-pin serial ports; the DB-25 connector is
- NOT a serial port; it is a parallel printer port. IBM cables are
- required for the serial ports, (The IBM RT PC also had rectangular
- serial ports -- perhaps the same as these, perhaps different.)
-
- If you dial in to AIX through a modem that is connected directly to an
- AIX port (e.g. on the 128-port multiplexer) and find that data is
- lost, especially when uploading files to the AIX system (and system
- error logs report buffer overruns on the port):
-
- 1. Make sure the port and modem are BOTH configured for hardware
- (RTS/CTS) flow control. The port is configured somewhere in the
- system configuration, outside of Kermit.
- 2. Tell C-Kermit to "set flow keep"; experimentation shows that SET
- FLOW RTS/CTS has no effect when used in remote mode (i.e. on
- /dev/tty, as opposed to a specify port device).
- 3. Fixes for bugs in the original AIX 4.2 tty (serial i/o) support
- and other AIX bugs are available from IBM at:
- [174]http://service.software.ibm.com/rs6000/
- Downloads -> Software Fixes -> Download FixDist gets an
- application for looking up known problems.
-
- Many problems reported with bidirectional terminal lines on AIX 3.2.x
- on the RS/6000. Workaround: don't use bidirectional terminal lines, or
- write a shell-script wrapper for Kermit that turns getty off on the
- line before starting Kermit, or before Kermit attempts to do the SET
- LINE. (But note: These problems MIGHT be fixed in C-Kermit 6.0 and
- later.) The commands for turning getty off and on (respectively) are
- /usr/sbin/pdisable and /usr/sbin/penable.
- ______________________________________________________________________
-
- 3.1.4. AIX: File Transfer
-
- [ [175]Top ] [ [176]Contents ] [ [177]Section Contents ] [ [178]Next ]
- [ [179]Previous ]
-
- Evidently AIX 4.3 (I don't know about earlier versions) does not allow
- open files to be overwritten. This can cause Kermit transfers to fail
- when FILE COLLISION is OVERWRITE, where they might work on other Unix
- varieties or earlier AIX versions.
-
- Transfer of binary -- and maybe even text -- files can fail in AIX if
- the AIX terminal has particular port can have character-set
- translation done for it by the tty driver. The following advice from a
- knowledgeable AIX user:
-
- [This feature] has to be checked (and set/cleared) with a separate
- command, unfortunately stty doesn't handle this. To check:
-
- $ setmaps
- input map: none installed
- output map: none installed
-
- If it says anything other than "none installed" for either one, it
- is likely to cause a problem with kermit. To get rid of installed
- maps:
-
- $ setmaps -t NOMAP
-
- However, I seem to recall that with some versions of AIX before
- 3.2.5, only root could change the setting. I'm not sure what
- versions - it might have only been under AIX 3.1 that this was
- true. At least with AIX 3.2.5 an ordinary user can set or clear the
- maps.
-
- On the same problem, another knowledgeable AIX user says:
-
- The way to get information on the NLS mapping under AIX (3.2.5
- anyway) is as follows. From the command line type:
-
- lsattr -l tty# -a imap -a omap -E -H
-
- Replace the tty number for the number sign above. This will give a
- human readable output of the settings that looks like this;
-
- # lsattr -l tty2 -a imap -a omap -E -H
- attribute value description user_settable
-
- imap none INPUT map file True
- omap none OUTPUT map file True
-
- If you change the -H to a -O, you get output that can easily be
- processed by another program or a shell script, for example:
-
- # lsattr -l tty2 -a imap -a omap -E -O
- #imap:omap
- none:none
-
- To change the settings from the command line, the chdev command is
- used with the following syntax.
-
- chdev -l tty# -a imap='none' -a omap='none'
-
- Again substituting the appropriate tty port number for the number
- sign, "none" being the value we want for C-Kermit. Of course, the
- above can also be changed by using the SMIT utility and selecting
- devices - tty. (...end quote)
- ______________________________________________________________________
-
- 3.1.5. AIX: Xterm Key Map
-
- [ [180]Top ] [ [181]Contents ] [ [182]Section Contents ] [
- [183]Previous ]
-
- Here is a sample configuration for setting up an xterm keyboard for
- VT220 or higher terminal emulation on AIX, courtesy of Bruce Momjian,
- Drexel Hill, PA. Xterm can be started like this:
-
- xterm $XTERMFLAGS +rw +sb +ls $@ -tm 'erase ^? intr ^c' -name vt220 \
- -title vt220 -tn xterm-220 "$@" &
-
----------------------------------------------------------------------------
- XTerm*VT100.Translations: #override \n\
- <Key>Home: string(0x1b) string("[3~") \n \
- <Key>End: string(0x1b) string("[4~") \n
- vt220*VT100.Translations: #override \n\
- Shift <Key>F1: string("[23~") \n \
- Shift <Key>F2: string("[24~") \n \
- Shift <Key>F3: string("[25~") \n \
- Shift <Key>F4: string("[26~") \n \
- Shift <Key>F5: string("[K~") \n \
- Shift <Key>F6: string("[31~") \n \
- Shift <Key>F7: string("[31~") \n \
- Shift <Key>F8: string("[32~") \n \
- Shift <Key>F9: string("[33~") \n \
- Shift <Key>F10: string("[34~") \n \
- Shift <Key>F11: string("[28~") \n \
- Shift <Key>F12: string("[29~") \n \
- <Key>Print: string(0x1b) string("[32~") \n\
- <Key>Cancel: string(0x1b) string("[33~") \n\
- <Key>Pause: string(0x1b) string("[34~") \n\
- <Key>Insert: string(0x1b) string("[2~") \n\
- <Key>Delete: string(0x1b) string("[3~") \n\
- <Key>Home: string(0x1b) string("[1~") \n\
- <Key>End: string(0x1b) string("[4~") \n\
- <Key>Prior: string(0x1b) string("[5~") \n\
- <Key>Next: string(0x1b) string("[6~") \n\
- <Key>BackSpace: string(0x7f) \n\
- <Key>Num_Lock: string(0x1b) string("OP") \n\
- <Key>KP_Divide: string(0x1b) string("Ol") \n\
- <Key>KP_Multiply: string(0x1b) string("Om") \n\
- <Key>KP_Subtract: string(0x1b) string("OS") \n\
- <Key>KP_Add: string(0x1b) string("OM") \n\
- <Key>KP_Enter: string(0x1b) string("OM") \n\
- <Key>KP_Decimal: string(0x1b) string("On") \n\
- <Key>KP_0: string(0x1b) string("Op") \n\
- <Key>KP_1: string(0x1b) string("Oq") \n\
- <Key>KP_2: string(0x1b) string("Or") \n\
- <Key>KP_3: string(0x1b) string("Os") \n\
- <Key>KP_4: string(0x1b) string("Ot") \n\
- <Key>KP_5: string(0x1b) string("Ou") \n\
- <Key>KP_6: string(0x1b) string("Ov") \n\
- <Key>KP_7: string(0x1b) string("Ow") \n\
- <Key>KP_8: string(0x1b) string("Ox") \n\
- <Key>KP_9: string(0x1b) string("Oy") \n
-
- ! <Key>Up: string(0x1b) string("[A") \n\
- ! <Key>Down: string(0x1b) string("[B") \n\
- ! <Key>Right: string(0x1b) string("[C") \n\
- ! <Key>Left: string(0x1b) string("[D") \n\
-
- *visualBell: true
- *saveLines: 1000
- *cursesemul: true
- *scrollKey: true
- *scrollBar: true
- ________________________________________________________________________
-
- 3.2. C-KERMIT AND HP-UX
-
- [ [184]Top ] [ [185]Contents ] [ [186]Section Contents ] [ [187]Next ]
- [ [188]Previous ]
-
- SECTION CONTENTS
-
- 3.2.0. [189]Common Problems
- 3.2.1. [190]Building C-Kermit on HP-UX
- 3.2.2. [191]File Transfer
- 3.2.3. [192]Dialing Out and UUCP Lockfiles in HP-UX
- 3.2.4. [193]Notes on Specific HP-UX Releases
- 3.2.5. [194]HP-UX and X.25
-
- REFERENCES
-
- For further information, read the [195]comp.sys.hp.hpux newsgroup.
-
- C-Kermit is included as part of the HP-UX operating system by contract
- between Hewlett Packard and Columbia University for HP-UX 10.00 and
- later. Each level of HP-UX includes a freshly built C-Kermit binary in
- /bin/kermit, which should work correctly. Binaries built for regular
- HP-UX may be used on Trusted HP-UX and vice-versa, except for use as
- IKSD because of the different authentication methods.
-
- Note that HP does not update C-Kermit versions for any but its most
- current HP-UX release. So, for example, HP-UX 10.20 has C-Kermit 6.0;
- 11.00 has C-Kermit 7.0, and 11.22 has 8.0. Of course, as with all
- software, older Kermit versions have bugs (such as buffer overflow
- vulnerabilities) that are fixed in later versions. From time to time,
- HP discovers one of these (long-ago fixed) bugs and issues a security
- alert for the older OS's, recommending some draconian measure to avoid
- the problem. The true fix in each situation is to install the current
- release of C-Kermit.
-
- 3.2.0. Common Problems
-
- [ [196]Top ] [ [197]Contents ] [ [198]Section Contents ] [ [199]Next ]
-
- Some HP workstations have a BREAK/RESET key. If you hit this key while
- C-Kermit is running, it might kill or suspend the C-Kermit process.
- C-Kermit arms itself against these signals, but evidently the
- BREAK/RESET key is -- at least in some circumstances, on certain HP-UX
- versions -- too powerful to be caught. (Some report that the first
- BREAK/RESET shows up as SIGINT and is caught by C-Kermit's former
- SIGINT handler even when SIGINT is currently set to SIG_IGN; the
- second kills Kermit; other reports suggest the first BREAK/RESET sends
- a SIGTSTP (suspend signal) to Kermit, which it catches and suspends
- itself. You can tell C-Kermit to ignore suspend signals with SET
- SUSPEND OFF. You can tell C-Kermit to ignore SIGINT with SET COMMAND
- INTERRUPTION OFF. It is not known whether these commands also grant
- immunity to the BREAK/RESET key (one report states that with SET
- SUSPEND OFF, the BREAK/RESET key is ignored the first four times, but
- kills Kermit the 5th time). In any case:
-
- 1. If this key is mapped to SIGINT or SIGTSTP, C-Kermit catches or
- ignores it, depending on which mode (CONNECT, command, etc) Kermit
- is in.
- 2. If it causes HP-UX to kill C-Kermit, there is nothing C-Kermit can
- do to prevent it.
-
- When HP-UX is on the remote end of the connection, it is essential
- that HP-UX C-Kermit be configured for Xon/Xoff flow control (this is
- the default, but in case you change it and then experience
- file-transfer failures, this is a likely reason).
- ________________________________________________________________________
-
- 3.2.1. Building C-Kermit on HP-UX
-
- [ [200]Top ] [ [201]Contents ] [ [202]Section Contents ] [ [203]Next ]
- [ [204]Previous ]
-
- This section applies mainly to old (pre-10.20) HP-UX version on
- old, slow, and/or memory-constrained hardware.
-
- During the C-Kermit 6.0 Beta cycle, something happened to ckcpro.w
- (or, more precisely, the ckcpro.c file that is generated from it)
- which causes HP optimizing compilers under HP-UX versions 7.0 and 8.0
- (apparently on all platforms) as well as under HP-UX 9.0 on Motorola
- platforms only, to blow up. In versions 7.0 and 8.0 the problem has
- spread to other modules.
-
- The symptoms vary from the system grinding to a halt, to the compiler
- crashing, to the compilation of the ckcpro.c module taking very long
- periods of time, like 9 hours. This problem is handled by compiling
- the modules that tickle it without optimization; the new C-Kermit
- makefile takes care of this, and shows how to do it in case the same
- thing begins happening with other modules.
-
- On HP-UX 9.0, a kernel parameter, maxdsiz (maximum process data
- segment size), seems to be important. On Motorola systems, it is 16MB
- by default, whereas on RISC systems the default is much bigger.
- Increasing maxdsiz to about 80MB seems to make the problem go away,
- but only if the system also has a lot of physical memory -- otherwise
- it swaps itself to death.
-
- The optimizing compiler might complain about "some optimizations
- skipped" on certain modules, due to lack of space available to the
- optimizer. You can increase the space (the incantation depends on the
- particular compiler version -- see the [205]makefile), but doing so
- tends to make the compilations take a much longer time. For example,
- the "hpux0100o+" makefile target adds the "+Onolimit" compiler flag,
- and about an hour to the compile time on an HP-9000/730. But it *does*
- produce an executable that is about 10K smaller :-)
-
- In the makefile, all HP-UX entries automatically skip optimization of
- problematic modules.
- ________________________________________________________________________
-
- 3.2.2. File Transfer
-
- [ [206]Top ] [ [207]Contents ] [ [208]Section Contents ] [ [209]Next ]
- [ [210]Previous ]
-
- Telnet connections into HP-UX versions up to and including 11.11 (and
- possibly 11.20) tend not to lend themselves to file transfer due to
- limitations, restrictions, and/or bugs in the HP-UX Telnet server
- and/or pseudoterminal (pty) driver.
-
- In C-Kermit 6.0 (1996) an unexpected slowness was noted when
- transferring files over local Ethernet connections when an HP-UX
- system (9.05 or 10.00) was on the remote end. The following experiment
- was conducted to determine the cause. C-Kermit 6.0 was used; the
- situation is slightly better using C-Kermit 7.0's streaming feature
- and HP-UX 10.20 on the far end.
-
- The systems were HP-UX 10.00 (on 715/33) and SunOS 4.1.3 (on
- Sparc-20), both on the same local 10Mbps Ethernet, packet length 4096,
- parity none, control prefixing "cautious", using only local disks on
- each machine -- no NFS. In the C-Kermit 6.0 (ACK/NAK) case, the window
- size was 20; in the streaming case there is no window size (i.e. it is
- infinite). The test file was C-Kermit executable, transferred in
- binary mode. Conditions were relatively poor: the Sun and the local
- net heavily loaded; the HP system is old, slow, and
- memory-constrained.
-
- C-Kermit 6.0... C-Kermit 7.0...
- Local Remote ACK/NAK........ Streaming......
- Client Server Send Receive Send Receive
- Sun HP 36 18 64 18
- HP HP 25 15 37 16
- HP Sun 77 83 118 92
- Sun Sun 60 60 153 158
-
- So whenever HP is the remote we have poor performance. Why?
-
- * Changing file display to CRT has no effect (so it's not the curses
- library on the client side).
- * Changing TCP RECV-BUFFER or SEND-BUFFER has little effect.
- * Telling the client to make a binary-mode connection (SET TELNET
- BINARY REQUESTED, which successfully negotiates a binary
- connection) has no effect on throughput.
-
- BUT... If I start HP-UX C-Kermit as a TCP service:
-
- set host * 3000
- server
-
- and then from the client "set host xxx 3000", I get:
-
- C-Kermit 6.0... C-Kermit 7.0...
- Local Remote ACK/NAK........ Streaming......
- Client Server Send Receive Send Receive
- Sun HP 77 67 106 139
- HP HP 50 50 64 62
- HP Sun 57 85 155 105
- Sun Sun 57 50 321 314
-
- Therefore the HP-UX telnet server or pty driver seems to be adding
- more overhead than the SunOS one, and most others. When going through
- this type of connection (a remote telnet server) there is little
- Kermit can do improve matters, since the telnet server and pty driver
- are between the two Kermits, and neither Kermit program can have any
- influence over them (except putting the Telnet connection in binary
- mode, but that doesn't help).
-
- (The numbers for the HP-HP transfers are lower than the others since
- both Kermit processes are running on the same slow 33MHz CPU.)
-
- Matters seem to have deteriorated in HP-UX 11. Now file transfers over
- Telnet connections fail completely, rather than just being slow. In
- the following trial, a Telnet connection was made from Kermit 95 to
- HP-UX 11.11 on an HP-9000/785/B2000 over local 10Mbps Ethernet running
- C-Kermit 8.00 in server mode (under the HP-UX Telnet server):
-
- Text........ Binary......
- Stream Pktlen GET SEND GET SEND
- On 4000 Fail Fail Fail Fail
- Off 4000 Fail Fail Fail Fail
- Off 2000 OK Fail OK Fail
- On 2000 OK Fail OK Fail
- On 3000 Fail Fail Fail Fail
- On 2500 Fail Fail Fail Fail
- On 2047 OK Fail OK Fail
- On 2045 OK Fail OK Fail
- Off 500 OK OK OK OK
- On 500 OK Fail OK Fail
- On 240 OK Fail OK Fail
-
- As you can see, downloads are problematic unless the receiver's Kermit
- packet length is 2045 or less, but uploads work only with streaming
- disabled and the packet length restricted to 500. To force file
- transfers to work on this connection, the desktop Kermit must be told
- to:
-
- set streaming off
- set receive packet-length 2000
- set send packet-length 500
-
- However, if a connection is made between the same two programs on the
- same two computers over the same network, but this time a direct
- socket-to-socket connection bypassing the HP-UX Telnet server and pty
- driver (tell HP-UX C-Kermit to "set host /server * 3000 /raw"; tell
- desktop client program to "set host blah 3000 /raw"), everything works
- perfectly with the default Kermit settings (streaming, 4K packets,
- liberal control-character unprefixing, 8-bit transparency, etc):
-
- Text........ Binary......
- Stream Pktlen GET SEND GET SEND
- On 4000 OK OK OK OK
-
- And in this case, transfer rates were approximately 900,000 cps. To
- verify that the behavior reported here is not caused by the new Kermit
- release, the same experiment was performed on a Telnet connection from
- the same PC over the same network to the old 715/33 running HP-UX
- 10.20 and C-Kermit 8.00. Text and binary uploads and downloads worked
- perfectly (albeit slowly) with all the default settings -- streaming,
- 4K packets, etc.
- ________________________________________________________________________
-
- 3.2.3. Dialing Out and UUCP Lockfiles in HP-UX
-
- [ [211]Top ] [ [212]Contents ] [ [213]Section Contents ] [ [214]Next ]
- [ [215]Previous ]
-
- HP workstations do not come with dialout devices configured; you have
- to do it yourself (as root). First look in /dev to see what's there;
- for example in HP-UX 10.00 or later:
-
- ls -l /dev/cua*
- ls -l /dev/tty*
-
- If you find a tty0p0 device but no cua0p0, you'll need to creat one if
- you want to dial out; the tty0p0 does not work for dialing out. It's
- easy: start SAM; in the main Sam window, double-click on Peripheral
- Device, then in the Peripheral Devices window, double-click on
- Terminals and Modems. In the Terminals and Modems dialog, click on
- Actions, then choose "Add modem" and fill in the blanks. For example:
- Port number 0, speed 57600 (higher speeds tend not to work reliably),
- "Use device for calling out", do NOT "Receive incoming calls" (unless
- you know what you are doing), leave "CCITT modem" unchecked unless you
- really have one, and do select "Use hardware flow control (RTS/CTS)".
- Then click OK. This creates cua0p0 as well as cul0p0 and ttyd0p0
-
- If the following sequence:
-
- set line /dev/cua0p0 ; or other device
- set speed 115200 ; or other normal speed
-
- produces the message "?Unsupported line speed". This means either that
- the port is not configured for dialout (go into SAM as described above
- and make sure "Use device for calling out" is selected), or else that
- speed you have given (such as 460800) is supported by the operating
- system but not by the physical device (in which case, use a lower
- speed like 57600).
-
- In HP-UX 9.0, serial device names began to change. The older names
- looked like "/dev/cua00", "/dev/tty01", etc (sometimes with only one
- digit). The newer names have two digits with the letter "p" in
- between. HP-UX 8.xx and earlier have the older form, HP-UX 10.00 and
- later have the newer form. HP-UX 9.xx has the newer form on Series 800
- machines, and the older form on other hardware models. The situation
- is summarized in the following table (the Convio 10.0 column applies
- to HP-UX 10 and 11).
-
- Converged HP-UX Serial I/O Filenames : TTY Mux Naming
- ---------------------------------------------------------------------
- General meaning Old Form S800 9.0 Convio 10.0
- ---------------------------------------------------------------------
- tty* hardwired ports tty<YY> tty<X>p<Y> tty<D>p<p>
- diag:mux<X> diag:mux<D>
- ---------------------------------------------------------------------
- ttyd* dial-in modems ttyd<YY> ttyd<X>p<Y> ttyd<D>p<p>
- diag:ttyd<X>p<Y> diag:ttyd<D>p<p>
- ---------------------------------------------------------------------
- cua* auto-dial out cua<YY> cua<X>p<Y> cua<D>p<p>
- diag:cua<X>p<Y>
- ---------------------------------------------------------------------
- cul* dial-out cul<YY> cul<X>p<Y> cul<D>p<p>
- diag:cul<X>p<Y>
- ---------------------------------------------------------------------
- <X>= LU (Logical Unit) <D>= Devspec (decimal card instance)
- <Y> or <YY> = Port <p>= Port
-
- For dialing out, you should use the cua or cul devices. When
- C-Kermit's CARRIER setting is AUTO or ON, C-Kermit should pop back to
- its prompt automatically if the carrier signal drops, e.g. when you
- log out from the remote computer or service. If you use the tty<D>p<d>
- (e.g. tty0p0) device, the carrier signal should be ignored. The
- tty<D>p<d> device should be used for direct connections where the
- carrier signal does not follow RS-232 conventions (use the cul device
- for hardwired connections through a true null modem). Do not use the
- ttyd<D>p<d> device for dialing out.
-
- Kermit's access to serial devices is controlled by "UUCP lockfiles",
- which are intended to prevent different users using different software
- programs (Kermit, cu, etc, and UUCP itself) from accessing the same
- serial device at the same time. When a device is in use by a
- particular user, a file with a special name is created in:
-
- /var/spool/locks (HP-UX 10.00 and later)
- /usr/spool/uucp (HP-UX 9.xx and earlier)
-
- The file's name indicates the device that is in use, and its contents
- indicates the process ID (pid) of the process that is using the
- device. Since serial devices and the locks directory are not both
- publicly readable and writable, Kermit and other communication
- software must be installed setuid to the owner (bin) of the serial
- device and setgid to the group (daemon) of the /var/spool/locks
- directory. Kermit's setuid and setgid privileges are enabled only when
- opening the device and accessing the lockfiles.
-
- Let's say "unit" means a string of decimal digits (the interface
- instance number) followed (in HP-UX 10.00 and later) by the letter "p"
- (lowercase), followed by another string of decimal digits (the port
- number on the interface), e.g.:
-
- "0p0", "0p1", "1p0", etc (HP-UX 10.00 and later)
- "0p0", "0p1", "1p0", etc (HP-UX 9.xx on Series 800)
- "00", "01", "10", "0", etc (HP-UX 9.xx not on Series 800)
- "00", "01", "10", "0", etc (HP-UX 8.xx and earlier)
-
- Then a normal serial device (driver) name consists of a prefix ("tty",
- "ttyd", "cua", "cul", or possibly "cuad" or "culd") followed by a
- unit, e.g. "cua0p0". Kermit's treatment of UUCP lockfiles is as close
- as possible to that of the HP-UX "cu" program. Here is a table of the
- lockfiles that Kermit creates for unit 0p0:
-
- Selection Lockfile 1 Lockfile 2
- /dev/tty0p0 LCK..tty0p0 (none)
-* /dev/ttyd0p0 LCK..ttyd0p0 (none)
- /dev/cua0p0 LCK..cua0p0 LCK..ttyd0p0
- /dev/cul0p0 LCK..cul0p0 LCK..ttyd0p0
- /dev/cuad0p0 LCK..cuad0p0 LCK..ttyd0p0
- /dev/culd0p0 LCK..culd0p0 LCK..ttyd0p0
- <other> LCK..<other> (none)
-
- (* = Dialin device, should not be used.)
-
- In other words, if the device name begins with "cu", a second lockfile
- for the "ttyd" device, same unit, is created, which should prevent
- dialin access on that device.
-
- The <other> case allows for symbolic links, etc, but of course it is
- not foolproof since we have no way of telling which device is really
- being used.
-
- When C-Kermit tries to open a dialout device whose name ends with a
- "unit", it searches the lockfile directory for all possible names for
- the same unit. For example, if user selects /dev/cul2p3, Kermit looks
- for lockfiles named:
-
- LCK..tty2p3
- LCK..ttyd2p3
- LCK..cua2p3
- LCK..cul2p3
- LCK..cuad2p3
- LCK..culd2p3
-
- If any of these files are found, Kermit opens them to find out the ID
- (pid) of the process that created them; if the pid is still valid, the
- process is still active, and so the SET LINE command fails and the
- user is informed of the pid so s/he can use "ps" to find out who is
- using the device.
-
- If the pid is not valid, the file is deleted. If all such files (i.e.
- with same "unit" designation) are successfully removed, then the SET
- LINE command succeeds; up to six messages are printed telling the user
- which "stale lockfiles" are being removed.
-
- When the "set line" command succeeds in HP-UX 10.00 and later,
- C-Kermit also creates a Unix System V R4 "advisory lock" as a further
- precaution (but not guarantee) against any other process obtaining
- access to the device while you are using it.
-
- If the selected device was in use by "cu", Kermit can't open it,
- because "cu" has changed its ownership, so we never get as far as
- looking at the lockfiles. In the normal case, we can't even look at
- the device to see who the owner is because it is visible only to its
- (present) owner. In this case, Kermit says (for example):
-
- /dev/cua0p0: Permission denied
-
- When Kermit releases a device it has successfully opened, it removes
- all the lockfiles that it created. This also happens whenever Kermit
- exits "under its own power".
-
- If Kermit is killed with a device open, the lockfile(s) are left
- behind. The next Kermit program that tries to assign the device, under
- any of its various names, will automatically clean up the stale
- lockfiles because the pids they contain are invalid. The behavior of
- cu and other communication programs under these conditions should be
- the same.
-
- Here, by the way, is a summary of the differences between the HP-UX
- port driver types from John Pezzano of HP:
-
- There are three types of device files for each port.
-
- The ttydXXX device file is designed to work as follows:
-
- 1. The process that opens it does NOT get control of the port until
- CD is asserted. This was intentional (over 15 years ago) to allow
- getty to open the port but not control it until someone called in.
- If a process wants to use the direct or callout device files
- (ttyXXX and culXXX respectively), they will then get control and
- getty would be blocked. This eliminated the need to use uugetty
- (and its inherent problems with lock files) for modems. You can
- see this demonstrated by the fact that "ps -ef" shows a ? in the
- tty column for the getty process as getty does not have the port
- yet.
- 2. Once CD is asserted, the port is controlled by getty (or the
- process handling an incoming call) if there was no process using
- the port. The ? in the "ps" command now shows the port. At this
- point, the port accepts data.
-
- Therefore you should use either the callout culXXX device file
- (immediate control but no data until CD is asserted) or the direct
- device file ttyXXX which gives immediate control and immediate data
- and which ignores by default modem control signals.
-
- The ttydXXX device should be used only for callin and my
- recommendation is to use it only for getty and uugetty.
- ________________________________________________________________________
-
- 3.2.4 Notes on Specific HP-UX Releases
-
- SECTION CONTENTS
-
- 3.2.4.1. [216]HP-UX 11
- 3.2.4.2. [217]HP-UX 10
- 3.2.4.3. [218]HP-UX 9
- 3.2.4.4. [219]HP-UX 8
- 3.2.4.5. [220]HP-UX 7 and Earlier
-
- 3.2.4.1. HP-UX 11
-
- [ [221]Top ] [ [222]Contents ] [ [223]Section Contents ] [ [224]Next ]
-
- As noted in [225]Section 3.2.2, the HP-UX 11 Telnet server and/or
- pseudoterminal driver are a serious impediment to file transfer over
- Telnet connections into HP-UX. If you have a Telnet connection into
- HP-UX 11, tell your desktop Kermit program to:
-
- set streaming off
- set receive packet-length 2000
- set send packet-length 500
-
- File transfer speeds over connections from HP-UX 11 (dialed or Telnet)
- are not impeded whatsoever, and can go at whatever speed is allowed by
- the connection and the Kermit partner on the far end.
-
- PA-RISC binaries for HP-UX 10.20 or later should run on any PA-RISC
- system, S700 or S800, as long as the binary was not built under a
- later HP-UX version than the host operating system. HP-UX 11.00 and
- 11.11 are only for PA-RISC systems. HP-UX 11.20 is only for IA64
- (subsequent HP-UX releases will be for both PA-RISC and IA64). To
- check binary compatibility, the following C-Kermit 8.0 binaries were
- run successfully on an HP-9000/785 with HP-UX 11.11:
-
- * Model 7xx HP-UX 10.20
- * Model 8xx HP-UX 10.20
- * Model 7xx HP-UX 11.00
- * Model 8xx HP-UX 11.00
- * Model 7xx HP-UX 11.11
- * Model 8xx HP-UX 11.11
-
- Binaries built under some of the earlier HP-UX releases, such as 9.05,
- might also work, but only if built for the same hardware family (e.g.
- s700).
- ________________________________________________________________________
-
- 3.2.4.2. HP-UX 10
-
- [ [226]Top ] [ [227]Contents ] [ [228]Section Contents ] [ [229]Next ]
- [ [230]Previous ]
-
- Beginning in HP-UX 10.10, libcurses is linked to libxcurses, the new
- UNIX95 (X/Open) version of curses, which has some serious bugs; some
- routines, when called, would hang and never return, some would dump
- core. Evidently libxcurses contains a select() routine, and whenever
- C-Kermit calls what it thinks is the regular (sockets) select(), it
- gets the curses one, causing a segmentation fault. There is a patch
- for this from HP, PHCO_8086, "s700_800 10.10 libcurses patch", "shared
- lib curses program hangs on 10.10", "10.10 enhanced X/Open curses core
- dumps due to using wrong select call", 96/08/02 (you can tell if the
- patch is installed with "what /usr/lib/libxcurses.1"; the unpatched
- version is 76.20, the patched one is 76.20.1.2). It has been verified
- that C-Kermit works OK with the patched library, but results are not
- definite for HP-UX 10.20 or higher.
-
- To ensure that C-Kermit works even on non-patched HP-UX 10.10 systems,
- separate makefile entries are provided for HP-UX 10.00/10.01, 10.10,
- 10.20, etc, in which the entries for 10.10 and above link with
- libHcurses, which is "HP curses", the one that was used in
- 10.00/10.01. HP-UX 11.20 and later, however, link with libcurses, as
- libHcurses disappeared in 11.20.
- ________________________________________________________________________
-
- 3.2.4.3. HP-UX 9
-
- [ [231]Top ] [ [232]Contents ] [ [233]Section Contents ] [ [234]Next ]
- [ [235]Previous ]
-
- HP-UX 9.00 and 9.01 need patch PHNE_10572 (note: this replaces
- PHNE_3641) for hptt0.o, asio0.o, and ttycomn.o in libhp-ux.a. Contact
- Hewlett Packard if you need this patch. Without it, the dialout device
- (tty) will be hung after first use; subsequent attempts to use will
- return an error like "device busy". (There are also equivalent patches
- for s700 9.03 9.05 9.07 (PHNE_10573) and s800 9.00 9.04 (PHNE_10416).
-
- When C-Kermit is in server mode, it might have trouble executing
- REMOTE HOST commands. This problem happens under HP-UX 9.00 (Motorola)
- and HP-UX 9.01 (RISC) IF the C-Shell is the login shell AND with the
- C-Shell Revision 70.15. Best thing is to install HP's Patch PHCO_4919
- for Series 300/400 and PHCO_5015 for the Series 700/800. PHCO_5015 is
- called "s700_800 9.X cumulative csh(1) patch with memory leak fix"
- which works for HP-UX 9.00, 9.01, 9.03, 9.04, 9.05 and 9.07. At least
- you need C-Shell Revision 72.12!
-
- C-Kermit works fine -- including its curses-based file-transfer
- display -- on the console terminal, in a remote session (e.g. when
- logged in to the HP 9000 on a terminal port or when telnetted or
- rlogin'd), and in an HP-VUE hpterm window or an xterm window.
- ________________________________________________________________________
-
- 3.2.4.4. HP-UX 8
-
- [ [236]Top ] [ [237]Contents ] [ [238]Section Contents ] [ [239]Next ]
- [ [240]Previous ]
-
- To make C-Kermit work on HP-UX 8.05 on a model 720, obtain and install
- HP-UX patch PHNE_0899. This patch deals with a lot of driver issues,
- particularly related to communication at higher speeds.
-
- One user reports:
-
- On HP-UX 8 DON'T install 'tty patch' PHKL_4656, install PHKL_3047
- instead! Yesterday I tried this latest tty patch PHKL_4656 and had
- terrible problems. This patch should fix RTS/CTS problems. With
- text transver all looks nice. But when I switched over to binary
- files the serial interface returned only rubish to C-Kermit. All
- sorts of protocol, CRC and packed errors I had. After several tests
- and after uninstalling that patch, all transvers worked fine. MB's
- of data without any errors. So keep your fingers away from that
- patch. If anybody needs the PHKL_3047 patch I have it here. It is
- no longer availabel from HP's patch base.
- ________________________________________________________________________
-
- 3.2.4.5. HP-UX 7 and Earlier
-
- [ [241]Top ] [ [242]Contents ] [ [243]Section Contents ] [
- [244]Previous ]
-
- When transferring files into HP-UX 5 or 6 over a Telnet connection,
- you must not use streaming, and you must not use a packet length
- greater than 512. However, you can use streaming and longer packets
- when sending files from HP-UX on a Telnet connection. In C-Kermit 8.0,
- the default receive packet length for HP-UX 5 and 6 was changed to 500
- (but you can still increase it with SET RECEIVE PACKET-LENGTH if you
- wish, e.g. for non-Telnet connections). Disable streaming with SET
- STREAMING OFF.
-
- The HP-UX 5.00 version of C-Kermit does not include the fullscreen
- file-transfer because of problems with the curses library.
-
- If HP-UX 5.21 with Wollongong TCP/IP is on the remote end of a Telnet
- connection, streaming transfers to HP-UX invariably fail. Workaround:
- SET STREAMING OFF. Packets longer than about 1000 should not be used.
- Transfers from these systems, however, can use streaming and/or longer
- packets.
-
- Reportedly, "[there is] a bug in C-Kermit using HP-UX version 5.21 on
- the HP-9000 series 500 computers. It only occurs when the controlling
- terminal is using an HP-27140 six-port modem mux. The problem is not
- present if the controlling terminal is logged into an HP-27130
- eight-port mux. The symptom is that just after dialing successfully
- and connecting Kermit locks up and the port is unusable until both
- forks of Kermit and the login shell are killed." (This report predates
- C-Kermit 6.0 and might no longer apply.)
- ________________________________________________________________________
-
- 3.2.5. HP-UX and X.25
-
- [ [245]Top ] [ [246]Contents ] [ [247]Section Contents ] [
- [248]Previous ]
-
- Although C-Kermit presently does not include built-in support for
- HP-UX X.25 (as it does for the Sun and IBM X.25 products), it can
- still be used to make X.25 connections as follows: start Kermit and
- then telnet to localhost. After logging back in, start padem as you
- would normally do to connect over X.25. Padem acts as a pipe between
- Kermit and X.25. In C-Kermit 7.0, you might also be able to avoid the
- "telnet localhost" step by using:
-
- C-Kermit> pty padem address
-
- This works if padem uses standard i/o (who knows?).
- ________________________________________________________________________
-
- 3.3. C-KERMIT AND LINUX
-
- [ [249]Top ] [ [250]Contents ] [ [251]Section Contents ] [ [252]Next ]
- [ [253]Previous ]
-
- SECTION CONTENTS
-
- 3.3.1. [254]Problems Building C-Kermit for Linux
- 3.3.2. [255]Problems with Serial Devices in Linux
- 3.3.3. [256]Terminal Emulation in Linux
- 3.3.4. [257]Dates and Times
- 3.3.5. [258]Startup Errors
- 3.3.6. [259]The Fullscreen File Transfer Display
-
- REFERENCES
-
- For further information, read the [260]comp.os.linux.misc,
- [261]comp.os.linux.answers, and other Linux-oriented newsgroups, and
- see:
-
- The Linux Document Project (LDP)
- [262]http://www.tldp.org/
-
- The Linux FAQ
- [263]http://www.tldp.org/FAQ/Linux-FAQ.html
-
- The Linux HOWTOs (especially the Serial HOWTO)
-
- [264]http://www.tldp.org/HOWTO/Serial-HOWTO.html
-
- [265]http://tldp.org/HOWTO/Modem-HOWTO.html
-
- [266]ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO
-
- [267]ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO
-
- [268]http://www.tldp.org/HOWTO/
-
- [269]http://www.tldp.org/hmirrors.html
-
- Linux Vendor Tech Support Pages:
-
- [270]http://www.redhat.com/apps/support/
-
- [271]http://www.debian.org/support
-
- [272]http://www.slackware.com/support/
-
- [273]http://www.caldera.com/support/
-
- [274]http://www.suse.com/support/
-
- [275]http://www.mandrake.com/support/
-
- [276]http://www.turbolinux.com/support/
-
- Linux Winmodem Support
- [277]http://www.linmodems.org/
-
- Also see general comments on PC-based Unixes in [278]Section 3.0.
-
- What Linux version is it? -- "uname -a" supplies only kernel
- information, but these days it's the distribution that matters: Red
- Hat 7.3, Debian 2.2, Slackware 8.0, etc. Unfortunately there's no
- consistent way to get the distribution version. Usually it's in a
- distribution-specific file:
-
- Red Hat: /etc/issue or /etc/redhat-release
- Debian: /etc/debian_version
- Slackware: /etc/slackware-version (at least in later versions)
-
- Did you know: DECnet is available for Linux? See:
-
- [279]http://linux.dreamtime.org/decnet/
-
- (But there is no support for it in C-Kermit -- anybody interested in
- adding it, please [280]let us know).
-
- Before proceeding, let's handle the some of the most frequently asked
- question in the Linux newsgroups:
-
- 1. Neither C-Kermit nor any other Linux application can use
- Winmodems, except in the [281]rare cases where Linux drivers have
- been written for them. See [282]Section 3.0.2 for details.
- 2. "Why does it take such a long time to make a telnet connection to
- (or from) my Linux PC?" (this applies to C-Kermit and to regular
- Telnet). Most telnet servers these days perform reverse DNS
- lookups on the client (for security and/or logging reasons). If
- the Telnet client's address cannot be found by the server's local
- DNS server, the DNS request goes out to the Internet at large, and
- this can take quite some time. The solution to this problem is to
- make sure that both client and host are registered in DNS, and
- that the registrations are exported. C-Kermit itself performs
- reverse DNS lookups unless you tell it not to; this is to allow
- C-Kermit to let you know which host it is actually connected to in
- case you have made a connection to a host pool (multihomed host).
- You can disable C-Kermit's reverse DNS lookup with SET TCP
- REVERSE-DNS-LOOKUP OFF.
- 3. (Any question that has the word "Telnet" in it...) The knee-jerk
- reaction is "don't use Telnet, use SSH!" There's nothing wrong
- with Telnet. In fact it's far superior to SSH as a protocol in
- terms of features and extensibility, not to mention platform
- neutrality. The issue lurking behind the knee-jerk reaction is
- security. SSH is thought to be secure, whereas Telnet is thought
- to be insecure. This is true for clear-text Telnet (because
- passwords travel in the clear across the network), but apparently
- few people realize that [283]secure Telnet clients and servers
- have been available for years, and these are more secure than SSH
- (for reasons explained [284]HERE.
- 4. (Any question that has the word "FTP" in it...) The knee-jerk
- reaction being "Don't use FTP, use SCP!" (or SFTP). Same answer as
- above, but moreso. SCP and SFTP are not only not platform neutral,
- they're diversity-hostile. They transfer files only in binary
- mode, which mangles text files across different platforms, to the
- same degree the platform's text-file record format and character
- set differ. An extreme example would be an Variable-Block format
- EBCDIC text file on an IBM mainframe, binary transfer of which to
- Unix would do you little good indeed. FTP was designed with
- diversity in mind and secure versions are available.
- ________________________________________________________________________
-
- 3.3.1. Problems Building C-Kermit for Linux
-
- [ [285]Top ] [ [286]Contents ] [ [287]Section Contents ] [ [288]Next ]
-
- Modern Linux distributions like Red Hat give you a choice at
- installation whether to include "developer tools". Obviously, you
- can't build C-Kermit or any other C program from source code if you
- have not installed the developer tools. But to confuse matters, you
- might also have to choose (separately) to install the "curses" or
- "ncurses" terminal control library; thus it is possible to install the
- C compiler and linker, but omit the (n)curses library and headers. If
- curses is not installed, you will not be able to build a version of
- C-Kermit that supports the fullscreen file-transfer display, in which
- case you'll need to use the "linuxnc" makefile target (nc = No Curses)
- or else install ncurses before building.
-
- There are all sorts of confusing issues caused by the many and varied
- Linux distributions. Some of the worst involve the curses library and
- header files: where are they, what are they called, which ones are
- they really? Other vexing questions involve libc5 vs libc6 vs glibc vs
- glibc2 (C libraries), gcc vs egcs vs lcc (compilers), plus using or
- avoiding features that were added in a certain version of Linux or a
- library or a distribution, and are not available in others. As of
- C-Kermit 8.0, these questions should be resolved by the "linux"
- makefile target itself, which does a bit of looking around to see
- what's what, and then sets the appropriate CFLAGS.
- ________________________________________________________________________
-
- 3.3.2. Problems with Serial Devices in Linux
-
- [ [289]Top ] [ [290]Contents ] [ [291]Section Contents ] [ [292]Next ]
- [ [293]Previous ]
-
- Also see: "man setserial", "man irqtune".
- And: [294]Sections 3.0, [295]6, [296]7, and [297]8 of this
- document.
-
- NOTE: Red Hat Linux 7.2 and later include a new API that allows
- serial-port arbitration by non-setuid/gid programs. This API has
- not yet been added to C-Kermit. If C-Kermit is to be used for
- dialing out on Red Hat 7.2 or later, it must still be installed as
- described in in Sections [298]10 and [299]11 of the
- [300]Installation Instructions.
-
- Don't expect it to be easy. Queries like the following are posted to
- the Linux newsgroups almost daily:
-
- Problem of a major kind with my Compaq Presario 1805 in the sense
- that the pnpdump doesn't find the modem and the configuration tells
- me that the modem is busy when I set everything by hand!
-
- I have <some recent SuSE distribution>, kernel 2.0.35. Using the
- Compaq tells me that the modem (which is internal) is on COM2, with
- the usual IRQ and port numbers. Running various Windows diagnostics
- show me AT-style commands exchanged so I have no reason to beleive
- that it is a Winmodem. Also, the diagnostics under Win98 tell me
- that I am talking to an NS 16550AN.
-
- [Editor's note: This does not necessarily mean it isn't a Winmodem.]
-
- Under Linux, no joy trying to talk to the modem on /dev/cua1
- whether via minicom, kppp, or chat; kppp at least tells me that
- tcgetattr() failed.
-
- Usage of setserial:
-
- setserial /dev/cua1 port 0x2F8 irq 3 autoconfig
- setserial -g /dev/cua1
-
- tells me that the uart is 'unknown'. I have tried setting the UART
- manullay via. setserial to 16550A, 16550, and the other one (8550?)
- (I didn't try 16540). None of these manual settings resulted in any
- success.
-
- A look at past articles leads me to investigate PNP issues by
- calling pnpdump but pnpdump returns "no boards found". I have
- looked around on my BIOS (Phoenix) and there is not much evidence
- of it being PNP aware. However for what it calls "Serial port A",
- it offers a choice of Auto, Disabled or Manual settings (currently
- set to Auto), but using the BIOS interface I tried to change to
- 'manual' and saw the default settings offered to be were 0x3F8 and
- IRQ 4 (COM1). The BIOS menus did not give me any chance to
- configure COM2 or any "modem". I ended up not saving any BIOS
- changes in the course of my investigations.
-
- You can also find out a fair amount about your PC's hardware
- configuration in the text files in /proc, e.g.:
-
- -r--r--r-- 1 root 0 Sep 4 14:00 /proc/devices
- -r--r--r-- 1 root 0 Sep 4 14:00 /proc/interrupts
- -r--r--r-- 1 root 0 Sep 4 14:00 /proc/ioports
- -r--r--r-- 1 root 0 Sep 4 14:00 /proc/pci
-
- From the directory listing they look like empty files, but in fact
- they are text files that you "cat":
-
-$ cat /proc/pci
- Bus 0, device 14, function 0:
- Serial controller: US Robotics/3Com 56K FaxModem Model 5610 (rev 1).
- IRQ 10.
- I/O at 0x1050 [0x1057].
-
-$ setserial -g /dev/ttyS4
-/dev/ttyS4, UART: 16550A, Port: 0x1050, IRQ: 10
-
-$ cat /proc/ioports
-1050-1057 : US Robotics/3Com 56K FaxModem Model 5610
- 1050-1057 : serial(auto)
-
-$ cat /proc/interrupts
- CPU0
- 0: 7037515 XT-PIC timer
- 1: 2 XT-PIC keyboard
- 2: 0 XT-PIC cascade
- 4: 0 XT-PIC serial
- 8: 1 XT-PIC rtc
- 9: 209811 XT-PIC usb-uhci, eth0
- 14: 282015 XT-PIC ide0
- 15: 6 XT-PIC ide1
-
- Watch out for PCI, PCMCIA and Plug-n-Play devices, Winmodems, and the
- like (see cautions in [301]Section 3.0 Linux supports Plug-n-Play
- devices to some degree via the isapnp and pnpdump programs; read the
- man pages for them. (If you don't have them, look on your installation
- CD for isapnptool or download it from sunsite or a sunsite mirror or
- other politically correct location du jour).
-
- PCI modems do not use standard COM port addresses. The I/O address and
- IRQ are assigned by the BIOS. All you need to do to get one working,
- find out the I/O address and interrupt number with (as root) "lspci -v
- | more" and then give the resulting address and interrupt number to
- setserial.
-
- Even when you have a real serial port, always be wary of interrupt
- conflicts and similar PC hardware configuration issues: a PC is not a
- real computer like other Unix workstations -- it is generally pieced
- together from whatever random components were the best bargain on the
- commodity market the week it was built. Once it's assembled and boxed,
- not even the manufacturer will remember what it's made of or how it
- was put together because they've moved on to a new model. Their job is
- to get it (barely) working with Windows; for Linux and other OS's you
- are on your own.
-
- "set line /dev/modem" or "set line /dev/ttyS2", etc, results in an
- error, "/dev/modem is not a tty". Cause unknown, but obviously a
- driver issue, not a Kermit one (Kermit uses "isatty()" to check that
- the device is a tty, so it knows it will be able to issue all the
- tty-related ioctl's on it, like setting the speed & flow control). Try
- a different name (i.e. driver) for the same port, e.g. "set line
- /dev/cua2" or whatever.
-
- To find what serial ports were registered at the most recent system
- boot, type (as root): "grep tty /var/log/dmesg".
-
- "set modem type xxx" (where xxx is the name of a modem) followed by
- "set line /dev/modem" or "set
- line /dev/ttyS2", etc, hangs (but can be interrupted with Ctrl-C).
- Experimentation shows that if the modem is configured to always assert
- carrier (&C0) the same command does not hang. Again, a driver issue.
- Use /dev/cua2 (or whatever) instead. (Or not -- hopefully none of
- these symptoms occurs in C-Kermit 7.0 or later.)
-
- "set line /dev/cua0" reports "Device is busy", but "set line
- /dev/ttyS0" works OK.
-
- In short: If the cua device doesn't work, try the corresponding ttyS
- device. If the ttyS device doesn't work, try the corresponding cua
- device -- but note that Linux developers do not recommend this, and
- are phasing out the cua devices. From /usr/doc/faq/howto/Serial-HOWTO:
-
- 12.4. What's The Real Difference Between the /dev/cuaN And /dev/ttySN
- Devices?
- The only difference is the way that the devices are opened. The
- dialin devices /dev/ttySN are opened in blocking mode, until CD
- is asserted (ie someone connects). So, when someone wants to
- use the /dev/cuaN device, there is no conflict with a program
- watching the /dev/ttySN device (unless someone is connected of
- course). The multiple /dev entries, allow operation of the same
- physical device with different operating characteristics. It
- also allows standard getty programs to coexist with any other
- serial program, without the getty being retrofitted with
- locking of some sort. It's especially useful since standard
- Unix kernel file locking, and UUCP locking are both advisory
- and not mandatory.
-
- It was discovered during development of C-Kermit 7.0 that rebuilding
- C-Kermit with -DNOCOTFMC (No Close/Open To Force Mode Change) made the
- aforementioned problem with /dev/ttyS0 go away. It is not yet clear,
- however, what its affect might be on the /dev/cua* devices. As of 19
- March 1998, this option has been added to the CFLAGS in the makefile
- entries for Linux ("make linux").
-
- Note that the cua device is now "deprecated", and new editions of
- Linux will phase (have phased) it out in favor of the ttyS device. See
- (if it's still there):
-
- [302]http://linuxwww.db.erau.edu/mail_archives/linux-kernel/Mar_98/1441.html
-
- (no, of course it isn't; you'll have to use your imagination). One
- user reported that C-Kermit 7.0, when built with egcs 1.1.2 and run on
- Linux 2.2.6 with glibc 2.1 (hardware unknown but probably a PC) dumps
- core when given a "set line /dev/ttyS1" command. When rebuilt with
- gcc, it works fine.
-
- All versions of Linux seem to have the following deficiency: When a
- modem call is hung up and CD drops, Kermit can no longer read the
- modem signals; SHOW COMMUNICATIONS says "Modem signals not available".
- The TIOCMGET ioctl() returns -1 with errno 5 ("I/O Error").
-
- The Linux version of POSIX tcsendbreak(), which is used by C-Kermit to
- send regular (275msec) and long (1.5sec) BREAK signals, appears to
- ignore its argument (despite its description in the man page and info
- topic), and always sends a regular 275msec BREAK. This has been
- observed in Linux versions ranging from Debian 2.1 to Red Hat 7.1.
- ________________________________________________________________________
-
- 3.3.3. Terminal Emulation in Linux
-
- [ [303]Top ] [ [304]Contents ] [ [305]Section Contents ] [ [306]Next ]
- [ [307]Previous ]
-
- C-Kermit is not a terminal emulator. For a brief explanation of why
- not, see [308]Section 3.0.5. For a fuller explanation, [309]ClICK
- HERE.
-
- In Unix, terminal emulation is supplied by the Window in which you run
- Kermit: the regular console screen, which provides Linux Console
- "emulation" via the "console" termcap entry, or under X-Windows in an
- xterm window, which gives VTxxx emulation. An xterm that includes
- color ANSI and VT220 emulation is available with Xfree86:
-
- [310]http://dickey.his.com/xterm/xterm.html
-
- Before starting C-Kermit in an xterm window, you might need to tell
- the xterm window's shell to "stty sane".
-
- To set up your PC console keyboard to send VT220 key sequences when
- using C-Kermit as your communications program in an X terminal window
- (if it doesn't already), create a file somewhere (e.g. in /root/)
- called .xmodmaprc, containing something like the following:
-
- keycode 77 = KP_F1 ! Num Lock => DEC Gold (PF1)
- keycode 112 = KP_F2 ! Keypad / => DEC PF1
- keycode 63 = KP_F3 ! Keypad * => DEC PF3
- keycode 82 = KP_F4 ! Keypad - => DEC PF4
- keycode 111 = Help ! Print Screen => DEC Help
- keycode 78 = F16 ! Scroll Lock => DEC Do
- keycode 110 = F16 ! Pause => DEC Do
- keycode 106 = Find ! Insert => DEC Find
- keycode 97 = Insert ! Home => DEC Insert
- keycode 99 = 0x1000ff00 ! Page Up => DEC Remove
- keycode 107 = Select ! Delete => DEC Select
- keycode 103 = Page_Up ! End => DEC Prev Screen
- keycode 22 = Delete ! Backspace sends Delete (127)
-
- Then put "xmodmap filename" in your .xinitrc file (in your login
- directory), e.g.
-
- xmodmap /root/.xmodmaprc
-
- Of course you can move things around. Use the xev program to find out
- key codes.
-
- Console-mode keys are mapped separately using loadkeys, and different
- keycodes are used. Find out what they are with showkey.
-
- For a much more complete VT220/320 key mapping for [311]Xfree86 xterm,
- [312]CLICK HERE.
- ________________________________________________________________________
-
- 3.3.4. Dates and Times
-
- [ [313]Top ] [ [314]Contents ] [ [315]Section Contents ] [ [316]Next ]
- [ [317]Previous ]
-
- If C-Kermit's date-time (e.g. as shown by its DATE command) differs
- from the system's date and time:
-
- a. Make sure the libc to which Kermit is linked is set to GMT or is
- not set to any time zone. Watch out for mixed libc5/libc6 systems;
- each must be set indpendently.
- b. If you have changed your TZ environment variable, make sure it is
- exported. This is normally done in /etc/profile or /etc/TZ.
- ________________________________________________________________________
-
- 3.3.5. Startup Errors
-
- [ [318]Top ] [ [319]Contents ] [ [320]Section Contents ] [ [321]Next ]
- [ [322]Previous ]
-
- C-Kermit should work on all versions of Linux current through March
- 2003, provided it was built on the same version you have, with the
- same libraries and header files (just get the source code and "make
- linux"). Binaries tend not to travel well from one Linux machine to
- another, due to their many differences. There is no guarantee that a
- particular C-Kermit binary will not stop working at a later date,
- since Linux tends to change out from under its applications. If that
- happens, rebuild C-Kermit from source. If something goes wrong with
- the build process, look on the [323]C-Kermit website for a newer
- version. If you have the latest version, then [324]report the problem
- to us.
-
- Inability to transfer files in Red Hat 7.2: the typical symptom would
- be if you start Kermit and tell it to RECEIVE, it fails right away
- with "?/dev/tty: No such device or address" or "?Bad file descriptor".
- One report says this is because of csh, and if you change your shell
- to bash or other shell, it doesn't happen. Another report cite bugs in
- Red Hat 7.2 Telnetd "very seldom (if ever) providing a controlling
- tty, and lots of other people piled on saying they have the same
- problem.") A third theory is that this happens only when Linux has
- been installed without "virtual terminal support".
-
- A search of RedHat's errata pages shows a bug advisory (RHBA-2001-153)
- issued 13 November 2001, but updated 6 December, about this same
- symptom (but with tcsh and login.) Seems that login was not always
- assigning a controlling TTY for the session, which would make most use
- of "/dev/tty" somewhat less than useful.
-
- [325]http://www.redhat.com/support/errata/RHBA-2001-153.html
-
- Quoting: "Due to terminal handling problems in /bin/login, tcsh would
- not find the controlling terminal correctly, and a shell in single
- user mode would exhibit strange terminal input characteristics. This
- update fixes both of these problems."
-
- Since the Red Hat 5.1 release (circa August 1998), there have been
- numerous reports of prebuilt Linux executables, and particularly the
- Kermit RPM for Red Hat Linux, not working; either it won't start at
- all, or it gives error messages about "terminal type unknown" and
- refuses to initialize its curses support. The following is from the
- [326]Kermit newsgroup:
-
- From: rchandra@hal9000.buf.servtech.com
- Newsgroups: comp.protocols.kermit.misc
- Subject: Red Hat Linux/Intel 5.1 and ncurses: suggestions
- Date: 22 Aug 1998 15:54:46 GMT
- Organization: Verio New York
- Keywords: RedHat RPM 5.1
-
- Several factors can influence whether "linux" is recognized as a
- terminal type on many Linux systems.
-
- 1. Your program, or the libraries it linked with (if statically
- linked), or the libraries it dynamically links with at runtime,
- are looking for an entry in /etc/termcap that isn't there. (not
- likely, but possible... I believe but am not certain that this is
- a very old practice in very old [n]curses library implementations
- to use a single file for all terminal descriptions.)
- 2. Your program, or the libraries...are looking for a terminfo file
- that just plain isn't there. (also not so likely, since many
- people in other recent message threads said that other programs
- work OK).
- 3. Your program, or the libraries...are looking for a terminfo file
- that is stored at a pathname that isn't expected by your program,
- the libraries--and so on. I forgot if I read this in the errata
- Web page or where exactly I discovered this (Netscape install?
- Acrobat install?), but it may just be that one libc (let's say for
- sake of argument, libc5, but I don't know this to be true) expects
- your terminfo to be in /usr/share/terminfo, and the other (let's
- say libc6/glibc) expects /usr/lib/terminfo. I remember that the
- specific instructions in this bugfix/workaround were to do the
- following or equivalent:
- cd /usr/lib
- ln -s ../share/terminfo ./terminfo
- or:
- ln -s /usr/share/terminfo /usr/lib/terminfo
-
- So what this says is that the terminfo database/directory structure
- can be accessed by either path. When something goes to reference
- /usr/lib/terminfo, the symlink redirects it to essentially
- /usr/share/terminfo, which is where it really resides on your
- system. I personally prefer wherever possible to use relative
- symlinks, because they still hold, more often than break, across
- mount points, particularly NFS mounts, where the directory
- structure may be different on the different systems.
-
- Evidently the terminfo file moved between Red Hat 5.0 and 5.1, but Red
- Hat did not include a link to let applications built prior to 5.1 find
- it. Users reported that installing the link fixes the problem.
- ________________________________________________________________________
-
- 3.3.6. The Fullscreen File Transfer Display
-
- [ [327]Top ] [ [328]Contents ] [ [329]Section Contents ] [
- [330]Previous ]
-
- Starting with ncurses versions dated 1998-12-12 (about a year before
- ncurses 5.0), ncurses sets the terminal for buffered i/o, but
- unfortunately is not able to restore it upon exit from curses (via
- endwin()). Thus after a file transfer that uses the fullscreen file
- transfer display, the terminal no longer echos nor responds
- immediately to Tab, ?, and other special command characters. The same
- thing happens on other platforms that use ncurses, e.g. FreeBSD.
- Workarounds:
-
- * Use SET XFER DISPLAY BRIEF, CRT, SERIAL, or NONE instead of
- FULLSCREEN; or:
- * Rebuild with KFLAGS=-DNONOSETBUF (C-Kermit 8.0)
-
- In Red Hat 7.1, when using C-Kermit in a Gnome terminal window, it was
- noticed that when the fullscreen file transfer display exits (via
- endwin()), the previous (pre-file-transfer-display) screen is
- restored. Thus you can't look at the completed display to see what
- happened. This is a evidently a new feature of xterm. I can only
- speculate that initscreen() and endwin() must send some kind of
- special escape sequences that command xterm to save and restore the
- screen. To defeat this effect, tell Linux you have a vt100 or other
- xterm-compatible terminal that is not actually an xterm, or else tell
- Kermit to SET TRANSFER DISPLAY to something besides FULLSCREEN.
- ________________________________________________________________________
-
- 3.4. C-KERMIT AND NEXTSTEP
-
- [ [331]Top ] [ [332]Contents ] [ [333]Section Contents ] [ [334]Next ]
- [ [335]Previous ]
-
- Run C-Kermit in a Terminal, Stuart, or xterm window, or when logged in
- remotely through a serial port or TELNET connection. C-Kermit does not
- work correctly when invoked directly from the NeXTSTEP File Viewer or
- Dock. This is because the terminal-oriented gtty, stty, & ioctl calls
- don't work on the little window that NeXTSTEP pops up for non-NeXTSTEP
- applications like Kermit. CBREAK and No-ECHO settings do not take
- effect in the command parser -- commands are parsed strictly line at a
- time. "set line /dev/cua" works. During CONNECT mode, the console
- stays in cooked mode, so characters are not transmitted until carriage
- return or linefeed is typed, and you can't escape back. If you want to
- run Kermit directly from the File Viewer, then launch it from a shell
- script that puts it in the desired kind of window, something like this
- (for "Terminal"):
-
- Terminal -Lines 24 -Columns 80 -WinLocX 100 -WinLocY 100 $FONT $FONTSIZE \
- -SourceDotLogin -Shell /usr/local/bin/kermit &
-
- C-Kermit does not work correctly on a NeXT with NeXTSTEP 3.0 to which
- you have established an rlogin connection, due to a bug in NeXTSTEP
- 3.0, which has been reported to NeXT.
-
- The SET CARRIER command has no effect on the NeXT -- this is a
- limitation of the NeXTSTEP serial-port device drivers.
-
- Hardware flow control on the NeXT is selected not by "set flow
- rts/cts" in Kermit (since NeXTSTEP offers no API for this), but
- rather, by using a specially-named driver for the serial device:
- /dev/cufa instead /dev/cua; /dev/cufb instead of /dev/cub. This is
- available only on 68040-based NeXT models (the situation for Intel
- NeXTSTEP implementations is unknown).
-
- NeXT-built 68030 and 68040 models have different kinds of serial
- interfaces; the 68030 has a Macintosh-like RS-422 interface, which
- lacks RTS and CTS signals; the 68040 has an RS-423 (RS-232 compatible)
- interface, which supports the commonly-used modem signals. WARNING:
- the connectors look exactly the same, but the pins are used in
- completely DIFFERENT ways -- different cables are required for the two
- kinds of interfaces.
-
- IF YOU GET LOTS OF RETRANSMISSIONS during file transfer, even when
- using a /dev/cuf* device and the modem is correctly configured for
- RTS/CTS flow control, YOU PROBABLY HAVE THE WRONG KIND OF CABLE.
-
- On the NeXT, Kermit reportedly (by TimeMon) causes the kernel to use a
- lot of CPU time when using a "set line" connection. That's because
- there is no DMA channel for the NeXT serial port, so the port must
- interrupt the kernel for each character in or out.
-
- One user reported trouble running C-Kermit on a NeXT from within
- NeXT's Subprocess class under NeXTstep 3.0, and/or when rlogin'd from
- one NeXT to another: Error opening /dev/tty:, congm: No such device or
- address. Diagnosis: Bug in NeXTSTEP 3.0, cure unknown.
- ________________________________________________________________________
-
- 3.5. C-KERMIT AND QNX
-
- [ [336]Top ] [ [337]Contents ] [ [338]Section Contents ] [ [339]Next ]
- [ [340]Previous ]
-
- See also: The [341]comp.os.qnx newsgroup.
-
- Support for QNX 4.x was added in C-Kermit 5A(190). This is a
- full-function implementation, thoroughly tested on QNX 4.21 and later,
- and verified to work in both 16-bit and 32-bit versions. The 16-bit
- version was dropped in C-Kermit 7.0 since it can no longer be built
- successfully (after stripping most most features, I succeeded in
- getting it to compile and link without complaint, but the executable
- just beeps when you run it); for 16-bit QNX 4.2x, use C-Kermit 6.0 or
- earlier, or else [342]G-Kermit.
-
- The 32-bit version (and the 16-bit version prior to C-Kermit 7.0)
- supports most of C-Kermit's advanced features including TCP/IP, high
- serial speeds, hardware flow-control, modem-signal awareness, curses
- support, etc.
-
- BUG: In C-Kermit 6.0 on QNX 4.22 and earlier, the fullscreen file
- transfer display worked fine the first time, but was fractured on
- subsequent file transfers. Cause and cure unknown. In C-Kermit 7.0 and
- QNX 4.25, this no longer occurs. It is not known if it would occur in
- C-Kermit 7.0 or later on earlier QNX versions.
-
- Dialout devices are normally /dev/ser1, /dev/ser2, ..., and can be
- opened explicitly with SET LINE. Reportedly, "/dev/ser" (no unit
- number) opens the first available /dev/sern device.
-
- Like all other Unix C-Kermit implementations, QNX C-Kermit does not
- provide any kind of terminal emulation. Terminal specific functions
- are provided by your terminal, terminal window (e.g. QNX Terminal or
- xterm), or emulator.
-
- QNX C-Kermit, as distributed, does not include support for UUCP
- line-locking; the QNX makefile entries (qnx32 and qnx16) include the
- -DNOUUCP switch. This is because QNX, as distributed, does not include
- UUCP, and its own communications software (e.g. qterm) does not use
- UUCP line locking. If you have a UUCP product installed on your QNX
- system, remove the -DNOUUCP switch from the makefile entry and
- rebuild. Then check to see that Kermit's UUCP lockfile conventions are
- the same as those of your UUCP package; if not, read the [343]UUCP
- lockfile section of the [344]Installation Instructions and make the
- necessary changes to the makefile entry (e.g. add -DHDBUUCP).
-
- QNX does, however, allow a program to get the device open count. This
- can not be a reliable form of locking unless all applications do it,
- so by default, Kermit uses this information only for printing a
- warning message such as:
-
- C-Kermit>set line /dev/ser1
- WARNING - "/dev/ser1" looks busy...
-
- However, if you want to use it as a lock, you can do so with:
-
- SET QNX-PORT-LOCK { ON, OFF }
-
- This is OFF by default; if you set in ON, C-Kermit will fail to open
- any dialout device when its open count indicates that another process
- has it open. SHOW COMM (in QNX only) displays the setting, and if you
- have a port open, it also shows the open count.
-
- As of C-Kermit 8.0, C-Kermit's "open-count" form of line locking works
- only in QNX4, not in QNX6 (this might change in a future C-Kermit
- release).
- ________________________________________________________________________
-
- 3.6. C-KERMIT AND SCO
-
- [ [345]Top ] [ [346]Contents ] [ [347]Section Contents ] [ [348]Next ]
- [ [349]Previous ]
-
- SECTION CONTENTS
-
-3.6.1. [350]SCO XENIX
-3.6.2. [351]SCO UNIX and OSR5
-3.6.3. [352]Unixware
-3.6.4. [353]Open UNIX 8
-
- REFERENCES
-
- * The comp.unix.sco.* newsgroups.
- * [354]Section 3.10 below for Unixware.
- * The following FAQs:
-
- The comp.sco.misc FAQ:
- [355]http://aplawrence.com/SCOFAQ/
-
- Caldera (SCO) comp.unix.sco.programmer FAQ:
- [356]http://www.zenez.com/cgi-bin/scoprogfaq/faq.pl
-
- The UnixWare 7/OpenUNIX 8 FAQ:
- [357]http://www.zenez.com/cgi-bin/scouw7faq/faq.pl
- [358]http://zenez.pcunix.com/cgi-bin/scouw7faq/faq.pl
-
- High Speed Modems for SCO Unix:
- [359]http://pcunix.com/Unixart/modems.html
-
- The UnixWare FAQ
- [360]http://www.freebird.org/faq/
-
- The UnixWare 1.x and 2.0 Programmer FAQ
- [361]http://www.freebird.org/faq/developer.html
-
- Caldera Support Knowledge Base
- [362]http://support.caldera.com/caldera
-
- [363]http://stage.caldera.com/ta/
- Caldera (SCO) Technical Article Search Center
-
- [364]http://aplawrence.com/newtosco.html
- New to SCO (Tony Lawrence)
-
- The same comments regarding terminal emulation and key mapping apply
- to SCO operating systems as to all other Unixes. C-Kermit is not a
- terminal emulator, and you can't use it to map F-keys, Arrow keys,
- etc. The way to do this is with xmodmap (xterm) or loadkeys (console).
- For a brief explanation, see [365]Section 3.0.5. For a fuller
- explanation, [366]ClICK HERE.
-
- Also see general comments on PC-based Unixes in [367]Section 3.0.
-
- 3.6.1. SCO XENIX
-
- [ [368]Top ] [ [369]Contents ] [ [370]Section Contents ] [ [371]Next ]
-
- Old Xenix versions... Did you know: Xenix 3.0 is *older* than Xenix
- 2.0?
-
- In Xenix 2.3.4 and probably other Xenix versions, momentarily dropping
- DTR to hang up a modem does not work. DTR goes down but does not come
- up again. Workaround: Use SET MODEM HANGUP-METHOD MODEM-COMMAND.
- Anybody who would like to fix this is welcome to take a look at
- tthang() in [372]ckutio.c. Also: modem signals can not be read in
- Xenix, and the maximum serial speed is 38400.
-
- There is all sorts of confusion among SCO versions, particularly when
- third- party communications boards and drivers are installed,
- regarding lockfile naming conventions, as well as basic functionality.
- As far as lockfiles go, all bets are off if you are using a
- third-party multiport board. At least you have the source code.
- Hopefully you also have a C compiler :-)
-
- Xenix 2.3.0 and later claim to support RTSFLOW and CTSFLOW, but this
- is not modern bidirectional hardware flow control; rather it
- implements the original RS-232 meanings of these signals for
- unidirectional half-duplex line access: If both RTSFLOW and CTSFLOW
- bits are set, Xenix asserts RTS when it wants to send data and waits
- for CTS assertion before it actually starts sending data (also,
- reportedly, even this is broken in Xenix 2.3.0 and 2.3.1).
- ________________________________________________________________________
-
- 3.6.2. SCO UNIX AND OSR5
-
- [ [373]Top ] [ [374]Contents ] [ [375]Section Contents ] [ [376]Next ]
- [ [377]Previous ]
-
- SCO systems tend to use different names (i.e. drivers) for the same
- device. Typically /dev/tty1a refers to a terminal device that has no
- modem control; open, read, write, and close operations do not depend
- on carrier. On the other hand, /dev/tty1A (same name, but with final
- letter upper case), is the same device with modem control, in which
- carrier is required (the SET LINE command does not complete until
- carrier appears, read/write operations fail if there is no carrier,
- etc).
-
- SCO OpenServer 5.0.5 and earlier do not support the reading of modem
- signals. Thus "show comm" does not list modem signals, and C-Kermit
- does not automatically pop back to its prompt when the modem hangs up
- the connection (drops CD). The ioctl() call for this is simply not
- implmented, at least not in the standard drivers. OSR5.0.6 attempts to
- deal with modem signals but fails; however OSR5.0.6a appears to
- function properly.
-
- Dialing is likely not to work well in SCO OpenServer 5.0.x because
- many of the serial-port APIs simply do not operate when using the
- standard drivers. For example, if DTR is dropped by the recommended
- method (setting speed to 0 for half a seconds, then restoring the
- speed), DTR and RTS go down but never come back up. When in doubt SET
- MODEM HANGUP-METHOD MODEM-COMMAND or SET DIAL HANGUP OFF.
-
- On the other hand, certain functions that might not (do not) work
- right or at all when using SCO drivers (e.g. high serial speeds,
- hardware flow control, and/or reading of modem signals) might work
- right when using third-party drivers. (Example: hardware flow control
- works, reportedly, only on uppercase device like tty1A -- not tty1a --
- and only when CLOCAL is clear when using the SCO sio driver, but there
- are no such restrictions in, e.g., [378]Digiboard drivers).
-
- One user reports that he can't transfer large files with C-Kermit
- under SCO OSR5.0.0 and 5.0.4 -- after the first 5K, everything falls
- apart. Same thing without Kermit -- e.g. with ftp over a PPP
- connection. Later, he said that replacing SCO's SIO driver with FAS,
- an alternative communications driver, made the problem go away:
-
- [379]ftp://ftp.fu-berlin.de/pub/unix/driver/fas
-
- With regard to bidirectional serial ports on OpenServer 5.0.4, the
- following advice appeared on an SCO-related newsgroup:
-
- No amount of configuration information is going to help you on
- 5.0.4 unless it includes the kludge for the primary problem. With
- almost every modem, the 5.0.4 getty will barf messages and may or
- may not connect. There are 2 solutions and only one works on 5.0.4.
- Get the atdialer binary from a 5.0.0 system and substitute it for
- the native 5.0.4 atdialer. The other solution is to upgrade to
- 5.0.5. And, most of all, on any OpenServer products, do NOT run the
- badly broken Modem Manager. Configure the modems in the time
- honored way that dates back to Xenix.
-
- Use SCO-provided utilities for switching the directionality of a modem
- line, such as "enable" and "disable" commands. For example, to dial
- out on tty1a, which is normally set up for logins:
-
- disable tty1a
- kermit -l /dev/tty1a
- enable tty1a
-
- If a tty device is listed as an ACU in /usr/lib/uucp/Devices and is
- enabled, getty resets the ownership and permissions to uucp.uucp and
- 640 every time the device is released. If you want to use the device
- only for dialout, and you want to specify other owners or permissions,
- you should disable it in /usr/lib/uucp/Devices; this will prevent
- getty from doing things to it. You should also changes the device's
- file modes in /etc/conf/node.d/sio by changing fields 5-7 for the
- desired device(s); this determines how the devices are set if you
- relink the kernel.
-
- One SCO user of C-Kermit 5A(190) reported that only one copy of Kermit
- can run at a time when a Stallion Technologies multiport boards are
- installed. Cause, cure, and present status unknown (see [380]Section
- 14 for more info regarding Stallion).
-
- Prior to SCO OpenServer 5.0.4, the highest serial port speed supported
- by SCO was 38400. However, in some SCO versions (e.g. OSR5) it is
- possible to map rarely-used lower speeds (like 600 and 1800) to higher
- ones like 57600 and 115200. To find out how, go to
- [381]http://www.sco.com/ and search for "115200". In OSR5.0.4, serial
- speeds up to 921600 are supported through the POSIX interface;
- C-Kermit 6.1.193 or later, when built for OSR5.0.4 using /bin/cc (NOT
- the UDK, which hides the high-speed definitions from CPP), supports
- these speeds, but you might be able to run this binary on earlier
- releases to get the high serial speeds, depending on various factors,
- described by Bela Lubkin of SCO:
-
- Serial speeds under SCO Unix / Open Desktop / OpenServer
- ========================================================
- Third party drivers (intelligent serial boards) may provide any speeds
- they desire; most support up to 115.2Kbps.
-
- SCO's "sio" driver, which is used to drive standard serial ports with
- 8250/16450/16550 and similar UARTs, was limited to 38400bps in older
- releases. Support for rates through 115.2Kbps was added in the
- following releases:
-
- SCO OpenServer Release 5.0.0 (requires supplement "rs40b")
- SCO OpenServer Release 5.0.2 (requires supplement "rs40a" or "rs40b")
- SCO OpenServer Release 5.0.4 or later
- SCO Internet FastStart Release 1.0.0 or later
-
- SCO supplements are at [382]ftp://ftp.sco.com/; the "rs40" series are
- under directory /Supplements/internet
-
- Kermit includes the high serial speeds in all OSR5 builds, but that
- does not necessarily mean they work. For example, on our in-house
- 5.0.5 system, SET SPEED 57600 or higher seems to succeed (no error
- occurs) but when we read the speed back the driver says it is 50.
- Similarly, 76800 becomes 75, and 115200 becomes 110. Testing shows the
- resulting speed is indeed the low one we read back, not the high one
- we asked for. Moral: Use speeds higher than 38400 with caution on SCO
- OSR5.
-
- Reportedly, if you have a script that makes a TCP/IP SET HOST (e.g.
- Telnet) connection to SCO 3.2v4.2 with TCP/IP 1.2.1, and then does the
- following:
-
- script $ exit
- hangup
-
- this causes a pseudoterminal (pty) to be consumed on the SCO system;
- if you do it enough times, it will run out of ptys. An "exit" command
- is being sent to the SCO shell, and a HANGUP command is executed
- locally, so the chances are good that both sides are trying to close
- the connection at once, perhaps inducing a race condition in which the
- remote pty is not released. It was speculated that this would be fixed
- by applying SLS net382e, but it did not. Meanwhile, the workaround is
- to insert a "pause" between the SCRIPT and HANGUP commands. (The
- situation with later SCO releases is not known.)
-
- SCO UNIX and OpenServer allow their console and/or terminal drivers to
- be configured to translate character sets for you. DON'T DO THIS WHEN
- USING KERMIT! First of all, you don't need it -- Kermit itself already
- does this for you. And second, it will (a) probably ruin the
- formatting of your screens (depending on which emulation you are
- using); and (b) interfere with all sorts of other things -- legibility
- of non-ASCII text on the terminal screen, file transfer, etc. Use:
-
- mapchan -n
-
- to turn off this feature.
-
- Note that there is a multitude of SCO entries in the makefile, many of
- them exhibiting an unusually large number of compiler options. Some
- people actually understand all of this. Reportedly, things are
- settling down with SCO OpenServer 5.x and Unixware 7 (and Open UNIX 8
- and who knows what the next one will be -- Linux probably) -- the SCO
- UDK compiler is said to generate binaries that will run on either
- platform, by default, automatically. When using gcc or egcs, on the
- other hand, differences persist, plus issues regarding the type of
- binary that is generated (COFF, ELF, etc), and where and how it can
- run. All of this could stand further clarification by SCO experts.
- ________________________________________________________________________
-
- 3.6.3. Unixware
-
- [ [383]Top ] [ [384]Contents ] [ [385]Section Contents ] [ [386]Next ]
- [ [387]Previous ]
-
- Unixware changed hands several times before landing at SCO, and so has
- its [388]own section in this document. (Briefly: AT&T UNIX Systems
- Laboratories sold the rights to the UNIX name and to System V R4 (or
- R5?) to Novell; later Novell spun its UNIX division off into a new
- company called Univel, which eventually was bought by SCO, which later
- was bought by Caldera, which later sort of semi-spun-off SCO...)
- ________________________________________________________________________
-
- 3.6.4. Open UNIX 8
-
- [ [389]Top ] [ [390]Contents ] [ [391]Section Contents ] [
- [392]Previous ]
-
- SCO was bought by Caldera in 2000 or 2001 and evolved Unixware 7.1
- into Caldera Open UNIX 8.00. It's just like Unixware 7.1 as far as
- Kermit is concerned (the Unixware 7.1 makefile target works for Open
- UNIX 8.00, and in fact a Unixware 7.1 Kermit binary built on Unixware
- 7.1 runs under OU8; a separate OU8 makefile target exists simply to
- generate an appropriate program startup herald). Open Unix is now
- defunct; subsequent releases are called UnixWare again (e.g. UnixWare
- 7.1.3).
- ________________________________________________________________________
-
- 3.7. C-KERMIT AND SOLARIS
-
- [ [393]Top ] [ [394]Contents ] [ [395]Section Contents ] [ [396]Next ]
- [ [397]Previous ]
-
- SECTION CONTENTS
-
-3.7.1. [398]Serial Port Configuration
-3.7.2. [399]Serial Port Problems
-3.7.3. [400]SunLink X.25
-3.7.4. [401]Sun Workstation Keyboard Mapping
-3.7.5. [402]Solaris 2.4 and Earlier
-
- REFERENCES
-
- * The [403]comp.unix.solaris newsgroup
- * [404]http://access1.sun.com/
- * [405]http://docs.sun.com/
- * [406]http://www.sunhelp.com/
- * [407]http://www.wins.uva.nl/pub/solaris/solaris2/
- * [408]http://www.wins.uva.nl/cgi-bin/sfaq.cgi
- * [409]ftp://ftp.wins.uva.nl/pub/solaris
- * [410]http://www.science.uva.nl/pub/solaris/solaris2.html
-
- And about serial communications in particular, see "Celeste's Tutorial
- on Solaris 2.x Modems and Terminals":
-
- [411]http://www.stokely.com/
-
- In particular:
-
- [412]http://www.stokely.com/unix.sysadm.resources/faqs.sun.html
-
- For PC-based Solaris, also see general comments on PC-based Unixes in
- [413]Section 3.0. Don't expect Solaris or any other kind of Unix to
- work right on a PC until you resolve all interrupt conflicts. Don't
- expect to be able to use COM3 or COM4 (or even COM2) until you have
- configured their addresses and interrupts.
- ________________________________________________________________________
-
- 3.7.1. Serial Port Configuration
-
- [ [414]Top ] [ [415]Contents ] [ [416]Section Contents ] [
- [417]Section Contents ] [ [418]Next ]
-
- Your serial port can't be used -- or at least won't work right --
- until it is enabled in Solaris. For example, you get a message like
- "SERIAL: Operation would block" when attempting to dial. This probably
- indicates that the serial port has not been enabled for use with
- modems. You'll need to follow the instructions in your system setup or
- management manual, such as (e.g.) the Desktop SPARC Sun System &
- Network Manager's Guide, which should contain a section "Setting up
- Modem Software"; read it and follow the instructions. These might (or
- might not) include running a program called "eeprom", editing some
- system configuration file (such as, for example:
-
- /platform/i86pc/kernel/drv/asy.conf
-
- and then doing a configuration reboot, or running some other programs
- like drvconfig and devlinks. "man eeprom" for details.
-
- Also, on certain Sun models like IPC, the serial port hardware might
- need to have a jumper changed to make it an RS-232 port rather than
- RS-423.
-
- eeprom applies only to real serial ports, not to "Spiff" devices
- (serial port expander), in which case setup with Solaris' admintool is
- required.
-
- Another command you might need to use is pmadm, e.g.:
-
- pmadm -d -p zsmon -s tty3
- pmadm -e -p zsmon -s tty3
-
- You can use the following command to check if a process has the device
- open:
-
- fuser -f /dev/term/3
-
- In some cases, however (according to Sun support, May 2001) "It is
- still possible that a zombie process has hold of the port EVEN IF
- there is no lock file and the fuser command comes up empty. In that
- case, the only way to resolve the problem is by rebooting."
-
- If you can't establish communication through a serial port to a device
- that is not asserting CD (Carrier Detect), try setting the environment
- variable "ttya-ignore-cd" to "true" (replace "ttya" with the port
- name).
- ________________________________________________________________________
-
- 3.7.2. Serial Port Problems
-
- [ [419]Top ] [ [420]Contents ] [ [421]Section Contents ] [ [422]Next ]
- [ [423]Previous ]
-
- Current advice from Sun is to always the /dev/cua/x devices for
- dialing out, rather than the /dev/term/x. Nevertheless, if you have
- trouble dialing out with one, try the other.
-
- Reportedly, if you start C-Kermit and "set line" to a port that has a
- modem connected to it that is not turned on, and then "set flow
- rts/cts", there might be some (unspecified) difficulties closing the
- device because the CTS signal is not coming in from the modem.
- ________________________________________________________________________
-
- 3.7.3. SunLink X.25
-
- [ [424]Top ] [ [425]Contents ] [ [426]Section Contents ] [ [427]Next ]
- [ [428]Previous ]
-
- The built-in SunLink X.25 support for Solaris 2.3/2.4./25 and SunLink
- 8.01 or 9.00 works OK provided the X.25 system has been installed and
- initialized properly. Packet sizes might need to be reduced to 256,
- maybe even less, depending on the configuration of the X.25
- installation. On one connection where C-Kermit 6.0 was tested, very
- large packets and window sizes could be used in one direction, but
- only very small ones would work in the other.
-
- In any case, according to Sun, C-Kermit's X.25 support is superfluous
- with SunLink 8.x / Solaris 2.3. Quoting an anonymous Sun engineer:
-
- ... there is now no need to include any X.25 code within kermit. As
- of X.25 8.0.1 we support the use of kermit, uucp and similar
- protocols over devices of type /dev/xty. This facility was there in
- 8.0, and should also work on the 8.0 release if patch 101524 is
- applied, but I'm not 100% sure it will work in all cases, which is
- why we only claim support from 8.0.1 onwards.
-
- When configuring X.25, on the "Advanced Configuration->Parameters"
- screen of the x25tool you can select a number of XTY devices. If
- you set this to be > 1, press Apply, and reboot, you will get a
- number of /dev/xty entries created.
-
- Ignore /dev/xty0, it is a special case. All the others can be used
- exactly as if they were a serial line (e.g. /dev/tty) connected to
- a modem, except that instead of using Hayes-style commands, you use
- PAD commands.
-
- From kermit you can do a 'set line' command to, say, /dev/xty1,
- then set your dialing command to be "CALL 12345678", etc. All the
- usual PAD commands will work (SET, PAR, etc).
-
- I know of one customer in Australia who is successfully using this,
- with kermit scripts, to manage some X.25-connected switches. He
- used standard kermit, compiled for Solaris 2, with X.25 8.0 xty
- devices.
- ________________________________________________________________________
-
- 3.7.4. Sun Workstation Keyboard Mapping
-
- [ [429]Top ] [ [430]Contents ] [ [431]Section Contents ] [ [432]Next ]
- [ [433]Previous ]
-
- Hints for using a Sun workstation keyboard for VT emulation when
- accessing VMS, from the [434]comp.os.vms newsgroup:
-
- From: Jerry Leichter <leichter@smarts.com>
- Newsgroups: comp.os.vms
- Subject: Re: VT100 keyboard mapping to Sun X server
- Date: Mon, 19 Aug 1996 12:44:21 -0400
-
- > I am stuck right now using a Sun keyboard (type 5) on systems
- running SunOS
- > and Solaris. I would like to use EVE on an OpenVMS box with
- display back to
- > the Sun. Does anyone know of a keyboard mapping (or some other
- procedure)
- > which will allow the Sun keyboard to approximate a VT100/VT220?
-
- You can't get it exactly - because the keypad has one fewer key -
- but you can come pretty close. Here's a set of keydefs I use:
-
- keycode 101=KP_0
- keycode 119=KP_1
- keycode 120=KP_2
- keycode 121=KP_3
- keycode 98=KP_4
- keycode 99=KP_5
- keycode 100=KP_6
- keycode 75=KP_7
- keycode 76=KP_8
- keycode 77=KP_9
- keycode 52=KP_F1
- keycode 53=KP_F2
- keycode 54=KP_F3
- keycode 57=KP_Decimal
- keycode 28=Left
- keycode 29=Right
- keycode 30=KP_Separator
- keycode 105=KP_F4
- keycode 78=KP_Subtract
- keycode 8=Left
- keycode 10=Right
- keycode 32=Up
- keycode 33=Down
- keycode 97=KP_Enter
-
- Put this in a file - I use "keydefs" in my home directory and feed
- it into xmodmap:
-
- xmodmap - <$HOME/keydefs
-
- This takes care of the arrow keys and the "calculator" key cluster.
- The "+" key will play the role of the DEC "," key. The Sun "-" key
- will be like the DEC "-" key, though it's in a physically different
- position - where the DEC PF4 key is. The PF4 key is ... damn, I'm
- not sure where "key 105" is. I *think* it may be on the leftmost
- key of the group of four just above the "calculator" key cluster.
-
- I also execute the following (this is all in my xinitrc file):
-
- xmodmap -e 'keysym KP_Decimal = KP_Decimal'
- xmodmap -e 'keysym BackSpace = Delete BackSpace' \
- -e 'keysym Delete = BackSpace Delete'
- xmodmap -e 'keysym KP_Decimal = Delete Delete KP_Decimal'
- xmodmap -e 'add mod1 = Meta_R'
- xmodmap -e 'add mod1 = Meta_L'
-
- Beware of one thing about xmodmap: Keymap changes are applied to
- the *whole workstation*, not just to individual windows. There is,
- in fact, no way I know of to apply them to individual windows.
- These definitions *may* confuse some Unix programs (and/or some
- Unix users).
-
- If you're using Motif, you may also need to apply bindings at the
- Motif level. If just using xmodmap doesn't work, I can try and dig
- that stuff up for you.
- ________________________________________________________________________
-
- 3.7.5. Solaris PPP Connections
-
- [ [435]Top ] [ [436]Contents ] [ [437]Section Contents ] [ [438]Next ]
- [ [439]Previous ]
-
- The following is a report from a user of C-Kermit 8.0 on Solaris 8 and
- 9, who had complained that while Kermit file transfers worked
- perfectly on direct (non-PPP) dialout connections, they failed
- miserably on PPP connections. We suggested that the PPP dialer
- probably was not setting the port and/or modem up in the same way that
- Kermit did:
-
- I want to get back on this and tell you what the resolution was.
- You pointed me in the direction of flow control, which turned out
- to be the key.
-
- Some discussion on the comp.unix.solaris newsgroup led to some
- comments from Greg Andrews about the need to use the uucp driver to
- talk to the modem (/dev/cua/a). I had to remind Greg that no matter
- what the manpages for the zs and se drivers say, the ppp that Sun
- released with Solaris 8 7/01, and has in Solaris 9, is a setuid
- root program, and simply trying to make a pppd call from user space
- specifying /dev/cua/a would fail because of permissions. Greg
- finally put the question to the ppp people, who came back with
- information that is not laid out anywhere in the docs available for
- Solaris users. Namely, put /dev/cua/a in one of the priviledged
- options files in the /etc/ppp directory. That, plus resetting the
- OBP ttya-ignore-cd flag (this is Sun hardware) to false, seems to
- have solved the problems.
-
- While I note that I had installed Kermit suid to uucp to use
- /dev/cua/a on this particular box, it seems to run fine through
- /dev/term/a. Not so with pppd.
-
- With this change in place, I seem to be able to upload and download
- through telnet run on Kermit with the maximum length packets. I
- note that the window allocation display does show STREAMING, using
- telnet. Running ssh on Kermit, I see the standard 1 of 30 windows
- display, and note that there appears to be a buffer length limit
- between 1000 and 2000 bytes. Run with 1000, and it's tick-tock,
- solid as a rock. With 2000 I see timeout errors and RTS/CTS action
- on the modem.
-
- Kermit's packet-length and other controls let you make adjustments
- like this to get around whatever obstacles might be thrown up -- in
- this case (running Kermit over ssh), the underling Solaris PTY driver.
- ________________________________________________________________________
-
- 3.7.6. Solaris 2.4 and Earlier
-
- [ [440]Top ] [ [441]Contents ] [ [442]Section Contents ] [
- [443]Previous ]
-
- C-Kermit can't be compiled successfully under Solaris 2.3 using
- SUNWspro cc 2.0.1 unless at least some of the following patches are
- applied to cc (it is not known which one(s), if any, fix the problem):
-
- * 100935-01 SparcCompiler C 2.0.1: bad code generated when addresses
- of two double arguments are involved
- * 100961-05 SPARCcompilers C 2.0.1: conditional expression with
- function returning structure gives wrong value
- * 100974-01 SparcWorks 2.0.1: dbx jumbo patch
- * 101424-01 SPARCworks 2.0.1 maketool SEGV's instantly on Solaris
- 2.3
-
- With unpatched cc 2.0.1, the symptom is that certain modules generate
- truncated object files, resulting in many unresolved references at
- link time.
-
- The rest of the problems in this section have to do with
- bidirectional terminal ports and the Solaris Port Monitor. A bug in
- C-Kermit 5A ticked a bug in Solaris. The C-Kermit bug was fixed in
- version 6.0, and the Solaris bug was fixed in 2.4 (I think, or
- maybe 2.5).
-
- Reportedly, "C-Kermit ... causes a SPARCstation running Solaris 2.3 to
- panic after the modem connects. I have tried compiling C-Kermit with
- Sun's unbundled C compiler, with GCC Versions 2.4.5 and 2.5.3, with
- make targets 'sunos51', 'sunos51tcp', 'sunos51gcc', and even 'sys5r4',
- and each time it compiles and starts up cleanly, but without fail, as
- soon as I dial the number and get a 'CONNECT' message from the modem,
- I get:
-
- BAD TRAP
- kermit: Data fault
- kernel read fault at addr=0x45c, pme=0x0
- Sync Error Reg 80 <INVALID>
- ...
- panic: Data Fault.
- ...
- Rebooting...
-
- The same modem works fine for UUCP/tip calling." Also (reportedly),
- this only happens if the dialout port is configured as in/out via
- admintool. If it is configured as out-only, no problem. This is the
- same dialing code that works on hundreds of other System-V based Unix
- OS's. Since it should be impossible for a user program to crash the
- operating system, this problem must be chalked up to a Solaris bug.
- Even if you SET CARRIER OFF, CONNECT, and dial manually by typing
- ATDTnnnnnnn, the system panics as soon as the modem issues its CONNECT
- message. (Clearly, when you are dialing manually, C-Kermit does not
- know a thing about the CONNECT message, and so the panic is almost
- certainly caused by the transition of the Carrier Detect (CD) line
- from off to on.) This problem was reported by many users, all of whom
- say that C-Kermit worked fine on Solaris 2.1 and 2.2. If the
- speculation about CD is true, then a possible workaround might be to
- configure the modem to leave CD on (or off) all the time. Perhaps by
- the time you read this, a patch will have been issued for Solaris 2.3.
-
- The following is from Karl S. Marsh, Systems & Networks Administrator,
- AMBIX Systems Corp, Rochester, NY:
-
- Environment: Solaris 2.3 Patch 101318-45 C-Kermit 5A(189) (and
- presumably this applies to 188 and 190 also). eeprom setting:
-
- ttya-rts-dtr-off=false
- ttya-ignore-cd=false
- ttya-mode=19200,8,n,8,-
-
- To use C-Kermit on a bidirectional port in this environment, do not
- use admintool to configure the port. Use admintool to delete any
- services running on the port and then quit admintool and issue the
- following command:
-
- pmadm -a -p zsmon -s ttyb -i root -fu -v 1 -m "`ttyadm -b -d /dev/term/b \
- -l conttyH -m ldterm,ttcompat -s /usr/bin/login -S n`"
-
- [NOTE: This was copied from a blurry fax, so please check it
- carefully] where:
-
- -a = Add service
- -p = pmtag (zsmon)
- -s = service tag (ttyb)
- -i = id to be associated with service tag (root)
- -fu = create utmp entry
- -v = version of ttyadm
- -m = port monitor-specific portion of the port monitor administrative file
- entry for the service
- -b = set up port for bidirectional use
- -d = full path name of device
- -l = which ttylabel in the /etc/ttydefs file to use
- -m = a list of pushable STREAMS modules
- -s = pathname of service to be invoked when connection request received
- -S = software carrier detect on or off (n = off)
-
- "This is exactly how I was able to get Kermit to work on a
- bi-directional port without crashing the system."
-
- On the Solaris problem, also see SunSolve Bug ID 1150457 ("Using
- C-Kermit, get Bad Trap on receiving prompt from remote system").
- Another user reported "So, I have communicated with the Sun tech
- support person that submitted this bug report [1150457]. Apparently,
- this bug was fixed under one of the jumbo kernel patches. It would
- seem that the fix did not live on into 101318-45, as this is EXACTLY
- the error that I see when I attempt to use kermit on my system."
-
- Later (Aug 94)... C-Kermit dialout successfully tested on a Sun4m with
- a heavily patched Solaris 2.3. The patches most likely to have been
- relevant:
-
- * 101318-50: SunOS 5.3: Jumbo patch for kernel (includes libc,
- lockd)
- * 101720-01: SunOS 5.3: ttymon - prompt not always visible on a
- modem connection
- * 101815-01: SunOS 5.3: Data fault in put() NULL queue passed from
- ttycommon_qfull()
- * 101328-01: SunOS 5.3: Automation script to properly setup tty
- ports prior to PCTS execution
-
- Still later (Nov 94): another user (Bo Kullmar in Sweden) reports that
- after using C-Kermit to dial out on a bidirectional port, the port
- might not answer subsequent incoming calls, and says "the problem is
- easy enough to fix with the Serial Port Manager; I just delete the
- service and install it again using the graphical interface, which
- underneath uses commands like sacadm and pmadm." Later Bo reports, "I
- have found that if I run Kermit with the following script then it
- works. This script is for /dev/cua/a, "-s a" is the last a in
- /dev/cua/a:
-
- #! /bin/sh
- kermit
- sleep 2
- surun pmadm -e -p zsmon -s a
- ________________________________________________________________________
-
- 3.8. C-KERMIT AND SUNOS
-
- [ [444]Top ] [ [445]Contents ] [ [446]Section Contents ] [ [447]Next ]
- [ [448]Previous ]
-
- For additional information, see "Celeste's Tutorial on SunOS 4.1.3+
- Modems and Terminals":
-
- [449]http://www.stokely.com/
-
- For FAQs, etc, from Sun, see:
- * [450]http://access1.sun.com/
-
- For history of Sun models and SunOS versions, see (should be all the
- same):
- * [451]http://www.ludd.luth.se/~bear/project/sun/sun.hardware.txt
- * [452]ftp://ftp.netcom.com/pub/ru/rubicon/sun.hdwr.ref
- * [453]ftp://ftp.intnet.net/pub/SUN/Sun-Hardware-Ref
-
- Sun SPARCstation users should read the section "Setting up Modem
- Software" in the Desktop SPARC Sun System & Network Manager's Guide.
- If you don't set up your serial ports correctly, Kermit (and other
- communications software) won't work right.
-
- Also, on certain Sun models like IPC, the serial port hardware might
- need to have a jumper changed to make it an RS-232 port rather than
- RS-423.
-
- Reportedly, C-Kermit does not work correctly on a Sun SPARCstation in
- an Open Windows window with scrolling enabled. Disable scrolling, or
- else invoke Kermit in a terminal emulation window (xterm, crttool,
- vttool) under SunView (this might be fixed in later SunOS releases).
-
- On the Sun with Open Windows, an additional symptom has been reported:
- outbound SunLink X.25 connections "magically" translate CR typed at
- the keyboard into LF before transmission to the remote host. This
- doesn't happen under SunView.
-
- SET CARRIER ON, when used on the SunOS 4.1 version of C-Kermit
- (compiled in the BSD universe), causes the program to hang
- uninterruptibly when SET LINE is issued for a device that is not
- asserting carrier. When Kermit is built in the Sys V universe on the
- same computer, there is no problem (it can be interrupted with
- Ctrl-C). This is apparently a limitation of the BSD-style tty driver.
-
- SunOS 4.1 C-Kermit has been observed to dump core when running a
- complicated script program under cron. The dump invariably occurs in
- ttoc(), while trying to output a character to a TCP/IP TELNET
- connection. ttoc() contains a write() call, and when the system or the
- network is very busy, the write() call can get stuck for long periods
- of time. To break out of deadlocks caused by stuck write() calls,
- there is an alarm around the write(). It is possible that the core
- dump occurs when this alarm signal is caught. (This one has not been
- observed recently -- possibly fixed in edit 190.)
-
- On Sun computers with SunOS 4.0 or 4.1, SET FLOW RTS/CTS works only if
- the carrier signal is present from the communication device at the
- time when C-Kermit enters packet mode or CONNECT mode. If carrier is
- not sensed (e.g. when dialing), C-Kermit does not attempt to turn on
- RTS/CTS flow control. This is because the SunOS serial device driver
- does not allow characters to be output if RTS/CTS is set (CRTSCTS) but
- carrier (and DSR) are not present. Workaround (maybe): SET CARRIER OFF
- before giving the SET LINE command, establish the connection, then SET
- FLOW RTS/CTS
-
- It has also been reported that RTS/CTS flow control under SunOS 4.1
- through 4.1.3 works only on INPUT, not on output, and that there is a
- patch from Sun to correct this problem: Patch-ID# T100513-04, 20 July
- 1993 (this patch might apply only to SunOS 4.1.3). It might also be
- necessary to configure the eeprom parameters of the serial port; e.g.
- do the following as root at the shell prompt:
-
- eeprom ttya-ignore-cd=false
- eeprom ttya-rts-dtr-off=true
-
- There have been reports of file transfer failures on Sun-3 systems
- when using long packets and/or large window sizes. One user says that
- when this happens, the console issues many copies of this message:
-
- chaos vmunix: zs1: ring buffer overflow
-
- This means that SunOS is not scheduling Kermit frequently enough to
- service interrupts from the zs serial device (Zilog 8350 SCC serial
- communication port) before its input silo overflows. Workaround: use
- smaller packets and/or a smaller window size, or use "nice" to
- increase Kermit's priority. Use hardware flow control if available, or
- remove other active processes before running Kermit.
-
- SunLink X.25 support in C-Kermit 5A(190) was built and tested
- successfully under SunOS 4.1.3b and SunLink X.25 7.00.
- ________________________________________________________________________
-
- 3.9. C-KERMIT AND ULTRIX
-
- [ [454]Top ] [ [455]Contents ] [ [456]Section Contents ] [ [457]Next ]
- [ [458]Previous ]
-
- See also: The [459]comp.unix.ultrix and [460]comp.sys.dec newsgroups.
-
- There is no hardware flow control in Ultrix. That's not a Kermit
- deficiency, but an Ultrix one.
-
- When sending files to C-Kermit on a Telnet connection to a remote
- Ultrix system, you must SET PREFIXING ALL (or at least prefix more
- control characters than are selected by SET PREFIXING CAUTIOUS).
-
- Reportedly, DEC ULTRIX 4.3 is immune to C-Kermit's disabling of
- SIGQUIT, which is the signal that is generated when the user types
- Ctrl-\, which kills the current process (i.e. C-Kermit) and dumps
- core. Diagnosis and cure unknown. Workaround: before starting C-Kermit
- -- or for that matter, when you first log in because this applies to
- all processes, not just Kermit -- give the following Unix command:
-
- stty quit undef
-
- Certain operations driven by RS-232 modem signal do not work on
- DECstations or other DEC platforms whose serial interfaces use MMP
- connectors (DEC version of RJ45 telephone jack with offset tab). These
- connectors convey only the DSR and DTR modem signals, but not carrier
- (CD), RTS, CTS, or RI. Use SET CARRIER OFF to enable communication, or
- "hotwire" DSR to CD.
-
- The maximum serial speed on the DECstation 5000 is normally 19200, but
- various tricks are available (outside Kermit) to enable higher rates.
- For example, on the 5000/200, 19200 can be remapped (somehow,
- something to do with "a bit in the SIR", whatever that is) to 38400,
- but in software you must still refer to this speed as 19200; you can't
- have 19200 and 38400 available at the same time.
-
- 19200, reportedly, is also the highest speed supported by Ultrix, but
- NetBSD reportedly supports speeds up to 57600 on the DECstation,
- although whether and how well this works is another question.
-
- In any case, given the lack of hardware flow control in Ultrix, high
- serial speeds are problematic at best.
- ________________________________________________________________________
-
- 3.10. C-KERMIT AND UNIXWARE
-
- [ [461]Top ] [ [462]Contents ] [ [463]Section Contents ] [ [464]Next ]
- [ [465]Previous ]
-
- See also:
- * The Freebird Project (Unixware software repository)
- [466]http://www.freebird.org/
- * The UnixWare FAQ: [467]http://www.freebird.org/faq/
- * The following newsgroups:
- + [468]comp.unix.unixware.misc
- + [469]comp.unix.sco.misc.
-
- Also see general comments on PC-based Unixes in [470]Section 3.0. By
- the way, this section is separate from the SCO (Caldera) section
- because at the time this section was started, Unixware was owned by a
- company called Univel. Later it was sold to Novell, and then to SCO.
- Still later, SCO was sold to Caldera.
-
- In Unixware 2.0 and later, the preferred serial device names (drivers)
- are /dev/term/00 (etc), rather than /dev/tty00 (etc). Note the
- following correspondence of device names and driver characteristics:
-
- New name Old name Description
- /dev/term/00 /dev/tty00 ???
- /dev/term/00h /dev/tty00h Modem signals and hardware flow control
- /dev/term/00m /dev/tty00m Modem signals(?)
- /dev/term/00s /dev/tty00s Modem signals and software flow control
- /dev/term/00t /dev/tty00t ???
-
- Lockfile names use device.major.minor numbers, e.g.:
-
- /var/spool/locks/LK.7679.003.005
-
- The minor number varies according to the device name suffix (none, h,
- m, s, or t). Only the device and major number are compared, and thus
- all of the different names for the same physical device (e.g. all of
- those shown in the table above) interlock effectively.
-
- Prior to UnixWare 7, serial speeds higher than 38400 are not
- supported. In UnixWare 7, we also support 57600 and 115200, plus some
- unexpected ones like 14400, 28800, and 76800, by virtue of a strange
- new interface, evidently peculiar to UnixWare 7, discovered while
- digging through the header files: tcsetspeed(). Access to this
- interface is allowed only in POSIX builds, and thus the UnixWare 7
- version of C-Kermit is POSIX-based, unlike C-Kermit for Unixware 1.x
- and 2.x (since the earlier UnixWare versions did not support high
- serial speeds, period).
-
- HOWEVER, turning on POSIX features engages all of the "#if
- (!_POSIX_SOURCE)" clauses in the UnixWare header files, which in turn
- prevent us from having modem signals, access to the hardware flow
- control APIs, select(), etc -- in short, all the other things we need
- in communications software, especially when high speeds are used. Oh
- the irony. And so C-Kermit must be shamelessly butchered -- as it has
- been so many times before -- to allow us to have the needed features
- from the POSIX and non-POSIX worlds. See the UNIXWAREPOSIX sections of
- [471]ckutio.c.
-
- After the butchery, we wind up with Unixware 2.x having full
- modem-signal capability, but politically-correct Unixware 7.x lacking
- the ability to automatically detect a broken connection when carrier
- drops.
-
- Meanwhile the Unixware tcsetspeed() function allows any number at all
- (any long, 0 or positive) as an argument and succeeds if the number is
- a legal bit rate for the serial device, and fails otherwise. There is
- no list anywhere of legal speeds. Thus the SET SPEED keyword table
- ("set speed ?" to see it) is hardwired based on trial and error with
- all known serial speeds, the maximum being 115200. However, to allow
- for the possibility that other speeds might be allowed in the future
- (or with different port drivers), the SET SPEED command for UnixWare 7
- only allows you to specify any number at all; a warning is printed if
- the number is not in the list, but the number is accepted anyway; the
- command succeeds if tcsetspeed() accepts the number, and fails
- otherwise.
-
- In C-Kermit 8.0 testing, it was noticed that the POSIX method for
- hanging up the phone by dropping DTR (set speed 0, pause, restore
- speed) did not actually drop DTR. The APIs do not return any error
- indication, but nothing happens. I changed tthang() to skip the
- special case I had made for Unixware and instead follow the normal
- path: if TIOCSDTR is defined use that, otherwise blah blah... It turns
- out TIOCSDTR *is* defined, and it works.
-
- So in Unixware (at least in 2.1.3) we can read modem signals, hangup
- by toggling DTR, and so on, BUT... But once the remote hangs up and
- Carrier drops, the API for reading modem signals ceases to function;
- although the device is still open, the TIOCMGET ioctl always raises
- errno 6 = ENXIO, "No such device or address".
-
- Old business:
-
- Using C-Kermit 6.0 on the UnixWare 1.1 Application Server, one user
- reported a system panic when the following script program is executed:
-
- set line /dev/tty4
- set speed 9600
- output \13
- connect
-
- The panic does not happen if a PAUSE is inserted:
-
- set line /dev/tty4
- set speed 9600
- pause 1
- output \13
- connect
-
- This is using a Stallion EasyIO card installed as board 0 on IRQ 12 on
- a Gateway 386 with the Stallion-supplied driver. The problem was
- reported to Novell and Stallion and (reportedly) is now fixed.
- ________________________________________________________________________
-
- 3.11. C-KERMIT AND APOLLO SR10
-
- [ [472]Top ] [ [473]Contents ] [ [474]Section Contents ] [ [475]Next ]
- [ [476]Previous ]
-
- Reportedly, version 5A(190), when built under Apollo SR10 using "make
- sr10-bsd", compiles, links, and executes OK, but leaves the terminal
- unusable after it exits -- the "cs7" or "cs8" (character size)
- parameter has become cs5. The terminal must be reset from another
- terminal. Cause and cure unknown. Suggested workaround: Wrap Kermit in
- a shell script something like:
-
- kermit @*
- stty sane
- ________________________________________________________________________
-
- 3.12. C-KERMIT AND TANDY XENIX 3.0
-
- [ [477]Top ] [ [478]Contents ] [ [479]Section Contents ] [ [480]Next ]
- [ [481]Previous ]
-
- C-Kermit 7.0 was too big to be built on Tandy Xenix, even in a minimum
- configuration; version 6.0 is the last one that fits.
-
- Reportedly, in C-Kermit 6.0, if you type lots of Ctrl-C's during
- execution of the initialization file, ghost Kermit processes will be
- created, and will compete for the keyboard. They can only be removed
- via "kill -9" from another terminal, or by rebooting. Diagnosis --
- something strange happening with the SIGINT handler while the process
- is reading the directory (it seems to occur during the SET PROMPT
- [\v(dir)] ... sequence). Cure: unknown. Workaround: don't interrupt
- C-Kermit while it is executing its init file on the Tandy 16/6000.
- ________________________________________________________________________
-
- 3.13. C-KERMIT AND OSF/1 (DIGITAL UNIX) (TRU64 UNIX)
-
- [ [482]Top ] [ [483]Contents ] [ [484]Section Contents ] [ [485]Next ]
- [ [486]Previous ]
-
- While putting together and testing C-Kermit 8.0, it was discovered
- that binaries built for one version of Tru64 Unix (e.g. 4.0G) might
- exhibit very strange behavior if run on a different version of Tru64
- Unix (e.g. 5.1A). The typical symptom was that a section of the
- initialization file would be skipped, notably locating the dialing
- and/or network directory as well as finding and executing the
- customization file, ~/.mykermrc. This problem also is reported to
- occur on Tru64 Unix 5.0 (Rev 732) even when running a C-Kermit binary
- that was built there. However, the Tru64 5.1A binary works correctly
- on 5.0. Go figure.
-
- When making Telnet connections to a Digital Unix or Tru64 system, and
- your Telnet client forwards your user name, the Telnet server
- evidently stuffs the username into login's standard input, and you
- see:
-
- login: ivan
- Password:
-
- This is clearly going to play havoc with scripts that look for
- "login:". Workaround (when Kermit is your Telnet client): SET LOGIN
- USER to nothing, to prevent Kermit from sending your user ID.
-
- Before you can use a serial port on a new Digital Unix system, you
- must run uucpsetup to enable or configure the port. Evidently the
- /dev/tty00 and 01 devices that appear in the configuration are not
- usable; uucpsetup turns them into /dev/ttyd00 and 01, which are. Note
- that uucpsetup and other uucp-family programs are quite primitive --
- they only know about speeds up to 9600 bps and their selection of
- modems dates from the early 1980s. None of this affects Kermit, though
- -- with C-Kermit, you can use speeds up to 115200 bps (at least in
- DU4.0 and later) and modern modems with hardware flow control and all
- the rest.
-
- Reportedly, if a modem is set for &S0 (assert DSR at all times), the
- system resets or drops DTR every 30 seconds; reportedly DEC says to
- set &S1.
-
- Digital Unix 3.2 evidently wants to believe your terminal is one line
- longer than you say it is, e.g. when a "more" or "man" command is
- given. This is has nothing to do with C-Kermit, but tends to annoy
- those who use Kermit or other terminal emulators to access Digital
- Unix systems. Workaround: tell Unix to "stty rows 23" (or whatever).
-
- Reportedly, there is some bizarre behavior when trying to use a
- version of C-Kermit built on one Digital Unix 4.0 system on another
- one, possibly due to differing OS or library revision levels; for
- example, the inability to connect to certain TCP/IP hosts. Solution:
- rebuild C-Kermit from source code on the system where you will be
- using it.
-
- Digital Unix tgetstr() causes a segmentation fault. C-Kermit 7.0 added
- #ifdefs to avoid calling this routine in Digital Unix. As a result,
- the SCREEN commands always send ANSI escape sequences -- even though
- curses knows your actual terminal type.
-
- Reportedy the Tru64 Unix 4.0E 1091 Telnet server does not tolerate
- streaming transfers into itself, at least not when the sending Kermit
- is on the same local network. Solution: tell one Kermit or the other
- (or both) to "set streaming off". This might or might be the case with
- earlier and/or later Tru64, Digital Unix, and OSF/1 releases.
- ________________________________________________________________________
-
- 3.14. C-KERMIT AND SGI IRIX
-
- [ [487]Top ] [ [488]Contents ] [ [489]Section Contents ] [ [490]Next ]
- [ [491]Previous ]
-
- See also:
- * The [492]comp.sys.sgi.misc and [493]comp.sys.sgi.admin newsgroups.
- [494]The SGI website
- * The SGI FAQ:
- + [495]http://www-viz.tamu.edu/~sgi-faq/
- + [496]ftp://viz.tamu.edu/pub/sgi/faq/
-
- About IRIX version numbers: "uname -a" tells the "two-digit" version
- number, such as "5.3" or "6.5". The three-digit form can be seen with
- "uname -R". (this information is unavailable at the simple API level).
- Supposedly all three-digit versions within the same two-digit version
- (e.g. 6.5.2, 6.5.3) are binary compatible; i.e. a binary built on any
- one of them should run on all others. The "m" suffix denotes just
- patches; the "f" suffix indicates that features were added.
-
- An IRIX binary built on lower MIPS model (Instruction Set
- Architecture, ISA) can run on higher models, but not vice versa:
-
- MIPS1 R3000 and below
- MIPS2 R4000
- MIPS3 R4x00
- MIPS4 R5000 and above
-
- Furthermore, there are different Application Binary Inferfaces (ABIs):
-
- COFF 32 bits, IRIX 5.3, 5.2, 5.1, 4.x and below
- o32 ELF 32 bits, IRIX 5.3, 6.0 - 6.5
- N32 ELF 32 bits, IRIX 6.2 - 6.5
- N64 ELF 64 bits, IRIX 6.2 - 6.5
-
- Thus a prebuilt IRIX binary works on a particular machine only if (a)
- the machine's IRIX version (to one decimal place) is equal to or
- greater than the version under which the binary was built; (b) the
- machine's MIPS level is greater or equal to that of the binary; and
- (c) the machine supports the ABI of the binary. If all three
- conditions are not satisfied, of course, you can build a binary
- yourself from source code since, unlike some other Unix vendors, SGI
- does supply a C compiler and libraries.
-
- SGI did not supply an API for hardware flow control prior to IRIX 5.2.
- C-Kermit 6.1 and higher for IRIX 5.2 and higher supports hardware flow
- control in the normal way, via "set flow rts/cts".
-
- For hardware flow control on earlier IRIX and/or C-Kermit versions,
- use the ttyf* (modem control AND hardware flow control) devices and
- not the ttyd* (direct) or ttym* (modem control but no hardware flow
- control) ones, and obtain the proper "hardware handshaking" cable from
- SGI, which is incompatible with the ones for the Macintosh and NeXT
- even though they look the same ("man serial" for further info) and
- tell Kermit to "set flow keep" and "set modem flow rts/cts".
-
- Serial speeds higher than 38400 are available in IRIX 6.2 and later,
- on O-class machines (e.g. Origin, Octane) only, and are supported by
- C-Kermit 7.0 and later. Commands such as "set speed 115200" may be
- given on other models (e.g. Iris, Indy, Indigo) but will fail because
- the OS reports an invalid speed for the device.
-
- Experimentation with both IRIX 5.3 and 6.2 shows that when logged in
- to IRIX via Telnet, that remote-mode C-Kermit can't send files if the
- packet length is greater than 4096; the Telnet server evidently has
- this restriction (or bug), since there is no problem sending long
- packets on serial or rlogin connections. However, it can receive files
- with no problem if the packet length is greater than 4096. As a
- workaround, the FAST macro for IRIX includes "set send packet-length
- 4000". IRIX 6.5.1 does not have this problem, so evidently it was
- fixed some time after IRIX 6.2. Tests show file-transfer speeds are
- better (not worse) with 8K packets than with 4K packets from IRIX
- 6.5.1.
-
- Reportedly some Indys have bad serial port hardware. IRIX 5.2, for
- example, needs patch 151 to work around this; or upgrade to a later
- release. Similarly, IRIX 5.2 has several problems with serial i/o,
- flow control, etc. Again, patch or upgrade.
-
- Reportedly on machines with IRIX 4.0, Kermit cannot be suspended by
- typing the suspend ("swtch") character if it was started from csh,
- even though other programs can be suspended this way, and even though
- the Z and SUSPEND commands still work correctly. This is evidently
- because IRIX's csh does not deliver the SIGTSTP signal to Kermit. The
- reason other programs can be suspended in the same environment is
- probably that they do not trap SIGTSTP themselves, so the shell is
- doing the suspending rather than the application.
-
- Also see notes about IRIX 3.x in the [497]C-Kermit for Unix
- Installation Instructions.
-
- If you have problems making TCP/IP connections in versions of IRIX
- built with GCC 2.95.2, see the bugs section of:
-
- [498]http://freeware.sgi.com/Installable/gcc-2.95.2.html.
-
- Reportedly, if you allow gcc to compile C-Kermit on Irix you should be
- aware that there might be problems with some of the network code. The
- specifics are at
- [499]http://freeware.sgi.com/Installable/gcc-2.95.2.html; scroll down
- to the "known bugs" section at the end of the document.
- ________________________________________________________________________
-
- 3.15. C-KERMIT AND THE BEBOX
-
- [ [500]Top ] [ [501]Contents ] [ [502]Section Contents ] [ [503]Next ]
- [ [504]Previous ]
-
- See also: The [505]comp.sys.be newsgroup.
-
- The BeBox has been discontinued and BeOS repositioned for PC
- platforms. The POSIX parts of BeOS are not finished, nor is the
- sockets library, therefore a fully functional version of C-Kermit is
- not possible. In version 6.0 of C-Kermit, written for BeOS DR7, it was
- possible to:
-
- * set line /dev/serial2 (and probably the other serial ports)
- * set speed 115200 (and at least some of the lower baud rates)
- * connect
- * set modem type hayes (and likely others, too)
- * dial phone-number
- * set send packet-length 2048 (other lengths for both send and
- receive)
- * set receive packet length 2048
- * set file type binary (text mode works, too) (with remote kermit
- session in server mode)
- * put bedrop.jpg
- * get bedrop.jpg
- * get bedrop.jpg bedrop.jpg2
- * finish, bye
-
- The following do not work:
- * kermit does not detect modem hangup
- * !/RUN/PUSH [commandline command]
- * Running kermit in remote mode
- * Using other protocols (x/y/zmodem)
- * TCP networking interface (Be's TCP/IP API has a ways to go, still)
-
- C-Kermit does not work on BeOS DR8 because of changes in the
- underlying APIs. Unfortunately not enough changes were made to allow
- the regular POSIX-based C-Kermit to work either. Note: the lack of a
- fork() service requires the select()-based CONNECT module, but there
- is no select(). There is a select() in DR8, but it doesn't work.
-
- C-Kermit 7.0 was built for BeOS 4.5 and works in remote mode. It does
- not include networking support since the APIs are still not there. It
- is not known if dialing out works, but probably not. Be experts are
- welcome to lend a hand.
- ________________________________________________________________________
-
- 3.16. C-KERMIT AND DG/UX
-
- [ [506]Top ] [ [507]Contents ] [ [508]Section Contents ] [ [509]Next ]
- [ [510]Previous ]
-
- Somebody downloaded the C-Kermit 6.0 binary built under DG/UX 5.40 and
- ran it under DG/UX 5.4R3.10 -- it worked OK except that file dates for
- incoming files were all written as 1 Jan 1970. Cause and cure unknown.
- Workaround: SET ATTRIBUTE DATE OFF. Better: Use a version of C-Kermit
- built under and for DG/UX 5.4R3.10.
- ________________________________________________________________________
-
- 3.17. C-KERMIT AND SEQUENT DYNIX
-
- [ [511]Top ] [ [512]Contents ] [ [513]Section Contents ] [ [514]Next ]
- [ [515]Previous ]
-
- Reportedly, when coming into a Sequent Unix (DYNIX) system through an
- X.25 connection, Kermit doesn't work right because the Sequent's
- FIONREAD ioctl returns incorrect data. To work around, use the
- 1-character-at-a-time version of myread() in ckutio.c (i.e. undefine
- MYREAD in ckutio.c and rebuild the program). This is unsatisfying
- because two versions of the program would be needed -- one for use
- over X.25, and the other for serial and TCP/IP connections.
- ________________________________________________________________________
-
- 3.18. C-KERMIT AND {FREE,OPEN,NET}BSD
-
- [ [516]Top ] [ [517]Contents ] [ [518]Section Contents ] [ [519]Next ]
- [ [520]Previous ]
-
- Some NebBSD users have reported difficulty escaping back from CONNECT
- mode, usually when running NetBSD on non-PC hardware. Probably a
- keyboard issue.
-
- NetBSD users have also reported that C-Kermit doesn't pop back to the
- prompt if the modem drops carrier. This needs to be checked out &
- fixed if possible.
-
- (All the above seems to work properly in C-Kermit 7.0 and later.)
- ________________________________________________________________________
-
- 3.19. C-KERMIT AND MAC OS X (Rhapsody, Darwin, Jaguar, Panther)
-
- [ [521]Top ] [ [522]Contents ] [ [523]Section Contents ] [ [524]Next ]
- [ [525]Previous ]
-
- Mac OS X is Apple's 4.4BSD Unix variety, closely related to FreeBSD,
- but different. "uname -a" is singularly uninformative, as in Linux,
- giving only the Darwin kernel version number. As far as I can tell,
- there is no way to find out the Mac OS X version number, such as 10.3
- (in Linux you can find the distribution version in a
- distribution-dependent file). Here are some points to be aware of:
-
- * The biggest gotcha for Kermit users is that Mac OS X does not
- support serial ports and, as far as I can tell, doesn't support
- its built-in modem either, for anything other than making Internet
- connections. Macintoshes capable of running Mac OS X, such as the
- G5, some without serial ports and without any APIs to support
- them, and also without the UUCP family of programs (including cu),
- nor any standard for serial-port lockfile directory.
- * At least early versions of Mac OS X came without Curses, Termlib,
- or Terminfo libraries. Later versions seem to have ncurses. Kermit
- uses curses for its file-transfer display. See elsewhere about
- curses-vs-ncurses confusion.
- * In the HFS+ file system, filenames are case-folded. Thus
- "makefile" and "Makefile" are the same file. The UFS file system
- is, like normal Unix, case-sensitive.
- * Files that are composed of a resource fork and a data fork... I
- doubt that C-Kermit does anything useful with them. There is no
- code in C-Kermit for traditional two-forked Macintosh files, but
- it could be added if there is any demand.
- * In case you want to transfer a traditional Macintosh text file (or
- data fork of a file that is plain text), you can use these
- C-Kermit commands:
-
-set file eol cr
-set file character-set apple-quickdraw
-send /text filename
-
- * File or pathnames that include spaces must be enclosed in either
- doublequotes or curly braces in C-Kermit commands.
- * Mac OS X has its own package format for applications, called
- "fink". Various fink packages for C-Kermit are floating around
- that are not standard releases. For example, there's a C-Kermit
- 8.0.201 package in which C-Kermit was modifed (at least) to use a
- UUCP lockfile directory that does not exist on vanilla Mac OS X
- systems.
-
- Mac OS X and Serial Ports
-
- Apple is in the forefront of companies that believe serial ports have
- no use in the modern world and so has simply eliminated all traces of
- them from its machines and OS. But of course serial ports are still
- needed to connect not only to external modems, but also to the control
- ports of hubs, routers, terminal servers, PBXs, and similar devices,
- not to mention barcode readers, POS systems and components, automated
- factory-floor equipment, and scientific, medical, and lab equipment
- (to name a few). Among workers in these areas, there is a need to add
- serial ports back onto this platform, which is being filled by
- third-party products such as the [526]Keyspan USB Serial Adapter. To
- use the Keyspan device, you must install the accompanying device
- drivers, which wind up giving you serial ports with names like
- /dev/cu.USA19H3b1P1.1.
-
- To configure your Mac OS X system to allow C-Kermit to use these (or
- any other) serial devices:
-
- 1. su
- chgrp xxxx /var/spool/lock
- chmod g+w /var/spool/lock
- chgrp xxxx /dev/cu.*
- (where xxxx is the name of the group for users to whom serial-port
- access is to be granted). Use "admin" or other existing group, or
- create a new group if desired. NB:
-
- In the absence of official guidance from Apple or anyone else, we
- choose /var/spool/lock as the lockfile directory because this
- directory (a) already exists on vanilla Mac OS X installations, and
- (b) it is the directory used for serial-port lockfiles on many
- other platforms.
- 2. Put all users who need access to the serial port in the same
- group.
- 3. Make sure the serial device files that are to be used by C-Kermit
- have group read-write permission and (if you care) lack world
- read-write permission, e.g.:
- chmod g+rw,o-rw /dev/cu.*
-
- If you do the above, then there's no need to become root to use
- Kermit, or to make Kermit suid or sgid. Just do this:
-
-chmod 775 wermit
-mv wermit /usr/local/bin/kermit
-
- (or whatever spot is more appropriate). For greater detail about
- installation (man page, etc), [527]CLICK HERE.
-
- Back when Macs had serial ports, they were not RS-232 (the standard
- for connecting computers with nearby modems) but rather RS-422 or -423
- (a standard for connecting serial devices over longer distances).
- Macintosh serial ports do not support modems well because they do not
- have enough wires (or more properly in the case RS-422/423, wire
- pairs) to convey a useful subset of modem signals. The Keyspan USB
- adapter gives you two Mini-Din8 RS-422 ports, that are no better (or
- worse) for communicating with modems or serial devices than a real Mac
- Din-8 port was. In essense, you get Data In, Data Out, and two modem
- signals. It looks to me as if the signals chosen by Keyspan are RTS
- and CTS. This gives you hardware flow control, but at the expense of
- Carrier Detect. Thus to use C-Kermit with a Keyspan USB serial port,
- you must tell C-Kermit to:
-
-set modem type none ; (don't expect a modem)
-set carrier-watch off ; (ignore carrier signal)
-set port /dev/cu.USA19H3b1P1.1 ; (open the port)
-set flow rts/cts ; (this is the default)
-set speed 57600 ; (or whatever)
-connect ; (or whatever)
-
- Use Ctrl-\C in the normal manner to escape back to the C-Kermit>
- prompt. Kermit can't pop back to its prompt automatically when Carrier
- drops because there is no Carrier signal.
-
- Instructions for the built-in modem remain to be written.
-
- Links:
- * [528]Unix tips for Mac OS X (Jerry Stratton)
- ________________________________________________________________________
-
- 3.20. C-KERMIT AND COHERENT
-
- [ [529]Top ] [ [530]Contents ] [ [531]Section Contents ] [
- [532]Previous ]
-
- Also see:
-
- [533]http://www.uni-giessen.de/faq/archiv/coherent-faq.general/msg00
- 000.html
-
- Mark Williams COHERENT was perhaps the first commercial Unix-based
- operating system for PCs, first appearing about 1983 or -84 for the
- PC/XT (?), and popular until about 1993, when Linux took over.
- C-Kermit, as of version 8.0, is still current for COHERENT 386 4.2
- (i.e. only for i386 and above). Curses is included, but lots of other
- features are omitted due to lack of the appropriate OS features, APIs,
- libraries, hardware, or just space: e.g. TCP/IP, floating-point
- arithmetic, learned scripts. Earlier versions of COHERENT ran on 8086
- and 80286, but these are to small to build or run C-Kermit, but
- G-Kermit should be OK (as might be ancient versions of C-Kermit).
-
- You can actually build a version with floating point support -- just
- take -DNOFLOAT out of CFLAGS and add -lm to LIBS; NOFLOAT is the
- default because COHERENT tends to run on old PCs that don't have
- floating-point hardware. You can also add "-f" to CFLAGS to have it
- link in the floating-point emulation library. Also I'm not sure why
- -DNOLEARN is included, since it depends on select(), which COHERENT
- has.
- ________________________________________________________________________
-
- 4. GENERAL UNIX-SPECIFIC HINTS, LIMITATIONS, AND BUGS
-
- [ [534]Top ] [ [535]Contents ] [ [536]Next ] [ [537]Previous ]
-
- 4.1. Modem Signals
-
- There seems to be an escalating demand for the ability to control
- "dumb serial devices" (such as "smartcard readers", barcode readers,
- etc) by explicitly manipulating modem signals, particularly RTS. This
- might have been easy to do in DOS, where there is no operating system
- standing between the application and the serial device, but it is
- problematic in Unix, where modem signals are controlled by the serial
- device driver. If the driver does not provide an API for doing this,
- then the application can't do it. If it does provide an API, expect it
- to be totally different on each Unix platform, since there is no
- standard for this.
-
- 4.2. NFS Troubles
-
- Beginning with C-Kermit 6.0, the default C-Kermit prompt includes your
- current (working) directory; for example:
-
- [/usr/olga] C-Kermit>
-
- (In C-Kermit 7.0 the square braces were replaced by round parentheses
- to avoid conflicts with ISO 646 national character sets.)
-
- If that directory is on an NFS-mounted disk, and NFS stops working or
- the disk becomes unavailable, C-Kermit will hang waiting for NFS
- and/or the disk to come back. Whether you can interrupt C-Kermit when
- it is hung this way depends on the specific OS. Kermit has called the
- operating systems's getcwd() function, and is waiting for it to
- return. Some versions of Unix (e.g. HP-UX 9.x) allow this function to
- be interrupted with SIGINT (Ctrl-C), others (such as HP-UX 8.x) do
- not. To avoid this effect, you can always use SET PROMPT to change
- your prompt to something that does not involve calling getcwd(), but
- if NFS is not responding, C-Kermit will still hang any time you give a
- command that refers to an NFS-mounted directory. Also note that in
- some cases, the uninterruptibility of NFS-dependent system or library
- calls is considered a bug, and sometimes there are patches. For HP-UX,
- for example:
-
- replaced by:
- HP-UX 10.20 libc PHCO_8764 PHCO_14891/PHCO_16723
- HP-UX 10.10 libc PHCO_8763 PHCO_14254/PHCO_16722
- HP-UX 9.x libc PHCO_7747 S700 PHCO_13095
- HP-UX 9.x libc PHCO_6779 S800 PHCO_11162
-
- 4.3. C-Kermit as Login Shell
-
- You might have reason to make C-Kermit the login shell for a specific
- user, by entering the pathname of Kermit (possibly with command-line
- switches, such as -x to put it in server mode) into the shell field of
- the /etc/passwd file. This works pretty well. In some cases, for
- "ultimate security", you might want to use a version built with
- -DNOPUSH (see the [538]Configurations Options document for this, but
- even if you don't, then PUSHing or shelling out from C-Kermit just
- brings up a new copy of C-Kermit (but warning: this does not prevent
- the user from explicitly running a shell; e.g. "run /bin/sh"; use
- NOPUSH to prevent this).
-
- 4.4. C-Kermit versus screen and splitvt
-
- C-Kermit file transfers will probably not work if attemped through the
- "splitvt" or GNU "screen" programs because the screen optimization (or
- at least, line wrapping, control-character absorption) done by this
- package interferes with Kermit's packets.
-
- The same can apply to any other environment in which the user's
- session is captured, monitored, recorded, or manipulated. Examples
- include the 'script' program (for making a typescript of a session),
- the Computronics PEEK package and pksh (at least versions of it prior
- to 1.9K), and so on.
-
- You might try the following -- what we call "doomsday Kermit" --
- settings to push packets through even the densest and most obstructive
- connections, such as "screen" and "splitvt" (and certain kinds of 3270
- protocol emulators): Give these commands to BOTH Kermit programs:
-
- SET FLOW NONE
- SET CONTROL PREFIX ALL
- SET RECEIVE PACKET-LENGTH 70
- SET RECEIVE START 62
- SET SEND START 62
- SET SEND PAUSE 100
- SET BLOCK B
-
- If it works, it will be slow.
-
- 4.5. C-Kermit versus DOS Emulators
-
- On Unix workstations equipped with DOS emulators like SoftPC, watch
- out for what these emulators do to the serial port drivers. After
- using a DOS emulator, particularly if you use it to run DOS
- communications software, you might have to reconfigure the serial
- ports for use by Unix.
-
- 4.6. C-Kermit versus Job Control
-
- Interruption by Ctrl-Z makes Unix C-Kermit try to suspend itself with
- kill(0,SIGTSTP), but only on platforms that support job control, as
- determined by whether the symbol SIGTSTP is defined (or on POSIX or
- SVR4 systems, if syconf(_SC_JOB_CONTROL) or _POSIX_JOB_CONTROL in
- addition to SIGTSTP). However, if Kermit is running under a login
- shell (such as the original Bourne shell) that does not support job
- control, the user's session hangs and must be logged out from another
- terminal, or hung up on. There is no way Kermit can defend itself
- against this. If you use a non-job control shell on a computer that
- supports job control, give a command like "stty susp undef" to fix it
- so the suspend signal is not attached to any particular key, or give
- the command SET SUSPEND OFF to C-Kermit, or build C-Kermit with
- -DNOJC.
-
- 4.7. Dates and Times
-
- Unix time conversion functions typically apply locale rules to return
- local time in terms of any seasonal time zone change in effect for the
- given date. The diffdate function assumes that the same timezone rules
- are in effect for both dates, but a date with timezone information
- will be converted to the local time zone in effect at the given time,
- e.g., a GMT specification will produce either a Standard Time or
- Daylight Savings Time, depending on which applies at the given time.
- An example using the 2001 seasonal change from EDT (-0400) to EST
- (-0500):
-
- C-Kermit> DATE 20011028 05:01:02 GMT ; EDT
- 20011028 01:01:02
- C-Kermit> DATE 20011028 06:01:02 GMT ; EST
- 20011028 01:01:02
- C-Kermit>
-
- but the implicit change in timezone offset is not recognized:
-
- C-Kermit> echo \fdiffdate(20011028 05:01:02 GMT, 20011028 06:01:02 GMT)
- +0:00
- C-Kermit>
-
- Date/time arithmetic, offsets, delta times, and timezone support are
- new to C-Kermit 8.0, and might be expected to evolve and improve in
- subsequent releases.
-
- On some platforms, files downloaded with HTTP receive the current
- timestamp, rather than the HTTP "Last Modified" time (this can be
- fixed by including utime.h, e.g. in SunOS and Tru64...).
-
- 4.8. Pseudoterminals
-
- The SSH and PTY commands work by assigning a pseudoterminal and
- reading and writing from it. Performance varies according to the
- specific platform ranging from very fast to very flow.
-
- SSH and PTY commands can fail if (a) all pseudoterminals are in use;
- or (b) you do not have read/write access to the pseudoterminal that
- was assigned. An example of (b) was reported with the Zipslack
- Slackware Linux distribution, in which the pseudoterminals were
- created with crw-r--r-- permission, instead of crw-rw-rw-.
-
- 4.9. Miscellaneous
-
- * Reportedly, the Unix C-Kermit server, under some conditions, on
- certain particular systems, fails to log out its login session
- upon receipt of a BYE command. Before relying on the BYE command
- working, test it a few times to make sure it works on your system:
- there might be system configuration or security mechanisms to
- prevent an inferior process (like Kermit) from killing a superior
- one (like the login shell).
- * On AT&T 7300 (3B1) machines, you might have to "stty nl1" before
- starting C-Kermit. Do this if characters are lost during
- communications operations.
- * Under the bash shell (versions prior to 1.07 from CWRU), "pushing"
- to an inferior shell and then exiting back to Kermit leaves Kermit
- in the background such that it must be explicitly fg'd. This is
- reportedly fixed in version 1.07 of bash (and definitely in modern
- bash versions).
- ________________________________________________________________________
-
- 5. INITIALIZATION AND COMMAND FILES
-
- [ [539]Top ] [ [540]Contents ] [ [541]Next ] [ [542]Previous ]
-
- C-Kermit's initialization file for Unix is .kermrc (lowercase, starts
- with period) in your home directory, unless Kermit was built with the
- system-wide initialization-file option (see the [543]C-Kermit for Unix
- Installation Instructions).
-
- C-Kermit identifies your home directory based on the environment
- variable, HOME. Most Unix systems set this variable automatically when
- you log in. If C-Kermit can't find your initialization file, check
- your HOME variable:
-
- echo $HOME (at the Unix prompt)
-
- or:
-
- echo \$(HOME) (at the C-Kermit prompt)
-
- If HOME is not defined, or is defined incorrectly, add the appropriate
- definition to your Unix .profile or .login file, depending on your
- shell:
-
- setenv HOME full-pathname-of-your-home-directory (C-Shell, .login file)
-
- or:
-
- HOME=full-pathname-of-your-home-directory (sh, ksh, .profile file)
- export HOME
-
- NOTE: Various other operations depend on the correct definition of
- HOME. These include the "tilde-expansion" feature, which allows you to
- refer to your home directory as "~" in filenames used in C-Kermit
- commands, e.g.:
-
- send ~/.kermrc
-
- as well as the \v(home) variable.
-
- Prior to version 5A(190), C-Kermit would look for its initialization
- file in the current directory if it was not found in the home
- directory. This feature was removed from 5A(190) because it was a
- security risk. Some people, however, liked this behavior and had
- .kermrc files in all their directories that would set up things
- appropriately for the files therein. If you want this behavior, you
- can accomplish it in various ways, for example:
-
- * Create a shell alias, for example:
- alias kd="kermit -Y ./.kermrc"
- * Create a .kermrc file in your home directory, whose contents are:
- take ./.kermrc
-
- Suppose you need to pass a password from the Unix command line to a
- C-Kermit script program, in such a way that it does not show up in
- "ps" or "w" listings. Here is a method (not guaranteed to be 100%
- secure, but definitely more secure than the more obvious methods):
-
- echo mypassword | kermit myscript
-
- The "myscript" file contains all the commands that need to be executed
- during the Kermit session, up to and including EXIT, and also includes
- an ASK or ASKQ command to read the password from standard input, which
- has been piped in from the Unix 'echo' command, but it must not
- include a CONNECT command. Only "kermit myscript" shows up in the ps
- listing.
- ________________________________________________________________________
-
- 6. COMMUNICATION SPEED SELECTION
-
- [ [544]Top ] [ [545]Contents ] [ [546]Next ] [ [547]Previous ]
-
- Version-7 based Unix implementations, including 4.3 BSD and earlier
- and Unix systems based upon BSD, use a 4-bit field to record a serial
- device's terminal speed. This leaves room for 16 speeds, of which the
- first 14 are normally:
-
- 0, 50, 75, 110, 134.5, 150, 200, 300, 600, 1200, 1800, 2400, 4800,
- and 9600
-
- The remaining two are usually called EXTA and EXTB, and are defined by
- the particular Unix implementation. C-Kermit determines which speeds
- are available on your system based on whether symbols for them are
- defined in your terminal device header files. EXTA is generally
- assumed to be 19200 and EXTB 38400, but these assumptions might be
- wrong, or they might not apply to a particular device that does not
- support these speeds. Presumably, if you try to set a speed that is
- not legal on a particular device, the driver will return an error, but
- this can not be guaranteed.
-
- On these systems, it is usually not possible to select a speed of
- 14400 bps for use with V.32bis modems. In that case, use 19200 or
- 38400 bps, configure your modem to lock its interface speed and to use
- RTS/CTS flow control, and tell C-Kermit to SET FLOW RTS/CTS and SET
- DIAL SPEED-MATCHING OFF.
-
- The situation is similar, but different, in System V. SVID Third
- Edition lists the same speeds, 0 through 38400.
-
- Some versions of Unix, and/or terminal device drivers that come with
- certain third-party add-in high-speed serial communication interfaces,
- use the low "baud rates" to stand for higher ones. For example, SET
- SPEED 50 gets you 57600 bps; SET SPEED 75 gets you 76800; SET SPEED
- 110 gets 115200.
-
- SCO ODT 3.0 is an example where a "baud-rate-table patch" can be
- applied that can rotate the tty driver baud rate table such that
- 600=57600 and 1800=115k baud. Similarly for Digiboard
- multiport/portservers, which have a "fastbaud" setting that does this.
- Linux has a "setserial" command that can do it, etc.
-
- More modern Unixes support POSIX-based speed setting, in which the
- selection of speeds is not limited by a 4-bit field. C-Kermit 6.1
- incorporates a new mechanism for finding out (at compile time) which
- serial speeds are supported by the operating system that does not
- involve editing of source code by hand; on systems like Solaris 5.1,
- IRIX 6.2, and SCO OSR5.0.4, "set speed ?" will list speeds up to
- 460800 or 921600. In C-Kermit 7.0 and later:
-
- 1. If a symbol for a particular speed (say B230400 for 230400 bps)
- appears in whatever header file defines acceptable serial speeds
- (e.g. <termbits.h> or <sys/termios.h> or <sys/ttydev.h>, etc), the
- corresponding speed will appear in C-Kermit's "set speed ?" list.
- 2. The fact that a given speed is listed in the header files and
- appears in C-Kermit's list does not mean the driver will accept
- it. For example, a computer might have some standard serial ports
- plus some add-on ones with different drivers that accept a
- different repertoire of speeds.
- 3. The fact that a given speed is accepted by the driver does not
- guarantee the underlying hardware can accept it.
-
- When Kermit is given a "set speed" command for a particular device,
- the underlying system service is called to set the speed; its return
- code is checked and the SET SPEED command fails if the return code
- indicates failure. Regardless of the system service return status, the
- device's speed is then read back and if it does not match the speed
- that was requested, an error message is printed and the command fails.
-
- Even when the command succeeds, this does not guarantee successful
- operation at a particular speed, especially a high one. That depends
- on electricity, information theory, etc. How long is the cable, what
- is its capacitance, how well is it shielded, etc, not to mention that
- every connection has two ends and its success depends on both of them.
- (With the obvious caveats about internal modems, is the cable really
- connected, interrupt conflicts, etc etc etc).
-
- Note, in particular, that there is a certain threshold above which
- modems can not "autobaud" -- i.e. detect the serial interface speed
- when you type AT (or whatever else the modem's recognition sequence
- might be). Such modems need to be engaged at a lower speed (say 2400
- or 9600 or even 115200 -- any speed below their autobaud threshold)
- and then must be given a modem-specific command (which can be found in
- the modem manual) to change their interface speed to the desired
- higher speed, and then the software must also be told to change to the
- new, higher speed.
-
- For additional information, read [548]Section 9.5 of the Installation
- Instructions, plus any platform-specific notes in [549]Section 3
- above.
- ________________________________________________________________________
-
- 7. COMMUNICATIONS AND DIALING
-
- [ [550]Top ] [ [551]Contents ] [ [552]Next ] [ [553]Previous ]
-
- 7.1. Serial Ports and Modems
-
- If you SET LINE to a serial port modem-control device that has nothing
- plugged in to it, or has a modem connected that is powered off, and
- you have not given a prior SET MODEM TYPE or SET CARRIER-WATCH OFF
- command, the SET LINE command is likely to hang. In most cases, you
- can Ctrl-C out. If not, you'll have to kill C-Kermit from another
- terminal.
-
- Similarly, if you give a SET MODEM TYPE HAYES (or USR, or any other
- modem type besides DIRECT, NONE, or UNKNOWN) and then SET LINE to an
- empty port, the subsequent close (implicit or explicit) is liable to
- hang or even crash (through no fault of Kermit's -- the hanging or
- crashing is inside a system call such as cfsetospeed() or close()).
-
- The SET CARRIER-WATCH command works as advertised only if the
- underlying operating system and device drivers support this feature;
- in particular only if a read() operation returns immediately with an
- error code if the carrier signal goes away or, failing that, if
- C-Kermit can obtain the modem signals from the device driver (you can
- tell by giving a "set line" command to a serial device, and then a
- "show communications" command -- if modem signals are not listed,
- C-Kermit won't be able to detect carrier loss, the WAIT command will
- not work, etc). Of course, the device itself (e.g. modem) must be
- configured appropriately and the cables convey the carrier and other
- needed signals, etc.
-
- If you dial out from Unix system, but then notice a lot of weird
- character strings being stuck into your session at random times
- (especially if they look like +++ATQ0H0 or login banners or prompts),
- that means that getty is also trying to control the same device.
- You'll need to dial out on a device that is not waiting for a login,
- or else disable getty on the device.
-
- As of version 7.0, C-Kermit makes explicit checks for the Carrier
- Detect signal, and so catches hung-up connections much better than 6.0
- and earlier. However, it still can not be guaranteed to catch every
- ever CD on-to-off transition. For example, when the HP-UX version of
- C-Kermit is in CONNECT mode on a dialed connection and CARRIER-WATCH
- ON or AUTO, and you turn off the modem, HP-UX is stuck in a read()
- that never returns. (C-Kermit does not pop back to its prompt
- automatically, but you can still escape back.)
-
- If, on the other hand, you log out from the remote system, and it
- hangs up, and CD drops on the local modem, C-Kermit detects this and
- pops back to the prompt as it should. (Evidently there can be a
- difference between CD and DSR turning off at the same time, versus CD
- turning off while DSR stays on; experimentation with &S0/&S1/&S2 on
- your modem might produce the desired results).
-
- When Unix C-Kermit exits, it closes (and must close) the
- communications device. If you were dialed out, this will most likely
- hang up the connection. If you want to get out of Kermit and still use
- Kermit's communication device, you have several choices:
-
- 1. Shell out from Kermit or suspend Kermit, and refer to the device
- literally (as in "term -blah -blah < /dev/cua > /dev/cua").
- 2. Shell out from Kermit and use the device's file descriptor which
- Kermit makes available to you in the \v(ttyfd) variable.
- 3. Use C-Kermit's REDIRECT command.
- 4. Use C-Kermit new EXEC /REDIRECT command.
-
- If you are having trouble dialing:
-
- 1. Make sure the dialout line is configured correctly. More about
- this below.
- 2. Make sure all necessary patches are installed for your operating
- system.
- 3. If you can't dial on a "bidirectional" line, then configure it for
- outbound-only (remove the getty) and try again. (The mechanisms --
- if any -- for grabbing bidirectional lines for dialout vary wildly
- among Unix implementations and releases, and C-Kermit -- which
- runs on well over 300 different Unix variations -- makes no effort
- to keep up with them; the recommended method for coping with this
- situation is to wrap C-Kermit in a shell script that takes the
- appropriate actions.)
- 4. Make sure C-Kermit's SET DIAL and SET MODEM parameters agree with
- the modem you are actually using -- pay particular attention to
- SET DIAL SPEED-MATCHING.
- 5. If MODEM HANGUP-METHOD is set to RS232-SIGNAL, change it to
- MODEM-COMMAND. Or vice-versa.
- 6. Try SET DIAL HANGUP OFF before the DIAL command. Also, SET DIAL
- DISPLAY ON to watch what's happening. See [554]Section 8 of the
- [555]Installation Instructions.
- 7. Read pages 50-67 of [556]Using C-Kermit.
- 8. As a last resort, don't use the DIAL command at all; SET CARRIER
- OFF and CONNECT to the modem and dial interactively, or write a
- script program to dial the modem.
-
- Make sure your dialout line is correctly configured for dialing out
- (as opposed to login). The method for doing this is different for each
- kind of Unix system. Consult your system documentation for configuring
- lines for dialing out (for example, Sun SparcStation IPC users should
- read the section "Setting up Modem Software" in the Desktop SPARC Sun
- System & Network Manager's Guide; HP-9000 workstation users should
- consult the manual Configuring HP-UX for Peripherals, etc).
-
- Symptom: DIAL works, but a subsequent CONNECT command does not.
- Diagnosis: the modem is not asserting Carrier Detect (CD) after the
- connection is made, or the cable does not convey the CD signal. Cure:
- Reconfigure the modem, replace the cable. Workaround: SET CARRIER OFF
- (at least in System-V based Unix versions).
-
- For Berkeley-Unix-based systems (4.3BSD and earlier), Kermit includes
- code to use LPASS8 mode when parity is none, which is supposed to
- allow 8-bit data and Xon/Xoff flow control at the same time. However,
- as of edit 174, this code is entirely disabled because it is
- unreliable: even though the host operating system might (or might not)
- support LPASS8 mode correctly, the host access protocols (terminal
- servers, telnet, rlogin, etc) generally have no way of finding out
- about it and therefore render it ineffective, causing file transfer
- failures. So as of edit 174, Kermit once again uses rawmode for 8-bit
- data, and so there is no Xon/Xoff flow control during file transfer or
- terminal emulation in the Berkeley-based versions (4.3 and earlier,
- not 4.4).
-
- Also on Berkeley-based systems (4.3 and earlier), there is apparently
- no way to configure a dialout line for proper carrier handling, i.e.
- ignore carrier during dialing, require carrier thereafter, get a fatal
- error on any attempt to read from the device after carrier drops (this
- is handled nicely in System V by manipulation of the CLOCAL flag). The
- symptom is that carrier loss does not make C-Kermit pop back to the
- prompt automatically. This is evident on the NeXT, for example, but
- not on SunOS, which supports the CLOCAL flag. This is not a Kermit
- problem, but a limitation of the underlying operating system. For
- example, the cu program on the NeXT doesn't notice carrier loss
- either, whereas cu on the Sun does.
-
- On certain AT&T Unix systems equipped with AT&T modems, DIAL and
- HANGUP don't work right. Workarounds: (1) SET DIAL HANGUP OFF before
- attempting to dial; (2) If HANGUP doesn't work, SET LINE, and then SET
- LINE <device> to totally close and reopen the device. If all else
- fails, SET CARRIER OFF.
-
- C-Kermit does not contain any particular support for AT&T DataKit
- devices. You can use Kermit software to dial in to a DataKit line, but
- C-Kermit does not contain the specialized code required to dial out
- from a DataKit line. If the Unix system is connected to DataKit via
- serial ports, dialout should work normally (e.g. set line /dev/ttym1,
- set speed 19200, connect, and then see the DESTINATION: prompt, from
- which you can connect to another computer on the DataKit network or to
- an outgoing modem pool, etc). But if the Unix system is connected to
- the DataKit network through the special DataKit interface board, then
- SET LINE to a DataKit pseudodevice (such as /dev/dk031t) will not work
- (you must use the DataKit "dk" or "dkcu" program instead). In C-Kermit
- 7.0 and later, you can make Kermit connections "though" dk or dkcu
- using "set line /pty".
-
- In some BSD-based Unix C-Kermit versions, SET LINE to a port that has
- nothing plugged in to it with SET CARRIER ON will hang the program (as
- it should), but it can't be interrupted with Ctrl-C. The interrupt
- trap is correctly armed, but apparently the Unix open() call cannot be
- interrupted in this case. When SET CARRIER is OFF or AUTO, the SET
- LINE will eventually return, but then the program hangs
- (uninterruptibly) when the EXIT or QUIT command (or, presumably,
- another SET LINE command) is given. The latter is probably because of
- the attempt to hang up the modem. (In edit 169, a timeout alarm was
- placed around this operation.)
-
- With SET DIAL HANGUP OFF in effect, the DIAL command might work only
- once, but not again on the same device. In that case, give a CLOSE
- command to close the device, and then another SET LINE command to
- re-open the same device. Or rebuild your version of Kermit with the
- -DCLSOPN compile-time switch.
-
- The DIAL command says "To cancel: Type your interrupt character
- (normally Ctrl-C)." This is just one example of where program messages
- and documentation assume your interrupt character is Ctrl-C. But it
- might be something else. In most (but not necessarily all) cases, the
- character referred to is the one that generates the SIGINT signal. If
- Ctrl-C doesn't act as an interrupt character for you, type the Unix
- command "stty -a" or "stty all" or "stty everything" to see what your
- interrupt character is. (Kermit could be made to find out what the
- interrupt character is, but this would require a lot of
- platform-dependent coding and #ifdefs, and a new routine and interface
- between the platform-dependent and platform-independent parts of the
- program.)
-
- In general, the hangup operation on a serial communication device is
- prone to failure. C-Kermit tries to support many, many different kinds
- of computers, and there seems to be no portable method for hanging up
- a modem connection (i.e. turning off the RS-232 DTR signal and then
- turning it back on again). If HANGUP, DIAL, and/or Ctrl-\H do not work
- for you, and you are a programmer, look at the tthang() function in
- ckutio.c and see if you can add code to make it work correctly for
- your system, and send the code to the address above. (NOTE: This
- problem has been largely sidestepped as of edit 188, in which Kermit
- first attempts to hang up the modem by "escaping back" via +++ and
- then giving the modem's hangup command, e.g. ATH0, when DIAL
- MODEM-HANGUP is ON, which is the default setting.)
-
- Even when Kermit's modem-control software is configured correctly for
- your computer, it can only work right if your modem is also configured
- to assert the CD signal when it is connected to the remote modem and
- to hang up the connection when your computer drops the DTR signal. So
- before deciding Kermit doesn't work with your modem, check your modem
- configuration AND the cable (if any) connecting your modem to the
- computer -- it should be a straight-through modem cable conducting the
- signals FG, SG, TD, RD, RTS, CTS, DSR, DTR, CD, and RI.
-
- Many Unix systems keep aliases for dialout devices; for example,
- /dev/acu might be an alias for /dev/tty00. But most of these Unix
- systems also use UUCP lockfile conventions that do not take this
- aliasing into account, so if one user assigns (e.g.) /dev/acu, then
- another user can still assign the same device by referring to its
- other name. This is not a Kermit problem -- Kermit must follow the
- lockfile conventions used by the vendor-supplied software (cu, tip,
- uucp).
-
- The SET FLOW-CONTROL KEEP option should be given *before* any
- communication (dialing, terminal emulation, file transfer,
- INPUT/OUTPUT/TRANSMIT, etc) is attempted, if you want C-Kermit to use
- all of the device's preexisting flow-control related settings. The
- default flow-control setting is XON/XOFF, and it will take effect when
- the first communication-related command is given, and a subsequent SET
- FLOW KEEP command will not necessarily know how to restore *all* of
- the device's original flow-control settings.
-
- 7.2. Network Connections
-
- C-Kermit tries to use the 8th bit for data when parity is NONE, and
- this generally works on real Unix terminal (tty) devices, but it often
- does not work when the Unix system is accessed over a network via
- telnet or rlogin protocols, including (in many cases) through terminal
- servers. For example, an Encore computer with Annex terminal servers
- only gives a 7-bit path if the rlogin protocol is selected in the
- terminal server but it gives the full 8 bits if the proprietary RDP
- protocol is used.
-
- If file transfer does not work through a host to which you have
- rlogin'd, use "rlogin -8" rather than "rlogin". If that doesn't work,
- tell both Kermit programs to "set parity space".
-
- The Encore TELNET server does not allow long bursts of input. When you
- have a TELNET connection to an Encore, tell C-Kermit on the Encore to
- SET RECEIVE PACKET-LENGTH 200 or thereabouts.
- ________________________________________________________________________
-
- 8. HARDWARE FLOW CONTROL
-
- [ [557]Top ] [ [558]Contents ] [ [559]Next ] [ [560]Previous ]
-
- SET FLOW RTS/CTS is available in Unix C-Kermit only when the
- underlying operating system provides an Application Program Interface
- (API) for turning this feature on and off under program control, which
- turns out to be a rather rare feature among Unix systems. To see if
- your Unix C-Kermit version supports hardware flow control, type "set
- flow ?" at the C-Kermit prompt, and look for "rts/cts" among the
- options. Other common situations include:
-
- 1. The API is available, so "set flow rts/cts" appears as a valid
- C-Kermit command, but it doesn't do anything because the device
- driver (part of the operating system) was never coded to do
- hardware flow control. This is common among System V R4
- implementations (details below).
- 2. The API is not available, so "set flow rts/cts" does NOT appear as
- a valid C-Kermit command, but you can still get RTS/CTS flow
- control by selecting a specially named device in your SET LINE
- command. Examples:
- + NeXTSTEP: /dev/cufa instead of /dev/cua, /dev/cufb instead of
- /dev/cub (68040 only; "man zs" for further info).
- + IRIX: /dev/ttyf2 instead of /dev/ttyd2 or /dev/ttym2 ("man 7
- serial").
- 3. The API is available, doesn't work, but a workaround as in (2) can
- be used.
- 4. The API is available, but Kermit doesn't know about it. In these
- cases, you can usually use an stty command to enable RTS/CTS on
- the device, e.g. "stty crtscts" or "stty ctsflow", "stty rtsflow",
- before starting Kermit, and then tell Kermit to SET FLOW KEEP.
- 5. No API and no special device drivers. Hardware flow control is
- completely unavailable.
-
- System V R4 based Unixes are supposed to supply a <termiox.h> file,
- which gives Kermit the necessary interface to command the terminal
- driver to enable/disable hardware flow control. Unfortunately, but
- predictably, many implementations of SVR4 whimsically place this file
- in /usr/include/sys rather than /usr/include (where SVID clearly
- specifies it should be; see SVID, Third Edition, V1, termiox(BA_DEV).
- Thus if you build C-Kermit with any of the makefile entries that
- contain -DTERMIOX or -DSTERMIOX (the latter to select
- <sys/termiox.h>), C-Kermit will have "set flow rts/cts" and possibly
- other hardware flow-control related commands. BUT... That does not
- necessarily mean that they will work. In some cases, the underlying
- functions are simply not coded into the operating system.
-
- WARNING: When hardware flow control is available, and you enable in
- Kermit on a device that is not receiving the CTS signal, Kermit can
- hang waiting for CTS to come up. This is most easily seen when the
- local serial port has nothing plugged in to it, or is connected to an
- external modem that is powered off.
- ________________________________________________________________________
-
- 9. TERMINAL CONNECTION AND KEY MAPPING
-
- [ [561]Top ] [ [562]Contents ] [ [563]Next ] [ [564]Previous ]
-
- C-Kermit is not a terminal emulator. Refer to page 147 of [565]Using
- C-Kermit, 2nd Edition: "Most versions of C-Kermit -- Unix, VMS,
- AOS/VS, VOS, etc -- provide terminal connection without emulation.
- These versions act as a 'semitransparent pipe' between the remote
- computer and your terminal, terminal emulator, console driver, or
- window, which in turn emulates (or is) a specific kind of terminal."
- The environment in which you run C-Kermit is up to you.
-
- If you are an X Windows user, you should be aware of an alternative to
- xterm that supports VT220 emulation, from Thomas E. Dickey:
-
- [566]http://dickey.his.com/xterm/xterm.html
-
- Unix C-Kermit's SET KEY command currently can not be used with keys
- that generate "wide" scan codes or multibyte sequences, such as
- workstation function or arrow keys, because Unix C-Kermit does not
- have direct access to the keyboard.
-
- However, many Unix workstations and/or console drivers provide their
- own key mapping feature. With xterm, for example, you can use
- 'xmodmap' ("man xmodmap" for details); here is an xterm mapping to map
- the Sun keyboard to DEC VT200 values for use with VT-terminal oriented
- applications like VMS EVE:
-
- keycode 101=KP_0
- keycode 119=KP_1
- keycode 120=KP_2
- keycode 121=KP_3
- keycode 98=KP_4
- keycode 99=KP_5
- keycode 100=KP_6
- keycode 75=KP_7
- keycode 76=KP_8
- keycode 77=KP_9
- keycode 52=KP_F1
- keycode 53=KP_F2
- keycode 54=KP_F3
- keycode 57=KP_Decimal
- keycode 28=Left
- keycode 29=Right
- keycode 30=KP_Separator
- keycode 105=KP_F4
- keycode 78=KP_Subtract
- keycode 8=Left
- keycode 10=Right
- keycode 32=Up
- keycode 33=Down
- keycode 97=KP_Enter
-
- Users of Linux consoles can use loadkeys ("man dumpkeys loadkeys
- keytables" for details. The format used by loadkeys is compatible with
- that used by Xmodmap, although it is not definitely certain that the
- keycodes are compatible for different keyboard types (e.g. Sun vs HP
- vs PC, etc).
- ________________________________________________________________________
-
- 10. FILE TRANSFER
-
- [ [567]Top ] [ [568]Contents ] [ [569]Next ] [ [570]Previous ]
-
- If uploads (or downloads) fail immediately, give the CAUTIOUS command
- to Kermit and try again. If they still fail, then try SET PREFIXING
- ALL. If they still fail, try SET PARITY SPACE. If they still fail, try
- ROBUST.
-
- If reception (particularly of large files and/or binary files) begins
- successfully but then fail constently after a certain amount of bytes
- have been sent, check:
-
- * Your ulimit ("ulimit -a")
- * The amount of available space on the target disk ("df ." or "df -k
- .")
- * Your personal disk quota (platform- and site-dependent)
- * The maximum file size on the receiver's file system (e.g. 2GB in
- old verions the Linux VFS file system, and/or in applications that
- have not been recoded to use new "large file" APIs).
- * If it's an NFS-mounted disk (if so, try uploading to a local disk)
- * Is there an "idle limit" on the receiving end?
-
- If none of these seem to explain it, then the problem is not size
- related, but reflects some clash between the file contents and the
- characteristics of the connection, in which case follow the
- instructions in the first paragraph of this section.
-
- Suppose two copies of Kermit are receiving files into the same
- directory, and the files have the same name, e.g. "foo.bar". Whichever
- one starts first opens an output file called "foo.bar". The second one
- sees there is already a foo.bar file, and so renames the existing
- foo.bar to foo.bar.~1~ (or whatever). When the first file has been
- received completely, Kermit goes to change its modification time and
- permissions to those given by the file sender in the Attribute packet.
- But in Unix, the APIs for doing this take a filename, not a file
- descriptor. Since the first Kermit's file has been renamed, and the
- second Kermit is using the original name, the first Kermit changes the
- modtime and permissions of the second Kermit's file, not its own.
- Although there might be a way to work around this in the code, e.g.
- using inode numbers to keep track of which file is which, this would
- be tricky and most likely not very portable. It's better to set up
- your application to prevent such things from happening, which is easy
- enough using the script language, filename templates, etc.
-
- Suppose you start C-Kermit with a command-line argument to send or
- receive a file (e.g. "kermit -r") and then type Ctrl-\c immediately
- afterwards to escape back and initiate the other end of the transfer,
- BUT your local Kermit's escape character is not Ctrl-\. In this case,
- the local Kermit passes the Ctrl-\ to the remote system, and if this
- is Unix, Ctrl-\ is likely to be its SIGQUIT character, which causes
- the current program to halt and dump core. Well, just about the first
- thing C-Kermit does when it starts is to disable the SIGQUIT signal.
- However, it is still possible for SIGQUIT to cause Kermit to quit and
- dump core if it is delivered while Kermit is being loaded or started,
- before the signal can be disabled. There's nothing Kermit itself can
- do about this, but you can prevent it from happening by disabling
- SIGQUIT in your Unix session. The command is usually something like:
-
- stty quit undef
-
- Unix C-Kermit does not reject incoming files on the basis of size.
- There appears to be no good (reliable, portable) way to determine in
- advance how much disk space is available, either on the device, or
- (when quotas or other limits are involved) to the user.
-
- Unix C-Kermit discards all carriage returns from incoming files when
- in text mode.
-
- If C-Kermit has problems creating files in writable directories when
- it is installed setuid or setgid on BSD-based versions of Unix such as
- NeXTSTEP 3.0, it probably needs to be rebuilt with the -DSW_ACC_ID
- compilation switch.
-
- If you SET FILE DISPLAY FULLSCREEN, and C-Kermit complains "Sorry,
- terminal type not supported", it means that the terminal library
- (termcap or termlib) that C-Kermit was built with does not know about
- a terminal whose name is the current value of your TERM environment
- variable. If this happens, but you want to have the fullscreen file
- transfer display, EXIT from C-Kermit and set a Unix terminal type from
- among the supported values that is also supported by your terminal
- emulator, or else have an entry for your terminal type added to the
- system termcap and/or terminfo database.
-
- If you attempt to suspend C-Kermit during local-mode file transfer and
- then continue it in the background (via bg), it will block for "tty
- output" if you are using the FULLSCREEN file transfer display. This is
- apparently a problem with curses. Moving a local-mode file transfer
- back and forth between foreground and background works correctly,
- however, with the SERIAL, CRT, BRIEF, or NONE file transfer displays.
-
- If C-Kermit's command parser no longer echoes, or otherwise acts
- strangely, after returning from a file transfer with the fullscreen
- (curses) display, and the curses library for your version of Unix
- includes the newterm() function, then try rebuilding your version of
- C-Kermit with -DCK_NEWTERM. Similarly if it echoes doubly, which might
- even happen during a subsequent CONNECT session. If rebuilding with
- -DCK_NEWTERM doesn't fix it, then there is something very strange
- about your system's curses library, and you should probably not use
- it. Tell C-Kermit to SET FILE DISPLAY CRT, BRIEF, or anything else
- other than FULLSCREEN, and/or rebuild without -DCK_CURSES, and without
- linking with (termlib and) curses. Note: This problem seemed to have
- escalated in C-Kermit 7.0, and -DCK_NEWTERM had to be added to many
- builds that previously worked without it: Linux, AIX 4.1, DG/UX, etc.
- In the Linux case, it is obviously because of changes in the (n)curses
- library; the cause in the other cases is not known.
-
- C-Kermit creates backup-file names (such as "oofa.txt.~1~") based on
- its knowledge of the maximum filename length on the platform where it
- is running, which is learned at compile time, based on MAXNAMLEN or
- equivalent symbols from the system header files. But suppose C-Kermit
- is receiving files on a Unix platform that supports long filenames,
- but the incoming files are being stored on an NFS-mounted file system
- that supports only short names. NFS maps the external system to the
- local APIs, so C-Kermit has no way of knowing that long names will be
- truncated. Or that C-Kermit is running on a version of Unix that
- supports both long-name and short-name file systems simultaneously
- (such as HP-UX 7.00). This can cause unexpected behavior when creating
- backup files, or worse. For example, you are sending a group of files
- whose names are differentiated only by characters past the point at
- which they would be truncated, each file will overwrite the previous
- one upon arrival.
- ________________________________________________________________________
-
- 11. EXTERNAL FILE TRANSFER PROTOCOLS
-
- [ [571]Top ] [ [572]Contents ] [ [573]Next ] [ [574]Previous ]
-
- SECTION CONTENTS
-
- 11.1. [575]C-Kermit as an External Protocol
- 11.2. [576]Invoking External Protocols from C-Kermit
-
- Unix C-Kermit can be used in conjunction with other communications
- software in various ways. C-Kermit can be invoked from another
- communications program as an "external protocol", and C-Kermit can
- also invoke other communication software to perform external
- protocols.
-
- This sort of operation makes sense only when you are dialing out from
- your Unix system (or making a network connection from it). If the Unix
- system is the one you have dialed in to, you don't need any of these
- tricks. Just run the desired software on your Unix system instead of
- Kermit. When dialing out from a Unix system, the difficulty is getting
- two programs to share the same communication device in spite of the
- Unix UUCP lockfile mechanism, which would normally prevent any
- sharing, and preventing the external protocol from closing (and
- therefore hanging up) the device when it exits back to the program
- that invoked it.
-
- 11.1. C-KERMIT AS AN EXTERNAL PROTOCOL
-
- [ [577]Top ] [ [578]Contents ] [ [579]Section Contents ] [ [580]Next ]
-
- (This section deleted; see [581]Using C-Kermit, 2nd Ed, Chapter 14.)
-
- "pcomm" is a general-purpose terminal program that provides file
- transfer capabilities itself (X- and YMODEM variations) and the
- ability to call on external programs to do file transfers (ZMODEM and
- Kermit, for example). You can tell pcomm the command to send or
- receive a file with an external protocol:
- Send Receive
- ZMODEM sz filename rz
- Kermit kermit -s filename kermit -r
-
- pcomm runs external programs for file transfer by making stdin and
- stdout point to the modem port, and then exec-ing "/bin/sh -c xxx"
- (where xxx is the appropriate command). However, C-Kermit does not
- treat stdin and stdout as the communication device unless you instruct
- it:
-
-
- Send Receive
- Kermit kermit -l 0 -s filename kermit -l 0 -r
-
- The "-l 0" option means to use file descriptor 0 for the communication
- device.
-
- In general, any program can pass any open file descriptor to C-Kermit
- for the communication device in the "-l" command-line option. When
- Kermit is given a number as the argument to the "-l" option, it simply
- uses it as a file descriptor, and it does not attempt to close it upon
- exit.
-
- Here's another example, for Seyon (a Linux communication program).
- First try the technique above. If that works, fine; otherwise... If
- Seyon does not give you a way to access and pass along the file
- descriptor, but it starts up the Kermit program with its standard i/o
- redirected to its (Seyon's) communications file descriptor, you can
- also experiment with the following method, which worked here in brief
- tests on SunOS. Instead of having Seyon use "kermit -r" or "kermit -s
- filename" as its Kermit protocol commands, use something like this
- (examples assume C-Kermit 6.0):
-
- For serial connections:
-
- kermit -YqQl 0 -r <-- to receive
- kermit -YqQl 0 -s filename(s) <-- to send one or more files
-
- For Telnet connections:
-
- kermit -YqQF 0 -r <-- to receive
- kermit -YqQF 0 -s filename(s) <-- to send one or more files
-
- Command line options:
-
- Y - skip executing the init file
- Q - use fast file transfer settings (default in 8.0)
- l 0 - transfer files using file descriptor 0 for a serial connection
- F 0 - transfer files using file descriptor 0 for a Telnet connection
- q - quiet - no messages
- r - receive
- s - send
-
- 11.2. INVOKING EXTERNAL PROTOCOLS FROM C-KERMIT
-
- [ [582]Top ] [ [583]Contents ] [ [584]Section Contents ] [
- [585]Previous ]
-
- (This section is obsolete, but not totally useless. See Chapter 14
- of [586]Using C-Kermit, 2nd Edition).
-
- After you have opened a communication link with C-Kermit's SET LINE
- (SET PORT) or SET HOST (TELNET) command, C-Kermit makes its file
- descriptor available to you in the \v(ttyfd) variable so you can pass
- it along to other programs that you RUN from C-Kermit. Here, for
- example, C-Kermit runs itself as an external protocol:
-
- C-Kermit>set modem type hayes
- C-Kermit>set line /dev/acu
- C-Kermit>set speed 2400
- C-Kermit>dial 7654321
- Call complete.
- C-Kermit>echo \v(ttyfd)
- 3
- C-Kermit>run kermit -l \v(ttyfd)
-
- Other programs that accept open file descriptors on the command line
- can be started in the same way.
-
- You can also use your shell's i/o redirection facilities to assign
- C-Kermit's open file descriptor (ttyfd) to stdin or stdout. For
- example, old versions of the Unix ZMODEM programs, sz and rz, when
- invoked as external protocols, expect to find the communication device
- assigned to stdin and stdout with no option for specifying any other
- file descriptor on the sz or rz command line. However, you can still
- invoke sz and rz as exterior protocols from C-Kermit if your current
- shell ($SHELL variable) is ksh (the Korn shell) or bash (the
- Bourne-Again shell), which allows assignment of arbitrary file
- descriptors to stdin and stdout:
-
- C-Kermit> run rz <&\v(ttyfd) >&\v(ttyfd)
-
- or:
-
- C-Kermit> run sz oofa.zip <&\v(ttyfd) >&\v(ttyfd)
-
- In version 5A(190) and later, you can use C-Kermit's REDIRECT command,
- if it is available in your version of C-Kermit, to accomplish the same
- thing without going through the shell:
-
- C-Kermit> redirect rz
-
- or:
-
- C-Kermit> redirect sz oofa.zip
-
- A complete set of rz,sz,rb,sb,rx,sx macros for Unix C-Kermit is
- defined in the file ckurzsz.ini. It automatically chooses the best
- redirection method (but is redundant since C-Kermit 6.0, which now has
- built-in support for external protocols via its SET PROTOCOL command).
-
- Note that external protocols can be used on C-Kermit SET LINE or SET
- HOST connections only if they operate through standard input and
- standard output. If they open their own connections, Kermit can't
- redirect them over its own connection.
- ________________________________________________________________________
-
- 12. SECURITY
-
- [ [587]Top ] [ [588]Contents ] [ [589]Next ] [ [590]Previous ]
-
- As of version 7.0, C-Kermit supports a wide range of security options
- for authentication and encryption: Kerberos 4, Kerberos 5 / GSSAPI,
- SSL/TLS, and SRP. See the separate [591]security document for details.
- ________________________________________________________________________
-
- 13. MISCELLANEOUS USER REPORTS
-
- [ [592]Top ] [ [593]Contents ] [ [594]Next ] [ [595]Previous ]
-
-Date: Thu, 12 Mar 92 1:59:25 MEZ
-From: Walter Mecky <walter@rent-a-guru.de>
-Subject: Help.Unix.sw
-To: svr4@pcsbst.pcs.com, source@usl.com
-
-PRODUCT: Unix
-RELEASE: Dell SVR4 V2.1 (is USL V3.0)
-MACHINE: AT-386
-PATHNAME: /usr/lib/libc.so.1
- /usr/ccs/lib/libc.a
-ABSTRACT: Function ttyname() does not close its file descriptor
-DESCRIPTION:
- ttyname(3C) opens /dev but never closes it. So if it is called
- often enough the open(2) in ttyname() fails. Because the broken
- ttyname() is in the shared lib too all programs using it can
- fail if they call it often enough. One important program is
- uucico which calls ttyname for every file it transfers.
-
- Here is a little test program if your system has the bug:
-
-#include <stdlib.h>
-#include <stdio.h>
-main() {
- int i = 0;
- while (ttyname(0) != NULL)
- i++;
- perror("ttyname");
- printf("i=%d\n", i);
-}
-
- If this program runs longer than some seconds you don't have the bug.
-
- WORKAROUND: None FIX: Very easy if you have source code.
-
- Another user reports some more explicit symptoms and recoveries:
-
-> What happens is when invoking ckermit we get one of the following
-> error messages:
-> You must set line
-> Not a tty
-> No more processes.
-> One of the following three actions clears the peoblem:
-> shutdown -y -g0 -i6
-> kill -9 the ttymon with the highest PID
-> Invoke sysadm and disable then enable the line you want to use.
-> Turning off respawn of sac -t 300 and going to getty's and uugetty's
-> does not help.
->
-> Also C-Kermit reports "?timed out closing /dev/ttyxx".
-> If this happens all is well.
-
-------------------------------
-
- (Note: the following problem also occurs on SGI and probably many
- other Unix systems):
-
- From: James Spath <spath@jhunix.hcf.jhu.edu>
- To: Info-Kermit-Request@cunixf.cc.columbia.edu
- Date: Wed, 9 Sep 1992 20:20:28 -0400
- Subject: C-Kermit vs uugetty (or init) on Sperry 5000
-
- We have successfully compiled the above release on a Unisys/Sperry
- 5000/95. We used the sys5r3 option, rather than sys5r2 since we have
- VR3 running on our system. In order to allow dialout access to
- non-superusers, we had to do "chmod 666 /dev/tty###, where it had been
- -rw--w--w- (owned by uucp), and to do "chmod +w /usr/spool/locks". We
- have done text and binary file transfers through local and remote
- connections.
-
- The problem concerning uucp ownership and permissions is worse than I
- thought at first. Apparently init or uugetty changes the file
- permissions after each session. So I wrote the following C program to
- open a set of requested tty lines. I run this for any required
- outgoing line prior to a Kermit session.
-
- ------ cut here -------
-/* opentty.c -- force allow read on tty lines for modem i/o */
-/* idea from: restrict.c -- System 5 Admin book Thomas/Farrow p. 605 */
-/* /jes jim spath {spath@jhunix.hcj.jhu.edu } */
-/* 08-Sep-92 NO COPYRIGHT. */
-/* this must be suid to open other tty lines */
-
-/* #define DEBUG */
-#define TTY "/dev/tty"
-#define LOK "/usr/spool/locks/LCK..tty"
-#include <stdio.h>
-
-/* allowable lines: */
-#define TOTAL_LINES 3
-static char allowable[TOTAL_LINES][4] = { "200", "201", "300" };
-static int total=TOTAL_LINES;
-int allow;
-
-/* states: */
-#define TTY_UNDEF 0
-#define TTY_LOCK 1
-#define TTY_OKAY 2
-
-main(argc, argv)
-int argc; char *argv[]; {
- char device[512];
- char lockdev[512];
- int i;
- if (argc == 1) {
- fprintf(stderr, "usage: open 200 [...]\n");
- }
- while (--argc > 0 && (*++argv) != NULL ) {
-#ifdef DEBUG
- fprintf(stderr, "TRYING: %s%s\n", TTY, *argv);
-#endif
- sprintf(device, "%s%s", TTY, *argv);
- sprintf(lockdev, "%s%s", LOK, *argv);
- allow = TTY_UNDEF; i = 0;
- while (i <= total) { /* look at all defined lines */
-#ifdef DEBUG
- fprintf(stderr, "LOCKFILE? %s?\n", lockdev);
-#endif
- if (access(lockdev, 00) == 0) {
- allow=TTY_LOCK;
- break;
- }
-#ifdef DEBUG
- fprintf(stderr, "DOES:%s==%s?\n", allowable[i], *argv);
-#endif
- if (strcmp(allowable[i], *argv) == 0)
- allow=TTY_OKAY;
- i++;
- }
-#ifdef DEBUG
- fprintf(stderr, "allow=%d\n", allow);
-#endif
- switch (allow) {
- case TTY_UNDEF:
- fprintf (stderr, "open: not allowed on %s\n", *argv);
- break;
- case TTY_LOCK:
- fprintf (stderr, "open: device locked: %s\n", lockdev);
- break;
- case TTY_OKAY:
- /* attempt to change mode on device */
- if (chmod (device, 00666) < 0)
- fprintf (stderr, "open: cannot chmod on %s\n", device);
- break;
- default:
- fprintf (stderr, "open: FAULT\n");
- }
- }
- exit (0);
-}
- ________________________________________________________________________
-
- 14. THIRD-PARTY DRIVERS
-
- [ [596]Top ] [ [597]Contents ] [ [598]Next ] [ [599]Previous ]
-
- Unix versions, especially those for PCs (SCO, Unixware, etc) might be
- augmented by third-party communication-board drivers from Digiboard,
- Stallion, etc. These can sometimes complicate matters for Kermit
- considerably since Kermit has no way of knowing that it is going
- through a possibly nonstandard driver. Various examples are listed in
- the earlier sections of this document; search for Stallion, Digiboard,
- etc. Additionally:
-
- * The Stallion Technologies EasyConnection serial board driver does
- not always report the state of DSR as low. From Stallion (October
- 1997): "Unfortunately, this is a bug in our driver. We have
- implemented all of the other TIOMC functions, eg DTR, DCD, RTS and
- CTS, but not DSR. Our driver should report the actual state of DSR
- on those of our cards that have a DSR signal. That the driver
- always reports DSR as not asserted (0), is a bug in the driver.
- The driver should be either reporting the state of DSR correctly
- on those cards that support DSR or as always asserted (1) on those
- cards that do not have a DSR signal. This will be fixed in a
- future version of our drivers; at this time I cannot say when this
- will be." And later, "As far as I can tell, we don't support the
- termios/termiox ioctls that relate specifically to DSR and RI; all
- the rest are supported. This will, as I mentioned earlier, be
- fixed in the next release of our ATA software."
- - World Wide Escalation Support, Stallion Technologies, Toowong
- QLD, [600]support@stallion.oz.au.
-
- Later (December 1997, from the same source):
-
- * We have now released a new version of the ATA software, version
- 5.4.0. This version fixes the problem with the states of the DSR
- and RI signals and how they were being reported by the driver.
- This is the problem that you reported in October. The DSR signal
- is reported correctly on those cards that support the DSR signal,
- such as the early revision of the EasyIO card and the
- EasyConnection 8D4 panel, and as always asserted on those cards
- that do not support the DSR signal in the hardware. The new driver
- is available from our Web site, [601]www.stallion.com, in the
- /drivers/ata5/UnixWare directory.
-
- [ [602]Top ] [ [603]Contents ] [ [604]C-Kermit Home ] [ [605]C-Kermit
- 8.0 Overview ] [ [606]Kermit Home ]
- _________________________________________________________________
-
- C-Kermit 8.0 Unix Hints and Tips / [607]The Kermit Project /
- [608]Columbia University / [609]kermit@columbia.edu
-
-References
-
- 1. http://www.columbia.edu/kermit/
- 2. http://www.columbia.edu/
- 3. http://www.columbia.edu/kermit/ckubwr.html
- 4. mailto:kermit-support@columbia.edu
- 5. http://www.columbia.edu/kermit/ckermit.html
- 6. http://www.columbia.edu/kermit/ckuins.html
- 7. http://www.columbia.edu/kermit/ckututor.html
- 8. http://www.columbia.edu/kermit/ckubwr.html#x1
- 9. http://www.columbia.edu/kermit/ckubwr.html#x2
- 10. http://www.columbia.edu/kermit/ckubwr.html#x3
- 11. http://www.columbia.edu/kermit/ckubwr.html#x4
- 12. http://www.columbia.edu/kermit/ckubwr.html#x5
- 13. http://www.columbia.edu/kermit/ckubwr.html#x6
- 14. http://www.columbia.edu/kermit/ckubwr.html#x7
- 15. http://www.columbia.edu/kermit/ckubwr.html#x8
- 16. http://www.columbia.edu/kermit/ckubwr.html#x9
- 17. http://www.columbia.edu/kermit/ckubwr.html#x10
- 18. http://www.columbia.edu/kermit/ckubwr.html#x11
- 19. http://www.columbia.edu/kermit/ckubwr.html#x12
- 20. http://www.columbia.edu/kermit/ckubwr.html#x13
- 21. http://www.columbia.edu/kermit/ckubwr.html#x14
- 22. http://www.columbia.edu/kermit/ckubwr.html#x3.3
- 23. http://www.columbia.edu/kermit/ckubwr.html#x3.18
- 24. http://www.columbia.edu/kermit/ckubwr.html#x3.19
- 25. http://www.columbia.edu/kermit/ckubwr.html#x3.1
- 26. http://www.columbia.edu/kermit/ckubwr.html#x3.2
- 27. http://www.columbia.edu/kermit/ckubwr.html#x3.7
- 28. http://www.columbia.edu/kermit/ckubwr.html#x3.6
- 29. http://www.columbia.edu/kermit/ckubwr.html#x3.13
- 30. http://www.columbia.edu/kermit/ckubwr.html#top
- 31. http://www.columbia.edu/kermit/ckubwr.html#contents
- 32. http://www.columbia.edu/kermit/ckubwr.html#x2
- 33. http://www.columbia.edu/kermit/ckubwr.html#x1.1
- 34. http://www.columbia.edu/kermit/ckubwr.html#x1.2
- 35. http://www.columbia.edu/kermit/ckubwr.html#x1.3
- 36. http://www.columbia.edu/kermit/ckubwr.html#x1.4
- 37. http://www.columbia.edu/kermit/ckubwr.html#x3.3
- 38. http://www.columbia.edu/kermit/ckubwr.html#x3.1
- 39. http://www.columbia.edu/kermit/ckubwr.html#x3.2
- 40. http://www.columbia.edu/kermit/ckubwr.html#x3.7
- 41. http://www.columbia.edu/kermit/ckcbwr.html
- 42. mailto:kermit-support@columbia.edu
- 43. http://www.columbia.edu/kermit/ckubwr.html#top
- 44. http://www.columbia.edu/kermit/ckubwr.html#contents
- 45. http://www.columbia.edu/kermit/ckubwr.html#x1.2
- 46. http://www.columbia.edu/kermit/ck60manual.html
- 47. http://www.columbia.edu/kermit/ckermit70.html
- 48. http://www.columbia.edu/kermit/ckermit80.html
- 49. http://www.columbia.edu/kermit/ckubwr.html#top
- 50. http://www.columbia.edu/kermit/ckubwr.html#contents
- 51. http://www.columbia.edu/kermit/ckubwr.html#x1
- 52. http://www.columbia.edu/kermit/ckubwr.html#x1.3
- 53. http://www.columbia.edu/kermit/ckubwr.html#x1.1
- 54. http://www.columbia.edu/kermit/support.html
- 55. http://www.columbia.edu/kermit/ckubwr.html#top
- 56. http://www.columbia.edu/kermit/ckubwr.html#contents
- 57. http://www.columbia.edu/kermit/ckubwr.html#x1
- 58. http://www.columbia.edu/kermit/ckubwr.html#x1.4
- 59. http://www.columbia.edu/kermit/ckubwr.html#x1.2
- 60. http://www.columbia.edu/kermit/ckubwr.html#top
- 61. http://www.columbia.edu/kermit/ckubwr.html#contents
- 62. http://www.columbia.edu/kermit/ckubwr.html#x1
- 63. http://www.columbia.edu/kermit/ckubwr.html#x1.3
- 64. http://www.columbia.edu/kermit/ckubwr.html#top
- 65. http://www.columbia.edu/kermit/ckubwr.html#contents
- 66. http://www.columbia.edu/kermit/ckubwr.html#x3
- 67. http://www.columbia.edu/kermit/ckubwr.html#x1
- 68. http://www.columbia.edu/kermit/ckubwr.html#top
- 69. http://www.columbia.edu/kermit/ckubwr.html#contents
- 70. http://www.columbia.edu/kermit/ckubwr.html#x4
- 71. http://www.columbia.edu/kermit/ckubwr.html#x2
- 72. http://www.columbia.edu/kermit/ckubwr.html#x3.0
- 73. http://www.columbia.edu/kermit/ckubwr.html#x3.1
- 74. http://www.columbia.edu/kermit/ckubwr.html#x3.2
- 75. http://www.columbia.edu/kermit/ckubwr.html#x3.3
- 76. http://www.columbia.edu/kermit/ckubwr.html#x3.4
- 77. http://www.columbia.edu/kermit/ckubwr.html#x3.5
- 78. http://www.columbia.edu/kermit/ckubwr.html#x3.6
- 79. http://www.columbia.edu/kermit/ckubwr.html#x3.7
- 80. http://www.columbia.edu/kermit/ckubwr.html#x3.8
- 81. http://www.columbia.edu/kermit/ckubwr.html#x3.9
- 82. http://www.columbia.edu/kermit/ckubwr.html#x3.10
- 83. http://www.columbia.edu/kermit/ckubwr.html#x3.11
- 84. http://www.columbia.edu/kermit/ckubwr.html#x3.12
- 85. http://www.columbia.edu/kermit/ckubwr.html#x3.13
- 86. http://www.columbia.edu/kermit/ckubwr.html#x3.14
- 87. http://www.columbia.edu/kermit/ckubwr.html#x3.15
- 88. http://www.columbia.edu/kermit/ckubwr.html#x3.16
- 89. http://www.columbia.edu/kermit/ckubwr.html#x3.17
- 90. http://www.columbia.edu/kermit/ckubwr.html#x3.18
- 91. http://www.columbia.edu/kermit/ckubwr.html#x3.19
- 92. http://www.columbia.edu/kermit/ckubwr.html#x3.20
- 93. http://www.faqs.org/
- 94. http://aplawrence.com/Unixart/newtounix.html
- 95. http://www.columbia.edu/kermit/x3
- 96. mailto:kermit-support@columbia.edu
- 97. http://www.columbia.edu/kermit/support.html
- 98. http://www.columbia.edu/kermit/ckubwr.html#top
- 99. http://www.columbia.edu/kermit/ckubwr.html#contents
- 100. http://www.columbia.edu/kermit/ckubwr.html#x3
- 101. http://www.columbia.edu/kermit/ckubwr.html#x3.1
- 102. http://www.pcunix.com/
- 103. http://www.columbia.edu/kermit/ckubwr.html#x3.0.1
- 104. http://www.columbia.edu/kermit/ckubwr.html#x3.0.2
- 105. http://www.columbia.edu/kermit/ckubwr.html#x3.0.3
- 106. http://www.columbia.edu/kermit/ckubwr.html#x3.0.4
- 107. http://www.columbia.edu/kermit/ckubwr.html#x3.0.5
- 108. http://www.columbia.edu/kermit/ckubwr.html#x3.0.6
- 109. http://www.columbia.edu/kermit/ckubwr.html#top
- 110. http://www.columbia.edu/kermit/ckubwr.html#contents
- 111. http://www.columbia.edu/kermit/ckubwr.html#x3.0
- 112. http://www.columbia.edu/kermit/ckubwr.html#x3.0.2
- 113. http://www.columbia.edu/kermit/ckubwr.html#top
- 114. http://www.columbia.edu/kermit/ckubwr.html#contents
- 115. http://www.columbia.edu/kermit/ckubwr.html#x3.0
- 116. http://www.columbia.edu/kermit/ckubwr.html#x3.0.3
- 117. http://www.columbia.edu/kermit/ckubwr.html#x3.0.1
- 118. http://www.linmodems.org/
- 119. http://www.microsoft.com/hwdev/platform/PCdesign/LR/default.asp
- 120. http://www.columbia.edu/kermit/ckubwr.html#top
- 121. http://www.columbia.edu/kermit/ckubwr.html#contents
- 122. http://www.columbia.edu/kermit/ckubwr.html#x3.0
- 123. http://www.columbia.edu/kermit/ckubwr.html#x3.0.4
- 124. http://www.columbia.edu/kermit/ckubwr.html#x3.0.2
- 125. http://www.idir.net/~gromitkc/winmodem.html
- 126. http://www.digi.com/
- 127. http://www.columbia.edu/kermit/ckubwr.html#top
- 128. http://www.columbia.edu/kermit/ckubwr.html#contents
- 129. http://www.columbia.edu/kermit/ckubwr.html#x3.0
- 130. http://www.columbia.edu/kermit/ckubwr.html#x3.0.5
- 131. http://www.columbia.edu/kermit/ckubwr.html#x3.0.3
- 132. http://www.columbia.edu/kermit/ckubwr.html#top
- 133. http://www.columbia.edu/kermit/ckubwr.html#contents
- 134. http://www.columbia.edu/kermit/ckubwr.html#x3.0
- 135. http://www.columbia.edu/kermit/ckubwr.html#x3.0.6
- 136. http://www.columbia.edu/kermit/ckubwr.html#x3.0.4
- 137. http://www.columbia.edu/kermit/ckubwr.html#top
- 138. http://www.columbia.edu/kermit/ckubwr.html#contents
- 139. http://www.columbia.edu/kermit/ckubwr.html#x3.0
- 140. http://www.columbia.edu/kermit/ckubwr.html#x3.0.5
- 141. http://www.columbia.edu/kermit/ckubwr.html#top
- 142. http://www.columbia.edu/kermit/ckubwr.html#contents
- 143. http://www.columbia.edu/kermit/ckubwr.html#x3
- 144. http://www.columbia.edu/kermit/ckubwr.html#x3.2
- 145. http://www.columbia.edu/kermit/ckubwr.html#x3.0
- 146. http://www.columbia.edu/kermit/ckubwr.html#x3.1.1
- 147. http://www.columbia.edu/kermit/ckubwr.html#x3.1.2
- 148. http://www.columbia.edu/kermit/ckubwr.html#x3.1.3
- 149. http://www.columbia.edu/kermit/ckubwr.html#x3.1.4
- 150. http://www.columbia.edu/kermit/ckubwr.html#x3.1.5
- 151. http://www.emerson.emory.edu/services/aix-faq/
- 152. http://www.faqs.org/faqs/by-newsgroup/comp/comp.unix.aix.html
- 153. http://www.cis.ohio-state.edu/hypertext/faq/usenet/aix-faq/top.html
- 154. http://aixpdslib.seas.ucla.edu/
- 155. http://www.rootvg.net (AIX history)/
- 156. ftp://rtfm.mit.edu/pub/usenet/news.answers/aix-faq/part1
- 157. ftp://mirrors.aol.com/pub/rtfm/usenet-by-hierarchy/comp/unix/aix
- 158. news:comp.unix.aix
- 159. http://www.columbia.edu/kermit/ckubwr.html#top
- 160. http://www.columbia.edu/kermit/ckubwr.html#contents
- 161. http://www.columbia.edu/kermit/ckubwr.html#x3.1
- 162. http://www.columbia.edu/kermit/ckubwr.html#x3.1.2
- 163. http://www.columbia.edu/kermit/ckubwr.html#top
- 164. http://www.columbia.edu/kermit/ckubwr.html#contents
- 165. http://www.columbia.edu/kermit/ckubwr.html#x3.1
- 166. http://www.columbia.edu/kermit/ckubwr.html#x3.1.3
- 167. http://www.columbia.edu/kermit/ckubwr.html#x3.1.1
- 168. http://www.columbia.edu/kermit/security.html#servers
- 169. http://www.columbia.edu/kermit/ckubwr.html#top
- 170. http://www.columbia.edu/kermit/ckubwr.html#contents
- 171. http://www.columbia.edu/kermit/ckubwr.html#x3.1
- 172. http://www.columbia.edu/kermit/ckubwr.html#x3.1.4
- 173. http://www.columbia.edu/kermit/ckubwr.html#x3.1.2
- 174. http://service.software.ibm.com/rs6000/
- 175. http://www.columbia.edu/kermit/ckubwr.html#top
- 176. http://www.columbia.edu/kermit/ckubwr.html#contents
- 177. http://www.columbia.edu/kermit/ckubwr.html#x3.1
- 178. http://www.columbia.edu/kermit/ckubwr.html#x3.1.5
- 179. http://www.columbia.edu/kermit/ckubwr.html#x3.1.3
- 180. http://www.columbia.edu/kermit/ckubwr.html#top
- 181. http://www.columbia.edu/kermit/ckubwr.html#contents
- 182. http://www.columbia.edu/kermit/ckubwr.html#x3.1
- 183. http://www.columbia.edu/kermit/ckubwr.html#x3.1.4
- 184. http://www.columbia.edu/kermit/ckubwr.html#top
- 185. http://www.columbia.edu/kermit/ckubwr.html#contents
- 186. http://www.columbia.edu/kermit/ckubwr.html#x3
- 187. http://www.columbia.edu/kermit/ckubwr.html#x3.3
- 188. http://www.columbia.edu/kermit/ckubwr.html#x3.1
- 189. http://www.columbia.edu/kermit/ckubwr.html#x3.2.0
- 190. http://www.columbia.edu/kermit/ckubwr.html#x3.2.1
- 191. http://www.columbia.edu/kermit/ckubwr.html#x3.2.2
- 192. http://www.columbia.edu/kermit/ckubwr.html#x3.2.3
- 193. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4
- 194. http://www.columbia.edu/kermit/ckubwr.html#x3.2.5
- 195. news:comp.sys.hp.hpux
- 196. http://www.columbia.edu/kermit/ckubwr.html#top
- 197. http://www.columbia.edu/kermit/ckubwr.html#contents
- 198. http://www.columbia.edu/kermit/ckubwr.html#x3.2
- 199. http://www.columbia.edu/kermit/ckubwr.html#x3.2.1
- 200. http://www.columbia.edu/kermit/ckubwr.html#top
- 201. http://www.columbia.edu/kermit/ckubwr.html#contents
- 202. http://www.columbia.edu/kermit/ckubwr.html#x3.2
- 203. http://www.columbia.edu/kermit/ckubwr.html#x3.2.2
- 204. http://www.columbia.edu/kermit/ckubwr.html#x3.2.0
- 205. ftp://kermit.columbia.edu/kermit/f/makefile
- 206. http://www.columbia.edu/kermit/ckubwr.html#top
- 207. http://www.columbia.edu/kermit/ckubwr.html#contents
- 208. http://www.columbia.edu/kermit/ckubwr.html#x3.2
- 209. http://www.columbia.edu/kermit/ckubwr.html#x3.2.3
- 210. http://www.columbia.edu/kermit/ckubwr.html#x3.2.1
- 211. http://www.columbia.edu/kermit/ckubwr.html#top
- 212. http://www.columbia.edu/kermit/ckubwr.html#contents
- 213. http://www.columbia.edu/kermit/ckubwr.html#x3.2
- 214. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4
- 215. http://www.columbia.edu/kermit/ckubwr.html#x3.2.2
- 216. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.1
- 217. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.2
- 218. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.3
- 219. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.4
- 220. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.5
- 221. http://www.columbia.edu/kermit/ckubwr.html#top
- 222. http://www.columbia.edu/kermit/ckubwr.html#contents
- 223. http://www.columbia.edu/kermit/ckubwr.html#x3.2
- 224. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.2
- 225. http://www.columbia.edu/kermit/ckubwr.html#x3.2.2
- 226. http://www.columbia.edu/kermit/ckubwr.html#top
- 227. http://www.columbia.edu/kermit/ckubwr.html#contents
- 228. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4
- 229. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.3
- 230. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.1
- 231. http://www.columbia.edu/kermit/ckubwr.html#top
- 232. http://www.columbia.edu/kermit/ckubwr.html#contents
- 233. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4
- 234. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.4
- 235. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.2
- 236. http://www.columbia.edu/kermit/ckubwr.html#top
- 237. http://www.columbia.edu/kermit/ckubwr.html#contents
- 238. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4
- 239. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.5
- 240. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.3
- 241. http://www.columbia.edu/kermit/ckubwr.html#top
- 242. http://www.columbia.edu/kermit/ckubwr.html#contents
- 243. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4
- 244. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4.4
- 245. http://www.columbia.edu/kermit/ckubwr.html#top
- 246. http://www.columbia.edu/kermit/ckubwr.html#contents
- 247. http://www.columbia.edu/kermit/ckubwr.html#x3.2
- 248. http://www.columbia.edu/kermit/ckubwr.html#x3.2.4
- 249. http://www.columbia.edu/kermit/ckubwr.html#top
- 250. http://www.columbia.edu/kermit/ckubwr.html#contents
- 251. http://www.columbia.edu/kermit/ckubwr.html#x3
- 252. http://www.columbia.edu/kermit/ckubwr.html#x3.4
- 253. http://www.columbia.edu/kermit/ckubwr.html#x3.2
- 254. http://www.columbia.edu/kermit/ckubwr.html#x3.3.1
- 255. http://www.columbia.edu/kermit/ckubwr.html#x3.3.2
- 256. http://www.columbia.edu/kermit/ckubwr.html#x3.3.3
- 257. http://www.columbia.edu/kermit/ckubwr.html#x3.3.4
- 258. http://www.columbia.edu/kermit/ckubwr.html#x3.3.5
- 259. http://www.columbia.edu/kermit/ckubwr.html#x3.3.6
- 260. news:comp.os.linux.misc
- 261. news:comp.os.linux.answers
- 262. http://www.tldp.org/
- 263. http://www.tldp.org/FAQ/Linux-FAQ.html
- 264. http://www.tldp.org/HOWTO/Serial-HOWTO.html
- 265. http://tldp.org/HOWTO/Modem-HOWTO.html
- 266. ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO
- 267. ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO
- 268. http://www.tldp.org/HOWTO/
- 269. http://www.tldp.org/hmirrors.html
- 270. http://www.redhat.com/apps/support/
- 271. http://www.debian.org/support
- 272. http://www.slackware.com/support/
- 273. http://www.caldera.com/support/
- 274. http://www.suse.com/support/
- 275. http://www.mandrake.com/support/
- 276. http://www.turbolinux.com/support/
- 277. http://www.linmodems.org/
- 278. http://www.columbia.edu/kermit/ckubwr.html#x3.0
- 279. http://linux.dreamtime.org/decnet/
- 280. mailto:kermit-support@columbia.edu
- 281. http://www.linmodems.org/
- 282. http://www.columbia.edu/kermit/ckubwr.html#x3.0.2
- 283. http://www.columbia.edu/kermit/security.html#servers
- 284. http://www.columbia.edu/kermit/sshclient.html
- 285. http://www.columbia.edu/kermit/ckubwr.html#top
- 286. http://www.columbia.edu/kermit/ckubwr.html#contents
- 287. http://www.columbia.edu/kermit/ckubwr.html#x3
- 288. http://www.columbia.edu/kermit/ckubwr.html#x3.3.2
- 289. http://www.columbia.edu/kermit/ckubwr.html#top
- 290. http://www.columbia.edu/kermit/ckubwr.html#contents
- 291. http://www.columbia.edu/kermit/ckubwr.html#x3.3
- 292. http://www.columbia.edu/kermit/ckubwr.html#x3.3.3
- 293. http://www.columbia.edu/kermit/ckubwr.html#x3.3.1
- 294. http://www.columbia.edu/kermit/ckubwr.html#x3.0
- 295. http://www.columbia.edu/kermit/ckubwr.html#x6
- 296. http://www.columbia.edu/kermit/ckubwr.html#x7
- 297. http://www.columbia.edu/kermit/ckubwr.html#x8
- 298. http://www.columbia.edu/kermit/ckuins.html#x10
- 299. http://www.columbia.edu/kermit/ckuins.html#x11
- 300. http://www.columbia.edu/kermit/ckuins.html
- 301. http://www.columbia.edu/kermit/ckubwr.html#x3.0
- 302. http://linuxwww.db.erau.edu/mail_archives/linux-kernel/Mar_98/1441.html
- 303. http://www.columbia.edu/kermit/ckubwr.html#top
- 304. http://www.columbia.edu/kermit/ckubwr.html#contents
- 305. http://www.columbia.edu/kermit/ckubwr.html#x3.3
- 306. http://www.columbia.edu/kermit/ckubwr.html#x3.3.4
- 307. http://www.columbia.edu/kermit/ckubwr.html#x3.3.2
- 308. http://www.columbia.edu/kermit/ckubwr.html#x3.0.5
- 309. http://www.columbia.edu/kermit/ckfaq.html#term
- 310. http://dickey.his.com/xterm/xterm.html
- 311. http://dickey.his.com/xterm/xterm.html
- 312. ftp://kermit.columbia.edu/kermit/f/xmodmap.txt
- 313. http://www.columbia.edu/kermit/ckubwr.html#top
- 314. http://www.columbia.edu/kermit/ckubwr.html#contents
- 315. http://www.columbia.edu/kermit/ckubwr.html#x3.3
- 316. http://www.columbia.edu/kermit/ckubwr.html#x3.3.5
- 317. http://www.columbia.edu/kermit/ckubwr.html#x3.3.3
- 318. http://www.columbia.edu/kermit/ckubwr.html#top
- 319. http://www.columbia.edu/kermit/ckubwr.html#contents
- 320. http://www.columbia.edu/kermit/ckubwr.html#x3.3
- 321. http://www.columbia.edu/kermit/ckubwr.html#x3.3.6
- 322. http://www.columbia.edu/kermit/ckubwr.html#x3.3.4
- 323. http://www.columbia.edu/kermit/ckermit.html
- 324. mailto:kermit-support@columbia.edu
- 325. http://www.redhat.com/support/errata/RHBA-2001-153.html
- 326. news:comp.protocols.kermit.misc
- 327. http://www.columbia.edu/kermit/ckubwr.html#top
- 328. http://www.columbia.edu/kermit/ckubwr.html#contents
- 329. http://www.columbia.edu/kermit/ckubwr.html#x3.3
- 330. http://www.columbia.edu/kermit/ckubwr.html#x3.3.5
- 331. http://www.columbia.edu/kermit/ckubwr.html#top
- 332. http://www.columbia.edu/kermit/ckubwr.html#contents
- 333. http://www.columbia.edu/kermit/ckubwr.html#x3
- 334. http://www.columbia.edu/kermit/ckubwr.html#x3.5
- 335. http://www.columbia.edu/kermit/ckubwr.html#x3.3
- 336. http://www.columbia.edu/kermit/ckubwr.html#top
- 337. http://www.columbia.edu/kermit/ckubwr.html#contents
- 338. http://www.columbia.edu/kermit/ckubwr.html#x3
- 339. http://www.columbia.edu/kermit/ckubwr.html#x3.6
- 340. http://www.columbia.edu/kermit/ckubwr.html#x3.4
- 341. news:comp.os.qnx
- 342. http://www.columbia.edu/kermit/gkermit.html
- 343. http://www.columbia.edu/kermit/ckuins.html#x10
- 344. http://www.columbia.edu/kermit/ckuins.html
- 345. http://www.columbia.edu/kermit/ckubwr.html#top
- 346. http://www.columbia.edu/kermit/ckubwr.html#contents
- 347. http://www.columbia.edu/kermit/ckubwr.html#x3
- 348. http://www.columbia.edu/kermit/ckubwr.html#x3.7
- 349. http://www.columbia.edu/kermit/ckubwr.html#x3.5
- 350. http://www.columbia.edu/kermit/ckubwr.html#x3.6.1
- 351. http://www.columbia.edu/kermit/ckubwr.html#x3.6.2
- 352. http://www.columbia.edu/kermit/ckubwr.html#x3.6.3
- 353. http://www.columbia.edu/kermit/ckubwr.html#x3.6.4
- 354. http://www.columbia.edu/kermit/ckubwr.html#x3.10
- 355. http://aplawrence.com/SCOFAQ/
- 356. http://www.zenez.com/cgi-bin/scoprogfaq/faq.pl
- 357. http://www.zenez.com/cgi-bin/scouw7faq/faq.pl
- 358. http://zenez.pcunix.com/cgi-bin/scouw7faq/faq.pl
- 359. http://pcunix.com/Unixart/modems.html
- 360. http://www.freebird.org/faq/
- 361. http://www.freebird.org/faq/developer.html
- 362. http://support.caldera.com/caldera
- 363. http://stage.caldera.com/ta/
- 364. http://aplawrence.com/newtosco.html
- 365. http://www.columbia.edu/kermit/ckubwr.html#x3.0.5
- 366. http://www.columbia.edu/kermit/ckfaq.html#term
- 367. http://www.columbia.edu/kermit/ckubwr.html#x3.0
- 368. http://www.columbia.edu/kermit/ckubwr.html#top
- 369. http://www.columbia.edu/kermit/ckubwr.html#contents
- 370. http://www.columbia.edu/kermit/ckubwr.html#x3.6
- 371. http://www.columbia.edu/kermit/ckubwr.html#x3.6.1
- 372. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 373. http://www.columbia.edu/kermit/ckubwr.html#top
- 374. http://www.columbia.edu/kermit/ckubwr.html#contents
- 375. http://www.columbia.edu/kermit/ckubwr.html#x3.6
- 376. http://www.columbia.edu/kermit/ckubwr.html#x3.6.3
- 377. http://www.columbia.edu/kermit/ckubwr.html#x3.6.1
- 378. http://www.digi.com/
- 379. ftp://ftp.fu-berlin.de/pub/unix/driver/fas
- 380. http://www.columbia.edu/kermit/ckubwr.html#x14
- 381. http://www.sco.com/
- 382. ftp://ftp.sco.com/
- 383. http://www.columbia.edu/kermit/ckubwr.html#top
- 384. http://www.columbia.edu/kermit/ckubwr.html#contents
- 385. http://www.columbia.edu/kermit/ckubwr.html#x3.6
- 386. http://www.columbia.edu/kermit/ckubwr.html#x3.6.4
- 387. http://www.columbia.edu/kermit/ckubwr.html#x3.6.2
- 388. http://www.columbia.edu/kermit/ckubwr.html#x3.10
- 389. http://www.columbia.edu/kermit/ckubwr.html#top
- 390. http://www.columbia.edu/kermit/ckubwr.html#contents
- 391. http://www.columbia.edu/kermit/ckubwr.html#x3.6
- 392. http://www.columbia.edu/kermit/ckubwr.html#x3.6.3
- 393. http://www.columbia.edu/kermit/ckubwr.html#top
- 394. http://www.columbia.edu/kermit/ckubwr.html#contents
- 395. http://www.columbia.edu/kermit/ckubwr.html#x3
- 396. http://www.columbia.edu/kermit/ckubwr.html#x3.8
- 397. http://www.columbia.edu/kermit/ckubwr.html#x3.6
- 398. http://www.columbia.edu/kermit/ckubwr.html#x3.7.1
- 399. http://www.columbia.edu/kermit/ckubwr.html#x3.7.2
- 400. http://www.columbia.edu/kermit/ckubwr.html#x3.7.3
- 401. http://www.columbia.edu/kermit/ckubwr.html#x3.7.4
- 402. http://www.columbia.edu/kermit/ckubwr.html#x3.7.5
- 403. news:comp.unix.solaris
- 404. http://access1.sun.com/
- 405. http://docs.sun.com/
- 406. http://www.sunhelp.com/
- 407. http://www.wins.uva.nl/pub/solaris/solaris2/
- 408. http://www.wins.uva.nl/cgi-bin/sfaq.cgi
- 409. ftp://ftp.wins.uva.nl/pub/solaris
- 410. http://www.science.uva.nl/pub/solaris/solaris2.html
- 411. http://www.stokely.com/
- 412. http://www.stokely.com/unix.sysadm.resources/faqs.sun.html
- 413. http://www.columbia.edu/kermit/ckubwr.html#x3.0
- 414. http://www.columbia.edu/kermit/ckubwr.html#top
- 415. http://www.columbia.edu/kermit/ckubwr.html#contents
- 416. http://www.columbia.edu/kermit/ckubwr.html#x3
- 417. http://www.columbia.edu/kermit/ckubwr.html#x3.7
- 418. http://www.columbia.edu/kermit/ckubwr.html#x3.7.2
- 419. http://www.columbia.edu/kermit/ckubwr.html#top
- 420. http://www.columbia.edu/kermit/ckubwr.html#contents
- 421. http://www.columbia.edu/kermit/ckubwr.html#x3.7
- 422. http://www.columbia.edu/kermit/ckubwr.html#x3.7.3
- 423. http://www.columbia.edu/kermit/ckubwr.html#x3.7.1
- 424. http://www.columbia.edu/kermit/ckubwr.html#top
- 425. http://www.columbia.edu/kermit/ckubwr.html#contents
- 426. http://www.columbia.edu/kermit/ckubwr.html#x3.7
- 427. http://www.columbia.edu/kermit/ckubwr.html#x3.7.4
- 428. http://www.columbia.edu/kermit/ckubwr.html#x3.7.2
- 429. http://www.columbia.edu/kermit/ckubwr.html#top
- 430. http://www.columbia.edu/kermit/ckubwr.html#contents
- 431. http://www.columbia.edu/kermit/ckubwr.html#x3.7
- 432. http://www.columbia.edu/kermit/ckubwr.html#x3.7.5
- 433. http://www.columbia.edu/kermit/ckubwr.html#x3.7.3
- 434. news:comp.os.vms
- 435. http://www.columbia.edu/kermit/ckubwr.html#top
- 436. http://www.columbia.edu/kermit/ckubwr.html#contents
- 437. http://www.columbia.edu/kermit/ckubwr.html#x3.7
- 438. http://www.columbia.edu/kermit/ckubwr.html#x3.7.6
- 439. http://www.columbia.edu/kermit/ckubwr.html#x3.7.4
- 440. http://www.columbia.edu/kermit/ckubwr.html#top
- 441. http://www.columbia.edu/kermit/ckubwr.html#contents
- 442. http://www.columbia.edu/kermit/ckubwr.html#x3.7
- 443. http://www.columbia.edu/kermit/ckubwr.html#x3.7.5
- 444. http://www.columbia.edu/kermit/ckubwr.html#top
- 445. http://www.columbia.edu/kermit/ckubwr.html#contents
- 446. http://www.columbia.edu/kermit/ckubwr.html#x3
- 447. http://www.columbia.edu/kermit/ckubwr.html#x3.9
- 448. http://www.columbia.edu/kermit/ckubwr.html#x3.7
- 449. http://www.stokely.com/
- 450. http://access1.sun.com/
- 451. http://www.ludd.luth.se/~bear/project/sun/sun.hardware.txt
- 452. ftp://ftp.netcom.com/pub/ru/rubicon/sun.hdwr.ref
- 453. ftp://ftp.intnet.net/pub/SUN/Sun-Hardware-Ref
- 454. http://www.columbia.edu/kermit/ckubwr.html#top
- 455. http://www.columbia.edu/kermit/ckubwr.html#contents
- 456. http://www.columbia.edu/kermit/ckubwr.html#x3
- 457. http://www.columbia.edu/kermit/ckubwr.html#x3.10
- 458. http://www.columbia.edu/kermit/ckubwr.html#x3.8
- 459. news:comp.unix.ultrix
- 460. news:comp.sys.dec
- 461. http://www.columbia.edu/kermit/ckubwr.html#top
- 462. http://www.columbia.edu/kermit/ckubwr.html#contents
- 463. http://www.columbia.edu/kermit/ckubwr.html#x3
- 464. http://www.columbia.edu/kermit/ckubwr.html#x3.11
- 465. http://www.columbia.edu/kermit/ckubwr.html#x3.9
- 466. http://www.freebird.org/
- 467. http://www.freebird.org/faq/
- 468. news:comp.unix.unixware.misc
- 469. news:comp.unix.sco.misc
- 470. http://www.columbia.edu/kermit/ckubwr.html#x3.0
- 471. ftp://kermit.columbia.edu/kermit/f/ckutio.c
- 472. http://www.columbia.edu/kermit/ckubwr.html#top
- 473. http://www.columbia.edu/kermit/ckubwr.html#contents
- 474. http://www.columbia.edu/kermit/ckubwr.html#x3
- 475. http://www.columbia.edu/kermit/ckubwr.html#x3.12
- 476. http://www.columbia.edu/kermit/ckubwr.html#x3.10
- 477. http://www.columbia.edu/kermit/ckubwr.html#top
- 478. http://www.columbia.edu/kermit/ckubwr.html#contents
- 479. http://www.columbia.edu/kermit/ckubwr.html#x3
- 480. http://www.columbia.edu/kermit/ckubwr.html#x3.13
- 481. http://www.columbia.edu/kermit/ckubwr.html#x3.11
- 482. http://www.columbia.edu/kermit/ckubwr.html#top
- 483. http://www.columbia.edu/kermit/ckubwr.html#contents
- 484. http://www.columbia.edu/kermit/ckubwr.html#x3
- 485. http://www.columbia.edu/kermit/ckubwr.html#x3.14
- 486. http://www.columbia.edu/kermit/ckubwr.html#x3.12
- 487. http://www.columbia.edu/kermit/ckubwr.html#top
- 488. http://www.columbia.edu/kermit/ckubwr.html#contents
- 489. http://www.columbia.edu/kermit/ckubwr.html#x3
- 490. http://www.columbia.edu/kermit/ckubwr.html#x3.15
- 491. http://www.columbia.edu/kermit/ckubwr.html#x3.13
- 492. news:comp.sys.sgi.misc
- 493. news:comp.sys.sgi.admin
- 494. http://www.sgi.com/
- 495. http://www-viz.tamu.edu/~sgi-faq/
- 496. ftp://viz.tamu.edu/pub/sgi/faq/
- 497. http://www.columbia.edu/kermit/ckuins.html
- 498. http://freeware.sgi.com/Installable/gcc-2.95.2.html
- 499. http://freeware.sgi.com/Installable/gcc-2.95.2.html
- 500. http://www.columbia.edu/kermit/ckubwr.html#top
- 501. http://www.columbia.edu/kermit/ckubwr.html#contents
- 502. http://www.columbia.edu/kermit/ckubwr.html#x3
- 503. http://www.columbia.edu/kermit/ckubwr.html#x3.16
- 504. http://www.columbia.edu/kermit/ckubwr.html#x3.14
- 505. news:comp.sys.be
- 506. http://www.columbia.edu/kermit/ckubwr.html#top
- 507. http://www.columbia.edu/kermit/ckubwr.html#contents
- 508. http://www.columbia.edu/kermit/ckubwr.html#x3
- 509. http://www.columbia.edu/kermit/ckubwr.html#x3.17
- 510. http://www.columbia.edu/kermit/ckubwr.html#x3.15
- 511. http://www.columbia.edu/kermit/ckubwr.html#top
- 512. http://www.columbia.edu/kermit/ckubwr.html#contents
- 513. http://www.columbia.edu/kermit/ckubwr.html#x3
- 514. http://www.columbia.edu/kermit/ckubwr.html#x3.18
- 515. http://www.columbia.edu/kermit/ckubwr.html#x3.16
- 516. http://www.columbia.edu/kermit/ckubwr.html#top
- 517. http://www.columbia.edu/kermit/ckubwr.html#contents
- 518. http://www.columbia.edu/kermit/ckubwr.html#x3
- 519. http://www.columbia.edu/kermit/ckubwr.html#x3.19
- 520. http://www.columbia.edu/kermit/ckubwr.html#x3.17
- 521. http://www.columbia.edu/kermit/ckubwr.html#top
- 522. http://www.columbia.edu/kermit/ckubwr.html#contents
- 523. http://www.columbia.edu/kermit/ckubwr.html#x3
- 524. http://www.columbia.edu/kermit/ckubwr.html#x3.20
- 525. http://www.columbia.edu/kermit/ckubwr.html#x3.18
- 526. http://www.keyspan.com/products/usb/adapter/
- 527. http://www.columbia.edu/kermit/ckuins.html
- 528. http://cerebus.sandiego.edu/~jerry/UnixTips/
- 529. http://www.columbia.edu/kermit/ckubwr.html#top
- 530. http://www.columbia.edu/kermit/ckubwr.html#contents
- 531. http://www.columbia.edu/kermit/ckubwr.html#x3
- 532. http://www.columbia.edu/kermit/ckubwr.html#x3.19
- 533. http://www.uni-giessen.de/faq/archiv/coherent-faq.general/msg00000.html
- 534. http://www.columbia.edu/kermit/ckubwr.html#top
- 535. http://www.columbia.edu/kermit/ckubwr.html#contents
- 536. http://www.columbia.edu/kermit/ckubwr.html#x5
- 537. http://www.columbia.edu/kermit/ckubwr.html#x3
- 538. http://www.columbia.edu/kermit/ckccfg.html
- 539. http://www.columbia.edu/kermit/ckubwr.html#top
- 540. http://www.columbia.edu/kermit/ckubwr.html#contents
- 541. http://www.columbia.edu/kermit/ckubwr.html#x6
- 542. http://www.columbia.edu/kermit/ckubwr.html#x4
- 543. http://www.columbia.edu/kermit/ckuins.html
- 544. http://www.columbia.edu/kermit/ckubwr.html#top
- 545. http://www.columbia.edu/kermit/ckubwr.html#contents
- 546. http://www.columbia.edu/kermit/ckubwr.html#x7
- 547. http://www.columbia.edu/kermit/ckubwr.html#x5
- 548. http://www.columbia.edu/kermit/ckuins.html#9.5
- 549. http://www.columbia.edu/kermit/ckubwr.html#x3
- 550. http://www.columbia.edu/kermit/ckubwr.html#top
- 551. http://www.columbia.edu/kermit/ckubwr.html#contents
- 552. http://www.columbia.edu/kermit/ckubwr.html#x8
- 553. http://www.columbia.edu/kermit/ckubwr.html#x6
- 554. http://www.columbia.edu/kermit/ckuins.html#x8
- 555. http://www.columbia.edu/kermit/ckuins.html
- 556. http://www.columbia.edu/kermit/ck60manual.html
- 557. http://www.columbia.edu/kermit/ckubwr.html#top
- 558. http://www.columbia.edu/kermit/ckubwr.html#contents
- 559. http://www.columbia.edu/kermit/ckubwr.html#x9
- 560. http://www.columbia.edu/kermit/ckubwr.html#x7
- 561. http://www.columbia.edu/kermit/ckubwr.html#top
- 562. http://www.columbia.edu/kermit/ckubwr.html#contents
- 563. http://www.columbia.edu/kermit/ckubwr.html#x10
- 564. http://www.columbia.edu/kermit/ckubwr.html#x8
- 565. http://www.columbia.edu/kermit/ck60manual.html
- 566. http://dickey.his.com/xterm/xterm.html
- 567. http://www.columbia.edu/kermit/ckubwr.html#top
- 568. http://www.columbia.edu/kermit/ckubwr.html#contents
- 569. http://www.columbia.edu/kermit/ckubwr.html#x11
- 570. http://www.columbia.edu/kermit/ckubwr.html#x9
- 571. http://www.columbia.edu/kermit/ckubwr.html#top
- 572. http://www.columbia.edu/kermit/ckubwr.html#contents
- 573. http://www.columbia.edu/kermit/ckubwr.html#x12
- 574. http://www.columbia.edu/kermit/ckubwr.html#x10
- 575. http://www.columbia.edu/kermit/ckubwr.html#x11.1
- 576. http://www.columbia.edu/kermit/ckubwr.html#x11.2
- 577. http://www.columbia.edu/kermit/ckubwr.html#top
- 578. http://www.columbia.edu/kermit/ckubwr.html#contents
- 579. http://www.columbia.edu/kermit/ckubwr.html#x11
- 580. http://www.columbia.edu/kermit/ckubwr.html#x11.2
- 581. http://www.columbia.edu/kermit/ck60manual.html
- 582. http://www.columbia.edu/kermit/ckubwr.html#top
- 583. http://www.columbia.edu/kermit/ckubwr.html#contents
- 584. http://www.columbia.edu/kermit/ckubwr.html#x11
- 585. http://www.columbia.edu/kermit/ckubwr.html#x11.1
- 586. http://www.columbia.edu/kermit/ck60manual.html
- 587. http://www.columbia.edu/kermit/ckubwr.html#top
- 588. http://www.columbia.edu/kermit/ckubwr.html#contents
- 589. http://www.columbia.edu/kermit/ckubwr.html#x13
- 590. http://www.columbia.edu/kermit/ckubwr.html#x11
- 591. http://www.columbia.edu/kermit/security.html
- 592. http://www.columbia.edu/kermit/ckubwr.html#top
- 593. http://www.columbia.edu/kermit/ckubwr.html#contents
- 594. http://www.columbia.edu/kermit/ckubwr.html#x14
- 595. http://www.columbia.edu/kermit/ckubwr.html#x12
- 596. http://www.columbia.edu/kermit/ckubwr.html#top
- 597. http://www.columbia.edu/kermit/ckubwr.html#contents
- 598. http://www.columbia.edu/kermit/ckubwr.html#x15
- 599. http://www.columbia.edu/kermit/ckubwr.html#x14
- 600. mailto:support@stallion.oz.au
- 601. http://www.stallion.com/
- 602. http://www.columbia.edu/kermit/ckubwr.html#top
- 603. http://www.columbia.edu/kermit/ckubwr.html#contents
- 604. http://www.columbia.edu/kermit/ckermit.html
- 605. http://www.columbia.edu/kermit/ck80.html
- 606. http://www.columbia.edu/kermit/index.html
- 607. http://www.columbia.edu/kermit/index.html
- 608. http://www.columbia.edu/
- 609. mailto:kermit@columbia.edu