Does not work Gqrx

Does not work Gqrx

An error occurs when starting it -

$ gqrx 
gqrx: error while loading shared libraries: librtlsdr.so.0: cannot open shared object file: No such file or directory

the installation rx_tools did not help.

How can this problem be solved?

Installed from AUR or from standard repository?

From Standart repository

Then you are in a partial upgrade state. Also post:

ldd /usr/bin/gqrx

I’d look for which package provides that library - or is supposed to provide it.
Apparently it isn’t there.

I have zero experience in this SDR area.

It would be my guess and recommendation to make sure that your system is fully updated.
It probably isn’t.

None. :smiley:

EDIT:

Ah wait, I just figured this is for ARM. :man_shrugging: Well ldd output would still be nice.
And add to it:

pacman -Q gqrx rtl-sdr

EDIT 2:

Nevermind, gqrx wasn’t pushed into stable and testing ARM yet, so you’ll have to wait for that.

Ahh - ok.
I try to pay attention, but I often miss this, at least initially.

In this case:
I have zero knowledge and should not have said anything at all.

Sorry @Craft - nevermind. Ignore what I said.

That ldd output is unreadable.

Anyway, as I said, you either have to wait for gqrx to be pushed to stable, take it from unstable branch or downgrade rtl-sdr.

My system has been completely updated to stable mode.

Please my result:

# pacman -Q gqrx rtl-sdr
gqrx 2.17.3-1
rtl-sdr 1:2.0.1-3

and

