Using the Raspberry Pi as an RTL-SDR dongle Server

Installing RTL SDR Software

NB: Now updated to work with Raspbian Jessie (16/2/2017 release) and the Pi-Zero-W.

The instructions listed below show you how to set up a Raspberry Pi for use as an RTL-SDR dongle server. If you would like a ready made solution, I have pre-configured and tested SD cards complete with printed instructions available via my Web Shop here.

The first step is to install a few packages that are required by the dongle server. You may already have some of these so don’t worry if you see a message that you already have the latest version.

To install these packages, type the following at the LXTerminal command line.

sudo apt-get install -y  cmake pkg-config libusb-1.0 git

Now you can download the RTL-SDR code from osmocom by typing the following at the command line:

git clone git://git.osmocom.org/rtl-sdr.git

The next step is to build RTL-SDR using the following commands. NB: Some of these may take a while so it’s probably time for a beer!

  1. cd rtl-sdr/
  2. mkdir build
  3. cd build
  4. cmake ../ -DINSTALL_UDEV_RULES=ON
  5. make
  6. sudo make install
  7. sudo ldconfig

Blacklist the RTL Drivers

The later versions of Raspbian include drivers for using the RTL dongles in their original role as a USB TV device. This causes the operating system to automatically load drivers when the dongle is plugged in. These drivers prevent use of the dongle as an SDR receiver so need to be blacklisted. Here’s the process:

From the command line enter the following:

sudo nano /etc/modprobe.d/fbdev-blacklist.conf

(NB: If you’re using an older Raspbian distribution, the command to use is:  sudo nano /etc/modprobe.d/raspi-blacklist.conf)

Add the following lines to this file:

blacklist dvb_usb_rtl28xxu

blacklist rtl2832

blacklist rtl2830

Press control-X followed by Y to exit and save the modified file.

Now reboot the Pi: sudo reboot

That completes the build and you can run a quick test by making sure your dongle is connected and typing: rtl_test -t

To start the server you need to access the Pi command line and type: rtl_tcp -a ‘your Pi’s IP address’. As a practical example, the start command for my setup is:

rtl_tcp -a 192.168.1.100

Auto Boot

It is very easy to configure the Pi to automatically run the SDR server when it powers-up. This is done by modifying the rc.local file that automatically runs on boot. We need to include two new lines in the file. The first delays execution for 10 seconds whilst the network starts and the second runs the command to start the server. The delay is necessary because the new Jessie release runs rc.local before the network is up so we won’t have the essential IP address. Here’s the updated rc.local file with the additions in red:

sleep 10
_IP=$(hostname -I) || true
if [“$_IP”]; then
printf”My IP address is %s\n” “$_IP”
/usr/local/bin/rtl_tcp -a $_IP  &
fi
exit 0

To open the rc.local file for editing type:

sudo nano /etc/rc.local

Now update the content as shown above.

Type control X followed by Y and Enter to save the changes.

That’s it – you should have an RTL-Server that auto boots. I don’t recommend using a Wi-Fi dongle but if you do you will need to increase the sleep time as the network setup may take longer.

 

Good Luck,

 

Mike – G4WNC

 

Advertisements

One thought on “Using the Raspberry Pi as an RTL-SDR dongle Server

  1. Pingback: Raspberry Pi with Multiple Dongles | Mike Richards G4WNC

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s