SoapySDR (biblioteka) - instalacja ze źródeł

Podpowiedź dla SoapySDRInstalacja pakietów oprogramowania użytkowego wykorzystującego tuner RTL-SDR z reguły pociąga za sobą automatyczne "zassanie" odpowiednich pakietów zależnych. Nieco inaczej sprawa wygląda w sytuacji, gdy zamierzamy je samodzielnie skompilować.

Naszym celem będzie samodzielna kompilacja (budowa ze źródeł) programów: Gqrx oraz CubicSDR , co zostanie opisane w odrębnych artykułach.

Po zapoznaniu się z dokumentacją CubicSDR okazuje się, że niezbędnym będzie zainstalowanie w systemie (Linux) m.in. bibliotek SoapySDR. Więcej o nich dowiesz się odwiedzając stronę domową biblioteki. Nie jest to zresztą jedyna biblioteka, którą trzeba będzie "dociągnąć" dla CubicSDR. Ale po kolei...

Konsekwencją wykonania opisanych tu procedur będzie zainstalowanie w systemie Linux (dystrybucja Debian oraz mu pokrewne) kompletnej biblioteki SoapySDR.

By uniknąć bałaganu (u siebie) w katalogu domowym utworzyłem podkatalog SDR (co widać w listingach) zawierający wszystkie pliki (w tym źródłowe) związane z eksploatacją SDR. Nie jest to wymóg systemowy, a mój wybór. I w tym przypadku nie pociąga za sobą istotnych konsekwecji.

Zanim przystąpisz do dalszych działań (o ile nie zrobiłeś tego wcześniej) zapoznaj się z artykułem: Automake, build-essential, cmake... na dobry start, gdzie opisałem czynności związane z przygotowaniem samodzielnej kompilacji kodów źródłowych. 

Proces instalacji SoapySDR zaczynam od wejścia do katalocu SDR (komendy systemowe zostały wytłuszczone) i pobraniu (skopiowaniu) udostępnionych źródeł:

~$ cd SDR

a następnie wykonujemy listę komend (elementy wytłuszczone):

~/SDR/ $ git clone https://github.com/pothosware/SoapySDR.git
~/SRD/ cd SoapySDR
~/SRD/SoapySDR $ mkdir build
~/SRD/SoapySDR $ cd build
~/SRD/SoapySDR/build $ cmake ../ -DCMAKE_BUILD_TYPE=Release
~/SRD/SoapySDR/build $ make -j4
~/SRD/SoapySDR/build $ sudo make install
~/SRD/SoapySDR/build $ sudo ldconfig
~/SRD/SoapySDR/build $


Zwróć uwagę, że dwie ostalnie komendy wykonane zostały z uprawnieniami super użytkownika (użycie sudo).

Następnie sprawdzamy poprawność instalacji biblioteki wydając komendę:

~/SDR/SoapySDR/build $ SoapySDRUtil --info

######################################################
## Soapy SDR -- the SDR abstraction library
######################################################

Lib Version: v0.7.0-g2a266d60
API Version: v0.7.0
ABI Version: v0.7
Install root: /usr/local
Search path: /usr/local/lib/SoapySDR/modules0.7
Module found: /usr/local/lib/SoapySDR/modules0.7/librtlsdrSupport.so (0.2.4-5d49f03)
Available factories... rtlsdr
Available converters...
- CF32 -> [CF32, CS16, CS8, CU16, CU8]
- CS16 -> [CF32, CS16, CS8, CU16, CU8]
- CS32 -> [CS32]
- CS8 -> [CF32, CS16, CS8, CU16, CU8]
- CU16 -> [CF32, CS16, CS8]
- CU8 -> [CF32, CS16, CS8]
- F32 -> [F32, S16, S8, U16, U8]
- S16 -> [F32, S16, S8, U16, U8]
- S32 -> [S32]
- S8 -> [F32, S16, S8, U16, U8]
- U16 -> [F32, S16, S8]
- U8 -> [F32, S16, S8]
~/SDR/SoapySDR/build $

Czyli instalację biblioteki SoapySDR mam za sobą. I obecność tunera RTL-SDR została zauważona:

~/SDR/ $ SoapySDRUtil --find
######################################################
## Soapy SDR -- the SDR abstraction library ##
######################################################

Found Rafael Micro R820T tuner
Found device 0
available = Yes
driver = rtlsdr
label = Generic RTL2832U OEM :: 00000001
manufacturer = Realtek
product = RTL2838UHIDIR
rtl = 0
serial = 00000001
tuner = Rafael Micro R820T
~/SRD/ $

Sukces, to działa!Oznacza to, że biblioteka SoapySDR została poprawnie zainstalowana.

Nie jest to jedyna biblioteka, którą trzeba zainstalować. Ale jedna z tych, bez której w "świecie SDR" trudno będzie się poruszać.

Właśnie dzięki temu oraz uwarunkowaniom licencyjnym jest ona szeroko wykorzystywania w wielu projektach. Warto zapoznać się z dokumentacją projektu.

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