AlexandreRouma / SDRPlusPlus

Cross-Platform SDR Software
GNU General Public License v3.0
4.18k stars 579 forks source link

Unable to compile for SDRPlay #942

Closed f5bcb closed 1 year ago

f5bcb commented 1 year ago

FIRST: Before reporting any bug, make sure that the bug you are reporting has not been reported before. Also, try to use the nightly version if possible in case I've already fixed the bug.

Hardware

Software

Bug Description A clear description of the bug.

Steps To Reproduce

  1. ...
  2. ...
  3. ...

Only If SDR++ fails to lauch or the SDR fails to start: Run SDR++ from a command line window with special parameters:

Screenshots Add any screenshot that is relevant to the bug (GUI error messages, strange behavior, graphics glitch, etc...).

Additional info Add any other relevant information.

f5bcb commented 1 year ago

Raspberry pi 4, OS Raspbian Bulleye The result show that a file sdrplay_api.h is missing 👍

/home/pi/SDRPlusPlus/source_modules/sdrplay_source/src/main.cpp:9:10: fatal error: sdrplay_api.h: No such file or directory 9 | #include | ^~~~~~~ compilation terminated. make[2]: [source_modules/sdrplay_source/CMakeFiles/sdrplay_source.dir/build.make:82: source_modules/sdrplay_source/CMakeFiles/sdrplay_source.dir/src/main.cpp.o] Error 1 make[1]: [CMakeFiles/Makefile2:1746: source_modules/sdrplay_source/CMakeFiles/sdrplay_source.dir/all] Error 2 make: *** [Makefile:149: all] Error 2 pi@raspberrypi:~ $ fatal error: sdrplay_api.h: No such file or directory -bash: fatal: command not found pi@raspberrypi:~ $

AlexandreRouma commented 1 year ago

You didn't install the sdrplay API. Follow the instructions on SDRplay's website to install it. (only the API, NOT the build tools with soapy and other software)

f5bcb commented 1 year ago

Thanks a lot. Should I use the 2.10 stable version or the 3.06 Beta version ? ( OS is Raspbian 64 Bullseye ) ?

AlexandreRouma commented 1 year ago

The latest 3.x version. the exact minor version isn't important (hence x).

f5bcb commented 1 year ago

OK but the 3.x version for 64bits is not available ( Error 404 ) on the SDRPlay web site. https://www.sdrplay.com/software/SDRplay_RSP_API-ARM64-3.06.1.run

AlexandreRouma commented 1 year ago

Pretty sure the 32bit version should still run. If not, it's something you should talk to SDRplay about. It's their proprietary driver, nobody except them can compile or distribute it.

f5bcb commented 1 year ago

Ok I'll try the 32bit, if not, I'll reinstall a 32bits OS ans if still not, I'll stay on Openwebrx !! Hi Thanks again

f5bcb commented 1 year ago

Hi, The device is a genuine RSP1-A connected to a Raspberry PI4 runing Bullseye 64bits OS Using 64bits API, compile is OK (with a lot of warnings). Server start and connection is OK but I get an error [2022-12-25 09:37:56.483] [error] Couldn't load /usr/lib/sdrpp/plugins/sdrplay_source.so. This file exits in this place: pi@Sdrpp:/usr/lib/sdrpp/plugins $ ll total 13928 -rw-r--r-- 1 root root 535640 24 déc. 10:33 airspyhf_source.so -rw-r--r-- 1 root root 539776 24 déc. 10:33 airspy_source.so -rw-r--r-- 1 root root 550024 24 déc. 10:45 audio_sink.so -rw-r--r-- 1 root root 1049584 24 déc. 10:48 discord_integration.so -rw-r--r-- 1 root root 706568 24 déc. 10:34 file_source.so -rw-r--r-- 1 root root 737872 24 déc. 10:49 frequency_manager.so -rw-r--r-- 1 root root 535104 24 déc. 10:35 hackrf_source.so -rw-r--r-- 1 root root 618512 24 déc. 10:36 hermes_source.so -rw-r--r-- 1 root root 596592 24 déc. 10:46 meteor_demodulator.so -rw-r--r-- 1 root root 564792 24 déc. 10:46 network_sink.so -rw-r--r-- 1 root root 526096 24 déc. 10:44 plutosdr_source.so -rw-r--r-- 1 root root 920224 24 déc. 10:47 radio.so -rw-r--r-- 1 root root 778048 24 déc. 10:50 recorder.so -rw-r--r-- 1 root root 571448 24 déc. 10:39 rfspace_source.so -rw-r--r-- 1 root root 545168 24 déc. 10:51 rigctl_server.so -rw-r--r-- 1 root root 545832 24 déc. 10:39 rtl_sdr_source.so -rw-r--r-- 1 root root 534344 24 déc. 10:40 rtl_tcp_source.so -rw-r--r-- 1 root root 473720 24 déc. 10:51 scanner.so -rw-r--r-- 1 root root 564240 24 déc. 10:41 sdrplay_source.so -rw-r--r-- 1 root root 597808 24 déc. 10:38 sdrpp_server_source.so -rw-r--r-- 1 root root 559984 24 déc. 10:42 soapy_source.so -rw-r--r-- 1 root root 625392 24 déc. 10:43 spectran_http_source.so -rw-r--r-- 1 root root 541360 24 déc. 10:44 spyserver_source.so pi@Sdrpp:/usr/lib/sdrpp/plugins $

