Segmentation fault on launch

314 views
Skip to first unread message

Aaron

unread,
Aug 5, 2022, 7:30:39 PM8/5/22
to Gqrx SDR
Operating system: OpenSuse Tumbleweed
Installed via OpenSuse hardware:sdr repository
gqrx 2.15.9
gnuradio 3.10.3.0
Device: RTLSDR

Gqrx immediately crashes on launch. Starting from the terminal yields "Segmentation fault (core dumped)". I have a hunch my issue may be similar to this one; however, I'm not trying to build from source.

I've tried deleting ~/.config/gqrx and uninstalling/reinstalling gqrx and gnuradio to no avail.

gdb gqrx
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5b0a983 in ?? ()

ldd /usr/bin/gqrx
linux-vdso.so.1 (0x00007ffedd08e000)
libQt5Network.so.5 => /lib64/libQt5Network.so.5 (0x00007f5e4282b000)
libQt5Svg.so.5 => /lib64/libQt5Svg.so.5 (0x00007f5e427ce000)
libgnuradio-osmosdr.so.0.2.0 => /lib64/libgnuradio-osmosdr.so.0.2.0 (0x00007f5e4270e000)
libpulse.so.0 => /lib64/libpulse.so.0 (0x00007f5e426b7000)
libpulse-simple.so.0 => /lib64/libpulse-simple.so.0 (0x00007f5e426b0000)
libgnuradio-digital.so.3.10.3 => /lib64/libgnuradio-digital.so.3.10.3 (0x00007f5e425c6000)
libgnuradio-network.so.3.10.3 => /lib64/libgnuradio-network.so.3.10.3 (0x00007f5e42567000)
libQt5Widgets.so.5 => /lib64/libQt5Widgets.so.5 (0x00007f5e41e75000)
libQt5Gui.so.5 => /lib64/libQt5Gui.so.5 (0x00007f5e41751000)
libQt5Core.so.5 => /lib64/libQt5Core.so.5 (0x00007f5e4118e000)
libgnuradio-analog.so.3.10.3 => /lib64/libgnuradio-analog.so.3.10.3 (0x00007f5e4111d000)
libgnuradio-filter.so.3.10.3 => /lib64/libgnuradio-filter.so.3.10.3 (0x00007f5e41068000)
libgnuradio-blocks.so.3.10.3 => /lib64/libgnuradio-blocks.so.3.10.3 (0x00007f5e40e96000)
libgnuradio-fft.so.3.10.3 => /lib64/libgnuradio-fft.so.3.10.3 (0x00007f5e40e63000)
libgnuradio-runtime.so.3.10.3 => /lib64/libgnuradio-runtime.so.3.10.3 (0x00007f5e40d2a000)
libgnuradio-pmt.so.3.10.3 => /lib64/libgnuradio-pmt.so.3.10.3 (0x00007f5e40cdb000)
libvolk.so.2.5 => /lib64/libvolk.so.2.5 (0x00007f5e40a2b000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f5e40802000)
libm.so.6 => /lib64/libm.so.6 (0x00007f5e4071c000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f5e406fb000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5e404c9000)
libz.so.1 => /lib64/libz.so.1 (0x00007f5e404a9000)
libproxy.so.1 => /lib64/libproxy.so.1 (0x00007f5e40489000)
libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f5e403e8000)
libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f5e400b0000)
libboost_chrono.so.1.79.0 => /lib64/libboost_chrono.so.1.79.0 (0x00007f5e400a6000)
libgnuradio-iqbalance.so.3.9.0 => /lib64/libgnuradio-iqbalance.so.3.9.0 (0x00007f5e4009a000)
librtlsdr.so.0 => /usr/local/lib64/librtlsdr.so.0 (0x00007f5e40083000)
libgnuradio-uhd.so.3.10.3 => /lib64/libgnuradio-uhd.so.3.10.3 (0x00007f5e4001c000)
libuhd.so.4.2.0 => /lib64/libuhd.so.4.2.0 (0x00007f5e3f601000)
libhackrf.so.0 => /lib64/libhackrf.so.0 (0x00007f5e3f5f8000)
libbladeRF.so.2 => /lib64/libbladeRF.so.2 (0x00007f5e3f56f000)
libairspy.so.0 => /lib64/libairspy.so.0 (0x00007f5e3f565000)
libairspyhf.so.0 => /lib64/libairspyhf.so.0 (0x00007f5e3f553000)
libSoapySDR.so.0.8 => /lib64/libSoapySDR.so.0.8 (0x00007f5e3f503000)
libxtrx.so.0 => /lib64/libxtrx.so.0 (0x00007f5e3f4a9000)
libboost_thread.so.1.79.0 => /lib64/libboost_thread.so.1.79.0 (0x00007f5e3f48b000)
libpulsecommon-16.1.so => /usr/lib64/pulseaudio/libpulsecommon-16.1.so (0x00007f5e3f403000)
libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007f5e3f3ad000)
libspdlog.so.1 => /lib64/libspdlog.so.1 (0x00007f5e3f34a000)
libfmt.so.8 => /lib64/libfmt.so.8 (0x00007f5e3f32a000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5e42c35000)
libGL.so.1 => /lib64/libGL.so.1 (0x00007f5e3f29d000)
libpng16.so.16 => /lib64/libpng16.so.16 (0x00007f5e3f254000)
libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007f5e3f163000)
libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007f5e3f08f000)
libdouble-conversion.so.3 => /lib64/libdouble-conversion.so.3 (0x00007f5e3f07e000)
libicui18n.so.71 => /lib64/libicui18n.so.71 (0x00007f5e3ed4b000)
libicuuc.so.71 => /lib64/libicuuc.so.71 (0x00007f5e3eb4d000)
libpcre2-16.so.0 => /lib64/libpcre2-16.so.0 (0x00007f5e3eaa0000)
libzstd.so.1 => /lib64/libzstd.so.1 (0x00007f5e3e9eb000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f5e3e8b2000)
libsndfile.so.1 => /lib64/libsndfile.so.1 (0x00007f5e3e82e000)
libfftw3f.so.3 => /lib64/libfftw3f.so.3 (0x00007f5e3e6bb000)
libfftw3f_threads.so.3 => /lib64/libfftw3f_threads.so.3 (0x00007f5e3e6b1000)
libboost_program_options.so.1.79.0 => /lib64/libboost_program_options.so.1.79.0 (0x00007f5e3e670000)
libgmp.so.10 => /lib64/libgmp.so.10 (0x00007f5e3e5cc000)
libunwind.so.8 => /lib64/libunwind.so.8 (0x00007f5e3e5b3000)
libpython3.10.so.1.0 => /lib64/libpython3.10.so.1.0 (0x00007f5e3e263000)
libthrift-0.16.0.so => /lib64/libthrift-0.16.0.so (0x00007f5e3e19e000)
liborc-0.4.so.0 => /lib64/liborc-0.4.so.0 (0x00007f5e3e11b000)
libosmodsp.so.0 => /lib64/libosmodsp.so.0 (0x00007f5e3e111000)
libusb-1.0.so.0 => /lib64/libusb-1.0.so.0 (0x00007f5e3e0f2000)
libboost_filesystem.so.1.79.0 => /lib64/libboost_filesystem.so.1.79.0 (0x00007f5e3e0d1000)
libboost_serialization.so.1.79.0 => /lib64/libboost_serialization.so.1.79.0 (0x00007f5e3e090000)
libxtrxll.so.0 => /lib64/libxtrxll.so.0 (0x00007f5e3e07a000)
libxtrxdsp.so.0 => /lib64/libxtrxdsp.so.0 (0x00007f5e3e066000)
liblms7compact.so.0 => /lib64/liblms7compact.so.0 (0x00007f5e3e05c000)
libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f5e3e031000)
libGLX.so.0 => /lib64/libGLX.so.0 (0x00007f5e3dfff000)
libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007f5e3df47000)
libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f5e3de78000)
libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007f5e3de56000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f5e3de49000)
libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x00007f5e3dd0a000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f5e3dcd7000)
liblz4.so.1 => /lib64/liblz4.so.1 (0x00007f5e3dcb4000)
libicudata.so.71 => /lib64/libicudata.so.71 (0x00007f5e3dcaf000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f5e3dc23000)
libvorbisenc.so.2 => /lib64/libvorbisenc.so.2 (0x00007f5e3db78000)
libFLAC.so.8 => /lib64/libFLAC.so.8 (0x00007f5e3db3a000)
libspeex.so.1 => /lib64/libspeex.so.1 (0x00007f5e3db1d000)
libopus.so.0 => /lib64/libopus.so.0 (0x00007f5e3dac2000)
libvorbis.so.0 => /lib64/libvorbis.so.0 (0x00007f5e3da91000)
libogg.so.0 => /lib64/libogg.so.0 (0x00007f5e3da86000)
libudev.so.1 => /lib64/libudev.so.1 (0x00007f5e3da5b000)
libusb3380.so.0 => /lib64/libusb3380.so.0 (0x00007f5e3da51000)
libXau.so.6 => /lib64/libXau.so.6 (0x00007f5e3da4c000)
libX11.so.6 => /lib64/libX11.so.6 (0x00007f5e3d904000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f5e3d8e5000)
libbrotlidec.so.1 => /lib64/libbrotlidec.so.1 (0x00007f5e3d8d8000)
libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007f5e3d8b2000)
libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1 (0x00007f5e3d88f000)

