Monday, October 27, 2014

How to install Gqrx SDR software on Linux using your RTL dongle or Softrock receivers.

How to install the Gqrx SDR software on Linux using your RTL dongle or Softrock receivers. (Ubuntu)

RTL _dongle

The RTL Dongles is available from http://www.giga.co.za/ocart/index.php?route=product/category&path=59_63
Gqrx SDR software

Update the repository files and update your Linux to the latest versions.
sudo apt-get update
sudo apt-get upgrade

Now install the libraries ... get coffee
Now install the libraries for GQRX SDR on you Linux (Ubuntu)

sudo apt-get install cmake python-cheetah doxygen libboost-all-dev python-sphinx libfftw3-dev python-numpy libqwt-dev libgsl0-dev python-wxgtk2.6 qtcreator libpulse-dev swig libcppunit-dev libusb++-dev libusb-dev libusb-1.0-0-dev maybe some more coffee ;-)

For Ubuntu 16.04 I had to add the following libraries
sudo apt-get install qtdeclarative5-dev libqt5svg5*

Build and Install GNU Radio libraries


Create a directory where you will install the SDR software in your favorite install directory.
mkdir gqrx
goto directory you created.
cd gqrx
get the gnuradio source code
git clone http://git.gnuradio.org/git/gnuradio.git
if you are using the old git before 1.6 then use this command
git clone git://gnuradio.org/gnuradio

it looks like for Ubuntu 16.04 you need to use the following git clone

git clone --recursive http://git.gnuradio.org/git/gnuradio.git
You should see
Cloning into 'gnuradio'...
got to the newly created directory gnuradio when the cloning is done
cd gnuradio
make a build directory
mkdir build
goto the build directory
cd build
Compile gnuradio
cmake ../
if you get an error -- WARNING: Found a known bad version of Boost (v104601). Disabling.
Then run cmake -DENABLE_BAD_BOOST=True ../
This can take a couple of hours depending on the speed of you Linux server.
make
Now install the newly compiled binaries into the required directories
sudo make install
Now load the the gnu drivers
sudo ldconfig

Build and Install RTL-SDR drivers
go to your favorite install directory
cd ../../../
get the latest source code from osmocom.org
git clone git://git.osmocom.org/rtl-sdr.git
go to the newly created directory
cd rtl-sdr/
Now compile the rtl drivers
create the build directory
mkdir build
go to the build directory
cd build
compile the code
cmake ../
make
now install the compiled binaries
sudo make install
load the drivers
sudo ldconfig

now copy the content of the file rtl-sdr.rules and append it to the /etc/udev/rules.d/70-persistent-cd.rules file

use your favorite editor

vi rtl-sdr.rules  and copy the content.

then open the file /etc/udev/rules.d/70-persistent-cd.rules

sudo vi /etc/udev/rules.d/70-persistent-cd.rules and append the previous files content at the end
in ubuntu 16.04 the file name was /etc/udev/rules.d/rtl-sdr.rules

This is how my file looked like

