DVB-T Stick als SDR-Receiver/Installation der Software Update

Aus C3MAWiki

Installation der Software

Das Tutorial wurde für ein „frisches“ neuinstalliertes Ubuntu 20.04 LTS erstellt. Bei abweichender Version bzw. Distribution können Anpassungen erforderlich sein. Weiterhin sollte mindestens 1 GB freier Festplattenspeicher auf dem Zielsystem zur Verfügung stehen.

Der Build-Prozess setzt sudo bzw. root Rechte voraus. Diese werden zu Vereinfachung zu Anfang aktiviert und sollten nach Abschluss (mit exit) deaktiviert werden.

sudo su

Die nachfolgende Software benötigt zusätzliche Pakete. Es ist erforderlich diese zu installieren

apt-get update

apt install libtool shtool automake autoconf pkg-config make gcc build-essential gnutls-dev doxygen graphviz git git-core cmake g++ swig libusb-1.0-0-dev libmnl-dev libtalloc-dev libsctp-dev libboost-all-dev libgmp-dev libfftw3-dev libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev liblog4cpp5-dev libzmq3-dev libcppunit-dev liblog4cpp5-dev liborc-0.4-dev portaudio19-dev libqt5svg5-dev libcodec2-dev libgsm1-dev libpcsclite-dev python3-pip python-is-python3 python3-numpy python3-mako python3-sphinx python3-lxml python3-yaml python3-click python3-click-plugins python3-zmq python3-scipy python3-pip python3-gi-cairo python3-pyqt5 python-docutils 

pip3 install numpy scipy mako twisted

SDR-Komponenten

1. In das gewünschte Arbeitsverzeichnis wechseln (bei Bedarf mit mkdir anlegen)

rtl-sdr bauen

Mit folgenden Befehlszeilen den Quellcode der SDR-Software herunterladen und compilieren. Um eine spätere Nutzung ohne sudo bzw. root Rechte zu ermöglichen wird die UDEV Unterstützung aktiviert.

git clone https://github.com/osmocom/rtl-sdr.git
cd rtl-sdr/
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
make install
ldconfig
 cp ../rtl-sdr.rules /etc/udev/rules.d/
cd ../..

Kopieren der UDEV Regeln

cp ../rtl-sdr.rules /etc/udev/rules.d/
cd ..

Sofern der SDR USB-Stick eingesteckt ist diese nun abziehen und nachfolgendes ausführen:

rmmod dvb_usb_rtl28xxu
echo "blacklist dvb_usb_rtl28xxu" >> /etc/modprobe.d/blacklist.conf

Nun den SDR USB-Stick eingestecken und diesen testen:

Tuning range

rtl_test -t

Max. sample rate

rtl_test -s 3.2e6

Gnuradio 3.8 bauen

Gnuradio wird zur Verarbeitung und Darstellung der SDR-Signale verwendet.

git clone --recursive https://github.com/gnuradio/gnuradio.git
cd gnuradio
git checkout maint-3.8
git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3  ../
make -j 4

Zur Vermeidung von Problemen sollte Gnuradio getestet werden. Es sollten alle Tests mit "Passed" bestanden werden, sonst können im Betrieb Probleme auftreten.

make test

Installation von Gnuradio

make install
cd ../..

Umgebungsvariablen (sowohl in der root als auch in der user shell) setzen.

echo 'export PYTHONPATH=/usr/local/lib/python3/dist-packages:/usr/local/lib/python2.7/site-packages:$PYTHONPATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export PYTHONPATH=/usr/local/lib/python3/dist-packages:/usr/local/lib/python2.7/site-packages:$PYTHONPATH' >> ~/.profile
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.profile

libosmocore bauen

libosmocore ist eine Bibliothek mit verschiedenen Hilfsfunktionen, die von nachfolgenden Programmen benötigt werden.

