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?

    Well, quite simply, JNOS is the "Swiss Army Knife" of Packet Radioi!!! Because it can do just about anything. It's a TCP/IP router, firewall, BBS, SMTP/FTP/WEB server, and talks AX.25, NetROM, and TCP/IP protocols. And it does APRS and WINLINK. Read on....

    Just look at all the things it can do:



    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).
 *

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.

    JNOS will run quite nicely on the original Raspberry-Pi, the Pi-B, all the Pi3's and Pi4's. With the newer Pi400 keyboard, this would make a VERY nice portable, do everything, package!

    With the addition of an inexpensive TNC-Pi, MFJ-1270pi, or NinoTNC the Pi makes for a compact and efficient package with a small footprint and low power budget. The TNC-Pi KISS modem attaches to the I/O connector on the Rasperry-Pi using its TTL-level Serial port to communicate with the TNC-Pi. If using multiple TNC-Pi's, the I2C interface is then used and each TNC-Pi is assigned a unique I2C address. The TNC-Pi's now stack nicely atop one another.

    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.

    The MFJ-1270pi is a replacement for the TNC-Pi after Coastal Chipworks closed its doors in 2020. MFJ licensed the design, replaced all the unobtainium thru-hole components with surface-mount, and now sells an equivalent TNC for the Pi for around $80.

    Our friends at TARPN have produced a KISS TNC called the NinoTNC that not only mounts easily atop a Raspberry-Pi, but uses USB instead of the Pi I/O connector and supports the 1200 bps (Bell-202), 2400, 4800, or 9600 (G3RUH) modems. It also can be switched to use either AX.25 or IL2P protocols. The NinoTNC sells in kit form only, with the PC board and pre-programmed PIC sold on Etsy for under $10 and the rest of the parts being available on Digi-Key. It is EASY to put together for a total cost of around $30.



    Even the software modem used in WinLink, VARA is being integreated with JNOS to be used as a high-speed VHF/UHF FM modem as well as potentially to be used over HF circuits. Stay tuned....



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 section below, on how to edit the AUTOEXEC.NOS config file.




HOWTO - Installing JNOS on the Raspberry-Pi3 (By: N8AVX):

    If you desire to run JNOS on a Raspberry Pi, Jim Smith N8AVX has produced this excellent HOWTO that walks you through the entire process, step-by-step, to having a running JNOS application running on a Pi. You start with a Pi with the Linux OS already loaded, follow these steps, and you will have a (minimal - autoexec.nos and a couple support files will need additional configuration) JNOS that can talk through either a USB or Serial port to your KISS TNC. Enjoy!!!

HOWTO-JNOS-on-Pi3-v4.3.pdf 1,169,697 bytes

    Now that you have a working JNOS application, go on to the next section (below) to complete the configuration. There are several files that need to be edited, so we provide examples of how this is done, including instructions.



HOWTO - Configuring JNOS and its necessary Support files:

    The following half dozen files will need to be edited and configured for your JNOS station to operate properly. Each of these Example files contain a working configuration (for W1AW) and contain instructions how to edit each section to customize the config for your particular station.




Installing Pidora-JNOS on the Pi-B (By: John McDonough WB8RCR):

    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.