Rtl sdr driver linux

RTL-SDR

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.

Packages

The latest stable RTL-SDR version can be installed from rtl-sdr in the official repositories.

Bleeding edge is on rtl-sdr-git AUR in the AUR.

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.

Usage

Performing a simple test, and make sure the dongle works and that there are no lost samples:

Raw samples can be captured directly to file (or fifo), for example to tune to 123.4MHz and capture 1.8M samples/sec:

Tune to your favorite radio station and pipe to sox for audio:

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-gitAUR — a decoder for various digital modes
  • rtl_433AUR — protocol aware receiver for multiple devices. Supports automatic packet interception and protocol analyzers for reverse engineering.

Источник

Antenna80x

Страницы

суббота, 17 февраля 2018 г.

RTL-SDR приемник в Ubuntu

SDR — Software Defined Radio.

Это новая эра в развитии любительского и профессионального радио. Распространенное название этого программируемого радиоприемника » Донгл DVB-T + DAB + FM приемник».
Обычно представляет собой USB-девайс или устройство, связанное через УСБ-порт или другой вход, с персональным компьютером (ноутбуком, планшетом, смартфоном). Приемник принимает радиосигналы из эфира, преобразует их и передает для дальнейшей обработки на компьютер. Через интерфейс установленной программы можно управлять работой приемника с рабочего стола ПК. Для этого имеется большой ассортимент различных программ и плагинов к ним. В том числе и под Linux.
DVB-T dongles(DVB-T-ключи), основанные на Realtek RTL2832U, могут использоваться в качестве дешевого SDR, поскольку чип позволяет передавать исходные образцы I / Q на хост, который официально используется для демодуляции DAB / DAB + / FM.
RTL-SDR приемники могут быть различной модификации, комплектации и назначения. Можно посмотреть на AliExpress подходящую модель по запросу sdr rtl2832u r820t2 . Там есть недорогие попроще (от 24 до 1700 МГц) и подешевле, но сеть уже и версии перекрывающие весь диапазон от 0.1 до 1700 МГц. Производитель УСБ-донгла выпустил новую версию так же перекрывающую весь диапазон RTL-SDR.COM (V.3)
https://www.rtl-sdr.com/rtl-sdr-blog-v-3-dongles-user-guide/
Quick Start Guide

В прошлых версиях приемника применялся адаптер (чип R820T), сейчас уже выпускаются с чипом R820T2, у него улучшена чувствительность (

2-6 дБ) и улучшена работа с экспериментальным драйвером, позволяющим программно работать на высоких частотах. Совместим с драйверами R820T.
Итак, имея такой приемник, нужно поставить программу на ПК для работы с ним. Остановимся на простой программе Gqrx SDR. У КОТОРОЙ ИМЕЕТСЯ СВОЙ САЙТ
http://gqrx.dk/.
Gqrx — это программа-радиоприемник с открытым исходным кодом (SDR). Gqrx основан на GNU Radio и графическом инструментарии Qt.
Gqrx поддерживает многие доступные аппаратные средства SDR, включая Airspy, Funcube Dongles, rtl-sdr, HackRF и USRP.
Gqrx — это бесплатное программное обеспечение, лицензированное по лицензии GNU General Public, позволяющее любому исправить и изменить его для использования.
Gqrx в значительной степени основан на GNU Radio с использованием обоих блоков DSP

Установите Gqrx SDR на Ubuntu Linux

Gqrx уже много лет включен в Ubuntu Linux. Хотя эти версии часто немного устарели, они могут быть достаточными для вашего использования.

Если вы хотите использовать последнюю версию, вы можете использовать пакеты из нашего собственного личного архива пакетов (PPA), доступные для Ubuntu 14.04 — 17.10 на архитектурах i386 и amd64. Этот PPA зависит от нескольких других сторонних архивов пакетов для предоставления последних драйверов SDR и пакетов GNU Radio.

Читайте также:  Центр обновления windows некоторыми параметрами управляет ваша организация как убрать

Чтобы начать использовать PPA, сначала убедитесь, что у вас нет другой исходной или двоичной установки gqrx, gnuradio или библиотек драйверов SDR. Следующие команды удаляют двоичные установки gqrx и gnuradio, но не установки из источника:

sudo apt-get purge —auto-remove gqrx
sudo apt-get purge —auto-remove gqrx-sdr
sudo apt-get purge —auto-remove libgnuradio*

