-
Notifications
You must be signed in to change notification settings - Fork 34
Description
I'm running Gentoo Linux on a Raspberry Pi5. I was able to install SigDigger using Gentoo's portage packaging system, but have had an extremely difficult time getting SigDigger to find my 2 RTL-SDRs connected to the Pi. I've gone back and forth with Gentoo's ebuilds and created my own custom ebuild because I found that there were some version/path issues in the library. My efforts to work within Gentoo's packages did not bear fruit. It looks like the problem is at the soapy level.
So, I decided to try a from-the-wild install of SigDigger and its dependencies and followed your instructions on the SigDigger site:
% git clone --recursive https://github.com/BatchDrake/sigutils
% cd sigutils && mkdir -p build && cd build && cmake .. && make && sudo make install && cd ../..
% git clone --recursive https://github.com/BatchDrake/suscan
% cd suscan && mkdir -p build && cd build && cmake .. && make && sudo make install && cd ../..
% git clone https://github.com/BatchDrake/SuWidgets
% cd SuWidgets && qmake6 SuWidgetsLib.pro && make && sudo make install && cd ..
% git clone https://github.com/BatchDrake/SigDigger
% cd SigDigger && qmake6 SigDigger.pro && make && sudo make install && cd ..
I succeeded in building and installing sigutils. I'm getting hung up on suscan. I figure you have been refactoring some of your variables and maybe something has been overlooked that is causing suscan to fail. Here's my attempt:
jlpoole@rpi5 /usr/local/src $ sudo rm -r suscan
jlpoole@rpi5 /usr/local/src $ git clone --recursive https://github.com/BatchDrake/suscan
Cloning into 'suscan'...
remote: Enumerating objects: 8733, done.
remote: Counting objects: 100% (1882/1882), done.
remote: Compressing objects: 100% (712/712), done.
remote: Total 8733 (delta 1284), reused 1693 (delta 1132), pack-reused 6851 (from 1)
Receiving objects: 100% (8733/8733), 5.12 MiB | 11.73 MiB/s, done.
Resolving deltas: 100% (6505/6505), done.
Submodule 'cmake/cmake-relativefilemacro' (https://github.com/antoniovazquezblanco/cmake-relativefilemacro.git) registered for path 'cmake/cmake-relativefilemacro'
Cloning into '/usr/local/src/suscan/cmake/cmake-relativefilemacro'...
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 15 (delta 4), reused 13 (delta 3), pack-reused 0 (from 0)
Receiving objects: 100% (15/15), done.
Resolving deltas: 100% (4/4), done.
Submodule path 'cmake/cmake-relativefilemacro': checked out '3d0e4c529dd5d83920e4299fecfb4355a4b9113c'
jlpoole@rpi5 /usr/local/src $ cd suscan && mkdir -p build && cd build && cmake ..
CMake Deprecation Warning at CMakeLists.txt:21 (cmake_minimum_required):
Compatibility with CMake < 3.10 will be removed from a future version of
CMake.
Update the VERSION argument <min> value. Or, use the <min>...<max> syntax
to tell CMake that the project requires at least <min> but has been updated
to work with policies introduced by <max> or earlier.
-- The C compiler identification is GNU 14.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "2.4.3")
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found ZLIB: /usr/lib64/libz.so (found version "1.3.1")
-- Checking for module 'sigutils>=0.1'
-- Found sigutils, version 0.3.0
-- Checking for module 'sndfile>=1.0.2'
-- Found sndfile, version 1.2.2
-- Checking for module 'fftw3f>=3.0'
-- Found fftw3f, version 3.3.10
-- Checking for module 'SoapySDR>=0.5.0'
-- Found SoapySDR, version 0.8.1
-- Checking for module 'libxml-2.0>=2.9.0'
-- Found libxml-2.0, version 2.13.6
-- Checking for module 'volk>=1.0'
-- Found volk, version 3.1
-- Checking for module 'json-c>=0.13'
-- Found json-c, version 0.18
-- Checking for module 'alsa>=1.2'
-- Found alsa, version 1.2.13
-- Checking for module 'portaudio-2.0>=19'
-- Found portaudio-2.0, version 19
-- Found CppCheck: /usr/bin/cppcheck
CppCheck found. Use cppcheck-analysis targets to run it
Cppcheck analysis already added
-- Configuring done (0.8s)
-- Generating done (0.1s)
-- Build files have been written to: /usr/local/src/suscan/build
jlpoole@rpi5 /usr/local/src/suscan/build $ make
[ 0%] Building C object CMakeFiles/suscan.dir/util/bpe.c.o
[ 0%] Building C object CMakeFiles/suscan.dir/util/cbor.c.o
[ 1%] Building C object CMakeFiles/suscan.dir/util/cfg.c.o
[ 1%] Building C object CMakeFiles/suscan.dir/util/com.c.o
[ 2%] Building C object CMakeFiles/suscan.dir/util/compat.c.o
[ 2%] Building C object CMakeFiles/suscan.dir/util/confdb.c.o
[ 3%] Building C object CMakeFiles/suscan.dir/util/deserialize-xml.c.o
[ 3%] Building C object CMakeFiles/suscan.dir/util/deserialize-yaml.c.o
[ 4%] Building C object CMakeFiles/suscan.dir/util/hashlist.c.o
[ 4%] Building C object CMakeFiles/suscan.dir/util/list.c.o
[ 5%] Building C object CMakeFiles/suscan.dir/util/object.c.o
[ 5%] Building C object CMakeFiles/suscan.dir/util/rbtree.c.o
[ 6%] Building C object CMakeFiles/suscan.dir/util/serialize-xml.c.o
[ 6%] Building C object CMakeFiles/suscan.dir/util/serialize-yaml.c.o
[ 7%] Building C object CMakeFiles/suscan.dir/util/sha256.c.o
[ 7%] Building C object CMakeFiles/suscan.dir/util/strmap.c.o
[ 8%] Building C object CMakeFiles/suscan.dir/util/urlhelpers.c.o
[ 8%] Building C object CMakeFiles/suscan.dir/yaml/api.c.o
[ 9%] Building C object CMakeFiles/suscan.dir/yaml/dumper.c.o
[ 9%] Building C object CMakeFiles/suscan.dir/yaml/emitter.c.o
[ 10%] Building C object CMakeFiles/suscan.dir/yaml/loader.c.o
[ 10%] Building C object CMakeFiles/suscan.dir/yaml/parser.c.o
[ 11%] Building C object CMakeFiles/suscan.dir/yaml/reader.c.o
[ 11%] Building C object CMakeFiles/suscan.dir/yaml/scanner.c.o
[ 12%] Building C object CMakeFiles/suscan.dir/yaml/writer.c.o
[ 12%] Building C object CMakeFiles/suscan.dir/analyzer/inspector/factory.c.o
[ 13%] Building C object CMakeFiles/suscan.dir/analyzer/inspector/inspector.c.o
/usr/local/src/suscan/analyzer/inspector/inspector.c:66:5: error: unknown type name 'su_specttuner_channel_data_func_t'; did you mean 'su_specttuner_channel_t'?
66 | su_specttuner_channel_data_func_t on_data,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| su_specttuner_channel_t
/usr/local/src/suscan/analyzer/inspector/inspector.c:67:5: error: unknown type name 'su_specttuner_channel_new_freq_func_t'
67 | su_specttuner_channel_new_freq_func_t on_new_freq,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/sigutils/sigutils/block.h:28,
from /usr/include/sigutils/sigutils/sigutils.h:23,
from /usr/local/src/suscan/analyzer/inspector/inspector.c:28:
/usr/local/src/suscan/analyzer/inspector/inspector.c: In function 'suscan_sc_inspector_factory_open':
/usr/local/src/suscan/analyzer/inspector/inspector.c:211:13: error: implicit declaration of function 'suscan_inspector_open_sc_channel_ex'; did you mean 'suscan_inspector_open_sc_close_channel'? [-Wimplicit-function-declaration]
211 | schan = suscan_inspector_open_sc_channel_ex(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/sigutils/sigutils/defs.h:102:9: note: in definition of macro 'SU_TRYCATCH'
102 | if (!(expr)) { \
| ^~~~
/usr/local/src/suscan/analyzer/inspector/inspector.c:211:11: error: assignment to 'su_specttuner_channel_t *' {aka 'struct sigutils_specttuner_channel *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
211 | schan = suscan_inspector_open_sc_channel_ex(
| ^
/usr/include/sigutils/sigutils/defs.h:102:9: note: in definition of macro 'SU_TRYCATCH'
102 | if (!(expr)) { \
| ^~~~
/usr/local/src/suscan/analyzer/inspector/inspector.c:232:32: error: implicit declaration of function 'su_specttuner_uses_early_windowing' [-Wimplicit-function-declaration]
232 | samp_info->early_windowing = su_specttuner_uses_early_windowing(self->sc_stuner);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/src/suscan/analyzer/inspector/inspector.c: In function 'suscan_sc_inspector_factory_set_domain':
/usr/local/src/suscan/analyzer/inspector/inspector.c:347:3: error: implicit declaration of function 'su_specttuner_channel_set_domain'; did you mean 'su_specttuner_channel_get_delta_f'? [-Wimplicit-function-declaration]
347 | su_specttuner_channel_set_domain(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| su_specttuner_channel_get_delta_f
/usr/local/src/suscan/analyzer/inspector/inspector.c:350:7: error: 'SU_SPECTTUNER_CHANNEL_FREQUENCY_DOMAIN' undeclared (first use in this function)
350 | ? SU_SPECTTUNER_CHANNEL_FREQUENCY_DOMAIN
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/src/suscan/analyzer/inspector/inspector.c:350:7: note: each undeclared identifier is reported only once for each function it appears in
/usr/local/src/suscan/analyzer/inspector/inspector.c:351:7: error: 'SU_SPECTTUNER_CHANNEL_TIME_DOMAIN' undeclared (first use in this function)
351 | : SU_SPECTTUNER_CHANNEL_TIME_DOMAIN);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/suscan.dir/build.make:443: CMakeFiles/suscan.dir/analyzer/inspector/inspector.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:163: CMakeFiles/suscan.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
jlpoole@rpi5 /usr/local/src/suscan/build $ git log -1
commit 39aca1a6d6651ab3ec7b704c706dd857e741804c (HEAD -> master, origin/master, origin/HEAD)
Author: Gonzalo José Carracedo Carballal <BatchDrake@gmail.com>
Date: Sat Feb 1 13:12:45 2025 +0100
Fix uninitialized variable in makeprof command
jlpoole@rpi5 /usr/local/src/suscan/build $ git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
jlpoole@rpi5 /usr/local/src/suscan/build $
I do have the STL_SDRs working and have been using them with other programs; in fact I have dedicated one for a specific frequency, 119.1 MHz, of our local airport tower, and have placed a UDP server on it then a UDP->TCP/IP server under than for programs such as openwebrx+ that cannot connect to a UDP server. I very much would like to see SigDigger work, your "with love" quip in the credits demonstrates an ethos in a developer that should be encouraged and rewarded. So I bring the above to your attention with the hope it will not distract you from getting your 0.4 release out the door.
I figure that at a minimum, suscan should build, especially since it seems to with Gentoo's package:
jlpoole@rpi5 /usr/local/src/suscan/build $ eix suscan
[I] net-wireless/suscan
Available versions: (~*)0.3.0
Installed versions: 0.3.0(15:39:15 05/05/25)
Homepage: https://github.com/BatchDrake/suscan
Description: a realtime DSP processing library
jlpoole@rpi5 /usr/local/src/suscan/build $