Hier ist zu beachten, dass bei alle Versionen neuer als 1.2.0 die GSM Test-Cases mit Fehlern beendet wurden und sich dies als Probleme bei der späteren Anwendung bestätigte. Daher wir hier die Version 1.2.0 genutzt.

git clone https://github.com/osmocom/libosmocore.git
cd libosmocore/
git checkout 1.2.0
autoreconf -i
./configure
make

Mögliche Problemen im Betrieb lassen sich durch testen erkennen, dabei sollten alle Tests mit "OK" bestanden werden. (Treten bei den Tests Fehler auf, dann auf Version 0.9.0 ausweichen.)

make install
ldconfig -i
cd ..

SoapySDR

SoapySDR ist eine herstellerunabhängige und plattformunabhängige SDR-Unterstützungsbibliothek.

git clone  https://github.com/pothosware/SoapySDR.git
cd SoapySDR
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig
cd ../..

SoapySDR-Modul für RTL-SDR

git clone  https://github.com/pothosware/SoapyRTLSDR.git
cd SoapyRTLSDR
mkdir build
cd build
cmake ../
make
make install
ldconfig
cd ../..

gr-osmosdr bauen

gr-osmosdr ist eine Bibliothek für GNU Radio, die OsmoSDR Quellblöcke bereitstellt. Für ein fehlerfreies Build werden libosmo-dsp und gr-iqbal benötigt.

git clone https://github.com/osmocom/libosmo-dsp.git
cd libosmo-dsp
autoreconf -i
./configure
make
make install
ldconfig
cd ..
git clone https://github.com/osmocom/gr-iqbal.git
git checkout gr3.8
mkdir build
cd build
cmake ../
make -j 4
make install
ldconfig
cd ../..

Es ist erforderlich gr-osmosdr passend zum zuvor gebauten Gnuradio 3.8 zu compilieren.

git clone https://github.com/osmocom/gr-osmosdr.git
cd gr-osmosdr/
git checkout gr3.8
mkdir build
cd build/
cmake ../
make -j 4
make install
ldconfig
cd ../..


gr-gsm bauen

Gr-gsm ist ein Set von Tools für den Empfang von GSM-Übertragungen, das mit jeder Software-Funkhardware funktioniert, die in der Lage ist, GSM-Signale zu empfangen. Es ist erforderlich gr-gsm passend zum zuvor gebauten Gnuradio 3.8 zu compilieren.

git clone https://github.com/velichkov/gr-gsm.git
cd gr-gsm
git checkout maint-3.8
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3  ../
make -j 2
make install
ldconfig -i
cd ../..

GQRX bauen

Gqrx ist ein Open Source Software Defined Radio Receiver (SDR).

git clone https://github.com/csete/gqrx.git
cd gqrx
mkdir build
cd build
cmake  ..
make -j 2
make install
cd ../..

Die Software wird wie folgt gestartet:

gqrx

Im Tab "Input controls" sollte die Option "Hardware ACC" aktiviert werden.


Die Frequenz des SDR wird über den Tab "Receiver options" eingestellt.

qspectrumanalyzer

Qspectrumanalyzer ist ein klassischer Spektrum-Analyzer für mehrere SDR Platformen.

git clone https://github.com/xmikos/qspectrumanalyzer.git
cd qspectrumanalyzer
#pip3 install --user .
./setup.py install
cd ..

Die Software wird nach der Installaton wie folgt gestartet:

qspectrumanalyzer

In der Spectrum-Analyzer GUI können alle erforderlichen Parameter eingestellt werden.

gr-scan

gr-scan ist ein Funkspektrum-Scanner basierend auf SDR und GnuRadio.

git clone https://git.zx2c4.com/gr-scan
cd gr-scan

Im Makefile muss LDLIBS um "-llog4cpp" erweitert werden, sonst tritt bei make ein Fehler auf.

make
make install
cd ..

Die Software wird nach der Installaton wie folgt gestartet:

gr-scan