RTL-SDR - ArchWiki

Jump to content
From ArchWiki

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.

Bleeding edge is on rtl-sdr-gitAUR.

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` group. Replace `<USERNAME>` with your username and run the following:

    $ sudo usermod <USERNAME> -a -G rtlsdr

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 here: https://gitlab.archlinux.org/archlinux/packaging/packages/rtl-sdr/-/issues/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-gitAUR - a lightweight ModeS (1090Mhz) decoder
- multimon-ng - a decoder for various digital modes
- rtl_433AUR - protocol aware receiver for multiple devices. Supports automatic packet interception and protocol analyzers for reverse engineering.
- rng-tools - Random number generator related utilities
- sdrpp-gitAUR - 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-gitAUR package which still 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.

Category:

- TV cards