Outernet L-band on Linux desktop

This guide demonstrates the process of installing and running the 0uternet SDR demodulator and decoder software on a desktop Linux operating system. As of this writing, only 64-bit versions of Linux are supported. 32-bit version are in the works.

As part of the software repository, a Vagrantfile is provided for use with Vagrant and VirtualBox. This file can be used to (automatically) install and run all the required software on any computer that supports VirtualBox (including Windows and OSX).

Warning

This guide is a work in progress and may contain wrong and/or incomplete information. Please use the issue tracker or our forums to discuss any problems you encounter.

version 1.0a7
status unstable/draft

Licenses

The binary files closed-source are released under the proprietary freeware licenses:

The scripts in the repository including any example scripts found in the documentation folder are released under GNU GPL version 3 or any later version. See COPYING for more information, or visit the GPL homepage.

The documentation, except example scripts found in the docs directory, is released under GNU FDL version 1.3 or any later version. See COPYING.docs for more information, or visit the FDL homepage.

Guide contents

Requirements

The Outernet software can be run either on a native Linux install, or within a virtual machine.

In order to follow this guide, you will need:

  • RTL-SDR USB dongle
  • LNA (low noise amplifier)
  • Patch antenna
  • Internet connection
  • Basic familiarity with the Linux command line shell

The RTL-SDR radio dongle, LNA, and antenna, can be purchased through Outernet either individually or as a kit.

Introduction

The files that are datacast by Outernet are encoded, modulated, and uplinked to several Inmarsat satellites. These satellites transmit the radio waves in the L-band frequency range. The waves are received by a radio on your receiver and then passed on to the software demodulator. The demodulator turns the analog signal into bits and then passes them onto the decoder, which extracts the file information from the data and reconstructs the files on local storage.

The software components involved in this process are the software demodulator (sdr100) and the decoder (ondd).

Despite this software coming from a single vendor, they don’t come as a single package for the reasons of flexibility and so that various components can be replaced by others with same or similar functionality in future. Because of this, much of this guide is going to be about ensuring that these pieces of software work together.

Note

Although these pieces of software are all part of the Outernet software eco-system, which is predominantly open-source, the demodulator and decoder are closed-source freeware.

The relevant license files are installed in /usr/local/share/outernet folder by the installer.

The software involved in this set-up is meant to be used as long-running background processes (a.k.a. daemons). Some of the programs already provide features that let them run as proper well-behaved daemons, while others do not. We will not discuss daemonizing any of the programs in this guide. Documentation about command line options will be provided as appropriate, but daemonization (or conversion into proper system services) is going to be left to you as an exercise.

In a proper Outernet receiver, there are usually a few more components, like the web-based user interface software. Since the purpose of such software is to provide access to files from outside the receiver, they will not be covered in this guide. It is assumed that, on regular desktop Linux, the user will have enough options for getting access to files locally.

Installing the Outernet software in a virtual machine

Warning

Please not that this method of running the Outernet L-band software has not yet been confirmed as working. We are leaving the instructions and associated files here in case they happen to work for you. (And we would defintiely like to know about it, too!)

The Outernet software can be run within a virtual machine on platforms supported by VirtualBox. As of this writing, this includes Linux, Windows, OSX, OpenSolaris, and OpenBSD.

Note

It is highly recommended to use this set-up on a CPU that supports hardware virtualization technologies.

To use the virtual machine set-up, you will need to install VirtualBox, Oracle VirtualBox Extension Pack, and Vagrant.

Once the required software is installed, download the Outernet demodulator/decoder kit, and unzip it. Open a console and navigate to the folder which contains the unpacked files. For example, on Windows:

C:\> cd \path\to\outernet-linux-lband-master
C:\path\to\outernet-linux-lband-master> vagrant up

On Linux and other Unix-like or Unix systems, the commands are exactly the same:

$ cd /path/to/outernet-linux-lband-master
$ vagrant up

After downloading all the base image, a VirtualBox virtual machine is created and brought up. The machine is accessed using SSH.

Common RTL-SDR USB dongles are configured to be forwarded to the virtual machine, so plugging them in should be enough to make them usable within the virtual machine.

Note

While the virtual machine is running, you will not be able to use the radio USB dongles on the host system.

To access the operating system running within the virtual machine, run:

$ vagrant ssh

If you are on Windows, and you don’t have OpenSSH installed, you can use PuTTY. In the host name field, type in vagrant@localhost, and type 2222 in the port field.

PuTTY configured to connect to a virtual machine