righthal...@gmail.com

unread,
Aug 6, 2022, 10:51:09 AM8/6/22
to Gqrx SDR
Your -

ldd /usr/bin/gqrx

shows librtlsdr.so coming from /usr/local/lib64/

librtlsdr.so.0 => /usr/local/lib64/librtlsdr.so.0

where all the rest of the libraries are coming from /lib64/

do not know if it will make any difference, but you are loading the wrong version of librtlsdr.so

you can also try -

gdb gqrx
run -r
bt

to see if that gives you more information.

Aaron

unread,
Aug 6, 2022, 12:10:12 PM8/6/22
to Gqrx SDR
I now have librtlsdr.so coming from /lib64/, but I still have the segmentation fault.

Here is the output of gdb gqrx, run -r, bt:

#0  0x00007ffff5b0a983 in ?? ()
#1  0x0000000000000001 in ?? ()
#2  0x00007ffff362f000 in ?? ()
#3  0x00007fffffffcea0 in ?? ()
#4  0x00007ffff7fc88d7 in _dl_map_object_deps (map=<optimized out>, preloads=<optimized out>, npreloads=<optimized out>, trace_mode=<optimized out>, open_mode=<optimized out>) at dl-deps.c:248
#5  0x00007ffff7fe74dc in dl_main (phdr=<optimized out>, phnum=<optimized out>, user_entry=<optimized out>, auxv=<optimized out>) at rtld.c:2439
#6  0x00007ffff7fe2f7f in _dl_sysdep_start (start_argptr=start_argptr@entry=0x7fffffffd9f0, dl_main=dl_main@entry=0x7ffff7fe511e <dl_main>) at ../elf/dl-sysdep.c:256
#7  0x00007ffff7fe4e9e in _dl_start_final (arg=0x7fffffffd9f0) at rtld.c:507
#8  _dl_start (arg=0x7fffffffd9f0) at rtld.c:596
#9  0x00007ffff7fe3b98 in _start () from /lib64/ld-linux-x86-64.so.2
#10 0x0000000000000002 in ?? ()
#11 0x00007fffffffdea4 in ?? ()
#12 0x00007fffffffdeb2 in ?? ()
#13 0x0000000000000000 in ?? ()

