GQrx - kompilacja ze źródeł

GQrx 2.11.4Istnieje (pod Linuxem) kilka ciekawych programów obsługujących urządzenia SDR. Niewątpliwie jednym z nich jest  program GQrx, autorstwa Alexandru Csete OZ9AEC, licencjonowane na zasadach Powszechnej Licencji Publicznej GNU (GNU General Public License, często nazywanej w skrócie GNU GPL).

Fakt, że autorem programu jest krótkofalowiec powoduje, że większość oczekiwań Hams'iaków zostało spełnionych. Sterując przy pomocy GQrx wiele urządzeń SDR, w tym niedrogie odbiorniki DVB-T (stick, dongle) (z układami: RTL2832U i 820T/820T2 "na pokładzie" wraz ze sterownikami RTL-SDR) możemy odbierać sygnały radiowe (RF, emisje: AM, FM (mono, stereo, wąskopasmowa), SSB (LSB,USB, DSB, specjalny tryb FM dla NOAA APT) w szerokim spektrum częstotliwości.

Dużą zaletą jest to, że GQrx pozwala zdalnie sterować urządzenianiami wykorzystując w tym celu protokoły sieciowe (TCP). Można również wykorzystująć protokoł UDP monitorować (odebrać, słuchać, zapisywać) sygnał audio. Ewentualnie przesłać go do "zewnętrznego demodulatora".

Podobnie jak inne programy GQrx (oraz tradycyjne odbiorniki) może przetworzyć wyłącznie sygnał, który "usłyszy". Dlatego niezbędna będzie: dobra antena, urządzenie SDR (którego parametry użytkowe często, choć - niestety - nie zawsze są pochodną ceny). Dodatkową zaletą programu jest: dostępność kodu źródłowego oraz bogata dokumentacja autorstwa Alexandru Csete OZ9AEC.

Opis instalacji (i związanych z tym zależności) Autor umieścił na stronie projektu. Oczywiście można też w sieci odszukać właściwe pakiety i zainstalować odpowiednie binaria. Jednak wybrałem drogę może nieco dłuższą, ale ciekawszą.

Warto jednak zwrócić uwagę na fakt, że na stronie: Install Gqrx SDR on Ubuntu Linux opisano instalację programu z wykorzystaniem Personal Package Archive (PPA). Włącznie z usunięciem z systemu wcześniejszych wersji GQrx.

Natomiast gdy po ściągnięciu źródeł (tu w wersji. 2.11.5) zajrzymy (WARTO!) do pliku README.md, dział: Installation from source (Instalacja ze źródeł) poznamy nie tylko wymagania związane z samym procesem kompilacji. Dowiemy się z jakimi programami (modułami) współpracuje lub je wykorzystuje GQrx.

Ten opis dotyczy instalacji (wymaganego środowiska, bibliotek oraz samego programu) pod Linuxem, dystrybucja: Mint 19 Cinnamon 3.8.8 (środowisko graficzne), jądro: 4.15.0-29-generic (z późniejszymi zmianami) w trybie znakowym (w oknie terminala).

Potrzebne narzędziaKompilując GQrx na bazie źródeł udostępnionych na SourceForge koniecznym będzie zainstalowanie dodatkowych narzędzi. Ich instalację opisałem w: Automake, build-essential, Cmake... na dobry start. Początkujący - tak mi się wydaje - winni od niego zacząć.

By móc skompilować ze źródeł muszą być spełnione następujące zależności, tj. zainstalowane pakiety:

  • GNU Radio 3.7, zawierający następujące komponenty: gnuradio-runtime, gnuradio-analog, gnuradio-digital, gnuradio-blocks, gnuradio-filter, gnuradio-fft, gnuradio-audio, gnuradio-pmt,
  • gnuradio-osmosdr z http://cgit.osmocom.org/cgit/gr-osmosdr/, pulseaudio lub portaudio (wersja dla Linux'a),
  • Qt 5 z: Core, komponenty graficznego interfejsu użytkownika (GUI) i sieciowe (Network), Widgets, Svg (tylko runtime),
  • pkg-config,
  • cmake (v>= 3.2.0) jeśli chcesz skorzystać z cmake podczas kompilacji. I ja tę drogę wybrałem.

W pliku README.md opisana jest również kompilacja z wykorzystanie QTCreatora, lecz jej nie wykonywałem. I dlatego też nie opisuję jej.

