home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / cku201.zip / ckubwr.txt < prev    next >
Text File  |  2002-02-13  |  253KB  |  5,157 lines

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