AlexandreRouma commented 1 year ago

Couldn't load /usr/lib/sdrpp/plugins/sdrplay_source.so

@f5bcb Try to install this version of the API: https://www.sdrplay.com/software/SDRplay_RSP_API-ARM64-3.07.1.run I'd recommend contacting SDRplay to tell them that their raspios version is only 32bits

Before compiling SDR++, I modified the CMakeLists.txt file to suit my needs

@kmp56 NEVER edit the CMakeLists... Use the -D<option>=<value> cmake command line arguments as instructed in the readme.

f5bcb commented 1 year ago

Hi, The API (https://www.sdrplay.com/software/SDRplay_RSP_API-ARM64-3.07.1.run) has been installed and install script modified ( cmake .. -DOPT_BUILD_SDRPLAY_SOURCE=ON). The CMakeLists file unmodified.

I requested SDRPlay support because there is an ambiguity depending on the OS target selected on their download page: "ARM Raspberry Pi OS" or "ARM Other". I wait for a reply.

Unfortunately, I get the same problem: .... pi@Sdrpp:~ $ sudo sdrpp --server [2022-12-27 10:12:04.245] [info] SDR++ v1.1.0 [2022-12-27 10:12:04.246] [info] Loading config [2022-12-27 10:12:04.252] [warning] ConfigManager locked, waiting... [2022-12-27 10:12:04.252] [info] =====| SERVER MODE |===== [2022-12-27 10:12:04.253] [info] Loading modules [2022-12-27 10:12:04.253] [info] Loading /usr/lib/sdrpp/plugins/rfspace_source.so [2022-12-27 10:12:04.256] [info] Loading /usr/lib/sdrpp/plugins/sdrpp_server_source.so [2022-12-27 10:12:04.258] [info] Loading /usr/lib/sdrpp/plugins/airspy_source.so [2022-12-27 10:12:04.260] [info] Loading /usr/lib/sdrpp/plugins/hackrf_source.so [2022-12-27 10:12:04.262] [info] Loading /usr/lib/sdrpp/plugins/plutosdr_source.so [2022-12-27 10:12:04.270] [info] Loading /usr/lib/sdrpp/plugins/spectran_http_source.so [2022-12-27 10:12:04.272] [info] Loading /usr/lib/sdrpp/plugins/soapy_source.so [2022-12-27 10:12:04.275] [info] Loading /usr/lib/sdrpp/plugins/sdrplay_source.so [2022-12-27 10:12:04.276] [error] Couldn't load /usr/lib/sdrpp/plugins/sdrplay_source.so. [2022-12-27 10:12:04.276] [info] Loading /usr/lib/sdrpp/plugins/rtl_sdr_source.so [2022-12-27 10:12:04.278] [info] Loading /usr/lib/sdrpp/plugins/rtl_tcp_source.so [2022-12-27 10:12:04.280] [info] Loading /usr/lib/sdrpp/plugins/airspyhf_source.so [2022-12-27 10:12:04.282] [info] Loading /usr/lib/sdrpp/plugins/hermes_source.so [2022-12-27 10:12:04.285] [info] Loading /usr/lib/sdrpp/plugins/spyserver_source.so [2022-12-27 10:12:04.287] [info] Loading /usr/lib/sdrpp/plugins/file_source.so [2022-12-27 10:12:04.289] [info] Initializing Airspy Source (airspy_source) [2022-12-27 10:12:04.296] [info] Initializing AirspyHF+ Source (airspyhf_source) [2022-12-27 10:12:04.303] [info] Initializing File Source (file_source) [2022-12-27 10:12:04.303] [info] Initializing HackRF Source (hackrf_source) [2022-12-27 10:12:04.310] [info] Initializing Hermes Source (hermes_source) [2022-12-27 10:12:04.310] [info] Initializing PlutoSDR Source (plutosdr_source) [2022-12-27 10:12:04.310] [info] Initializing RFspace Source (rfspace_source) [2022-12-27 10:12:04.310] [info] Initializing RTL-SDR Source (rtl_sdr_source) [2022-12-27 10:12:04.318] [info] Initializing RTL-TCP Source (rtl_tcp_source) [2022-12-27 10:12:04.318] [info] Initializing SDR++ Server Source (sdrpp_server_source) [2022-12-27 10:12:04.318] [info] Initializing SoapySDR Source (soapy_source) [INFO] [UHD] linux; GNU C++ version 10.2.1 20201207; Boost_107400; UHD_3.15.0.0-4+b1 [2022-12-27 10:12:04.880] [info] Setting sample rate to 8000.0 [2022-12-27 10:12:04.880] [info] Initializing SpyServer Source (spyserver_source) [2022-12-27 10:12:04.880] [info] Running post-init for Airspy Source [2022-12-27 10:12:04.880] [info] Running post-init for AirspyHF+ Source [2022-12-27 10:12:04.880] [info] Running post-init for File Source [2022-12-27 10:12:04.880] [info] Running post-init for HackRF Source [2022-12-27 10:12:04.880] [info] Running post-init for Hermes Source [2022-12-27 10:12:04.880] [info] Running post-init for PlutoSDR Source [2022-12-27 10:12:04.880] [info] Running post-init for RFspace Source [2022-12-27 10:12:04.880] [info] Running post-init for RTL-SDR Source [2022-12-27 10:12:04.880] [info] Running post-init for RTL-TCP Source [2022-12-27 10:12:04.880] [info] Running post-init for SDR++ Server Source [2022-12-27 10:12:04.880] [info] Running post-init for SoapySDR Source [2022-12-27 10:12:04.880] [info] Running post-init for SpyServer Source [2022-12-27 10:12:04.880] [info] AirspySourceModule 'Airspy Source': Menu Select! [2022-12-27 10:12:04.881] [info] Ready, listening on 0.0.0.0:5259

f5bcb commented 1 year ago

The SDRPLAY support response states that the 64bit API is the one in target "ARM Other" So I used that one but the problem is still there. SDRPP works fine with "RTL-SDR" but not with my RSP1-A As I don't see what else I could do, I will stop wasting my time and wait for a fix.

AlexandreRouma commented 1 year ago

There is no "fix" needed to SDR++. It's an issue on your specific system. Likely a need to recompile with the new API installed, maybe run sudo ldconfig. Can be a lot things...

f5bcb commented 1 year ago

I don't know what's specific about this system. It's a Rapsberry Pi 4 on which I did a fresh install of Raspbian 64 Bullseye. The API is the latest official version, the RSP1A is an original SDRPlay model and I followed the proposed Readme for the compilation and installation of SDRPP. I don't know if such a configuration already exists and if it works with SDRPlay products. Maybe a fix will come in the OS, in a library or something else. Wait & see Thanks a lot

AlexandreRouma commented 1 year ago

Almost all of that information is wrong... How about following the real manual instead? https://www.sdrpp.org/manual.pdf

f5bcb commented 1 year ago

Hi,

Already tested but not working : "sdrpp --server" as specified in documentation (p58) fail.

-    @.:~ $ sdrpp --server     -bash: /usr/bin/sdrpp: Aucun fichier ou dossier de ce type     @.:~ $

@.:/usr/bin $ ll sdrpp -rwxr-xr-x 1 pi pi 10664 12 déc.  00:20 sdrpp **@.***:/usr/bin $

Jeff

Le 28/12/2022 à 03:23, AlexandreRouma a écrit :

Almost all of that information is wrong... How about following the real manual instead? https://www.sdrpp.com/manual.pdf

— Reply to this email directly, view it on GitHub https://github.com/AlexandreRouma/SDRPlusPlus/issues/942#issuecomment-1366319398, or unsubscribe https://github.com/notifications/unsubscribe-auth/AITFJLPHUFSHPN3RLM43AB3WPOQDTANCNFSM6AAAAAATGX2ZM4. You are receiving this because you were mentioned.Message ID: @.***>

AlexandreRouma commented 1 year ago

I'm removing all the bad information from this thread, I don't need other people having issues following bad instructions and having to deal with even more support questions...

AlexandreRouma commented 1 year ago

@f5bcb no, sdrpp_raspios_bullseye_armhf is for 32bit raspios.

H6LS1S commented 1 year ago

@AlexandreRouma Hello, the topic of building sdrpp for arm architectures is very poorly documented, especially when you still need to build it for the 64 bit version with SDRPlay support.

For me personally, there is still an issue with cutting out all the unnecessary to get a lightweight package from sdrpp server + sdrplay source, I experimented a lot with options cmake, but when I start the server, I still see that unnecessary modules are installed

The following build scenario worked for me on my Raspberry 4:

# Install dependencies
sudo apt install -y build-essential cmake git curl wget p7zip-full \
 libfftw3-dev libglfw3-dev libglew-dev libvolk2-dev libsoapysdr-dev \
 libairspyhf-dev libairspy-dev libiio-dev libad9361-dev librtaudio-dev \
 libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev libzstd1 libzstd-dev

# Install 64 bit API
wget https://www.sdrplay.com/software/SDRplay_RPi_Scripts_v0.3.zip \
  && mkdir SDRplayAPI && unzip SDRplay_RPi_Scripts_v0.3.zip -d SDRplayAPI \
  && sed -i 's/ARM32-3.07.2.run/ARM64-3.07.1.run/g' ./SDRplayAPI/1installAPI.sh \
  && sh ./SDRplayAPI/1installAPI.sh \
  && sudo systemctl start sdrplay

# Build SDRPP
git clone https://github.com/AlexandreRouma/SDRPlusPlus \
  && cd SDRPlusPlus && mkdir build && cd build \
  && cmake .. -DOPT_BUILD_SDRPLAY_SOURCE=ON \
  && make -j 3

## Or build only source
git clone https://github.com/AlexandreRouma/SDRPlusPlus \
  && cd SDRPlusPlus && mkdir build && cd build \
  && cmake .. \
    -DOPT_BUILD_SDRPLAY_SOURCE=ON \
    -DOPT_BUILD_SDRPP_SERVER_SOURCE=ON \
    -DOPT_BUILD_AIRSPY_SOURCE=ON \
    -DOPT_BUILD_AIRSPYHF_SOURCE=ON \
    -DOPT_BUILD_FILE_SOURCE=OFF \
    -DOPT_BUILD_HACKRF_SOURCE=OFF \
    -DOPT_BUILD_HERMES_SOURCE=OFF \
    -DOPT_BUILD_PLUTOSDR_SOURCE=OFF \
    -DOPT_BUILD_RFSPACE_SOURCE=OFF \
    -DOPT_BUILD_RTL_SDR_SOURCE=ON \
    -DOPT_BUILD_RTL_TCP_SOURCE=ON \
    -DOPT_BUILD_SOAPY_SOURCE=ON \
    -DOPT_BUILD_SPECTRAN_HTTP_SOURCE=OFF \
    -DOPT_BUILD_SPYSERVER_SOURCE=OFF \
    -DOPT_BUILD_METEOR_DEMODULATOR=OFF \
    -DOPT_BUILD_DISCORD_PRESENCE=OFF \
    -DOPT_BUILD_DISCORD_PRESENCE=OFF \
    -DOPT_BUILD_FREQUENCY_MANAGER=OFF \
    -DOPT_BUILD_RECORDER=OFF \
    -DOPT_BUILD_RIGCTL_CLIENT=OFF \
    -DOPT_BUILD_RIGCTL_SERVER=OFF \
    -DOPT_BUILD_SCANNER=OFF \
    -DOPT_BUILD_SCHEDULER=OFF \
  && make -j 3

# Install SDRPP
cd .. \
  && sh make_debian_package.sh ./build 'libfftw3-dev, libglfw3-dev, libvolk2-dev, librtaudio-dev'  \
  && mv sdrpp_debian_amd64.deb sdrpp_debian_armhf.deb \
  && sudo dpkg -i sdrpp_debian_armhf.deb \
  && sudo ldconfig

# Run server
sdrpp --server --port 5656

in fact, this is a hodgepodge from the README and Github Aaction, and I hope this hodgepodge will help someone ))

Linux version : 6.1.45-v8+ Hardware : BCM2835 Revision : c03115 Model : Raspberry Pi 4 Model B Rev 1.5

image

AlexandreRouma commented 1 year ago

Don't use a premade script, follow the linux instructions, there is no difference between architectures.