An Amateur Radio Survival Guide for Linux Users
When most people think about Amateur Radio, they picture a geek sitting by a big radio under an even bigger antenna clicking out letters and words in Morse code. If you still have this stereotype stuck in your head, perhaps the following discussion will clear things up. Although the HF bands are used for long-distance communications on low frequencies using large antennas, VHF is more about local communication using higher frequencies and smaller antennas. VHF and UHF are the bands used by everyone from taxi drivers to police radios for reliable local communication. Licensed amateur operators are allowed many more privileges on these bands, however, including the use of much higher power and automated stations, such as beacons, message-forwarding systems and data networks.
Wireless networking is a hot topic right now, especially when it involves the use of large transmitters to blanket a wide area with network service. Did you know that Amateur Radio operators have been doing this since the mid-1980s? Albeit at a much slower speed, amateur packet networks have been in place for a long time, providing very wide-area access to various types of networks, including the Internet.
Historically, amateur packet networks have operated using a protocol suite called AX.25, which provides both Layer 2 and Layer 3 functionality. More common today, however, is the use of AX.25 at Layer 2 with IP at Layer 3. Linux has had AX.25 (and obviously IP) support integrated into the kernel for quite a long time. With this support, a $150 radio and a $75 TNC (terminal node controller) interface, you can link your Linux box to a packet network using IP at about 1,200 baud. It's definitely slower than even the slowest Wi-Fi links on a bad day, but you can enjoy this link for tens of miles with only modest equipment and longer with a little effort. You won't want to do any serious Web surfing over this link, but it's actually not too bad for a Telnet or POP3 session. With a little more expensive hardware, you can move up to 9,600 or 19,200 baud, which is similar to the speed offered by many modern satellite phones.
Most distributions include AX.25 support in the kernel and require installation of only the userspace tools package(s) to get started. Extensive configuration is beyond the scope of this article, but the following steps are enough to get an IP link on the air.
First, configure the AX.25 port by putting something like the following in /etc/ax25/axports:
radio KK7DS 9600 255 2 MyRadio
Next, attach your serial TNC to the AX.25 interface and give it an IP address:
# kissattach /dev/ttyS0 radio 184.108.40.206
Configure the TNC parameters for transmit delay and so forth:
# kissparms -p radio -t 100 -s 100 -r 25
At this point, if the other end is set up similarly, you should be able to ping, Telnet or do whatever else you want over your IP-over-AX.25 interface. To bring the interface down, simply killall kissattach to disconnect.
One of the privileges we are not granted is encryption over the air. The reasons for this are well documented in Part 97 of the Federal Communications Commission's rules, so I won't go into them here. However, you might wonder how you can run any sort of a secure system without the use of modern encryption. Obviously, care must be taken, and privacy never can be achieved. However, clever use of a one-time-password scheme can provide some protection against casual password sniffing. I have effectively utilized the One Time Passwords in Everything (OPIE) tools by configuring the system to use pam_opie instead of pam_unix for authentication.
Most of the technologies I have discussed so far originated in the previous century and, thus, are quite old. One newcomer to the scene is the D-STAR system. Describing both a new on-air mode as well as a system for interconnecting nodes over the Internet, D-STAR has brought some 21st-century functionality to the hobby.
The ever-growing D-STAR network consists of repeater systems that provide RF access for radios in a local area, and which are connected to each other via the Internet. Much like early cell-phone systems, calls can be routed between users on the system without needing to know which “cell” the other is in at any given moment. With the exception of the infrastructure (which runs exclusively on Linux, by the way), D-STAR is mostly a voice mode, so it doesn't present much of a problem for Linux users.
There are, however, three things that D-STAR provides that may prompt you to want to plug your Linux computer in to your radio. The first is slow-speed data transmission, which involves transmitting data alongside the voice traffic at slow speeds. This can be useful for position reporting (all D-STAR radios can be plugged in to a GPS directly) as well as transferring small files. For this, the D-RATS software (see Resources) can be used and is natively supported on Linux.
In addition to slow-speed data transfers, D-STAR has a high-speed transport that doesn't waste any space with voice traffic and provides 128kbps of throughput over coverage areas of tens of miles. Luckily, this system behaves just like an Ethernet bridge, which means Linux is an equal-opportunity player here as well.
Finally, the D-STAR network can be accessed without a radio at all, using a piece of hardware called a DVDongle. This dongle encapsulates the voice encoder used in D-STAR radios and, when coupled with software on a desktop computer, allows you to connect to the Internet-linked infrastructure and communicate by voice with radio users in another area. This is a marriage of VoIP-like functionality with radio that has become very popular among D-STAR enthusiasts. The good news is the software for this also runs natively on Linux!
- Tails above the Rest, Part III
- NSA: Linux Journal is an "extremist forum" and its readers get flagged for extra surveillance
- Numerical Python
- Are you an extremist?
- Tails above the Rest: the Installation
- Dolphins in the NSA Dragnet
- RSS Feeds
- Tails above the Rest, Part II
- Tech Tip: Really Simple HTTP Server with Python
- Linux Systems Administrator