I'm not sure what to make of all that. Is it an issue with my /lib64/ld-linux-x86-64.so.2?

righthal...@gmail.com

unread,
Aug 6, 2022, 11:54:57 PM8/6/22
to Gqrx SDR
I was hoping that the "bt" would have more names in it. All I can tell from the trace back it is that it is crashing trying to load a dynamic library. 

It is trying to use the Soapy routines - those you can check with -

SoapySDRUtil --info

SoapySDRUtil --find

Another option is to uninstall gqrx and all of the SDR libraries. Then build it and librtlsdr in debug mode - this would avoid possible problems SDR routines that you do not need. I am not sure that it will build without the "uhd" routines - gqrx doe not need them, but gnuradio does - so there may be a problem.



Aaron

unread,
Aug 7, 2022, 9:40:27 AM8/7/22
to Gqrx SDR
I did not have soapy-sdr installed. Is that a dependency for gqrx? I installed soapy and the module for the rtlsdr. Are there any guides for building librtlsdr?

SoapySDRUtil --info
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Lib Version: v0.8.1-unknown
API Version: v0.8.0
ABI Version: v0.8
Install root: /usr
Search path:  /usr/lib64/SoapySDR/modules0.8
Search path:  /usr/local/lib64/SoapySDR/modules0.8               (missing)
Module found: /usr/lib64/SoapySDR/modules0.8/librtlsdrSupport.so (0.3.2)
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]


SoapySDRUtil --find
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Found Rafael Micro R820T tuner
Found device 0
 driver = rtlsdr
 label = Generic RTL2832U OEM :: 00000001
 manufacturer = Realtek
 product = RTL2838UHIDIR
 serial = 00000001
 tuner = Rafael Micro R820T

righthal...@gmail.com

unread,
Aug 7, 2022, 12:08:33 PM8/7/22
to Gqrx SDR
The soapySDR stuff in  "/usr/local" looks OK, but you now likely have two versions of soapy installed. Doing a -

sudo find / -name "modules0*"

will show the multiple "SoapySDR/modules0" if you have them.

You apparently have some conflicting libraries installed on your system.

The only way to find out for sure is to do a new install of the system and then do the install of gqrx - that seems to get things working about 70 percent of the time.



Aaron

unread,
Aug 8, 2022, 8:59:02 AM8/8/22
to Gqrx SDR
I'm only finding 1 SoapySDR/modules0. I'll give a fresh install of the system a shot. I expect that'll resolve things. Thank you for your help the past couple of days!

Aaron

unread,
Aug 8, 2022, 11:41:01 PM8/8/22
to Gqrx SDR
So no luck with a fresh opensuse tumbleweed install. I still get the segmentation fault. Do you have more ideas I can troubleshoot?

righthal...@gmail.com

unread,
Aug 11, 2022, 7:38:32 PM8/11/22
to Gqrx SDR
The final resort is to build gqrx from the source files -


You may have to go back a few versions to find one compatible with your system.

righthal...@gmail.com

unread,
Aug 12, 2022, 12:14:39 AM8/12/22
to Gqrx SDR
You should log a bug report at 


there is a sight chance that they will help you.

Reply all
Reply to author
Forward
0 new messages