ARRL Michigan Section
Digital Radio Group
a.k.a. "DRG"
a Michigan Section organization

All about JNOS:

What is JNOS and What Does It Do?

    JNOS is the "Swiss Army Knife" of Packet Radio.

    The User Interface (UI) has easy to use LETTER commands ("Alphabet Soup Prompt") that looks like this:

WB8TKL-3 Area: wb8tkl Current msg# 365.
?,A,B,C,CONV,D,E,F,H,I,IH,IP,J,K,L,M,O,P,PI,R,S,T,U,V,W,X,Z >
?
Mail   : Area Kill List Read Send Verbose
Gateway: Connect Escape Ports PIng Telnet
File   : Download Upload What Zap
General: ?-Help Bye CONVers Finger Help Info IHeard
         IProute Jheard Mbox Operator Xpert

The User Manual for JNOS2.0f is available here .

    The User Interface is what AX.25 "human" connections would see. From there they can compose and send Email (addressed to other users on the AMPRnet, not the Public Internet). Or if you are using SMTP Email such as "Outlook" or "OutPost" or FLMSG from a workstation or laptop, or over an AX.25 connection. Files can be uploaded and sent across the network, or can be MIME attachments in an email.

    JNOS is recognized by FLDIGI/FLMSG and exchanges both Email and file easily, so user training is kept simple. In many cases, the end user doesn't even know that they are passing traffic across a JNOS based network any more than they know they are passing traffic across Cisco and Bay Networks routers when using the Internet. Simply use a 44.102.x.y address as the source and destination and the network will do the rest - no need to know the "topology" of the network.

    In many cases, stations will just set up a WiFi "Access Point" (AP) connected to the Ethernet of their JNOS box. Then any devices that "associate" with that AP (a password on WiFi would be recommended) would receive a 44-net address via DHCP, then reach the AMPRnet directly by being routed through their JNOS box. JNOS will determine where that traffic needed to be routed based on the destination IP address. It all becomes quite EASY when properly configured. Many home stations or EOCs just set-and-forget and let JNOS do all the work.



What does it run on?

    JNOS can run on either DOS or on Linux.

    On DOS (I use DOS 6.22), JNOS is loaded by DOS and then takes over the entire computer. Only the BIOS is used to make calls to other hardware devices and the Ethernet card, if you use one. It *can* be difficult finding an Ethernet card (ISA) that has a DOS Driver available for it, as that needs to be loaded at boot time. Since JNOS on DOS has no "servers" running and therefore no "listeners" on the ethernet, it is VERY secure and is sometimes an easy sell to the IT technician at an EOC or Hospital. Use of DOS is sometimes limited by its lack of memory space and sometimes very busy nodes will run low and come down to a crawl. So you must keep a close eye on memory availablity.

    On Linux, JNOS is loaded just like any other application but runs as its own Operating System with its own "IP Stack" and Xterm as a command console. The reason for the additional IP Stack is because Linux expects packets to be acknowleded quickly. But on 1200 baud RF links, acknowledgments may be on the order of tens of seconds later, so the Linux IP stack would have timed out, while the JNOS IP stack is designed for these much longer timeout timers. Since there are TWO Operating Systems running, they pass TCP/IP traffic between them via a "tunnel". This tunnel is a Point-to-Point link set up between two 'virtual' interfaces in memory. This is easy to do but challanges many who do not fully understand TCP/IP networking and the whole concept of virtual interfaces.a It really seperates the men from the boys!

    On the Raspberry-Pi with the ARM processor. This version requires that the executable be compiled specifically for the ARM. You can download Maiko's source code and then compile it on the Raspberry-Pi, or if you have a Raspberry-Pi Model "B" you can install the Pidora/JNOS image already compiled and ready to go! Not only does this put the OS on the Pi, but it already has all the installation work done for you -AND- includes a script that you run to generate your AUTOEXEC.NOS configuration file by prompting you to fill in blanks on a form. VERY easy! This version expects that you are using the Coastal Chipworks TNC-Pi as your TNC/Modem/Radio interface. This is probably the easiest way to get a JNOS node on the air, and it's also the cutest!

    While either OS works well, DOS is increadibly simple and easy to learn, while Linux has a much steeper learning curve and the tunnel adds yet an additional level of complexity, requiring a thurough understanding of TCP/IP. And since Linux can have an number of "listeners" and open Ports, it can me much more complex to lock down and make safe and secure for deployment on a LAN such as at an EOC or Hospital. But the Linux version is the one that is still being supported and comes with the greatest number of features, all of which can be fine-tuned by compiling in what features you would like. So it is incredibly flexible to set up just the way you would like it.

    Since October 2004, JNOS software has been maintained by Maiko Langelaar VE4KLM in Canada. Maiko has cleaned up all known bugs leftover in JNOS 1.11f, and he has added a number of features (WinLink and HFDD support, for example).