ldd /usr/bin/gqrx
	linux-vdso.so.1 (0x0000ffffb45ae000)
	libQt6Network.so.6 => /usr/lib/libQt6Network.so.6 (0x0000ffffb40c0000)
	libQt6SvgWidgets.so.6 => /usr/lib/libQt6SvgWidgets.so.6 (0x0000ffffb40a0000)
	libgnuradio-osmosdr.so.0.2.0 => /usr/lib/libgnuradio-osmosdr.so.0.2.0 (0x0000ffffb3fb0000)
	libpulse.so.0 => /usr/lib/libpulse.so.0 (0x0000ffffb3f40000)
	libpulse-simple.so.0 => /usr/lib/libpulse-simple.so.0 (0x0000ffffb3f20000)
	libgnuradio-digital.so.3.10.8 => /usr/lib/libgnuradio-digital.so.3.10.8 (0x0000ffffb3da0000)
	libgnuradio-network.so.3.10.8 => /usr/lib/libgnuradio-network.so.3.10.8 (0x0000ffffb3d20000)
	libQt6Widgets.so.6 => /usr/lib/libQt6Widgets.so.6 (0x0000ffffb3520000)
	libQt6Gui.so.6 => /usr/lib/libQt6Gui.so.6 (0x0000ffffb2c40000)
	libQt6Core.so.6 => /usr/lib/libQt6Core.so.6 (0x0000ffffb25c0000)
	libgnuradio-analog.so.3.10.8 => /usr/lib/libgnuradio-analog.so.3.10.8 (0x0000ffffb2520000)
	libgnuradio-filter.so.3.10.8 => /usr/lib/libgnuradio-filter.so.3.10.8 (0x0000ffffb2420000)
	libgnuradio-blocks.so.3.10.8 => /usr/lib/libgnuradio-blocks.so.3.10.8 (0x0000ffffb2140000)
	libgnuradio-fft.so.3.10.8 => /usr/lib/libgnuradio-fft.so.3.10.8 (0x0000ffffb2100000)
	libgnuradio-runtime.so.3.10.8 => /usr/lib/libgnuradio-runtime.so.3.10.8 (0x0000ffffb1f30000)
	libgnuradio-pmt.so.3.10.8 => /usr/lib/libgnuradio-pmt.so.3.10.8 (0x0000ffffb1ec0000)
	libvolk.so.3.0 => /usr/lib/libvolk.so.3.0 (0x0000ffffb1db0000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x0000ffffb1b50000)
	libm.so.6 => /usr/lib/libm.so.6 (0x0000ffffb1aa0000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x0000ffffb1a70000)
	libc.so.6 => /usr/lib/libc.so.6 (0x0000ffffb18b0000)
	/lib/ld-linux-aarch64.so.1 => /usr/lib/ld-linux-aarch64.so.1 (0x0000ffffb4575000)
	libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x0000ffffb1840000)
	libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x0000ffffb1820000)
	libzstd.so.1 => /usr/lib/libzstd.so.1 (0x0000ffffb1750000)
	libz.so.1 => /usr/lib/libz.so.1 (0x0000ffffb1720000)
	libproxy.so.1 => /usr/lib/libproxy.so.1 (0x0000ffffb1700000)
	libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x0000ffffb1260000)
	libQt6Svg.so.6 => /usr/lib/libQt6Svg.so.6 (0x0000ffffb11e0000)
	libboost_chrono.so.1.83.0 => /usr/lib/libboost_chrono.so.1.83.0 (0x0000ffffb11c0000)
	libboost_thread.so.1.83.0 => /usr/lib/libboost_thread.so.1.83.0 (0x0000ffffb1180000)
	libgnuradio-iqbalance.so.3.9.0 => /usr/lib/libgnuradio-iqbalance.so.3.9.0 (0x0000ffffb1160000)
	librtlsdr.so.0 => not found
	libgnuradio-uhd.so.3.10.8 => /usr/lib/libgnuradio-uhd.so.3.10.8 (0x0000ffffb10b0000)
	libuhd.so.4.5.0 => /usr/lib/libuhd.so.4.5.0 (0x0000ffffb0010000)
	libhackrf.so.0 => /usr/lib/libhackrf.so.0 (0x0000ffffafff0000)
	libbladeRF.so.2 => /usr/lib/libbladeRF.so.2 (0x0000ffffaff30000)
	libairspy.so.0 => /usr/lib/libairspy.so.0 (0x0000ffffaff10000)
	libSoapySDR.so.0.8 => /usr/lib/libSoapySDR.so.0.8 (0x0000ffffafe80000)
	libpulsecommon-16.1.so => /usr/lib/pulseaudio/libpulsecommon-16.1.so (0x0000ffffafde0000)
	libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x0000ffffafd60000)
	libspdlog.so.1.12 => /usr/lib/libspdlog.so.1.12 (0x0000ffffafcd0000)
	libfmt.so.10 => /usr/lib/libfmt.so.10 (0x0000ffffafc90000)
	libEGL.so.1 => /usr/lib/libEGL.so.1 (0x0000ffffafc60000)
	libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x0000ffffafc00000)
	libX11.so.6 => /usr/lib/libX11.so.6 (0x0000ffffafaa0000)
	libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x0000ffffaf910000)
	libQt6DBus.so.6 => /usr/lib/libQt6DBus.so.6 (0x0000ffffaf820000)
	libxkbcommon.so.0 => /usr/lib/libxkbcommon.so.0 (0x0000ffffaf7c0000)
	libGLX.so.0 => /usr/lib/libGLX.so.0 (0x0000ffffaf770000)
	libOpenGL.so.0 => /usr/lib/libOpenGL.so.0 (0x0000ffffaf700000)
	libpng16.so.16 => /usr/lib/libpng16.so.16 (0x0000ffffaf6b0000)
	libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x0000ffffaf560000)
	libmd4c.so.0 => /usr/lib/libmd4c.so.0 (0x0000ffffaf530000)
	libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x0000ffffaf450000)
	libicui18n.so.73 => /usr/lib/libicui18n.so.73 (0x0000ffffaf0c0000)
	libicuuc.so.73 => /usr/lib/libicuuc.so.73 (0x0000ffffaee80000)
	libsystemd.so.0 => /usr/lib/libsystemd.so.0 (0x0000ffffaed40000)
	libdouble-conversion.so.3 => /usr/lib/libdouble-conversion.so.3 (0x0000ffffaed10000)
	libb2.so.1 => /usr/lib/libb2.so.1 (0x0000ffffaecf0000)
	libpcre2-16.so.0 => /usr/lib/libpcre2-16.so.0 (0x0000ffffaec50000)
	libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0x0000ffffaeba0000)
	libfftw3f.so.3 => /usr/lib/libfftw3f.so.3 (0x0000ffffaeaa0000)
	libfftw3f_threads.so.3 => /usr/lib/libfftw3f_threads.so.3 (0x0000ffffaea80000)
	libboost_program_options.so.1.83.0 => /usr/lib/libboost_program_options.so.1.83.0 (0x0000ffffaea00000)
	libgmp.so.10 => /usr/lib/libgmp.so.10 (0x0000ffffae970000)
	libunwind.so.8 => /usr/lib/libunwind.so.8 (0x0000ffffae920000)
	libthrift-0.19.0.so => /usr/lib/libthrift-0.19.0.so (0x0000ffffae840000)
	liborc-0.4.so.0 => /usr/lib/liborc-0.4.so.0 (0x0000ffffae780000)
	libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x0000ffffae660000)
	libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x0000ffffae610000)
	libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x0000ffffae5f0000)
	libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x0000ffffae5c0000)
	libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x0000ffffae5a0000)
	libresolv.so.2 => /usr/lib/libresolv.so.2 (0x0000ffffae570000)
	libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x0000ffffae530000)
	libpxbackend-1.0.so => /usr/lib/libproxy/libpxbackend-1.0.so (0x0000ffffae510000)
	libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x0000ffffae490000)
	libboost_filesystem.so.1.83.0 => /usr/lib/libboost_filesystem.so.1.83.0 (0x0000ffffae450000)
	libboost_serialization.so.1.83.0 => /usr/lib/libboost_serialization.so.1.83.0 (0x0000ffffae3f0000)
	libusb-1.0.so.0 => /usr/lib/libusb-1.0.so.0 (0x0000ffffae3c0000)
	libpython3.11.so.1.0 => /usr/lib/libpython3.11.so.1.0 (0x0000ffffaddb0000)
	libpthread.so.0 => /usr/lib/libpthread.so.0 (0x0000ffffadd90000)
	libxcb.so.1 => /usr/lib/libxcb.so.1 (0x0000ffffadd50000)
	libasyncns.so.0 => /usr/lib/libasyncns.so.0 (0x0000ffffadd30000)
	libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x0000ffffadba0000)
	libexpat.so.1 => /usr/lib/libexpat.so.1 (0x0000ffffadb60000)
	libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0 (0x0000ffffadac0000)
	libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x0000ffffada80000)
	libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x0000ffffada50000)
	libicudata.so.73 => /usr/lib/libicudata.so.73 (0x0000ffffabbb0000)
	libcap.so.2 => /usr/lib/libcap.so.2 (0x0000ffffabb90000)
	libgcrypt.so.20 => /usr/lib/libgcrypt.so.20 (0x0000ffffaba80000)
	liblz4.so.1 => /usr/lib/liblz4.so.1 (0x0000ffffaba40000)
	liblzma.so.5 => /usr/lib/liblzma.so.5 (0x0000ffffaba00000)
	libgomp.so.1 => /usr/lib/libgomp.so.1 (0x0000ffffab9a0000)
	libogg.so.0 => /usr/lib/libogg.so.0 (0x0000ffffab980000)
	libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x0000ffffab8c0000)
	libFLAC.so.12 => /usr/lib/libFLAC.so.12 (0x0000ffffab870000)
	libopus.so.0 => /usr/lib/libopus.so.0 (0x0000ffffab800000)
	libmpg123.so.0 => /usr/lib/libmpg123.so.0 (0x0000ffffab790000)
	libmp3lame.so.0 => /usr/lib/libmp3lame.so.0 (0x0000ffffab700000)
	libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x0000ffffab6c0000)
	libssl.so.3 => /usr/lib/libssl.so.3 (0x0000ffffab5f0000)
	libcurl.so.4 => /usr/lib/libcurl.so.4 (0x0000ffffab510000)
	libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x0000ffffab2b0000)
	libduktape.so.207 => /usr/lib/libduktape.so.207 (0x0000ffffab240000)
	libffi.so.8 => /usr/lib/libffi.so.8 (0x0000ffffab220000)
	libboost_atomic.so.1.83.0 => /usr/lib/libboost_atomic.so.1.83.0 (0x0000ffffab200000)
	libudev.so.1 => /usr/lib/libudev.so.1 (0x0000ffffab1a0000)
	libXau.so.6 => /usr/lib/libXau.so.6 (0x0000ffffab180000)
	libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x0000ffffab160000)
	libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x0000ffffab120000)
	libnghttp2.so.14 => /usr/lib/libnghttp2.so.14 (0x0000ffffab0d0000)
	libidn2.so.0 => /usr/lib/libidn2.so.0 (0x0000ffffab080000)
	libssh2.so.1 => /usr/lib/libssh2.so.1 (0x0000ffffab020000)
	libpsl.so.5 => /usr/lib/libpsl.so.5 (0x0000ffffaaff0000)
	libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x0000ffffaafd0000)
	libmount.so.1 => /usr/lib/libmount.so.1 (0x0000ffffaaf40000)
	libunistring.so.5 => /usr/lib/libunistring.so.5 (0x0000ffffaad70000)
	libblkid.so.1 => /usr/lib/libblkid.so.1 (0x0000ffffaad00000)

