zur Startseite

Druckausgabe von https://privat.albicker.org
Iveco Daily 4x4, Hunde und multithematisches Blog

RTL-SDR als 'Spektrum-Analysator'

veröffentlicht am 23.06.2024 mit 949 Worten - Lesezeit: 5 Minute(n) in * MEDIEN * PROGRAMME *

Inhaltsverzeichnis

 

Seit einem knappen Jahr nutze ich gelegentlich einen kleinen SDR (Software Defined Radio) USB-Stick-Empfänger, mehr dazu habe ich in meinen Artikeln zu DAB-Empfang und sonstigen Funkdiensten beschrieben.

Da kam die Anfrage auf mich zu, bei der Umstellung von herkömmlichem Kabelfernsehen auf Glasfaser zu unterstützen. Da in dem Haushalt kein Internet benötigt wird, soll der reine Kabel-Fernseh-Vertrag des Anbieters genutzt werden.

FTTH-Anschluss
genexis G2120B FiberTwist–Series

Dazu wurden seitens des Anbieters zwei Boxen an die Wand geschraubt, die aus dem Glasfaser-Signal ein für den Fernseher “verdauliches” Antennensignal erzeugen - und es wäre nun schon nett, wenn man am Tag der Umstellung einfach feststellen könnte, ob und welches Signal da nun rauskommt … also habe ich mich etwas umgesehen und bin auf das nachfolgend beschriebene Programm gestoßen.

Programm und Einrichtung

Das Programm ‘Spektrum’

Ich verwende hier das Programm Spektrum von Pavel Šorejs. Es handelt sich um eine Java-Software, die man im verlinkten Github-Repository als Archiv herunterladen kann.
Als Hauptvorteil wird genannt, daß die Software Sweeps über einen großen Frequenzbereich durchführen kann. - genau deshalb möchte ich das auch verwenden. Einstellbar ist der Bereich 24 - 1800MHz, damit ist der Empfangsbereich des Sticks abgedeckt.

Vorbereitung

Zunächst wird der USB-Stick angeschlossen.

RTL-SDR

Ein einfaches lsusb zeigt, daß er vorhanden ist.

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

Als nächstes wird das heruntergeladene Archiv entpackt auf dem Rechner, ich nutze das Verzeichnis /bin im Home-Verzeichnis des angemeldeten Benutzers. Sodann wird in dem dort entpackten Verzeichnis spektrum ein Terminal geöffnet und dort ausgeführt:

~/bin/spektrum$ ./spektrum

Es erscheint ein Auswahlfenster, mit dem (falls mehrere vorhanden sind) der gewünschte Empfänger ausgewählt werden kann:

=Bildbeschreibung=

Und danach kommt dann diese unschöne Meldung:

=Bildbeschreibung=

Das Terminal liefert unterdessen diese Ausgaben:

~/bin/spektrum$ ./spektrum
Loading libs from /home/{benutzername}/bin/spektrum/lib.
Library rtlsdr file /home/{benutzername}/bin/spektrum/lib/librtlsdr.so.
Library rtlpower file /home/{benutzername}/bin/spektrum/lib/librtlpower.so.
Generic RTL2832U OEM: 00000001
ControlP5 2.2.6 infos, comments, questions at http://www.sojamo.de/libraries/controlP5
Reached end of setup.
Loading libs from /home/{benutzername}/bin/spektrum/lib.
Library rtlsdr file /home/{benutzername}/bin/spektrum/lib/librtlsdr.so.
Library rtlpower file /home/{benutzername}/bin/spektrum/lib/librtlpower.so.

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
File config.csv
/home/{benutzername}/bin/spektrum/config.csv
File config.csv exists.
Reached end of makeconfig
loadConfig: Config table config.csv loaded.
startFreq = 167363020 stopFreq = 227695600 binStep = 20000 
    scaleMin = -32 scaleMax =  -32 rfGain = 0 
    fullRangeMin = 24000000  fullRangeMax = 1800000000 
    ifOffset = 0 ifType = 0
deviceDropdown

In den Meldungen wird moniert, daß entweder das Kernelmodul dvb_usb_rtl28xxu oder eine andere Software den Zugriff auf die Empfängerhardware blockiert.

Der Befehl lsmod zeigt: ersteres ist richtig:

~/bin/spektrum$ lsmod
Module                  Size  Used by
(...)
rtl2832                32768  1
i2c_mux                16384  1 rtl2832
dvb_usb_rtl28xxu       45056  1
dvb_usb_v2             53248  1 dvb_usb_rtl28xxu
(...)

Unter einem Kernelmodul versteht man im Allgemeinen einen Teil bzw. eine Erweiterung des Kernels. So sind z.B. alle Hardwaretreiber (z.B. WLAN-Karte, Soundkarte…) als Modul angelegt. Und was hat es jetzt spezifisch mit diesem Modul dvb_usb_rtl28xxu auf sich?