JNOS 2.0 is based on the previous works of many people. Most notable are
 * Phil Karn (KA9Q), Johan Reinalda (WG7J), Gerard van der Grinten (PA0GRI),
 * Anders Klemets (SM0RGV), Kevin Hill (G1EMM), James Dugal (N5KNX), Brandon
 * Allbery (KF8NH), Barry Siegfried (K2MF), Brian Lantz (KO4KS), and others.
 *
 * Copyrights and other restrictions by these authors are still in effect !
 *
 * All JNOS 2.0 additions, enhancements, extensions, code restructuring, bug
 * fixes, and so on, are Copyright (C) 2004-2018 by Maiko Langelaar, VE4KLM,
 * unless otherwise noted (ie, contributions from other authors or sources).
 *



Where can I get JNOS Software:

    As stated above, JNOS Version 2 is being supported by Maiko Langlaar VE4KLM. His website has all the Release Notes and current software images, as well as the Source Code. I recommend downloading the source code (via RSYNC) and compiling the code on your target Linux box for the best results.

       http://www.langelaar.net/jnos2

    Download the software (via rsync), then follow Maiko's instructions on how to run 'make' to compile the executable. Then it is just a matter of editing your 'autoexec.nos' file for your callsign-SSID, and anything else particular to your station. See the next section, below, for help how to do that.



How to Configure JNOS (AUTOEXEC.NOS):

    The AUTOEXEC.NOS file is where JNOS learns what your callsign is, what radio ports will be used and the name they go by, what your ethernet address will be (if you use the ethernet), and anything else particular to your node/station.

Example AUTOEXEC.NOS for a typical home JNOS station.


How to Configure (see the Install documentaion for Raspberry-Pi "B") (see Example AUTOEXEC.NOS for Linux or DOS)

Configuring for Email (POP3 client) (see the example AUTOEXEC.NOS file in the RESOURCES section)

Configuring for CONVerse (see the AUTOEXEC.NOS file in the RESOURCES section of this website)

USER MANUALS (available in the RESOURCES tab of this website)

Getting an IP address.... (see the RESOURCES tab on this website)

JNOS on the Raspberry-Pi:

    The Raspberry-Pi is a single board computer running the ARM processor that has been popular for many years. This powerful and inexpensive computer makes an excellent platform for experimenters and hobbiests. It also makes an excellent platform for Packet Radio home stations and backbone nodes.

    With the addition of an inexpensive TNC-Pi we don't even have to waste a serial port nor a USB port to attach an inexpensive external modem. Instead, the TNC-Pi KISS modem attaches to the I/O connector on the Rasperry-Pi making a convieniently sized package. They then use the I2C Buss to communicate between the modem and the computer. And since each TNC-Pi aquires its own unique I2C address from the Pi, several TNC-Pi modems can be stacked one atop the other to form a nice stack.

    As you can see, an inexpensive Raspberry-Pi running Pidora Linux can have a "stack" of TNC-Pi KISS modems stacked on top of it to create a multi-ported JNOS Packet station or node. Each port can be attached to a radio on a different band or frequency, or even a different mode. This would be ideal for a node that interconnects differing networks such as AX.25 on one port, TCP/IP-Only on another port, high-speed packet on another, Knet/NetROM on yet another. Your options are unlimited.



Installing Pidora-JNOS on the Pi:

    1) Acquire a Raspberry-Pi "B" model. This model has 1-Ethernet port, 2-USB ports, and a 26-pin I/O connector. This is now End-Of-Life, but there must be lots of them available for cheap since faster more powerful models are now available. BUT BEWARE!!! The Pidora/JNOS image has been compilled to run on a "B", so it's best if you start with the correct hardware. Maybe some day WB8RCR will put out a new version for the Pi-3B and 40-pin I/O, but he is a very busy guy, so don't wait for it, go get yourself a B and get on the air!

    For more information about identifying the varios models of the Pi, see this handy reference.

    2) Acquire a TNC-Pi for the "B" model (having a 26-pin I/O connector). Be careful as there are two versions and you want the original one with the shorter I/O connector that fits atop the Raspberry-Pi "B". The TNC-Pi can be purchased from Coastal Chipworks for about $40 in kit form. Takes only 30 minutes to assemble.

    3) Acquire a Michigan AMPRnet IP ADDRESS, if you don't already have one. Go to the RESOURCES tab on this website for instructions how to obtain your very own IP address.

    4) Download the Pidora/JNOS flash image for your Pi, and flash it onto a memory card. DO NOT POWER UP YOUR PI UNTIL INSTRUCTED PER THE DOCUMENTATION. Haste makes waste. A "First Run" script will run upon power up, and if you get ahead of yourself, you will need to go back and reflash the image and start all over. So please be patient.

    5) Now follow the Step-by-Step instructions in the documentation. BEWARE! You MUST have an ethernet plugged into the Raspberry-Pi BEFORE powering up the Pi for the first time. The Pi must be able to reach your DHCP server and aquire a lease in order to configure correctly. Again - have everything ready before you power up the Pi for the first time.

    6) ENJOY !!!



Other JNOS on Raspberry-Pi Options:

    I have no idea if any of these work, how well or how badly they may work, or if any of these projects still exist. Procede at your own risk.