Moderator edit: In the future, please use proper formatting: [HowTo] Post command output and file content as formatted text

Seems to work ok on the unstable branch.

That’s provided by rtl-sdr, FYI. However, the current library is currently librtlsdr.so.2:

❯ pacman -Fx librtlsdr
extra/rtl-sdr 1:2.0.1-3
    usr/lib/librtlsdr.so
    usr/lib/librtlsdr.so.2
    usr/lib/librtlsdr.so.2.0.1
    usr/lib/pkgconfig/librtlsdr.pc

Wow, this is awesome! :+1: Can I do this in a stable branch?

Yes, the same version is in all branches. See Packages

However you may need to update your local database to match the repo:

sudo pacman -Fy

I’ve already done this -

sudo pacman -Fy

More:

pamac install rtl-sdr
Preparation...
Attention: rtl-sdr-1:2.0.1-3 is not outdated -- skipped
There are no tasks.
The transaction has been completed successfully.

What exactly should I do next?

I have no clue what you may or may not have going on there. The one error you mentioned above is for SoapySDR which I do not have but see gqrx searching for it also in my terminal before it finds my device.

[ray@jellyfin ~]$ gqrx
gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.10.9.2
built-in source types: file rtl rtl_tcp uhd hackrf bladerf rfspace airspy soapy redpitaya 
vmcircbuf_prefs::get :info: /home/ray/.gnuradio/prefs/vmcircbuf_default_factory failed to open: bad true, fail true, eof true
rx_nb_cc :info: set_min_output_buffer on block 12 to 32768
Resampling audio 96000 -> 48000
BandPlanFile is /home/ray/.config/gqrx/bandplan.csv
BookmarksFile is /home/ray/.config/gqrx/bookmarks.csv
[INFO] [UHD] linux; GNU C++ version 12.1.0; Boost_108300; UHD_4.6.0.0-0-unknown
[ERROR] SoapySDR::loadModule(/usr/lib/SoapySDR/modules0.8/librtlsdrSupport.so)
  dlopen() failed: librtlsdr.so.0: cannot open shared object file: No such file or directory
