C-Kermit 7.0 Case Study #16

[ Previous ] [ Next ] [ Index ] [ C-Kermit Home ] [ Kermit Home ]

Article: 11065 of comp.protocols.kermit.misc
From: fdc@watsun.cc.columbia.edu (Frank da Cruz)
Newsgroups: comp.protocols.kermit.misc
Subject: Case Study #16: Bootstrapping
Date:25 Jan 2000 21:51:11 GMT
Organization: Columbia University

Hardly a week passes without a desperate plea like the following appearing on some newsgroup or other:

Help! I have 20MB of files on a PC with XENIX 2.3.4 [substitute any other old operating system], which does not have a network card, and I need to move them to Windows 98! My XENIX PC has only a 5.25" diskette and my Windows PC has only a 3.5" diskette, and they have no other media in common.

When there is no network, there are no removable media in common, and the two computers are not both UNIX (and therefore do not both have UUCP), Kermit is often the most practical alternative.

But I don't have a copy of Kermit on my XENIX system!

This article tells how to "bootstrap" Kermit onto your old system. The term "bootstrap" refers to "lifting yourself up by your bootstraps"; a paradox (similar to recursion, which we discussed earlier). In this case, the paradox is: "In order to get Kermit onto your computer, you must get Kermit on your computer". It's easier than it seems! The key is G-Kermit, announced here a month ago:

  http://www.columbia.edu/kermit/gkermit.html

G-Kermit is a compact and portable Kermit program. All it does is transfer files -- no frills, no conveniences. It's small enough to load into your computer without an error-detecting and -correcting protocol. For bootstrapping, we supply uuencoded compressed binaries that are several hundreds lines long each. All you have to do is put the appropriate one on the target computer, uudecode it, and uncompress it. You could do this via diskette or any other means at your disposal, but let's assume the serial port is your only option, and that the target computer:

and that the PC is running DOS or Windows, not UNIX, just so we can illustrate the general principals of bootstrapping without relying on UNIX-specific tricks. Let's also assume you know how to make the connection.

Here are the steps:

  1. Determine whether the target computer has gunzip. Just type "gunzip" and look at the response. If it says something like "gunzip: compressed data not read from a terminal" then you have gunzip. If it says something like "gunzip: command not found", you don't.

  2. FTP the appropriate uuencoded binary to your PC. Get the .gz.uue version if the target computer has gunzip, otherwise get the .Z.uue version. The uuencoded compressed G-Kermit binaries are in:

    ftp://ftp.kermit.columbia.edu/kermit/uue/

  3. Use your terminal program on the PC to log in to the target computer via the serial-port or modem connection.

  4. Once you have the shell prompt on the target computer, give an stty command to set up the appropriate kind of flow control. Use RTS/CTS (hardware flow control) if it is supported by your cable and by the target operating system; otherwise use Xon/Xoff. The UNIX stty command depends on the UNIX version. Here are some examples:

      stty crtscts              (for RTS/CTS)
      stty rtsxoff ctsxon       (for RTS/CTS)
      stty crtsxoff crtscts     (for RTS/CTS)
      stty ixon ixoff -ixany    (for Xon/Xoff)
    

    The command for Xon/Xoff is fairly well standardize. The command for hardware flow control is different almost everywhere. "man stty" tells you what the command is (if any) on your UNIX system.

  5. Set your terminal program to use the same kind of flow control. If your PC terminal program is from the Kermit Project, the command would be SET FLOW RTS/CTS or SET FLOW XON/XOFF.

  6. At the shell prompt, type:

      cat > x.uue
    
    Now UNIX expects you to "type" commands into the x.uue file.

  7. Return to your terminal program and tell it to send the uuencoded G-Kermit program using "ASCII" protocol. In Kermit Project software the command is TRANSMIT. Example:

      transmit gku100.i386-scoxenix-2.3.4.Z.uue
    

  8. When the upload is finished, return to the terminal screen and type Ctrl-D (hold down the Ctrl key and press the 'd' key). This closes the x.uue file on UNIX. You should get the UNIX shell prompt back (if you don't, press the Enter or Return key and then Ctrl-D again).

  9. At the UNIX shell prompt, type:

      uudecode x.uue
    

    This should produce a file called either gkermit.Z or gkermit.gz, depending on the compression method.

  10. Now uncompress it. If it's gkermit.Z, type:

      uncompress gkermit.Z
    

    If it's gkermit.gz, type

      gunzip gkermit.gz
    

    If you get any complaints like "gunzip: gkermit.gz: invalid compressed data--crc error", go back and repeat steps 6-10, perhaps reducing the serial speed on each end first. Note that gunzip catches transmission errors, but uncompress doesn't. This is another reason to use gunzip if you can.

  11. Give it execute permission. At the UNIX shell prompt, type:

      chmod +x gkermit
    

  12. Try starting it. At the UNIX shell prompt, type:

      ./gkermit
    

    You should see the G-Kermit help text. If something horrible happens instead, go back to Step 6, perhaps reducing the serial port speed first.

Now you have a Kermit program on your UNIX computer. See the G-Kermit web page for documentation.

G-Kermit might be all you need to get the critical files off your old UNIX computer. But in case you need the more advanced features of C-Kermit such as automatic text/binary mode switching, directory-tree transfer, atomic file movement, character-set conversion, and scripting, now you can use G-Kermit to transfer the appropriate C-Kermit binary to the same computer.

- Frank

[ Top ] [ Previous ] [ Next ] [ Index ] [ C-Kermit Home ] [ Kermit Home ]


C-Kermit 7.0 / Columbia University / kermit@kermitproject.org / 25 Jan 2000