Compiling Kermit on modern Linux

One of the quirks of the SBC6120-RBC boards I just built is that its serial port talks a protocol that’s very rarely seen these days: 7 bits, mark parity, 1 stop bit. minicom supports it, but seemingly can’t set it from the command line.

Kermit, of course, can. Kermit (not the frog, but named after him) is the connect-to-anything, with-anything comms package. It’s been in constant development since 1981, and there’s hardly a computer system that exists that it won’t run on. The Unix/Linux variant, C-Kermit, has an incredibly intricate hand-crafted makefile that predates autoconf or cmake or any of those newfangled toys. Unfortunately, though, this means it may need a lot of reading and a little hand to compile.

There may be some additional dependencies, but to build a simple version of C-Kermit 9.0.304 Dev.23 on Ubuntu 19.10 and Raspbian Buster you need this patch, and do something like:

mkdir ckermit
cd ckermit
wget http://www.kermitproject.org/ftp/kermit/test/tar/cku304-dev23.tar.gz
tar xvzf cku304-dev23.tar.gz
wget https://src.fedoraproject.org/rpms/ckermit/raw/master/f/ckermit-9.0.302-fix_build_with_glibc_2_28_and_earlier.patch
patch < ckermit-9.0.302-fix_build_with_glibc_2_28_and_earlier.patch
make linux

and it should build correctly. There are many, many options: make linux+ssl gives some extra network security features; make install puts it in the system path.

The command line I use to connect to the SBC6120-RBC is:

kermit -l /dev/ttyUSB0 -p m -b 38400 -m none -c

That drops you straight into a connection. To get you back to Kermit’s command mode, type Ctrl + \ + C.

4 comments

  1. A few years ago when I built my SBC-6120, I ran into similar parity problems when tweaking around with miniterm (https://github.com/pyserial/pyserial/blob/master/serial/tools/miniterm.py) to load software from paper-tape formatted files into memory. I was using palbart (http://manpages.ubuntu.com/manpages/eoan/man1/palbart.1.html) to generate RIM format files.

    When trying to implement parity, I did it in software like we used to back in the UNIVAC days. Just used a precomputed lookup table, but you could do the parity calculation easily enough as well, of course.

    2048 was in its glory at the time, so I banged out a simple version in PDP assembly. It’s not great. And it stops once you hit a 2048 and just declares you a winner.
    https://github.com/gnievin/2048-PDP-8

  2. Sorted

    A very useful post – KERMIT is about the only way to get text onto a (very) old VAX!

Leave a comment

Your email address will not be published. Required fields are marked *