This is a text-only version of the following page on https://raymii.org:
---
Title       :   I've packaged up CKermit as a snap, for Ubuntu 20.04
Author      :   Remy van Elst
Date        :   16-05-2021
URL         :   https://raymii.org/s/blog/Ive_packaged_up_CKermit_as_a_snap_for_Ubuntu_20.04.html
Format      :   Markdown/HTML
---





[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-white.svg)](https://snapcraft.io/ckermit-raymii)


Last year I packaged up [gnash as a snap](/s/blog/Ive_packaged_up_Gnash_as_a_Snap_for_modern_linux.html) because it was missing from the Ubuntu 20.04 apt repositories. Recently I found out that `ckermit` is also not in Ubuntu 20.04, as far as I can tell because it wasn't in the Debian repositories when the Ubuntu 20.04 initial sync happened. Which is very inconvenient for an LTS release.
I often use `ckermit` to connect to our hardware via a script, to automatically boot from NFS (via u-boot). I could do that manually via `screen` or `minicom`, but I have a `kermit` script that does it for me, which is very convenient. Since the snapping of `gnash` was so easy, I decided to do it for `ckermit` as well, since I now know how to convert deb packages to snaps. I also have a few colleagues who also use those kermit scripts and are going to update to 20.04 in the (near) future.
The snap packaging is based on work by Phil Roche, he wrote about re-packaging older debian packages with an Ubuntu 18.04/16.04 base layer as a snap. My `ckermit` package is confined (no `--classic` needed), the source code for the snap is on my github and on any snap-enabled distro you can now 'snap install ckermit-raymii' to enjoy CKermit.

<p class="ad"> <b>Recently I removed all Google Ads from this site due to their invasive tracking, as well as Google Analytics. Please, if you found this content useful, consider a small donation using any of the options below:</b><br><br> <a href="https://leafnode.nl">I'm developing an open source monitoring app called  Leaf Node Monitoring, for windows, linux & android. Go check it out!</a><br><br> <a href="https://github.com/sponsors/RaymiiOrg/">Consider sponsoring me on Github. It means the world to me if you show your appreciation and you'll help pay the server costs.</a><br><br> <a href="https://www.digitalocean.com/?refcode=7435ae6b8212">You can also sponsor me by getting a Digital Ocean VPS. With this referral link you'll get $100 credit for 60 days. </a><br><br> </p>



Here is a screenshot of the current [package search][4] for `ckermit` on
the Ubuntu package archives. No 20.04 LTS as you can see:

![screenshot packages][2]

### Important setup information for the snap

**You must execute the following commands to access a serial port
over USB (ttyUSB0 for example). If you don't do this, this snap won't
work:**

       sudo usermod -a -G dialout $USER #replace $USER with your linux login username

       sudo snap connect ckermit-raymii:raw-usb

Now restart your computer and you're good to go!

The snapcraft code is up [on github][3], the version is 9.0-302. Since
there is no snap core for 21.04, I cannot convert 9.0-305. But
as far as support is concerned, this is the LTS version from 18.04.

### What is (c)kermit?

Quoted from the [project website][8]:

Kermit is the name of a file-transfer protocol and a suite of computer
programs for many types of computers that implement that protocol as well as
other communication functions ranging from terminal emulation to automation of
communications tasks through a high-level cross-platform scripting language.
The software is transport-independent, operating over TCP/IP connections in
traditional clear-text mode or secured by SSH, SSL/TLS, or Kerberos, as well
as over serial-port connections, modems, and other communication methods.

The Kermit Project was founded at the Columbia University Computer Center (now
CUIT) in 1981, and until the mid- to late 1990s, Kermit was Columbia's
standard connectivity software, used by students, faculty, and staff to
connect from desktop microcomputers, PCs, Macintoshes, and Unix workstations
tothe central computing facilities: the IBM mainframes, the DECSYSTEM-20s,
CLIO, and Cunix (our Unix-based severrs). At Columbia, the mainframes and
DEC-20s are long gone, but Kermit still may be used for SSH sessions to CUNIX.

C-Kermit is an implementation of the kermit protocol, a kermit client/server
for unix/linux (and VMS). The [PiDP-8][9], an emulated hardware clone of
the PDP-8 also has a kermit implementation so you could use it to communicate
with any PDP-8's you might have laying around.

Here is a screenshot ([source][7]) of kermit connecting to a Variscite board,
similar to the ARM boards I use at work:

![screenshot ckermit][6]

This is one of my kermit scripts, after connecting a serial cable, to interrupt
the u-boot process. Saves me pressing any key at the right moment, as well
as sending some custom boot options to the board.

       #!/snap/bin/ckermit-raymii +
       kermit -l /dev/ttyUSB0
       set speed 115200
       set carrier-watch off
       set handshake none
       set flow-control none
       robust
       set file type bin
       set file name lit
       set rec pack 4096
       set send pack 4096
       set window 5

       SET INPUT ECHO ON
       INPUT 999 Hit any key to stop autoboot:
       LINEOUT
       INPUT 5 =>
       LINEOUT setenv console ttymxc0
       INPUT 5 =>
       LINEOUT setenv optargs serial.getty=ttymxc0
       LINEOUT boot
       connect


This kermit script is the only way I have to test this snap, so nothing else
than this is tested.

[1]: https://answers.launchpad.net/ubuntu/+source/ckermit/+question/693175
[2]: /s/inc/img/ckermit-ubuntu.png
[3]: https://github.com/RaymiiOrg/ckermit-snap
[4]: https://packages.ubuntu.com/search?keywords=ckermit
[5]: www.amber-lab.com/wiki/amber-board-tutorials/board-connection-to-pc/
[6]: /s/inc/img/kermit.jpg
[7]: www.amber-lab.com/wiki/amber-board-tutorials/board-connection-to-pc/
[8]: https://www.kermitproject.org/
[9]: /s/articles/Running_TSS_8_on_the_DEC_PiDP-8_i_and_SIMH.html

---

License:
All the text on this website is free as in freedom unless stated otherwise.
This means you can use it in any way you want, you can copy it, change it
the way you like and republish it, as long as you release the (modified)
content under the same license to give others the same freedoms you've got
and place my name and a link to this site with the article as source.

This site uses Google Analytics for statistics and Google Adwords for
advertisements. You are tracked and Google knows everything about you.
Use an adblocker like ublock-origin if you don't want it.

All the code on this website is licensed under the GNU GPL v3 license
unless already licensed under a license which does not allows this form
of licensing or if another license is stated on that page / in that software:

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.

Just to be clear, the information on this website is for meant for educational
purposes and you use it at your own risk. I do not take responsibility if you
screw something up. Use common sense, do not 'rm -rf /' as root for example.
If you have any questions then do not hesitate to contact me.

See https://raymii.org/s/static/About.html for details.