{"id":16162,"date":"2020-04-18T10:46:55","date_gmt":"2020-04-18T14:46:55","guid":{"rendered":"https:\/\/scruss.com\/blog\/?p=16162"},"modified":"2020-04-18T10:46:58","modified_gmt":"2020-04-18T14:46:58","slug":"compiling-kermit-on-modern-linux","status":"publish","type":"post","link":"https:\/\/scruss.com\/blog\/2020\/04\/18\/compiling-kermit-on-modern-linux\/","title":{"rendered":"Compiling Kermit on modern Linux"},"content":{"rendered":"\n<p>One of the quirks of the SBC6120-RBC boards I just built is that its serial port talks a protocol that&#8217;s very rarely seen these days: 7 bits, <a href=\"https:\/\/viereck.ch\/linux-mark-space-parity\/\">mark parity<\/a>, 1 stop bit. minicom supports it, but seemingly can&#8217;t set it from the command line.<\/p>\n\n\n\n<p><a href=\"http:\/\/www.kermitproject.org\/index.html\">Kermit<\/a>, of course, can. Kermit (not the frog, but <a href=\"http:\/\/www.kermitproject.org\/kermit.html#frog\">named after him<\/a>) is the connect-to-anything, with-anything comms package. It&#8217;s been in constant development since 1981, and there&#8217;s hardly a computer system that exists that it won&#8217;t run on. The Unix\/Linux variant, <a href=\"http:\/\/www.kermitproject.org\/ck90.html\">C-Kermit<\/a>, 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.<\/p>\n\n\n\n<p>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 <a href=\"https:\/\/src.fedoraproject.org\/rpms\/ckermit\/blob\/master\/f\/ckermit-9.0.302-fix_build_with_glibc_2_28_and_earlier.patch\">this patch<\/a>, and do something like:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mkdir ckermit<br>cd ckermit<br>wget http:\/\/www.kermitproject.org\/ftp\/kermit\/test\/tar\/cku304-dev23.tar.gz<br>tar xvzf cku304-dev23.tar.gz<br>wget https:\/\/src.fedoraproject.org\/rpms\/ckermit\/raw\/master\/f\/ckermit-9.0.302-fix_build_with_glibc_2_28_and_earlier.patch<br>patch &lt; ckermit-9.0.302-fix_build_with_glibc_2_28_and_earlier.patch<br>make linux<\/pre>\n\n\n\n<p>and it should build correctly. There are many, many options: <em>make linux+ssl<\/em> gives some extra network security features; <em>make install<\/em> puts it in the system path.<\/p>\n\n\n\n<p>The command line I use to connect to the SBC6120-RBC is:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">kermit -l \/dev\/ttyUSB0 -p m -b 38400 -m none -c<\/pre>\n\n\n\n<p>That drops you straight into a connection. To get you back to Kermit&#8217;s <a href=\"http:\/\/www.kermitproject.org\/ckututor.html#cmdlist\">command mode<\/a>, type <kbd>Ctrl<\/kbd> + <kbd>\\<\/kbd> + <kbd>C<\/kbd>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the quirks of the SBC6120-RBC boards I just built is that its serial port talks a protocol that&#8217;s very rarely seen these days: 7 bits, mark parity, 1 stop bit. minicom supports it, but seemingly can&#8217;t set it from the command line. Kermit, of course, can. Kermit (not the frog, but named after [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[],"class_list":["post-16162","post","type-post","status-publish","format-standard","hentry","category-computers-suck"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pQNZZ-4cG","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/16162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/comments?post=16162"}],"version-history":[{"count":2,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/16162\/revisions"}],"predecessor-version":[{"id":16164,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/16162\/revisions\/16164"}],"wp:attachment":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/media?parent=16162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/categories?post=16162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/tags?post=16162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}