~# modinfo dvb_usb_rtl28xxu
filename:       /lib/modules/6.1.0-21-amd64/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-rtl28xxu.ko
license:        GPL
author:         Thomas Mair <thomas.mair86@googlemail.com>
author:         Antti Palosaari <crope@iki.fi>
description:    Realtek RTL28xxU DVB USB driver
(...)

Es handelt sich also um einen USB-Treiber für den DVB-Stick. Ob der nun spezifisch dafür benötigt wird, wenn der Stick direkt als DVB-Empfänger genutzt wird, das kann ich nicht sagen. DVB-T gibt es nicht mehr, und DVB-T2 kann das Teil nicht.

Der Entwickler schreibt jedenfalls, daß man dieses Kernel-Modul stilllegen soll. Dies geschieht, indem man mit root-Rechten im Verzeichnis /etc/modprobe.d eine Datei rtl-sdr-blacklist.conf anlegt und den Inhalt

blacklist dvb_usb_rtl28xxu

hineinschreibt.
Um nun dem “normalen User” den Zugriff auf den Stick zu ermöglichen, wird auf die gleiche Weise im Verzeichnis /etc/udev/rules.d eine Datei 20.rtlsdr.rules angelegt mit dem Inhalt

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", GROUP="adm", MODE="0666"

Soweit sind die Vorbereitungen abgeschlossen, und ein

~/bin/spektrum$ ./spektrum

startet wie erwartet das Programm. Alternativ läßt sich auch ein Starter für den Desktop erstellen:

=Bildbeschreibung=

Der Praxistest

Geht noch alles?

Nachdem der “originäre Kernel-Treiber” ja deaktiviert wurde durch die beschriebenen Aktionen, lautete die erste Frage: Funktionieren meine bisher genutzten Programme welle.io und gqrx noch?

Antwort: ja, sowohl als auch.
Dieser Art beruhigt konnte ich mich daran machen, mit dem neuen Programm ein bißchen herumzuspielen, nachfolgend zwei einfache Beispiele:

Erste spektrale Übersicht

Nachdem welle.io ja so schöne DAB-Stationen spielt, wollte ich mal sehen, wie diese über das Band verteilt sind - und wie die Empfangsstärken aussehen relativ zueinander:

DAB-Bandbelegung dargestellt mit Spektrum

Kanal Frequenz Multiplex Sender
5C 178,352 MHz DR Deutschland u. a. DLF-Programmen, Schwarzwald- und Klassik-Radio …
9B 204,640 MHz D2-MUX “Antenne DE” Absolut… -Programme, RTL, Oldie-Antenne, 80er- und 90er-Hitradios u. a.
9D 208,064 MHz SWR BW N(ord) baden-württembergische Programme des SWR
11B 218,640 MHz OAS BW (privat) Seefunk, Radio 7, Radio Regenbogen, bigFM u. a.

Noch ein Beispiel

In der Gesamtübersicht (maximale Bandbreite, 24 - 1800 MHz) taucht noch ein weiteres Signalbündel auf, das etwas herangezoomt so aussieht:

DVB-T Bandbelegung dargestellt mit Spektrum

Hier handelt es sich um die noch verbliebenen terrestrischen Fernsehsender in der Umgebung (DVB-T2):

Sender Kanal Frequenz
Pforzheim (Langenbrand) 21 474 MHz
Pforzheim (Langenbrand) 24 498 MHz
Pforzheim (Langenbrand) 27 522 MHz
Pforzheim (Langenbrand) 33 570 MHz
Pforzheim (Langenbrand) 35 586 MHz
Karlsruhe (Grünwettersbach) 41 634 MHz
Pforzheim (Langenbrand) 44 658 MHz

Anmerkung: Die als ‘Pforzheim (Langenbrand)’ gekennzeichneten Frequenzen auf den Kanälen 21, 24, 27, 35 und 44 werden von beiden Standorten ausgestrahlt, der Kanal 33 ausschließlich von Pforzheim (Langenbrand) und Kanal 41 ausschließlich von Karlsruhe (Grünwettersbach), beide strahlen wohl das ZDF aus.

Und wie ist das nun mit dem Kabelfernsehen?

Hier zum Abschluss noch der Plot, der sich am Ausgang der beiden oben gezeigten Kästchen zur Wandlung aus Glasfaser zum normalen Kabelfernseh-Signal ergibt:

=Bildbeschreibung=

Das sieht gut aus - sehr gleichmäßiger Pegel über das Spektrum. Und der Fernseher hat nach Suchlauf auch die bekannten Programme alle schön wieder gefunden 😄.

 


weitere Artikel