W strukturze moich katalogów znajduje się katalog SDR, w którym przechowuję wszystkie zbiory związane z obsługą urządzeń SDR. Ułatwia to odnalezienie oraz aktualizację potrzebnych plików. Pozwala też uniknąć bałaganu w zasobach.

Zanim: ściągniemy źródła, skonfigurujemy je, skompilujemy czy zainstalujemy pliki wykonalne by wejśc do tego katalogu winniśmy wydać polecenie (tekst wytłuszczony):

~ $ cd ~/SDR

Klonowanie zasobówSklonowanie zasobów repozytorium za pomocą polecenia git (tekst wytłuszczony).

"Automatycznie" zostanie utworzona jest odpowiednia struktura katalogów i plików (w tym katalog o nazwie: ~/SDR/gqrx.git - bardzo ważne, gdyż wszystki czynności dotyczące instalacji ze źródeł, ale również ewentualnej deinstalacji winny być wykonywane z poziomu tego katalogu):

~/SDR $ git clone https://github.com/csete/gqrx.git gqrx.git

Teraz należy wejść do katalogu gqrx.git:

~/SDR $ cd gqrx.git

Stworzenie katalogu build i wejście do niego...

Ponieważ w kolejnym kroku zmienisz strukturę katalogów, bo dodasz nowy i bardzo istotny katalog build zanim wykonasz podane polecenia sprawdź czy jesteś w katalogu: ~/SDR/gqrx.git/:
Popatrz na rysunek z prawej: odpowiednie polecenia tworzące katalog (mkdir build) oraz wejścia do tego katalogu (cd build) wykonano jako dwa procesy, wywołane w jednej linii.

Zwróć uwagę na to, że polecenia rozdzielone zostały średnikiem (nie dwukropkiem!!!). Dopiero na końcu linii (po drugim średniku) wciskamy klawisz Enter, co spowoduje, że obie komendy zostaną kolejno wykonane. I znajdziesz się w katalogu: ~/SDR/gqrx.git/build/. To wynik poniższego listingu:

~/SDR/gqrx.git/ $ mkdir build; cd build;

Cmake przy pracy...W: Automake, build-essential, Cmake... na dobry start wśród dodatkowych pakietów jakie muszą zostać zainstalowane wymieniony jest cmake.Kompilacja właściwa.... :)

Nie kompiluje on programu samodzielnie, a tworzy pliki z regułami kompilacji Makefile (w systemie GNU/Linux).

Autor zwraca uwagę na fakt, że w przypadku kłopotów z kompilacją (objawiających się m.in. powolnym działaniem programu) należy przed wywołaniem cmake wydać (w oknie terminala - w którym wykonujemy kompilację) polecenie:

~/SDR/gqrx.git/build/ $ export CXXFLAGS=-O2

Nie wykorzystujemy tu szerokich możliwości (konfiguracyjnych) polecenia cmake. Poniższa sekwencja poleceń nie ogranicza się wyłącznie do cmake, obejmuje również kompilację właściwą (make) oraz instalację (make install, w odpowiednich katalogach) plików wykonalnych (wynikowych):

~/SDR/gqrx.git/build/ $ cmake ..
~/SDR/gqrx.git/build/ $ make
~/SDR/gqrx.git/build/ $ sudo make install

Kompilacja, instalacja...Jeśli proces kompilacji i instalacji zakończył się sukcesem make spowoduje utworzenie (w podkatalogu: ~/SDR/gqrx.git/build/src) pliku wykonalnego gqrx.

By to sprawdzić w oknie terminala wydaj polecenie listowania zawartości katalogu src. Z kolei polecenie grep (umieszczone po tzw. ścianie - na klawiaturze pionowa kreska) w listingu wybierze z listingu i wyświetli jedynie te linie, które w swej treści zawierają interesującą nas frazę gqrx*.

Jeśli pominiemy grep możeny zostać zalani długą litanią, której treść będzie trudna do interpretacji ;) :

~/SDR/gqrx.git/build/ $ ll src | grep gqrx*

Polecenie "sudo make install" spowoduje, że kopia pliku wykonalnego (gqrx) pojawi się w katalogu: /usr/local/bin i będzie dostępna dla wszystkich użytkowników systemu. Wystarczy go wywołać.GQrx 2.11.5 w działaniu

Jeśli coś poszło coś nie tak, przeanalizuj dokładnie komunikaty jakie pojawiły się w oknie terminala. Dużą pomoc możesz znaleźć na grupie Google poświęconej używaniu GQrx.

Podczas opracowania tego dokumentu wykorzystano sugestie Autora zawarte w dokumentacji projektu oraz własne doświadczenia.