Меню Рубрики

820t2 sdr драйвера для linux

Быстрый старт с 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 инструментария для цифровой обработки сигналов.

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

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

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

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

Читайте также:  Restore linux deleted files

Для того, чтобы звуковая карта могла что-то принять надо понижать частоту выборок до допустимого значения и делать мы это будем последовательно в нескольких блоках и начнем с блока 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 и ждите скорых анонсов.

Источник

Обновлен модифицированный драйвер для R820T

Перенесен на Net 4.6.

По причине некорректной работы убраны АРУ.

Читайте также:  Force kill process linux

Теперь драйвер не заменяет родной, а устанавливается дополнительно (смотрите ReadMe.txt).

С этим драйвером нет необходимости использовать автоматическую коррекцию IQ баланса. Для R820T необходимо только удаление постоянной составляющей и теперь оно встроено в драйвер.

полностю обновил софт на кв опять не работает и нет децемации

Странно. А у меня все работает по моему даже лучше чем старый драйвер. И на Win7 x64 и x32. Децимация есть, но только прием на КВ с прямой оцифровкой сигнала с антенны что-то совсем плох. С родным драйвером значительно лучше. Но зато теперь донгл стал перестраиваться выше 14400 KHz.

Hello, can you please tell me how to make it work with SDR sharper?

подскажите. Немогу запустить SDR-sharp под win XP скачал установщик,он создал папку,скачал и что то распаковал. а в папке куда распаковывал только установщик драйверов.Заранее сппсибо

Читайте эту новость

Как установить этот драйвер?

Если вы используете последнюю версию SDR# – просто скопируйте все файлы из архива в папку SDRSharp. Драйвер загрузится автоматически.

Источник

Трудности с Linux

Заметки по ходу настройки “разного” в Linux. Хочу разобраться – читаю исходники. Программирование, администрирование, микроэлектроника, фотографирование и пр.

Страницы

четверг, 30 января 2014 г.

Проба программного приёмника (SDR) из DVB-T адаптера Realtek RTL2832U в Ubuntu

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

На аукционе ebay.com (как теперь покупать?) был год назад куплен приёмник цифрового телевидения DVB-T именно для целей программного радио. Можно найти на aliexpress.com и у других китайских товарищей.

Теперь дошла очередь до подключения RTL-SDR к Linux. Проведу несколько экспериментов.

Подключение в Ubuntu 13.10

Как устройство определяется в Ubuntu 13.10:

.
[34983.059051] usb 3-1: new high-speed USB device number 3 using xhci_hcd
[34983.090097] usb 3-1: New USB device found, idVendor=0bda, idProduct=2838
[34983.090104] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[34983.090108] usb 3-1: Product: RTL2838UHIDIR
[34983.090111] usb 3-1: Manufacturer: Realtek
[34983.090114] usb 3-1: SerialNumber: 00000000
[34983.168308] usb 3-1: dvb_usb_v2: found a ‘Realtek RTL2832U reference design’ in warm state
[34983.169246] usbcore: registered new interface driver dvb_usb_rtl28xxu
[34983.241594] usb 3-1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[34983.241627] DVB: registering new adapter (Realtek RTL2832U reference design)
[34983.253899] usb 3-1: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T)).
[34983.259745] r820t 8-001a: creating new instance
[34983.272964] r820t 8-001a: Rafael Micro r820t successfully identified
[34983.280850] Registered IR keymap rc-empty
[34983.281011] input: Realtek RTL2832U reference design as /devices/pci0000:00/0000:00:10.0/usb3/3-1/rc/rc0/input11
[34983.281127] rc0: Realtek RTL2832U reference design as /devices/pci0000:00/0000:00:10.0/usb3/3-1/rc/rc0
[34983.287250] IR RC5(x) protocol handler initialized
[34983.287699] IR NEC protocol handler initialized
[34983.292724] IR RC6 protocol handler initialized
[34983.293159] IR JVC protocol handler initialized
[34983.293592] usb 3-1: dvb_usb_v2: schedule remote query interval to 400 msecs
[34983.293794] IR Sony protocol handler initialized
[34983.293857] input: MCE IR Keyboard/Mouse (dvb_usb_rtl28xxu) as /devices/virtual/input/input12
[34983.294358] IR MCE Keyboard/mouse protocol handler initialized
[34983.295742] IR SANYO protocol handler initialized
[34983.298048] lirc_dev: IR Remote Control driver registered, major 250
[34983.300295] rc rc0: lirc_dev: driver ir-lirc-codec (dvb_usb_rtl28xxu) registered at minor = 0
[34983.300299] IR LIRC bridge handler initialized
[34983.308456] usb 3-1: dvb_usb_v2: ‘Realtek RTL2832U reference design’ successfully initialized and connected

Читайте также:  Работа с pdf в linux

$ lsusb

Bus 003 Device 003: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T

где – “0bda” (VID – vendor id) и “2838” (PID – product id).

Установка GnuRadio

$ sudo apt-get install gnuradio

Также можно установить из исходных кодов, но я выбрал из репозитория, что быстрее.

Сборка из исходных кодов RTL-SDR

Перед сборкой rtl-sdr надо установить пакет libusb-1.0-0-dev, а также иметь установленной утилиту git.

$ sudo apt-get install libusb-1.0-0-dev

Подробно сборка RTL-SDR описана в [1]. Здесь кратко.

Загрузка исходных кодов RTL-SDR. Можно проделать в домашней директории, либо в директории для проектов (у меня

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

/dev$ sudo make install

Тестирование после сборки

$ sudo rtl_test -t
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000013

Using device 0: Generic RTL2832U OEM

Kernel driver is active, or device is claimed by second instance of librtlsdr.
In the first case, please either detach or blacklist the kernel module
(dvb_usb_rtl28xxu), or enable automatic detaching at compile time.

usb_claim_interface error -6
Failed to open rtlsdr device #0.

Надо выгрузить модули ядра, привязанные к устройству (это всё же телеприёмник):

$ sudo rmmod dvb_usb_rtl28xxu
$ sudo rmmod rtl2830
$ sudo rmmod dvb_usb_v2

$ sudo rtl_test -t
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000000

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
Sampling at 2048000 S/s.
No E4000 tuner found, aborting.

Откуда становиться понятно, что тюнер “Rafael Micro R820T”. Это один из поддерживаемых тюнеров, с диапазоном 24 – 1766 МГц.

Простейшее прослушивание УКВ-радио (FM)

RTL-FM – консольная программа для декодирования FM. Aplay – консольное проигрывание звука.

$ sudo rtl_fm -f 91.5e6 -s 200000 -r 48000 – | aplay -r 48k -f S16_LE

Вывод команды:

Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000000

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Tuner gain set to automatic.
Tuned to 91800000 Hz.
Oversampling input by: 6x.
Oversampling output by: 1x.
Buffer size: 6.83ms
Sampling at 1200000 S/s.
Output at 200000 Hz.
Воспроизведение Сырые данные ‘stdin’ : Signed 16 bit Little Endian, Частота 48000 Гц, Моно
недобор. (не менее 108,415 мс длинной)

В Петербурге слышно радио на частоте 91.5МГц.

Выводы

– Пока просто приём радио. Что-то больше – это уже радиолюбительство.
– Можно записывать эфир в файл.
– Есть графические программы такие как SDR#, Linradio.

Источник

Популярные записи

Linux расшарить папку по сети
Как установить eclipse на linux
Взлом wifi в linux mint
Linux install visual studio code
Медиа гет для linux
Galaxy tab 3 linux
Adblock
detector