All about JNOS:
JNOS is the "Swiss Army Knife" of Packet Radio.
- JNOS is an "Operating System" *NOT* an Application.
- It acts as a Digipeater and/or a cross-band Digipeater
- You can uplink and downlink with it using plain old AX.25
- It contains a BBS "Bulletin Board System"
- It can have any number of radio interfaces/ports
- It can act as a File Server (using the "Upload" and "Download" BBS commands, of FTP)
- It supports the complete TCP/IP protocol suite (Telnet, Finger, FTP, Ping, ARP, SMTP email, POP3 for Email, HTTP web, and anything than will run atop IP)
- It supports an Ethernet port(s) and can be connected to your LAN or to the Internet
- It supports NetROM/Knet protocol and can link with NetROM nodes/networks
- It supports AXUDP links to other systems (such as BPQ nodes)
- It supports a WINLINK interface to exchange Email with that network.
- It can be an APRS Digi as well as an Igate.
- It supports RLI/FBB "Heirarchical" email forwarding.
- It supports a Network-Wide CONVerse Bridge that supports over 32,000 individual CHAT channels (911 for Emergencies, 411 for Weather events, individual County channels (81), individual District channels (222), and even links to bridges throughout the World)
- It supports TCP/IP over the top of the AX.25 Link Layer protocol.
- It supports TCP/IP routing using conventional "ifconfig" and "route" commands
- It supports IPIP ENCAP (Protocol-4) for easy linking across non-Amateur networks such as the Internet or microwave/mesh networks.
- It contains IP ACCESS and TCP ACCESS firewall
- It has built-in HELP files
- SMTP Email can have multiple recipients
- SMTP Email can have MIME Attachements
- It has very robust Logging of all logins, actions, logout, and SMTP/FTP transactions.
- It has Remote management access and rebooting capability.
- And it can be configured to do ALL OF THE ABOVE at the same time!!!
- Have I missed anything.......???
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.
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.
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.
Compiling JNOS on Linux -- Step-By-Step:
- SU to the ROOT account of your Linux box by doing a su - root and entering your root password when prompted. Don't leave out the spaces or the hyphen!
- From ROOT, get the Source Code from Maiko's website by using RSYNC. Type in rsync -a www.langelaar.net::jnos2 /root/jnos-source. After several seconds, the source code should have downloaded into this directory. If the directory did not already exist, it will be automatically created for you.
- CD into the /root/jnos-source directory and do a make clean followed by a make. A *LOT* of stuff will scroll quickly across your screen. Warnings are Okay, we are only concerned if we see ERROR messages. These are typically in RED.
- If you encounter ERRORS related to the TUN.C code, download an updated TUN source code from the following URL: http://www.langelaar.net/jnos2/archive/news/tun_sp2l.c . You will find the tun_sp2l.c file in your Download directory. Copy it over your tun.c file (the filename should remain as tun.c). Do a make clean followed by a make and you *should* no longer get ERROR messages regarding the TUN code segment.
- If you encounter ERRORS related to curses.c, then use your installer program (APT, APT-GET, YUM, etc.) to install the libncurses5-dev package. This will contain the needed files to complete the MAKE compile.
- Once make compiles without ERRORS, you should now have a jnos executable in your /root/jnos-source directory!!!
- You will find that you now have an executable called jnosinstall. When you run this by typing ./jnosinstaller it will prompt you for what directory to install JNOS into. The default is /jnos, select that. JNOSINSTALL will also prompt you for your CALLSIGN and a number of other details. After you answer these prompts, the JNOSINSTALLER will create the /jnos directory and populate it with all the necessary subdirectories.
- You should now CD into the /JNOS directory by doing cd /jnos
- By typing startnos you can run and test your new JNOS application :)
- ... installing AUTOEXEC.NOS, editing it, TUN config (if needed), installing FTPUSERS, NOS.CFG, etc....
- ...STARTNOS script... /etc/inittab -or- SystemD
... correct TZ
- ... using the DRG "standard" AUTOEXEC.NOS for Hamgates - Highly Recommended!!!
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.
- Download The Raspberry Pi-JNOS project installation documentation (PDF)
- Or you may view the web-based Installation Manual
- Download Raspberry Pi-JNOS for Raspberry-Pi/TNC-Pi by WB8RCR (version 1.5 from jjmcd's personal site) (517,375,603 bytes or 493 Megs)
FOR THE RASPBERRY-PI Model "B" ONLY!!!
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.
- Bernard's new Jessie based image for TNC-Pi
- Mitch's Wheezy based image with setup GUI which supports TNC-X and Direwolf
- Work is being done on documentation for Direwolf and TNC-Pi
(v2 on Jessie is close but incomplete, v1 for Wheezy is done)
- Brett's TNC-Pi centric image