# This file maintains persistent names for CD/DVD reader and writer devices.
# See udev(7) for syntax.
#
# Entries are automatically added by the 75-cd-aliases-generator.rules
# file; however you are also free to add your own entries provided you
# add the ENV{GENERATED}=1 flag to your own rules as well.
# hp_DVD_RW_AD-7581S (pci-0000:00:1f.2-scsi-0:0:0:0)
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.2-scsi-0:0:0:0", SYMLINK+="cdrom", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.2-scsi-0:0:0:0", SYMLINK+="cdrw", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.2-scsi-0:0:0:0", SYMLINK+="dvd", ENV{GENERATED}="1"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.2-scsi-0:0:0:0", SYMLINK+="dvdrw", ENV{GENERATED}="1"
#************************* below is what was appended ****************
# original RTL2832U vid/pid (hama nano, for example)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2832", MODE:="0666"
# ezcap EzTV668 (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", MODE:="0666"
# Terratec Cinergy T Stick Black (rev 1) (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00a9", MODE:="0666"
# Terratec NOXON rev 1 (FC0013)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00b3", MODE:="0666"SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00b4", MODE:="0666"SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00b7", MODE:="0666"SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00c6", MODE:="0666"
# Terratec Cinergy T Stick RC (Rev.3) (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00d3", MODE:="0666"
# Terratec T Stick PLUS (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00d7", MODE:="0666"
# Terratec NOXON rev 2 (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0ccd", ATTRS{idProduct}=="00e0", MODE:="0666"
# PixelView PV-DT235U(RN) (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1554", ATTRS{idProduct}=="5020", MODE:="0666"
# Astrometa DVB-T/DVB-T2 (R828D)SUBSYSTEMS=="usb", ATTRS{idVendor}=="15f4", ATTRS{idProduct}=="0131", MODE:="0666"
# Compro Videomate U620F (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="185b", ATTRS{idProduct}=="0620", MODE:="0666"
# Compro Videomate U650F (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="185b", ATTRS{idProduct}=="0650", MODE:="0666"# Compro Videomate U650F (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="185b", ATTRS{idProduct}=="0650", MODE:="0666"
# Compro Videomate U680F (E4000)SUBSYSTEMS=="usb", ATTRS{idVendor}=="185b", ATTRS{idProduct}=="0680", MODE:="0666"
# Sweex DVB-T USB (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1f4d", ATTRS{idProduct}=="a803", MODE:="0666"
# GTek T803 (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1f4d", ATTRS{idProduct}=="b803", MODE:="0666"
# Lifeview LV5TDeluxe (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1f4d", ATTRS{idProduct}=="c803", MODE:="0666"
# MyGica TD312 (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1f4d", ATTRS{idProduct}=="d286", MODE:="0666"
# PROlectrix DV107669 (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1f4d", ATTRS{idProduct}=="d803", MODE:="0666"
# Zaapa ZT-MINDVBZP (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b80", ATTRS{idProduct}=="d398", MODE:="0666"
# Twintech UT-40 (FC0013)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b80", ATTRS{idProduct}=="d3a4", MODE:="0666"
# ASUS U3100MINI_PLUS_V2 (FC0013)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b80", ATTRS{idProduct}=="d3a8", MODE:="0666"
# Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1d19", ATTRS{idProduct}=="1101", MODE:="0666"
# Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1d19", ATTRS{idProduct}=="1102", MODE:="0666"# Dexatek DK 5217 DVB-T Dongle (FC2580)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1d19", ATTRS{idProduct}=="1103", MODE:="0666"
# MSI DigiVox Micro HD (FC2580)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1d19", ATTRS{idProduct}=="1104", MODE:="0666"
# DigitalNow Quad DVB-T PCI-E card (4x FC0012?)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0413", ATTRS{idProduct}=="6680", MODE:="0666"
# Leadtek WinFast DTV Dongle mini D (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0413", ATTRS{idProduct}=="6f0f", MODE:="0666"
# Genius TVGo DVB-T03 USB dongle (Ver. B)SUBSYSTEMS=="usb", ATTRS{idVendor}=="0458", ATTRS{idProduct}=="707f", MODE:="0666"
# GIGABYTE GT-U7300 (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b80", ATTRS{idProduct}=="d393", MODE:="0666"
# DIKOM USB-DVBT HDSUBSYSTEMS=="usb", ATTRS{idVendor}=="1b80", ATTRS{idProduct}=="d394", MODE:="0666"
# Peak 102569AGPK (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b80", ATTRS{idProduct}=="d395", MODE:="0666"
# SVEON STV20 DVB-T USB & FM (FC0012)SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b80", ATTRS{idProduct}=="d39d", MODE:="0666"
# SVEON STV21 DVB-T USB & FMSUBSYSTEMS=="usb", ATTRS{idVendor}=="2b80", ATTRS{idProduct}=="d3b0", MODE:="0666"


Building and Install gr_osmoSDR

cd ../../
git clone git://git.osmocom.org/gr-osmosdr
cd gr-osmosdr/
mkdir build
cd build/
cmake ../ -Wno-dev
make
sudo make install
sudo ldconfig



Building and Install Gqrx with command line.

git clone https://github.com/csete/gqrx.git gqrx.git
cd gqrx.git
mkdir build
cd build
cmake ..

make
sudo make install
If you want to build the code using the Qt development environment then follow the steps below

cd ../../
git clone https://github.com/csete/gqrx.git
cd gqrx
qtcreator ./gqrx.pro

A new window will open (the QT compiler).
When it opens click the build menu then the build all option.

QT Compiler

you should see The process "/usr/bin/make" exited normally.

Plug in your RTL dongle.
Now run gqrx.
gqrx

Select Yes
GQRX Should now be open. On the first run you will be prompted for a device listing.

Select your SDR (in my case RTL dongle)

 In the device drop down menu select "ezcap USB 2.0 DVB-T/DAB/FM Dongle", then continue to the main GQRX window.

Select File->Start DSP. You should now be receiving something.
Tune to a local radio station between 88-108Mhz FM.
select Wide FM Stero as the Mode Type.


Now connect a proper external antenna to your RTL dongle or Softrock HF/VHF kit.
Hope you have lost of fun ;-)

Here is a video of GQRX using the 100Khz to 17Ghz RTL dongle in direct conversion mode.


How to configure your direct conversion dongle.

Here is the screen-shot of the configuration on Linux for Gqrx
  1. Device Select other
  2. Device String rtl=0,direct_sample=2 (possibly 0/1/2) (This number could differ depending on which pin was wired via balin)
 
 
Device String rtl=0,direct_sample=2
Here is a picture of the 100KHX to 1.7Ghz rtl dongle
100Khz to 1.7Ghz RTL direct conversion dongle
They are available at http://www.giga.co.za/ocart/index.php?route=product/product&path=59&product_id=178