RTL-SDR

Related articles
DVB-T
GNU Radio
RTL-SDR
is a set of tools that enables
DVB-T
USB dongles based on the Realtek RTL2832U chipset to be used as cheap software defined radios, given that the chip allows transferring raw I/Q samples from the tuner straight to the host device.
See the
RTL-SDR wiki
for exact technical specifications.
Installation
The latest stable RTL-SDR version can be
installed
from
rtl-sdr
.
Note
RTL-SDR conflicts with existing
DVB-T
drivers in the kernel, and upon installation blacklists the relevant drivers as can be seen in
/usr/lib/modprobe.d/rtlsdr.conf
. To use the dongle with the original DVB-T drivers, it is required to manually load them, see
DVB-T#Driver
.
udev rules are installed at
/usr/lib/udev/rules.d/10-rtl-sdr.rules
and set the proper permissions such that non-root users can access the device.
Tip
The official RTL-SDR software does not include an infrared module. If one is desired, this
fork
, which includes an rtl_ir module, should be used instead.
rngd claims rtlsdr devices by default - exclude it's use in
/etc/conf.d/rngd
with
RNGD_OPTS="--exclude rtlsdr"
Usage
Performing a simple test, and make sure the dongle works and that there are no lost samples:
$ rtl_test
Raw samples can be captured directly to file (or fifo), for example to tune to 123.4MHz and capture 1.8M samples/sec:
$ rtl_sdr capture.bin -s 1.8e6 -f 123.4e6
Tune to your favorite radio station and pipe to
sox
for audio:
$ rtl_fm -f 102.7e6 -M wbfm -s 200000 -r 48000 - | aplay -r 48000 -f S16_LE
Using on a headless server
To use an RTL SDR device over
ssh
, add the user you are logging in as to the
rtlsdr
user group
.
Now, log out and back into a new
ssh
session. The groups that your user is a member of can be listed with the following:
# groups
If the
rtlsdr
group shows up, the current user should now be able to use any application that uses the RTL SDR USB device over
ssh
.
Note that being a member of the
rtlsdr
group is not necessary if you are logging into your system over a TTY or through a GUI login manager. In that case, the
TAG+="uaccess"
piece of the
/usr/lib/udev/rules.d/10-rtl-sdr.rules
config file handles giving you access to the RTL SDR USB device. More details on this are available in
archlinux/packaging/packages/rtl-sdr#1
.
Applications
Some popular applications that use RTL-SDR:
gqrx
- a popular SDR receiver with waterfall GUI for Linux
urh
- complete suite for wireless protocol investigation with native support for many common SDR
dump1090-git
AUR
- a lightweight ModeS (1090Mhz) decoder
multimon-ng
- a decoder for various digital modes
rtl_433
- protocol aware receiver for multiple
devices
. Supports automatic packet interception and protocol analyzers for reverse engineering.
rng-tools
- Random number generator related utilities
sdrpp-git
AUR
- SDR receiver application with a number of features.
Troubleshooting
When using certain tuners (like generic/unbranded "DVB" devices), the signal can get overloaded very easily even at low gain levels. This is an issue starting with version 2.0.1 of the official
rtl-sdr
package, which switched from a fork to the official Osmocom repository.
To fix this, the package must be
downgraded
to version 0.8.0-6, or alternatively use the
rtl-sdr-librtlsdr-git
AUR
package which points to the fork repository which does not have this issue. Any applications which use the libraries from the rtl-sdr package must be re-built against the alternative package.