Packet Radio Under Linux
In my teens I spent many enjoyable hours tinkering with radio equipment and communicating with other “hams” around the world through the medium of amateur radio. Moving away to attend a university and start a career and family meant that my hobby had to go on temporary hiatus for a number of years. Recently, I came back to the hobby and decided to explore an area of amateur radio that didn't exist in my teen years—digital packet radio. As an avid Linuxer, I was intrigued to see how I could use my Linux system for packet radio. I was on a limited budget, and wanted to get started without investing in a lot of hardware and software.
Amateur radio is a pursuit enjoyed by millions of “hams” around the world. By international agreement, most countries have allocated a portion of the radio spectrum for amateurs to experiment with radio technology. The hobby goes back to the early days of radio and is popular with people of all ages. Operating an amateur radio station requires an operator's license, which can be obtained by passing an examination that covers radio theory, regulations, operating practices and basic electronics. Full privileges also require a knowledge of the International Morse Code (yes, it is still used) although some countries now offer no-code licenses that typically include restrictions in operating modes and frequencies.
Hams are known for building their own equipment and accessories, experimenting with new technologies and helping each other and the public. This is close to the spirit of Linux, so it is not surprising that many hams are also Linux users.
As personal computers became increasingly powerful and affordable, amateurs looked at using radio for digital communications. Packet radio is one such method in which text is encoded as binary data and transmitted via radio in groups of data, called packets. One popular protocol developed for this purpose is AX.25. Based on the X.25 protocol but adapted for the special needs of amateur radio, it offers error-free, packet-based communication between stations. Other protocols, such as TCP/IP, can run on top of AX.25. A few of the applications of packet radio include chatting by keyboard with other hams in real-time, using packet bulletin board systems, sending electronic mail, and connecting (via gateways or worm holes) to other packet networks or to the Internet. Data rates range from 300 bits per second on HF (High Frequency) bands to 1200 bps on VHF (Very High Frequency) and 9600 to 56Kbps and beyond on UHF (Ultra High) frequencies.
A typical packet radio station consists of a computer or terminal connected to a Terminal Node controller (TNC), and radio transceiver (transmitter/receiver). A TNC is a device containing a small microprocessor, dedicated firmware in ROM, and a modem to convert signals back and forth between audio and serial bit formats, and also encodes and decodes data with the AX.25 protocol. A typical TNC connects the radio to the computer via its serial port.
Another popular option is the “poor man's modem-only” Terminal Unit (TU). It essentially has a modem chip sandwiched between its audio and serial port connectors. Software drivers on the computer must therefore handle all of the AX.25 protocol. It's popular because of the price—typically one third the cost of a TNC.
The typical DOS-based packet setup has a number of limitations. Since the system is single user, the computer must be dedicated to packet and cannot easily be used for other purposes. Generally, the computer is used as a dumb terminal or dedicated software is used that takes over the whole computer. Although some software packages such as JNOS run on XT or AT class machines, Linux typically runs better on a 386 machine having limited memory than a commercial operating system alternative such as Windows 95.
Packet software is either free or distributed as shareware in binary form. Some packages, notably JNOS, are also available as source code.
As of release 2.0, Linux has native support for the AX.25 protocol built into the kernel (a unique feature among operating systems). For earlier releases, Alan Cox's AX25 package is easily patched in. Furthermore, AX25 is integrated with the rest of the Linux networking code and utilities. To Linux, a packet radio interface appears as just another network interface, much like an Ethernet card or serial PPP link.
The kernel contains device drivers for serial port TNCs as well as several popular packet modem cards. It even offers a driver that uses a sound card as a packet modem (more on that later).
Once up and running, you can let users telnet into your Linux system via packet radio, offer them a Unix shell or one of several BBS programs, or even let them surf your system with a web browser. Thanks to Linux's multiuser and multitasking capability, this occurs without affecting the normal use of the system.
A Linux machine can act as a router to connect packet network traffic to a LAN or Internet connection and can route e-mail via packet. You can have multiple packet interfaces with many simultaneous connections over each interface.
- Transitioning to Python 3
- Red Hat OpenStack Platform
- Stepping into Science
- Tech Tip: Really Simple HTTP Server with Python
- Linux Journal December 2016
- CORSAIR's Carbide Air 740
- The Tiny Internet Project, Part II
- Radio Free Linux
- A Better Raspberry Pi Streaming Solution
- FutureVault Inc.'s FutureVault