Hi Christophe,
This is unfortunately a known problem. The way GNU Radio was packaged in
Ubuntu 20.04 is (to me) a bit odd, with the version number as part of
the package name for most of the libraries.
If you install GR from the PPA, you will now get version 3.8.2, which is
great. This will also include all the libraries. But if you then try to
install a package from the regular Ubuntu repository, e.g. gr-osmosdr,
this will pull in gnuradio-3.8.1 libraries. So now you end up with two
versions of the gnuradio libraries installed on your system. Your
gr-osmosdr (from the Ubuntu repositories) is linked against the 3.8.1
versions of the libraries, whereas the gnuradio on your system links
against the 3.8.2 version of the libraries. Then, when you try to use
the two together, mayhem ensues.
The result of this, is that the 3.8.2 on the PPA only works with itself,
but not with the other packages from the regular Ubuntu LTS release.
Unfortunately, the PPA is simply broken at this time.
Fixing this is not easy, because to solve the root cause, we'd have to
figure out how to properly package GR for Ubuntu, and then convince
Ubuntu to upgrade the version of GNU Radio (and all dependent packages!)
that are part of the stable release.
Regards, Paul Boven.
On 8/27/20 12:25 PM, Christophe Seguinot wrote:
Hi
I recently switched my computer to Ubuntu 20.04 and installed GNURadio
3.8.2.0 from ppa
(http://ppa.launchpad.net/gnuradio/gnuradio-releases/ubuntu). Version
3.8.2 is the latest in this PPA and is installed by default.
I also installed gr-osmosdr gr-limesdr and gr-rds using sudo apt install.
Gnuradio is running fine in most cases. However, each time I run a
flowgraph involving SDR or LimeSDR Dongle I get the classical error:
File "/home/-----/rds_rx.py", line 571, in __init__
self.audio_sink_1 = audio.sink(audio_rate, '', True)
AttributeError: 'int' object has no attribute 'sink'
Looking into library folder /usr/lib/x86_64-linux-gnu I found that some
3.8.1.1 and 3.8.0 libraries are installed and probably conflicting with
3.8.2.0 libraries. For example, command/ll libgnuradio-runtime*/ gives
lrwxrwxrwx 1 root root 28 aug. 22 14:29
libgnuradio-runtime.so -> libgnuradio-runtime.so.3.8.2
lrwxrwxrwx 1 root root 30 juil. 31 15:23
libgnuradio-runtime.so.3.8.1 -> libgnuradio-runtime.so.3.8.1.0
-rw-r--r-- 1 root root 1077632 juil. 31 15:23
libgnuradio-runtime.so.3.8.1.0
lrwxrwxrwx 1 root root 30 aug. 22 14:29
libgnuradio-runtime.so.3.8.2 -> libgnuradio-runtime.so.3.8.2.0
-rw-r--r-- 1 root root 1077632 aug. 22 14:29
libgnuradio-runtime.so.3.8.2.0
It looks like 3.8.1 and 3.8.0 libraries have been installed when
installing gr-osmosdr gr-limesdr and gr-rds
installed libraries during gr-osmosdr install
libgnuradio-audio.so.3.8.1
libgnuradio-blocks.so.3.8.1
libgnuradio-pmt.so.3.8.1
libgnuradio-runtime.so.3.8.1
libgnuradio-fcdproplus.so.3.8.0
libgnuradio-iqbalance.so.3.8.0
ilbgnuradio-uhd.so.3.8.0
ibgnuradio-fosphor.so.3.8.0
installed libraries during gr-rds install
libgnuradio-analog.so.3.8.1
libgnuradio-digital.so.3.8.1
libgnuradio-filter.so.3.8.1
I also notice that gr-osmosdr and gr-limesdr depend on libgnuradio-xxx
>= 3.8.1.0~rc1. So I don't understand why 3.8.1 libraries have been
installed after 3.8.2 libraries
Here are my questions:
* Is the existence of these multiple libraries versions the cause of
errors?
* Could someone please provide some link to PPA or source to compile
(for gr-osmosdr and gr-limesdr) which are compatible with GNURadio
3.8.2.0?
* Should I reverse to GNURadio 3.8.1 using PPA
http://ppa.launchpad.net/gnuradio/gnuradio-releases/ubuntu?
Regards, Christophe