QFSFileEngine::open: No file name specified
gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.10.9.2
built-in source types: file rtl rtl_tcp uhd hackrf bladerf rfspace airspy soapy redpitaya 
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Found Rafael Micro R820T tuner

One thing I do have is a blacklist loaded at boot as some modules interfere with the rtl-sdr.

[ray@jellyfin ~]$ cat /etc/modprobe.d/blacklist-rtlsdr.conf 

blacklist dvb_core
blacklist dvb_usb_rtl2832u
blacklist dvb_usb_rtl28xxu
blacklist dvb_usb_v2
blacklist r820t
blacklist rtl2830
blacklist rtl2832
blacklist rtl2832_sdr
blacklist rtl2838

# This alone will not prevent a module being loaded if it is a
# required or an optional dependency of another module. Some kernel
# modules will attempt to load optional modules on demand, which we
# mitigate here by causing /bin/false to be run instead of the module.
#
# The next time the loading of the module is attempted, the /bin/false
# will be executed instead. This will prevent the module from being
# loaded on-demand. Source: https://access.redhat.com/solutions/41278

install dvb_core /bin/false
install dvb_usb_rtl2832u /bin/false
install dvb_usb_rtl28xxu /bin/false
install dvb_usb_v2 /bin/false
install r820t /bin/false
install rtl2830 /bin/false
install rtl2832 /bin/false
install rtl2832_sdr /bin/false
install rtl2838 /bin/false

No idea because…

… tells us absolutely nothing. Please try again.

All I did was check the library versions and told you how to check–and that’s all I’m going to do.

Please see:

But gqrx is not.

I see. Well, I suggest @Craft switch to the testing branch and see if that makes any difference.

I found a simple solution that helped launch Gqrx 2.17.3 from the stable branch:

ln -s  /usr/lib/librtlsdr.so.2    /usr/lib/librtlsdr.so.0

That’s never a solution.