OP25 op25 boatbod with gnuradio-3.10

DC31

Member
Feed Provider
Joined
Feb 19, 2011
Messages
1,564
Location
Massachusetts
i have had the boatbod OP25 running very well for months on my Raspberry Pi4 using the following command line to start it:
./rx.py --nocrypt --args "rtl" --gains 'lna:30' -S 960000 -l "http:0.0.0.0:8088" -X -q 0 -d 300 -v 1 -2 -V -w -U -T trunk.tsv 2> stderr.2 &
chromium-browser --no-startup-window --window-size=760,620 --app="http://0.0.0.0:8088”

Suddenly today it isn’t running and I get the following when trying to start it. Any ideas where to start my troubleshooting?

[4311:4311:0618/194211.896147:ERROR:component_loader.cc(186)] Failed to parse extension manifest.
[4311:4415:0618/194212.481960:ERROR:eek:bject_proxy.cc(622)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[4311:4415:0618/194212.483087:ERROR:eek:bject_proxy.cc(622)] Failed to call method: org.freedesktop.UPower.GetDisplayDevice: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[4311:4415:0618/194212.484075:ERROR:eek:bject_proxy.cc(622)] Failed to call method: org.freedesktop.UPower.EnumerateDevices: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
Fontconfig error: Cannot load default config file: No such file: (null)
[4366:4366:0618/194212.866070:ERROR:gpu_init.cc(441)] Passthrough is not supported, GL is egl
[4366:4366:0618/194213.600965:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[4366:4366:0618/194216.823566:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
[4366:4366:0618/194219.050398:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 3 times!


Thank you
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,410
Location
Talbot Co, MD
None of those errors have any relationship with op25 or your RTL device, but they do appear to be affecting linux drivers (DBus).
 

W3VVV

Member
Joined
May 16, 2004
Messages
17
Location
Olney, MD
An version of boatbod op25 supporting gnuradio-3.10 (ubuntu 22.04) is now available for alpha testing. Presently the code is only available from the "gr310" branch of my github repo and the install.sh script is somewhat minimal in it's error detection. Functionality is identical to the current gnuradio-3.8 version.

Code:
git clone https://github.com/boatbod/op25
cd op25
git checkout gr310
./install.sh

I have not testing this on any os other than ubuntu-22.04 using multi_rx.py. Bugs are inevitably still lurking in there!
Just want to share that I successfully used these instructions to run OP25 with 6 feeds on an Asus Chromebox CN60 with 4 GB of RAM running Ubuntu 22.04.3 LTS. The Chromebox was modified to support Linux by installing the MrChromebox.tech BIOS. Also upgraded the 16 GB SSD to a 256 GB SSD, although a 128 GB SSD would have been more than adequate.

A Chromebox has only 4 USB ports so I used a powered USB hub to enable it to support 6 RTL-SDRs.

If upgrading the SSD, be sure to install the MrChromebox BIOS before upgrading the SSD so that you can get the Chromebox into the correct mode to replace ChromeOS with Ubuntu.

I was previously running my 6 feeds on a Pi4b but I prefer the Chromebox because the it runs cooler and seems faster than the Pi4b.

The CN60 and CN62 Chromebox models no longer receive software upgrades from Google so they are often available cheap or free from schools and individuals who are disposing of them. Google considers these models to be "expired" but they can be given a new life by installing Linux.

Some of the smaller Linux distributions will fit on 12 GB or less, especially if the optional features are not installed, so a Chromebox with the standard 16 GB SSD can also be used if you are trying to keep costs to absolute minimum. Another option is to use an external USB drive, although booting and program startup will be slower.

 
Last edited:

W3VVV

Member
Joined
May 16, 2004
Messages
17
Location
Olney, MD
Just want to share that I successfully used these instructions to run OP25 with 6 feeds on an Asus Chromebox CN60 with 4 GB of RAM running Ubuntu 22.04.3 LTS. The Chromebox was modified to support Linux by installing the MrChromebox.tech BIOS. Also upgraded the 16 GB SSD to a 256 GB SSD, although a 128 GB SSD would have been more than adequate.

A Chromebox has only 4 USB ports so I used a powered USB hub to enable it to support 6 RTL-SDRs.

If upgrading the SSD, be sure to install the MrChromebox BIOS before upgrading the SSD so that you can get the Chromebox into the correct mode to replace ChromeOS with Ubuntu.

I was previously running my 6 feeds on a Pi4b but I prefer the Chromebox because the it runs cooler and seems faster than the Pi4b.

The CN60 and CN62 Chromebox models no longer receive software upgrades from Google so they are often available cheap or free from schools and individuals who are disposing of them. Google considers these models to be "expired" but they can be given a new life by installing Linux.

Some of the smaller Linux distributions will fit on 12 GB or less, especially if the optional features are not installed, so a Chromebox with the standard 16 GB SSD can also be used if you are trying to keep costs to absolute minimum. Another option is to use an external USB drive, although booting and program startup will be slower.


Also, to run 6 RTL-SDRs, I had to increase the number of USB buffers from its default of 16. I went with 256, but could have probably gotten away with something smaller. Google <usbfs_memory_mb> if you need help with this.
 

HankFrank

Member
Joined
Nov 6, 2009
Messages
125
Location
Central VA
For anyone that likes a challenge, I can confirm successfully building and running op25 boatbod on both Arch and Fedora 37. Both require manual installation of dependency packages and op25 build (forget the install.sh script) but they do work if you get everything just so! Red Hat Enterprise Linux (RHEL 9) was a bust because there are just too many support packages not available. My guess is that you could build everything from sources, but seems like a lot of extra work for little benefit.
Hey boatbod sorry for the late reply to this. I was working on building op25 on Fedora 39 but ran into a roadbump with libitpp. Seems to no longer be packaged in the distro. Did you compile it from source?


Thanks!
 

boatbod

Member
Joined
Mar 3, 2007
Messages
3,410
Location
Talbot Co, MD
Hey boatbod sorry for the late reply to this. I was working on building op25 on Fedora 39 but ran into a roadbump with libitpp. Seems to no longer be packaged in the distro. Did you compile it from source?


Thanks!
Sorry, it's been a while since I tested op25 with Fedora and that was with Fedora 37. I do recall something about libitpp but not what I had to do to make it work. Building from source should be ok.
 

HankFrank

Member
Joined
Nov 6, 2009
Messages
125
Location
Central VA
Thanks, yes it worked but there's plenty of hurdles to jump through. It seems to be working OK but I have an issue where I sometimes lose audio if the screen locks, or I open and close the Gnome sounds settings. Using pulse seems to help.

In case anyone is interested in Fedora 39, here are all the OS dependencies. You should be able to use dnf to install these:

gnuradio
git
cmake
make
gcc
g++
uhd-devel
castxml
rtl-sdr
rtl-sdr-devel
airspyone_host
airspy_one-devel
gr-osmosdr
boost-devel
cppunit-devel
gnuradio-devel
spdlog-devel
gmp-devel
blas-devel
lapack-devel
fftw-devel
pybind11-devel
libpcap-devel
python-waitress

I also needed to use pip to install pygccxml


Compile latest itpp from here:


ITPP has soft dependencies on blas, fftw, and lapack, which should have been installed above.

ITPP make will install header files to /usr/lib64/include/itpp/


OP25 Build:

Use the gnuradio 3.10 branch (git checkout gr310)


When you go to build op25 you need to point cmake to the itpp includes:

cmake ../ -DITPP_LIBRARY=/usr/lib64/include/itpp/


After building and installing, you will also need to link all the itpp libraries to /usr/lib64, they wound up in /usr/lib64/lib/.

(From inside /usr/lib64/ directory: )

sudo ln -s lib/libitpp.so libitpp.so
sudo ln -s lib/libitpp.so.8 libitpp.so.8
sudo ln -s lib/libitpp.so.8.2.1 libitpp.so.8.2.1


(Maybe if I had RTFM better on ITPP I could have avoided some of the above)

By default, the op25 install will put all the op25 libraries in /usr/local/lib64, so you need to link those, This could be adjusted probably.

(from within /usr/lib64/ directory: )

sudo ln -s /usr/local/lib64/libgnuradio-op25_repeater.so libgnuradio-op25_repeater.so
sudo ln -s /usr/local/lib64/libgnuradio-op25_repeater.so.1.0.0 libgnuradio-op25_repeater.so.1.0.0
sudo ln -s /usr/local/lib64/libgnuradio-op25_repeater.so.1.0.0.0 libgnuradio-op25_repeater.so.1.0.0.0
sudo ln -s /usr/local/lib64/libgnuradio-op25.so libgnuradio-op25.so
sudo ln -s /usr/local/lib64/libgnuradio-op25.so.1.0.0 libgnuradio-op25.so.1.0.0
sudo ln -s /usr/local/lib64/libgnuradio-op25.so.1.0.0.0 libgnuradio-op25.so.1.0.0.0



Don't forget to blacklist the default RTL kernel drivers:


sudo install -m 0644 ./blacklist-rtl.conf /etc/modprobe.d/


I think that was it.
 
Top