Теперь вы должны удалить gqrx / релизы или gqrx / snapshots PPA из списка источников репозиториев / пакетов, если вы их использовали.

Затем добавьте новые репозитории в диспетчер пакетов, набрав в терминале следующее по одной строке за раз:

sudo add-apt-repository -y ppa:bladerf/bladerf
sudo add-apt-repository -y ppa:ettusresearch/uhd
sudo add-apt-repository -y ppa:myriadrf/drivers
sudo add-apt-repository -y ppa:myriadrf/gnuradio
sudo add-apt-repository -y ppa:gqrx/gqrx-sdr
sudo apt-get update

Если это произошло без ошибок, продолжайте установку gqrx:

sudo apt-get install gqrx-sdr

Необходимо скачать 7 228 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 30,4 MB.
https://launchpad.net/

gqrx/+archive/ubuntu/gqrx-sdr/?field.series_filter=xenial
последняя версия:
gqrx-sdr 2.10-gqrx1

xenial
Теперь вы можете найти gqrx в меню рабочего стола или запустить его с терминала, набрав gqrx. Для запуска потребуются права суперпользователя.

После того, как вы установили Gqrx из PPA, обновления будут доступны через диспетчер пакетов. На сегодня актуальна эта версия

Рекомендуется также устанавливать пакет libvolk1-bin и запускать инструмент volk_profile для оптимизации производительности GNU Radio на конкретном компьютере, на котором он используется.

sudo apt-get install libvolk1-bin

Подождите, пока он закончит, а затем наслаждайтесь повышением производительности.

Для тестирования RTL-устройств нужно установить пакет rtl-sdr

sudo apt install rtl-sdr

и запускать тест командой

rtl_test -t
-например:

rtl_test -t
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
usb_claim_interface error -6
Failed to open rtlsdr device #0.
———————————————————————
И так, мы вставили УСБ-донгл и запустили программу GQRX
В окне настроек нужно выбрать свой девайс, обычно он уже найден автоматом.

Дополнительно к теме ссылки и рекомендации.

Многим нравится программа SDRShar, но она и требует больше ресурсов от ПК. Как ее установить в Linux описано здесь:
http://vladikoms.livejournal.com/51503.html

RTL-SDR for Linux Quick-Start GuideВ руководстве показано, как установить драйверы, как установить и настроить GQRX, CubicSDR, dump1090, Virtual Radar Server, QSpectrum Analyzer и SDR Trunk. https://ranous.wordpress.com/rtl-sdr4linux/

Airspy — популярный, доступный по цене SDR (основанный на программном обеспечении радиоприемник) приемник связи с наивысшей производительностью и наименьшим форм-фактором. Это серьезная альтернатива как недорогим, так и более высоким конечным сканерам, в то же время демонстрируя лучший опыт просмотра радио на рынке благодаря тесной интеграции с де-факто стандартным программным обеспечением SDR #. https://airspy.com/

Очень много роликов имеется на Ютубе с обзорами RTL-SDR приемников.

По большому счету этот девайс годится для приема местных станций и сканирования определенного диапазона частот. Для более серьезных целей он требует и более серьезной переделки, например: установки дополнительных фильтров и конвертера на кварце для перекрытия всего диапазона частот от 0.1 до 1700 МГГц. Или нужно покупать подобное SDR устройство более высокого уровня сложности и соответственно большей цены.

Источник

New Linux RTL-SDR Driver with Fully Exposed Controls

A new Linux based driver for the RTL-SDR has been released by Milen Rangelov (aka gat3way) which exposes all the adjustable settings on the R820T/2 tuner chips. This exposes adjustable sliders for settings like preselection, IF and notch filters and the multiple gain stages on the R820T/2. In the standard drivers the filters and gain settings are mostly set automatically, but manually adjusting them could yield better results. The filters are not very strong, but they could be used to help block out an interfering signal, increasing the dynamic range of the RTL-SDR.

Over on his post at r/rtlsdr Milen wrote the following about his driver:

The idea in brief is to modify the librtlsdr code so that an unix domain socket server receives i2c register set/get commands and executes them. It only works for r820t tuners. This modified rtlsdr library is then dynamically preloaded by means of LD_PRELOAD and used by the SDR software. This is actually what happens when you call r820tweak

. This way, no modifications to both gr-osmosdr source and the SDR program are required, instead of waiting for them to implement those controls, we kind of have a separate program that tweaks them.

Читайте также:  Airserver universal для windows

The GUI program is a simple wxpython client, it currently exposes the following settings:

LNA, Mixer, VGA gain stages – the 3 variable gain stages

LPF/HPF filter cutoff – these control the “width” of the r820t2 lowpass/highpass filters, those filters are relatively sharp and this in turn is very useful to increase the dynamic range by fitlering out strong signals “close” to the weak signal you are hunting. Those are among the nicest features to play with, together with the gain stages.

LPNF cutoff – apparently there is also a low pass notch filter, however this doesn’t work as I expected. Anyway, still useful as a kind of variable attenuator.

Filter bandwidth – there is a bandpass filter which isn’t quite “sharp” at all, centered at the center frequency. Kind of additional filter, easier to manipulate than the rest of them, but not that powerful. May provide some extra dynamic range. Behaves kind of weird when gqrx decimation is used.

As far as the gain stages are concerned – the LNA gain is the first stage and thus the most important – it determines the SNR. Mixer gain is less important (unless the signal is too weak). The VGA gain should be almost always set to zero as it doesn’t contribute to the SNR at all while keeping the dongle warmer and so more thermal noise.

In the R820T2 i2c register specs there are some other interesting features, currently unexposed. One of them is the band selection filter (lo/med/high) which apparently is even used in the librtlsdr driver. I found changing that has absolutely no effect for me unfortunately. It might have provided opportunities for better reception around the “verge” where the librtlsdr driver switches them (approx. at 310MHz and 588MHz). But switching them has absolutely no effect.

Источник

Быстрый старт с RTL-SDR в Linux

Сегодня рассмотрим вариант быстрого старта с RTL-SDR донглами на базе RTL2832 в Linux, немного коснемся софта, сделаем проект простого FM приемника в GNU Radio Companion и рассмотрим некоторые варианты доработок и хаков данного приемника. Знаю, что таких статей в интернете немало, но большинство из них обрывочны или не касаются работы в Linux, так что пусть в блоге будет данный материал как напоминалка, если я что-то забуду со временем.

Небольшая ремарка, я пользуюсь дистрибутивом Elementary OS 5.0 Juno на базе Ubuntu 18.04.2 LTS, поэтому все ниже описываемое будет работать для любых Ubuntu-based дистрибутивов.

Для начала рассмотрим технические характеристики RTL-SDR приемника и как его заставить работать в Linux как можно быстрее. Начнем.

  • Частоты приема от 24МГц до 1766МГц
  • 8-битный АЦП
  • Частота дискретизации 3.2MS/s
  • Полоса пропускания 2.4МГц

Установка драйвера для работы RTL-SDR

  • Открываем терминал и переходим в домашнюю директорию пользователя.
  • Обновляем репозитории sudo apt update
  • Устанавливаем необходимые утилиты для сборки драйвера
  • Устанавливаем libusb-1.0-0-dev библиотека C, дающая общий доступ к USB устройствам
  • Получаем и собираем драйвер RTL2832U Osmocom
  • Далее нужно внести в blacklist драйвер по умолчанию, который загружается для TV устройства, т.к. он не работает как SDR и будет конфликтовать с новым драйвером. В директории /etc/modprobe.d создаем новый файл blacklist-rtl.conf с одной строкой blacklist dvb_usb_rtl28xxu . После чего необходимо перезагрузить компьютер.
  • Теперь можно проверить работу донгла командой rtl_test -t и получим в терминале вот такую картинку:

Запускаем Gqrx для приема сигналов эфира

Установить программу весьма несложно, инструкция здесь. Настройки приемника максимально простые, я не буду подробно останавливаться на их назначении, потому что данная программа использовалась мной лишь для теста. Просто приложу здесь скриншот настроек:

Проверяем на FM диапазоне, если у вас все как на этой картинке, то приемник работает, только не забудьте подключить антенну 🙂

Интересный факт, Gqrx не работает с приемником, включенным через USB2.0 хаб, почему я не выяснил.

В общем то из интересного здесь то, что Gqrx работает на базе GNU Radio — open source инструментария для цифровой обработки сигналов.

Читайте также:  Коробочный вариант windows 10

Собираем FM приемник в gnuradio-companion

Gnuradio companion (GRC) это программа, которая позволяет в визуальном редакторе собрать схемы обработки сигналов с приемника и прикрутить к ним интерфейс на базе wxWidgets или Qt. Сборка схемы осуществляется базовыми блоками программы. На скриншоте ниже показана, собранная мной, схема обработки сигнала FM и его вывода на звуковую карту моего ноутбука:

Рассмотрим ее немного более подробно. Картинка кликабельна.

Первый блок, который следует добавить в любую схему обработки сигнала, это конечно источник сигнала, из которого будут выбираться отсчеты с определенной частотой дискретизации. Для радиосигнала, это конечно же I и Q квадратуры. В моем случае это RTL-SDR source из категории Sources в правой панели GRC. Настраивается блок двумя переменными samp_rate — частота выборок сигнала, равная 2MS/s, и freq — это частота несущей входного сигнала, я настроился на 102.8МГц.

Для того, чтобы звуковая карта могла что-то принять надо понижать частоту выборок до допустимого значения и делать мы это будем последовательно в нескольких блоках и начнем с блока Rational Resampler (передискретизация с рациональным коэффициентом, находится в разделе resamplers). Понижение частоты выборок осуществляется коэффициентом Decimation (Децимация).

Децима́ция (от лат. decimatio, от decem — «десять») — уменьшение частоты дискретизации дискретного во времени сигнала путём прореживания его отсчётов.

В данном случае будет использоваться коэффициент int(samp_rate/500e3) и в результате получим коэффициент 4. Значение 500e3 было выбрано, исходя из параметра Quadrature Rate демодулятора FM (который устанавливается далее), равного 500ks/s.

Далее в категории Filters ищем блок Low Pass Filter (фильтр нижних частот) и вставляем его в нашу схему. Устанавливаем частоту среза в 100кГц с помощью переменной cutoff.

Теперь подключаем демодулятор сигнала FM из категории modulators, который называется WBFM Receive. В нем по умолчанию параметр Quadrature Rate равен 500кГц, таким его и оставим. Также в этом блоке производится еще раз децимация с коэффициентом 10, что уменьшает частоту выборок до 50ks/s.

После демодулятора нужно передать поток данных в звуковую карту, для этого надо уменьшить частоту выборок сигнала до 48кГц, это тот поток, который может обработать любая современная звуковая карта. И снова для этого будем использовать блок Rational Resampler, только теперь также используем параметр Interpolation (интерполяция, предварительное умножение со сглаживанием) с коэффициентом 48.

Multiply Const (умножитель на константу, находится в разделе math operators) позволяет регулировать громкость, путем изменения параметра Constant, который будет связан с графическим элементом QT GUI Range через его id volume.

И последний блок это Audio Sink, принимает в себя поток данных с определенным Sample Rate и выдает их в звуковую карту компьютера.

Я сперва заметил, но не мог понять, почему некоторые коннекторы блоков синие, а некоторые оранжевые, после нашел почему. Синие относятся к комплексным данным (Complex data, которые имеют реальную и мнимую составляющие). Оранжевые коннекторы показывают тип данных Float. И что самое интересное, в настройках блоков можно явно преобразовывать типы данных.

После запуска схемы получаем вот такой интерфейс нашего приемника:

Максимально простой, но послушать радио уже можно.

Некоторые варианты доработок и хаков с RTL-SDR

Теперь хотел бы оставить несколько ссылок с интересными хаками и модификациями для RTL-SDR приемников, некоторые я уже проделал, некоторые нет, но это уже история для другой статьи.

http://superkuh.com/rtlsdr.html — большая подборка всевозможных доработок и хаков.

https://eax.me/r820t2-module/ — использование тюнера R820T2 в своих проектах.

https://eax.me/rtlsdr-spectrum-analyzer/ — используем RTL-SDR в качестве дешевого анализатора спектра.

https://eax.me/rtlsdr-mod/ — здесь описаны несколько очень простых модификаций приемника.

Думаю, что в ближайшее время будет больше статей по тематике SDR в блоге, так что подписывайтесь на мой канал в telegram и ждите скорых анонсов.

Похожие публикации по теме:

Как запустить Guake из Double Commander?

Сниффер Zigbee трафика в Linux

LAUNCHXL-CC26x2R1 подготовка рабочего окружения в Linux

Мой список программ для Linux (2 года спустя)

2 Ответов в “ Быстрый старт с RTL-SDR в Linux ”

Статья понравилась своей доходчивостью. Хотел подписаться в телеграмме — но не смог.

Добрый день. Канал открыт и доступен по ссылке https://t.me/blog_radiotechkz Чат для общения здесь https://t.me/radiotechkz

Добавить комментарий Отменить ответ

Донец Антон

автор блога, разработчик электроники и программист

Источник

Оцените статью