Once connected, the password is vagrant.

To run the Outernet software, follow the Running the programs section.

To stop the virtual machine from the command line, use the following command:

$ vagrant halt

Software installation

In this section, we will install all the necessary software and ensure the system is prepared to run it. The next section will discuss the programs’ usage.

Installing the softtware

Download the Outernet demodulator/decoder kit and untar it:

$ wget https://github.com/Outernet-Project/outernet-linux-lband/archive/master.tar.gz -O outernet.tar.gz
$ tar xvf outernet.tar.gz

To install:

$ cd outernet-linux-lband-master
$ sudo ./installer.sh

During installation, you will be asked to decide whether you wish to configure udev. By default, access to the SDR dongles is restricted to root. The udev rules relax these rules so that any user can acess them.

You will also be asked to create the temporary download folder as well as the download folder. The temporary download folder is used to store incomplete downloads, while the download folder is the final destination for the downloaded files. You can chose to create these folders later by youself, or have the installer create them (default).

Warning

If the installer is asked to create the download folders, the created folders will be world-writable (any user will have read-write access to them).

Running the programs

We are now ready to run the demodulator and the decoder. Before we do that, though, we need to connect the radio and the antenna.

Connect the antenna’s connector to the LNA. Next, connect the LNA to the RTL-SDR dongle. Finally, plug the dongle into your computer’s USB port.

Running the demodulator

The demodulator needs a few parameters so it knows how to set up the tuner. The demod-presets command makes this easier by providing presets for the known frequencies. If you run this command without any arguments, you will get a list of presets (among other things):

$ demod-presets
Usage:
  /usr/local/bin/demod-presets PROFILE
  /usr/local/bin/demod-presets update

parameters:

  PROFILE   name of the tuner profile
  update    fetch the latest profiles

supported profiles:

  americas  North and South Americas
  euraf     Europe, Africa, Middle East
  apac      Asia, Pacific

Pick a preset for your region and run demod-presets again. For example, let’s run it with euraf preset:

$ demod-presets euraf
Image of the demodulator running with euraf preset

Running the decoder

With the demodulator running, open up a new terminal window to start the decoder.

$ decoder

Output from the decoder will be logged in the terminal where you started it.

To run the decoder with paths different from the ones in this guide:

$ decoder -c /path/to/cache -o /path/to/downloads

Updating demodulator presets

The L-band presets used by demod-presets command may change from time to time. The program has an update feature which you can use to fetch the updated presets. To use this feature, run:

$ sudo demod-presets update

What next?

It will take a while for the files to arrive, so please be patient. You may also need to adjust the antenna so it’s pointed correctly. Antenna pointing is outside the scope of this guide, though. The best place to ask for help regarding this is our forum.

When successfully downloaded, files should appear in the output directory. If you used the values from this guide, that’s /srv/downloads.

Troubleshooting

This section contains some common issues and known ways to fix them. Note that no two machines are exactly the same, and therefore some problems may have more than one root cause. If a fix listed here does not work for you, please ask for help in the Outernet forum or, if you’ve found a fix, please file a bug report.

Unable to load config: /etc/ondd.conf

This is normal, and you shouldn’t worry about it. If you sill see issues, they are most likely not related to this message.

error while loading shared libraries: libncurses.so.5

If you see this, your distro probably has a newer version of libncurse installed. First find out what version of libncurses your distro has:

$ ls -1 /usr/lib/libncurses*
/usr/lib/libncurses.so
/usr/lib/libncurses++.so
/usr/lib/libncurses++w.so
/usr/lib/libncursesw.so
/usr/lib/libncurses++w.so.6
/usr/lib/libncursesw.so.6
/usr/lib/libncurses++w.so.6.0
/usr/lib/libncursesw.so.6.0

In this case, we are dealing with version 6, so we make two symlinks:

$ sudo ln -s /usr/lib/libncursesw.so.6.0 /usr/lib/libncurses.so.5
$ sudo ln -s /usr/lib/libncursesw.so.6.0 /usr/lib/libtinfo.so.5

After this, the program should run normally.

/usr/lib/....: no version information available

This is normal for some Linux distros, and should not cause any issues. If you are still having some problem, it is more likely not because of this warning message.

Kernel driver is active, or device is claimed...

You probably need to blacklist the dvb_usb_rtl28xxu driver. Please search online for instructions on how to blacklist modules on your distro.

No sdr devices found

Your shoudl plug in your RTL-SDR dongle. If it is already plugged in, it may not be working correctly or may not have enough power.