Hi All,
I've built up a Unbutu machine, installed Phantom SDR Plus, connected up a RX-888, performed a basic configuration and all seems OK.
I'd assumed it would start on boot, but this doesn't seem to be the case.
The configuration details on Github are sparse at best, and my Linux skills are limited, can anyone provide a bit more information to get me up and running ?
I've been trying to see if the rx888_stream and & spectrumserver processes are running, but they don't seem to be listed as services.
How do I start the websdr service, and get it to start again on an initial boot ?
Regards,
Martin
Hi, i saw that some people already did that. Maybe they can post it here otherwise ill send you the setup instructions myself asap.
Hope you enjoy the software so far!
No response, so I think you may have to email me the information.
Once I get it running, I'll post the method for help to any others who may also be struggling.
I'm using a Gigabyte Brix AMD Celeron N2807 4G DDR 120G SSD running Ubuntu 22.04 with cuFFT and opencl installed.
My only "clues" so far are the following
Config as set.
config-rx888mk2.toml
fft_threads=2
brightness_offset=0 # Waterfall brightness offset. Reduce to negative if you se>
frequency=0 # Baseband frequency
signal="real" # real or iq
accelerator="opencl" # Accelerator: none, cuda, opencl
audio_sps=44100 # Audio Sample Rate
audio_compression="flac" # flac or opus
waterfall_size=2048
waterfall_compression="zstd" # zstd or av1
smeter_offset=0
[input.driver]
name="stdin" # Driver name
format="s16" # Sample format: u8, s8, u16, s16, u32, s32, f32, f64
[input.defaults]
frequency=3645000 # Default frequency to show user
modulation="LSB" # Default modulation
Trying to run spectrumserver
wessex@phantom:~/PhantomSDR-Plus/build$ sudo ./spectrumserver
[sudo] password for wessex:
__ __ __ __
|__)|_ _ _ |_ _ _ (_ | \|__) _|_
| | )(_|| )|_(_)|||__)|__/| \ |
Thank you for using PhantomSDR+, you are supporting the Development of an Open-Source WebSDR Project ♥
terminate called after throwing an instance of 'toml::v3::ex::parse_error'
what(): File could not be opened for reading
Aborted
Regards,
Martin
Quote from: magicint1337 on Sep 23, 2024, 11:16 PMHi, i saw that some people already did that. Maybe they can post it here otherwise ill send you the setup instructions myself asap.
Hope you enjoy the software so far!
Hi, try this config:
https://www.phantomsdr.fun/index.php?topic=43.0
Hi Martin,
A Celeron is made from Intel ;D
However, it will not run the RX888 very well as the CPU is far to weak.
It can not cope with the ammount of data.
You really need an I5 or I7, quad core at 2GHz or more.
Even the J4050 isn't strong enough, I have tested those, it won't work.
On Amazon you can find cheap refurbished HP Elitedesk machines for less then 200 euro that are more then powerfull enough.
Do not go for Ryzen, it has no OpenCL support for the IGU.
As for starting, there are *.sh scripts, make them exacutable and adjust them to your needs.
They contain everything to get you going.
Hi Bas,
OK, how do I make *.sh scripts executable, and which ones should I run for the RX888?
I've tried the methods I know, but without luck.
e.g.
chmod +x start-rx888mk2.sh
./start-rx888mk2.sh
root@phantom:/home/wessex/PhantomSDR-Plus# thread 'main' panicked at library/std/src/io/stdio.rs:1118:9:
failed printing to stdout: Broken pipe (os error 32)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Regards,
Martin
As for starting, there are *.sh scripts, make them exacutable and adjust them to your needs.
They contain everything to get you going.
[/quote]
Yes understood, I had to use the AMD build of Ubuntu 22.04
Quote from: Bas ON5HB on Sep 24, 2024, 10:46 AMCeleron is made from Intel ;D
Hi Bas,
OK understood, I thought it would be good enough, but clearly not, what model or spec should I be looking for ?
I think it would be useful if preferred or known good machines / models were added to the Github list, and not just benchmarks, as this would allow standardised builds to be made more easily.
Regards,
Martin
Quote from: Bas ON5HB on Sep 24, 2024, 10:46 AMOn Amazon you can find cheap refurbished HP Elitedesk machines
Hi Martin,
did you already try
sudo ./start-rx888mk2.sh ?
Regards
John
Hi John,
Thanks for the reply, but yes, I have tried all the variations I can think of.
See post #5 in this thread.
Regards,
Martin
Quote from: John DF4UE on Sep 24, 2024, 12:10 PMHi Martin,
did you already try
sudo ./start-rx888mk2.sh ?
Regards
John
Turn off opencl in the toml file, looks like your opencl ins't working or not compiled in the code.
Quote from: Martin G8JNJ on Sep 24, 2024, 11:48 AMOK understood, I thought it would be good enough, but clearly not, what model or spec should I be looking for ?
I think it would be useful if preferred or known good machines / models were added to the Github list, and not just benchmarks, as this would allow standardised builds to be made more easily.
It's impossible to make such a list as there are thousands of models and makes of systems.
Any modern i5 or i7 with with 4 real cores (or more) and 3GHz will do.
I myself use an Intel(R) Core(TM) i5-6500T CPU for my testing machine.
And my online websdr is an Intel(R) Core(TM) i5-7500 CPU.
These are already pretty old CPU's, but have enough power because of OpenCL that can be used.
Without opencl it will require a fast Ryzen CPU that costs many more to run it.
OK, I did that, a bit of progress, but...
As before, spectrumserver and rx888_stream don't seem to be recognised as services.
root@phantom:/home/wessex/PhantomSDR-Plus# ./start-rx888mk2.sh
spectrumserver: no process found
rx888_stream: no process found
Quote from: Bas ON5HB on Sep 24, 2024, 12:54 PMTurn off opencl in the toml file, looks like your opencl ins't working or not compiled in the code.
That is not an error, it's just a kill-command to make sure there insn't anything running before you try to start it (again).
After it goes to the background, as you can see with 'top' command.
If you want to see output during running, then start it yourself like this:
./rx888_stream/target/release/rx888_stream -f ./rx888_stream/SDDC_FX3.img -s 58000000 -g 60 -m low -r --pga -o - | build/spectrumserver --config config-rx888mk2.toml
I'm trying, but sorry for me as a non-regular user of Linux type guy, you have to spell stuff out in full for me to be able to understand what commands are meant, and the use of Rust further complicates the matter. Although I'm vaguely familiar with some aspects of C and C++, Rust is new to me.
For example
"kill-command to make sure there isn't anything running"
OK understood that bit
"before you try to start it (again)."
But what command(s) do I use to start it ? That's what I've been asking since the start of this thread. I just get told to start it - but, start what, and how ?
After it goes to the background, as you can see with 'top' command.
What background and what top command ?
I know I seem stupid, but don't assume what you are saying means the same to me, as it does to you, so please assume I am stupid.
I tried your script and got this response.
root@phantom:/home/wessex/PhantomSDR-Plus# ./rx888_stream/target/release/rx888_stream -f ./rx888_stream/SDDC_FX3.img -s 58000000 -g 60 -m low -r --pga -o - | build/spectrumserver --config config-rx888mk2.toml
__ __ __ __
|__)|_ _ _ |_ _ _ (_ | \|__) _|_
| | )(_|| )|_(_)|||__)|__/| \ |
Thank you for using PhantomSDR+, you are supporting the Development of an Open-Source WebSDR Project ♥
thread 'main' panicked at src/main.rs:396:14:
Failed to resubmit transfer: Disconnected
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[2024-09-24 13:16:23] [info] asio listen error: system:98 (Address already in use)
[2024-09-24 13:16:23] [info] asio listen error: system:98 (Address already in use)
terminate called after throwing an instance of 'websocketpp::exception'
what(): Underlying Transport Error
thread 'main' panicked at library/std/src/io/stdio.rs:1118:9:
failed printing to stdout: Broken pipe (os error 32)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Aborted (core dumped)
Compact i5 6500 3GHz machine on order.
Regards,
Martin
Quote from: Bas ON5HB on Sep 24, 2024, 01:37 PMThat is not an error, it's just a kill-command to make sure there insn't anything running before you try to start it (again).
If you want to see output during running, then start it yourself like this:
./rx888_stream/target/release/rx888_stream -f ./rx888_stream/SDDC_FX3.img -s 58000000 -g 60 -m low -r --pga -o - | build/spectrumserver --config config-rx888mk2.toml
You start with ./start-rx888.sh but then the software is not outputting anything to the screen, as it's run in the background.
So if you want to run it in the forground, like I gave you an example, you must be sure it's killed else you get errors like port in use.
To stop all by hand, run ./stop-websdr and it kills all previous running instances.
You can edit these scripts with nano (very simple editor).
If linux is too hard for you, simple tool makes your life better: apt install mc
Then run 'mc' and you have a norton-commander-like tool.
Transport errors are normal, when people e.g. drop the page or internet is too slow or so.
To make all .sh scripts executable: chmod +x *.sh
The *.sh scripts are there to get you going and they are easy to read. Just like a batch-file but then linux-style ;)
Hi Bas,
OK thanks.
I'm not trying to see the GUI on the machine itself, I'm either SSH'ing in to access the OS, or trying to view it on a separate machine and web browser. So I assume it is supposed to run as a background service, but is this correct, does it need to be run in the foreground for the webserver to run ? Once again, your interpretation of the terminology, and mine may differ.
I'm familiar with navigating around Linux, the basic commands and use of Nano. Although I sometimes use WinSCP to get a better visual idea of the directory structure.
The chmod +x *.sh has to be run as Sudo or SU to obtain the correct permissions.
I understand the .sh files and some of their content. But they only seem to kill processes rather than start any new ones.
Should the RX888 have a service running to stream data to PhantomSDR-Plus.
What about spectrumserver: no process found and rx888_stream: no process found. Should these be running as services and do they need to be started separately ? They don't seem to be identified if I list all the services.
This is undoubtably very easy if you use Linux on a daily basis, however for me, it is simply a means to an end, and although I'm happy to learn and understand what to do, it is like wading through treacle, especially with Linux as there are many ways to do the same thing, and everyone has their own preferred method, so it's not easy to mix and match suggestions from different people.
The simple solution would probably be for me to make port 22 available and then folks could have a poke around, but that wouldn't help me understand what I'm doing wrong.
As I said, if I do get it going, I intend to write an idiot's guide, at least for myself, if no one else.
Regards,
Martin
Quote from: Bas ON5HB on Sep 24, 2024, 03:39 PMYou start with ./start-rx888.sh but then the software is not outputting anything to the screen, as it's run in the background.
So if you want to run it in the forground, like I gave you an example, you must be sure it's killed else you get errors like port in use.
To stop all by hand, run ./stop-websdr and it kills all previous running instances.
You can edit these scripts with nano (very simple editor).
If linux is too hard for you, simple tool makes your life better: apt install mc
Then run 'mc' and you have a norton-commander-like tool.
Transport errors are normal, when people e.g. drop the page or internet is too slow or so.
To make all .sh scripts executable: chmod +x *.sh
The *.sh scripts are there to get you going and they are easy to read. Just like a batch-file but then linux-style ;)
Martin,
Sorry I do not give SSH support.
You have to do it yourself and learn the stuff.
Else you will ask me to solve everything you encounter.
As for commands, I assume you run as root....else I assume you know what to do.
It took me as Linux-nerd several days to understand all of it, and many more to understand the code...sources.
All the scripts are there, easy to read....but I think the piping from the 'driver' to the 'server' causes problems for many.
As you need to instruct the driver (via the script) and change the TOML at the same time.
It is not that hard....you just look toooooooo far into it....the scripts are very simpel and must match the TOML.
Not much more too it. Sorry.
G8JNJ I think the errror you posted earlier is caused by multiple instances being started and the rx888 not being recognized. Please restart your machine and post the output of the command lsusb
PhantomSDR runs like a program, not a service. Think of it like a command line application on windows that would be minimized. I would try to do it like in the wiki that i wrote without using the scripts. That way you can see the output better.
https://github.com/Steven9101/PhantomSDR-Plus/wiki/Config-examples
Try this and post the output.
Hi Bas,
Please read my reply again, I was not asking for SSH support, as I wanted to learn for myself what was required.
Plus, thanks for the admission that, as someone who is proficient in Linux, it still took you sometime to figure out what was going on.
I agree that piping from the Driver to the Server is problematic, and it's not clear to me if the toml scripts are supposed to start all the required process up, or if they have to be done manually in some sort of pre-determined sequence, or if the should automatically start at boot or if some other intervention is required.
I don't know if you have heard of the game of Mao ?
The players of Mao don't tell you the rules, and you only find out when you break one. My experience of trying to get Linux based projects up and running is very much like that, you almost need to know the answer, before understanding what questions to ask.
I know this may seem like a rant, but I'm just simply trying to get the ***** thing up and running, which must be a path others have already taken, but there seem to be a lot of obstacles in my way, and from my perspective folks aren't really helping to clear them. They are just standing there saying "you need to move them" which I already know, and I'm trying my best to achieve.
Not a great analogy, but the best I could come up with :-)
Regards,
Martin
Quote from: Bas ON5HB on Sep 24, 2024, 08:06 PMMartin,
Sorry I do not give SSH support.
You have to do it yourself and learn the stuff.
Else you will ask me to solve everything you encounter.
As for commands, I assume you run as root....else I assume you know what to do.
It took me as Linux-nerd several days to understand all of it, and many more to understand the code...sources.
All the scripts are there, easy to read....but I think the piping from the 'driver' to the 'server' causes problems for many.
As you need to instruct the driver (via the script) and change the TOML at the same time.
It is not that hard....you just look toooooooo far into it....the scripts are very simpel and must match the TOML.
Not much more too it. Sorry.
rx888_stream -f ./rx888_stream/SDDC_FX3.img -s 64000000 -g 90 -m low -d --pga -o - | build/spectrumserver --config config.toml
bash: build/spectrumserver: No such file or directory
thread 'main' panicked at src/main.rs:216:59:
Could not open firmware file: Os { code: 2, kind: NotFound, message: "No such file or directory" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Quote from: magicint1337 on Sep 24, 2024, 08:42 PMhttps://github.com/Steven9101/PhantomSDR-Plus/wiki/Config-examples
Try this and post the output.
After modifying the toml file as per the Configuration example.
root@phantom:/home/wessex# rx888_stream -f ./rx888_stream/SDDC_FX3.img -s 64000000 -g 90 -m low -d --pga -o - | build/spectrumserver --config config.toml
bash: build/spectrumserver: No such file or directory
thread 'main' panicked at src/main.rs:214:10:
Could not find or open bootloader
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Still the same issue
root@phantom:/home/wessex/PhantomSDR-Plus# ./start-rx888mk2.sh
spectrumserver: no process found
rx888_stream: no process found
root@phantom:/home/wessex/PhantomSDR-Plus# thread 'main' panicked at src/main.rs :214:10:
Could not find or open bootloader
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
OK, so no device found.
root@phantom:/home/wessex/PhantomSDR-Plus# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 008: ID 03f0:0024 HP, Inc KU-0316 Keyboard
Bus 001 Device 007: ID 0000:0538 USB OPTICAL MOUSE
Bus 001 Device 006: ID 13d3:3410 IMC Networks Bluetooth Radio
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@phantom:/home/wessex/PhantomSDR-Plus# ./stop-websdr.sh
rx_sdr: no process found
rx888_stream: no process found
rtl_sdr: no process found
Failed to stop sdrplay.service: Unit sdrplay.service not loaded.
Yes the device has to be listed in lsusb otherwise you get the bootloader error.
For now it seems good as its only the bootloader error we just need to get the device to see in lsusb
Agreed, I assume I need a suitable Cypress USB FX3 driver from somewhere and then understand how to install it.
Quote from: magicint1337 on Sep 24, 2024, 11:16 PMFor now it seems good as its only the bootloader error we just need to get the device to see in lsusb
The rx888_stream tool loads the driver but the device is not detected
Try different usb ports and double check all connections to the sdr
Already done that several times, but I'm assuming it requires a manual Cypress driver install.
However, the new PC has just arrived, as per Bas's suggestion.
HP Elitedesk 800 G2 Mini PC i5-6500T 3.1Ghz 8GB RAM 240GB SSD
So I'll abandon the Gigabyte Brix, and spend the morning loading Ubuntu 22.04 and Phantom Web Plus onto it and see if I can make any further progress.
All of this is making the WEB-888 seem like a bargain, as the RX888 cooling modifications and the need for a higher spec (and physically larger) PC are all eating up my funds. I just hope the eventual outcome will be worth it.
Regards,
Martin
Quote from: magicint1337 on Sep 24, 2024, 11:55 PMTry different usb ports and double check all connections to the sdr
Martin,
just a reminder:
install first opencl and than PhantomSDR. You should do the PhantomSDR installation as "root".
good luck
John
OK, I have now got the basics running and lsusb reports the device as being present.
All installed as root. I have not installed opencl separately as I wasn't ware it was a prerequisite
I enabled and tried the various .sh files without luck then ran the https://github.com/Steven9101/PhantomSDR-Plus/wiki/Config-examples as suggested.
This was marginally more successful, but it gets stuck looking for the json marker file, and still no sign of the webservice running on the browser.
__ __ __ __
|__)|_ _ _ |_ _ _ (_ | \|__) _|_
| | )(_|| )|_(_)|||__)|__/| \ |
Thank you for using PhantomSDR+, you are supporting the Development of an Open-Source WebSDR Project ♥
Unable to open marker.json file.
No FFTW wisdom file found. Planning from scratch. This may take long on the first time but will then be fast.
Waterfall is sent every 2 FFTs
Regards,
Martin
clinfo reports
root@phantom:/home/wessex# clinfo
Number of platforms 0
After it says waterfall is sent every 2 ffts the website should be available on the port given in the config
After installing opencl you have to reboot to get proper clinfo output
OK some progress.
Tried installing OpenCL but even after several reboots Number of platforms 0
ran ./start-rx888mk2.sh
I can now see the web interface and tune to signals.
However, a signal on 198kHz is appearing on 211.22kHz the audio is choppy and agc seems to be pumping.
Should it all start automatically on reboot ? At the moment I'm having to manually do this.
Can anyone point me to a list of the rx888_stream parameters ?
e.g.
-s
-g
-m
-p
ect. ?
Well reduce the sample rate to 48mhz for now to reduce the stuttering, if you get opencl working then you can do 64mhz (which means 32mhz)
The signal should not appear at the wrong location.
For the agc a future update which i will provide this weekend will fix it.
It wont start on boot for now, you have to create a custom service for this.
OK, I found the help file.
Usage: rx888_stream [OPTIONS] [COMMAND]
Commands:
vhf Accept from VHF input instead of HF input
help Print this message or the help of the given subcommand(s)
Options:
-f, --firmware <FIRMWARE> Firmware file to load
-d, --dither Enable dithering
-r, --randomize Enable randomization
-s, --sample-rate <SAMPLE_RATE> ADC sample rate [default: 50000000]
-g, --gain <GAIN> VGA gain setting 0-127 [default: 1]
-m, --gain-mode <GAIN_MODE> VGA gain mode high or low [default: high] [po ssible values: high, low]
-a, --attenuation <ATTENUATION> Attenuator setting 0-63 [default: 0]
--bias-hf HF Bias-T
--bias-vhf VHF Bias-T
--pga PGA enable
-o, --output <OUTPUT> Output file, "-" is stdout
--measure Measurement mode, measures the ADC sample rat e
-h, --help Print help
-V, --version Print version
Quote from: Martin G8JNJ on Sep 25, 2024, 02:21 PMCan anyone point me to a list of the rx888_stream parameters ?
e.g.
-s
-g
-m
-p
ect. ?
OK I'll try reducing the sample rate.
Quote from: magicint1337 on Sep 25, 2024, 02:23 PMWell reduce the sample rate to 48mhz for now to reduce the stuttering, if you get opencl working then you can do 64mhz (which means 32mhz)
The signal should not appear at the wrong location.
For the agc a future update which i will provide this weekend will fix it.
It wont start on boot for now, you have to create a custom service for this.
Do I change the sample rate in the .sh file or the .toml file of both ?
OK, OpenCL now installed
root@phantom:/home/wessex/PhantomSDR-Plus# clinfo -l
Platform #0: Intel(R) OpenCL HD Graphics
`-- Device #0: Intel(R) HD Graphics 530 [0x1912]
What config parameters do I need to change ?
You can now connect (on a temporary basis) at http://g8jnj.zapto.org:8090
BBC R4 which should be on 198kHz is actually on 211.2kHz
post your command and config file please
Do you mean start-rx888mk2.sh
#!/bin/bash
killall -s 9 spectrumserver
killall -s 9 rx888_stream
RUST_BACKTRACE=1
rx888_stream -f ./rx888_stream/SDDC_FX3.img -s 60000000 -g 60 -m low -d --pga -o - | build/spectrumserver --config config-rx888mk2.toml > /dev/null 2>&1 &
exit
& config-rx888mk2.toml
[server]
port=8090 # Server port
html_root="frontend/dist/" # HTML files to be hosted
otherusers=1 # Send where other users are listening, 0 to disable
threads=1
[websdr]
register_online=false # If the SDR should be registered on https://sdr-list.xyz then put it to true
name="ChangeThis" # Name that is shown on https://sdr-list.xyz
antenna="ChangeThis" # Antenna that is shown on https://sdr-list.xyz
grid_locator="ChangeThis" # 4 or 6 length Grid Locatlr shown on https://sdr-list.xyz and for the Distance of FT8 Signals
hostname="" # If you use ddns or something to host with a domain enter it here for https://sdr-list.xyz
[limits]
audio=100
waterfall=100
events=100
[input]
sps=64000000 # Input Sample Rate
fft_size=4194304 # FFT bins
brightness_offset=0 # Waterfall brightness offset. Reduce to negative if you see black regions in the waterfall
fft_threads=10 # FFT threads
frequency=0 # Baseband frequency
signal="real" # real or iq
accelerator="none" # Accelerator: none, cuda, opencl
audio_sps=48000 # Audio Sample Rate
audio_compression="flac" # flac or opus
waterfall_size=2048
waterfall_compression="zstd" # zstd or av1
smeter_offset=0
[input.driver]
name="stdin" # Driver name
format="s16" # Sample format: u8, s8, u16, s16, u32, s32, f32, f64
[input.defaults]
frequency=5505000 # Default frequency to show user
modulation="USB" # Default modulation
I note that Shannon Volmet on 5450kHz USB is actually appearing on 9554.22kHz, so I assume the sample rate or similar is incorrect, and I'm seeing aliases ?
I tried changing sample rates, but I either get errors and no webservice, or stuttering audio
Regards,
Martin
Quote from: magicint1337 on Sep 25, 2024, 03:33 PMpost your command and config file please
try this
[server]
port=8090 # Server port
html_root="frontend/dist/" # HTML files to be hosted
otherusers=1 # Send where other users are listening, 0 to disable
threads=1
[websdr]
register_online=false # If the SDR should be registered on https://sdr-list.xyz then put it to true
name="ChangeThis" # Name that is shown on https://sdr-list.xyz
antenna="ChangeThis" # Antenna that is shown on https://sdr-list.xyz
grid_locator="ChangeThis" # 4 or 6 length Grid Locatlr shown on https://sdr-list.xyz and for the Distance of FT8 Signals
hostname="" # If you use ddns or something to host with a domain enter it here for https://sdr-list.xyz
[limits]
audio=100
waterfall=100
events=100
[input]
sps=60000000 # Input Sample Rate
fft_size=4194304 # FFT bins
brightness_offset=0 # Waterfall brightness offset. Reduce to negative if you see black regions in the waterfall
fft_threads=10 # FFT threads
frequency=0 # Baseband frequency
signal="real" # real or iq
accelerator="none" # Accelerator: none, cuda, opencl
audio_sps=48000 # Audio Sample Rate
audio_compression="flac" # flac or opus
waterfall_size=2048
waterfall_compression="zstd" # zstd or av1
smeter_offset=0
[input.driver]
name="stdin" # Driver name
format="s16" # Sample format: u8, s8, u16, s16, u32, s32, f32, f64
[input.defaults]
frequency=5505000 # Default frequency to show user
modulation="USB" # Default modulation
Because the sample rate otherwise wont fit the command, if you change it in the command you also need to do it in the config as otherwise it stutters or misaligns.
To get OPenCL working else 60MSPS won't run smooth.
https://www.phantomsdr.fun/index.php?topic=7.0
OK let me do that first.
Quote from: Bas ON5HB on Sep 25, 2024, 04:07 PMTo get OPenCL working else 60MSPS won't run smooth.
https://www.phantomsdr.fun/index.php?topic=7.0
Yea, it will still run with 48mhz easily on the cpu tho.
So, OpenCL still doesn't seem to want to run, despite trying all the methods recommended in previous posts and link, and it saying that it is, it just pretends to be running.
-------------------
root@phantom:/home/wessex/PhantomSDR-Plus# clinfo -l
Platform #0: Intel(R) OpenCL Graphics
`-- Device #0: Intel(R) HD Graphics 530
---------------------
But actually
intel-gpu-top: Intel Skylake (Gen9) @ /dev/dri/card0 - 0/ 0 MHz; 100% RC6; 0.00/ 1.23 W; 0 irqs/s
IMC reads: 53 MiB/s
IMC writes: 1 MiB/s
ENGINES BUSY MI_SEMA MI_WAIT
Render/3D 0.00% | | 0% 0%
Blitter 0.00% | | 0% 0%
Video 0.00% | | 0% 0%
VideoEnhance 0.00% | | 0% 0%
----------------------------------------------
#!/bin/bash
killall -s 9 spectrumserver
killall -s 9 rx_sdr
killall -s 9 rx888_stream
killall -s 9 rtl_sdr
service sdrplay stop
sleep 2
exit
--------------------
[server]
port=8090 # Server port
html_root="frontend/dist/" # HTML files to be hosted
otherusers=1 # Send where other users are listening, 0 to disable
threads=1
[websdr]
register_online=false # If the SDR should be registered on https://sdr-list.xyz then put it to true
name="ChangeThis" # Name that is shown on https://sdr-list.xyz
antenna="ChangeThis" # Antenna that is shown on https://sdr-list.xyz
grid_locator="ChangeThis" # 4 or 6 length Grid Locatlr shown on https://sdr-list.xyz and for the Distance of FT8 Signals
hostname="" # If you use ddns or something to host with a domain enter it here for https://sdr-list.xyz
[limits]
audio=100
waterfall=100
events=100
[input]
sps=60000000 # Input Sample Rate
fft_size=4194304 # FFT bins
brightness_offset=0 # Waterfall brightness offset. Reduce to negative if you see black regions in the waterfall
fft_threads=10 # FFT threads
frequency=0 # Baseband frequency
signal="real" # real or iq
accelerator="opencl" # Accelerator: none, cuda, opencl
audio_sps=48000 # Audio Sample Rate
audio_compression="flac" # flac or opus
waterfall_size=2048
waterfall_compression="zstd" # zstd or av1
smeter_offset=0
[input.driver]
name="stdin" # Driver name
format="s16" # Sample format: u8, s8, u16, s16, u32, s32, f32, f64
[input.defaults]
frequency=5505000 # Default frequency to show user
modulation="USB" # Default modulation
-------------------
root@phantom:/home/wessex/PhantomSDR-Plus# ./start-rx888mk2.sh
spectrumserver: no process found
rx888_stream: no process found
root@phantom:/home/wessex/PhantomSDR-Plus# thread 'main' panicked at library/std/src/io/stdio.rs:1118:9:
failed printing to stdout: Broken pipe (os error 32)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
-----------------
This is nuts...
Did you recompile PhantomSDR? As when you installed it, OpenCL wasn't installed en thus not compiled into the code.
Looks like the path to OpenCL is missing
root@phantom:/home/wessex# ldconfig -p | grep OpenCL
libOpenCL.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libOpenCL.so.1
libOpenCL.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libOpenCL.so
libOpenCL.so (libc6,x86-64) => /lib/libOpenCL.so
For the time being I have set the toml parameter to none
I'm currently feeding a 10MHz carrier into the RX-888 via a 10MHz BPF, but I'm not seeing any signal
Yes all recompiled and rebooted etc.
Quote from: Bas ON5HB on Sep 25, 2024, 05:11 PMDid you recompile PhantomSDR? As when you installed it, OpenCL wasn't installed en thus not compiled into the code.
OK so that seemed to do the trick
Antenna now reconnected and frequencies correct.
OpenCL set to none.
Any ideas how to get the OpenCL path variable setup correctly ?
Mine looks a bit different, you have a line extra:
root@Websdr:~# ldconfig -p | grep OpenCL
libOpenCL.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libOpenCL.so.1
libOpenCL.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libOpenCL.so
root@Websdr:~#
When it check the directory:
root@Websdr:/lib/x86_64-linux-gnu# ls libOpenCL*
libOpenCL.so libOpenCL.so.1 libOpenCL.so.1.0.0
root@Websdr:/lib/x86_64-linux-gnu#
root@phantom:/lib/x86_64-linux-gnu# ls -l
The desired entry is there, with full permissions
lrwxrwxrwx 1 root root 18 Sep 30 2021 libOpenCL.so -> libOpenCL.so.1.0.0
So why can't it be found ?
Ok, try this....in the Phantomdir:
meson --wipe build
Does it show these near the bottom of the output?
Run-time dependency opencl found: YES 3.0
Run-time dependency clfft found: YES 2.12.2
If yes, run this:
meson --reconfigure build
meson compile -C build
Does the compiler finish without errors, I mean without OpenCL linker errors.
root@phantom:/home/wessex/PhantomSDR-Plus# meson --wipe build
The Meson build system
Version: 0.61.2
Source dir: /home/wessex/PhantomSDR-Plus
Build dir: /home/wessex/PhantomSDR-Plus/build
Build type: native build
Project name: spectrumdistributor
Project version: undefined
C++ compiler for the host machine: c++ (gcc 11.4.0 "c++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
C++ linker for the host machine: c++ ld.bfd 2.38
Host machine cpu family: x86_64
Host machine cpu: x86_64
meson.build:13: WARNING: Consider using the built-in option for language standard version instead of using "-std=c++23".
meson.build:13: WARNING: Consider using the built-in warning_level option instead of using "-Wall".
meson.build:13: WARNING: Consider using the built-in warning_level option instead of using "-Wextra".
Run-time dependency threads found: YES
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Run-time dependency fftw3f found: YES 3.3.8
Library fftw3f_omp found: YES
Run-time dependency OpenMP found: YES 4.5
Run-time dependency Boost (found: iostreams, system) found: YES 1.74.0 (/usr)
Found CMake: /usr/bin/cmake (3.22.1)
Run-time dependency glaze found: NO (tried pkgconfig and cmake)
Executing subproject glaze method cmake
glaze| Found CMake: /usr/bin/cmake (3.22.1)
| Configuring the build directory with CMake version 3.22.1
| Running CMake with: -G Ninja -DCMAKE_INSTALL_PREFIX=/usr/local
| - build directory: /home/wessex/PhantomSDR-Plus/build/subprojects/glaze/__CMake_build
| - source directory: /home/wessex/PhantomSDR-Plus/subprojects/glaze
| - toolchain file: /home/wessex/PhantomSDR-Plus/build/subprojects/glaze/__CMake_build/CMakeMesonToolchainFile.cmake
| - preload file: /home/wessex/PhantomSDR-Plus/build/meson-private/data/preload.cmake
| - trace args: --trace-expand --trace-format=json-v1 --no-warn-unused-cli --trace-redirect=cmake_trace.txt
| - disabled policy warnings: [CMP0025, CMP0047, CMP0056, CMP0060, CMP0065, CMP0066, CMP0067, CMP0082, CMP0089, CMP0102]
| Running with expanded trace output on.
| Not searching for unused variables given on the command line.
| Trace will be written to cmake_trace.txt
| -- The CXX compiler identification is GNU 11.4.0
| -- Detecting CXX compiler ABI info
| -- Detecting CXX compiler ABI info - done
| -- Check for working CXX compiler: /usr/bin/c++ - skipped
| -- Detecting CXX compile features
| -- Detecting CXX compile features - done
| -- Fetching dependencies...
| -- ...finished fetching dependencies.
| -- The C compiler identification is GNU 11.4.0
| -- 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
| -- Configuring done
| -- Generating done
| -- Build files have been written to: /home/wessex/PhantomSDR-Plus/build/subprojects/glaze/__CMake_build
glaze| CMake configuration: SUCCEEDED
glaze| WARNING: CMake: path /home/wessex/PhantomSDR-Plus/subprojects/glaze/tests/asio_repe/server/include does not exist.
glaze| WARNING: --> Ignoring. This can lead to build errors.
glaze| WARNING: CMake: path /home/wessex/PhantomSDR-Plus/subprojects/glaze/tests/asio_repe/client/include does not exist.
glaze| WARNING: --> Ignoring. This can lead to build errors.
glaze| CMake project glaze has 52 build targets.
cmake-ast| Processing generated meson AST
cmake-ast| Build file: /home/wessex/PhantomSDR-Plus/build/subprojects/glaze/meson.build
glaze| Project name: glaze
glaze| Project version: undefined
glaze| C compiler for the host machine: cc (gcc 11.4.0 "cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
glaze| C linker for the host machine: cc ld.bfd 2.38
glaze| C++ compiler for the host machine: c++ (gcc 11.4.0 "c++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
glaze| C++ linker for the host machine: c++ ld.bfd 2.38
glaze| Build targets in project: 47
glaze| Subproject glaze finished.
Library liquid found: YES
Run-time dependency libzstd found: YES 1.4.8
Run-time dependency flac++ found: YES 1.3.3
Run-time dependency aom found: NO (tried pkgconfig and cmake)
Run-time dependency opus found: YES 1.3.1
Run-time dependency zlib found: YES 1.2.11
Executing subproject websocketpp
websocketpp| Project name: websocketpp
websocketpp| Project version: 0.8.2
websocketpp| C++ compiler for the host machine: c++ (gcc 11.4.0 "c++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
websocketpp| C++ linker for the host machine: c++ ld.bfd 2.38
websocketpp| Build targets in project: 47
websocketpp| Subproject websocketpp finished.
Run-time dependency tomlplusplus found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency tomlplusplus
Executing subproject tomlplusplus
tomlplusplus| Project name: tomlplusplus
tomlplusplus| Project version: 3.4.0
tomlplusplus| C++ compiler for the host machine: c++ (gcc 11.4.0 "c++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
tomlplusplus| C++ linker for the host machine: c++ ld.bfd 2.38
tomlplusplus| Message: target cpu_family: x86_64
tomlplusplus| Message: target cpu: x86_64
tomlplusplus| Message: target system: linux
tomlplusplus| Message: target endian: little
tomlplusplus| Compiler for C++ supports arguments -ferror-limit=5: NO
tomlplusplus| Compiler for C++ supports arguments -fmax-errors=5: YES
tomlplusplus| Compiler for C++ supports arguments -Wno-unused-command-line-argument: NO
tomlplusplus| Compiler for C++ supports arguments -Wno-reserved-macro-identifier: NO
tomlplusplus| Compiler for C++ supports arguments -Wno-init-list-lifetime: YES
tomlplusplus| Compiler for C++ supports arguments -fchar8_t: YES
tomlplusplus| Compiler for C++ supports arguments /bigobj: NO
tomlplusplus| Compiler for C++ supports arguments /Gy: NO
tomlplusplus| Compiler for C++ supports arguments /GF: NO
tomlplusplus| Compiler for C++ supports arguments /openmp-: NO
tomlplusplus| Compiler for C++ supports arguments /permissive-: NO
tomlplusplus| Compiler for C++ supports arguments /utf-8: NO
tomlplusplus| Compiler for C++ supports arguments /volatile:iso: NO
tomlplusplus| Compiler for C++ supports arguments /Zc:__cplusplus: NO
tomlplusplus| Compiler for C++ supports arguments /Zc:inline: NO
tomlplusplus| Compiler for C++ supports arguments /Zc:externConstexpr: NO
tomlplusplus| Compiler for C++ supports arguments /Zc:preprocessor: NO
tomlplusplus| Compiler for C++ supports arguments /Zc:throwingNew: NO
tomlplusplus| Compiler for C++ supports arguments -D_HAS_EXCEPTIONS=1: YES
tomlplusplus| Compiler for C++ supports arguments -Wno-c++98-compat: NO
tomlplusplus| Compiler for C++ supports arguments -Wno-c++98-compat-pedantic: NO
tomlplusplus| Compiler for C++ supports arguments -Wno-documentation: NO
tomlplusplus| Compiler for C++ supports arguments -Wno-documentation-unknown-command: NO
tomlplusplus| Compiler for C++ supports arguments -Wno-switch-enum: YES
tomlplusplus| Compiler for C++ supports arguments -Wno-covered-switch-default: NO
tomlplusplus| Compiler for C++ supports arguments -Wno-padded: YES
tomlplusplus| Compiler for C++ supports arguments -Wno-float-equal: YES
tomlplusplus| Compiler for C++ supports arguments -DTOML_HEADER_ONLY=0: YES
tomlplusplus| Compiler for C++ supports arguments -DTOML_SHARED_LIB=1: YES
tomlplusplus| Build targets in project: 48
tomlplusplus| Subproject tomlplusplus finished.
Dependency tomlplusplus found: YES 3.4.0 (overridden)
Run-time dependency CUDA (modules: cudart) found: NO (tried system)
Run-time dependency cufft found: NO (tried pkgconfig and cmake)
Run-time dependency opencl found: YES 3.0
Run-time dependency clfft found: YES 2.12.2
Library stdc++fs found: YES
Run-time dependency libcurl found: YES 7.81.0
Compiler for language cuda for the build machine not found.
Compiler for language cuda for the host machine not found.
Build targets in project: 49
spectrumdistributor undefined
Subprojects
glaze : YES
tomlplusplus: YES
websocketpp : YES
User defined options
optimization: 3
Found ninja-1.10.1 at /usr/bin/ninja
root@phantom:/home/wessex/PhantomSDR-Plus# meson --reconfigure build
The Meson build system
Version: 0.61.2
Source dir: /home/wessex/PhantomSDR-Plus
Build dir: /home/wessex/PhantomSDR-Plus/build
Build type: native build
Project name: spectrumdistributor
Project version: undefined
C++ compiler for the host machine: c++ (gcc 11.4.0 "c++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
C++ linker for the host machine: c++ ld.bfd 2.38
Host machine cpu family: x86_64
Host machine cpu: x86_64
meson.build:13: WARNING: Consider using the built-in option for language standard version instead of using "-std=c++23".
meson.build:13: WARNING: Consider using the built-in warning_level option instead of using "-Wall".
meson.build:13: WARNING: Consider using the built-in warning_level option instead of using "-Wextra".
Dependency threads found: YES unknown (cached)
Dependency fftw3f found: YES 3.3.8 (cached)
Library fftw3f_omp found: YES
Dependency openmp found: YES 4.5 (cached)
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Run-time dependency Boost (found: iostreams, system) found: YES 1.74.0 (/usr)
Found CMake: /usr/bin/cmake (3.22.1)
Run-time dependency glaze found: NO (tried pkgconfig and cmake)
Executing subproject glaze method cmake
glaze| Found CMake: /usr/bin/cmake (3.22.1)
| Configuring the build directory with CMake version 3.22.1
| Running CMake with: -G Ninja -DCMAKE_INSTALL_PREFIX=/usr/local
| - build directory: /home/wessex/PhantomSDR-Plus/build/subprojects/glaze/__CMake_build
| - source directory: /home/wessex/PhantomSDR-Plus/subprojects/glaze
| - toolchain file: /home/wessex/PhantomSDR-Plus/build/subprojects/glaze/__CMake_build/CMakeMesonToolchainFile.cmake
| - preload file: /home/wessex/PhantomSDR-Plus/build/meson-private/data/preload.cmake
| - trace args: --trace-expand --trace-format=json-v1 --no-warn-unused-cli --trace-redirect=cmake_trace.txt
| - disabled policy warnings: [CMP0025, CMP0047, CMP0056, CMP0060, CMP0065, CMP0066, CMP0067, CMP0082, CMP0089, CMP0102]
| Running with expanded trace output on.
| Not searching for unused variables given on the command line.
| Trace will be written to cmake_trace.txt
| -- The CXX compiler identification is GNU 11.4.0
| -- Detecting CXX compiler ABI info
| -- Detecting CXX compiler ABI info - done
| -- Check for working CXX compiler: /usr/bin/c++ - skipped
| -- Detecting CXX compile features
| -- Detecting CXX compile features - done
| -- Fetching dependencies...
| -- ...finished fetching dependencies.
| -- The C compiler identification is GNU 11.4.0
| -- 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
| -- Configuring done
| -- Generating done
| -- Build files have been written to: /home/wessex/PhantomSDR-Plus/build/subprojects/glaze/__CMake_build
glaze| CMake configuration: SUCCEEDED
glaze| WARNING: CMake: path /home/wessex/PhantomSDR-Plus/subprojects/glaze/tests/asio_repe/server/include does not exist.
glaze| WARNING: --> Ignoring. This can lead to build errors.
glaze| WARNING: CMake: path /home/wessex/PhantomSDR-Plus/subprojects/glaze/tests/asio_repe/client/include does not exist.
glaze| WARNING: --> Ignoring. This can lead to build errors.
glaze| CMake project glaze has 52 build targets.
cmake-ast| Processing generated meson AST
cmake-ast| Build file: /home/wessex/PhantomSDR-Plus/build/subprojects/glaze/meson.build
glaze| Project name: glaze
glaze| Project version: undefined
glaze| C compiler for the host machine: cc (gcc 11.4.0 "cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
glaze| C linker for the host machine: cc ld.bfd 2.38
glaze| C++ compiler for the host machine: c++ (gcc 11.4.0 "c++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
glaze| C++ linker for the host machine: c++ ld.bfd 2.38
glaze| Build targets in project: 47
glaze| Subproject glaze finished.
Library liquid found: YES
Dependency libzstd found: YES 1.4.8 (cached)
Dependency flac++ found: YES 1.3.3 (cached)
Run-time dependency aom found: NO (tried pkgconfig and cmake)
Dependency opus found: YES 1.3.1 (cached)
Dependency zlib found: YES 1.2.11 (cached)
Executing subproject websocketpp
websocketpp| Project name: websocketpp
websocketpp| Project version: 0.8.2
websocketpp| C++ compiler for the host machine: c++ (gcc 11.4.0 "c++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
websocketpp| C++ linker for the host machine: c++ ld.bfd 2.38
websocketpp| Build targets in project: 47
websocketpp| Subproject websocketpp finished.
Run-time dependency tomlplusplus found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency tomlplusplus
Executing subproject tomlplusplus
tomlplusplus| Project name: tomlplusplus
tomlplusplus| Project version: 3.4.0
tomlplusplus| C++ compiler for the host machine: c++ (gcc 11.4.0 "c++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
tomlplusplus| C++ linker for the host machine: c++ ld.bfd 2.38
tomlplusplus| Message: target cpu_family: x86_64
tomlplusplus| Message: target cpu: x86_64
tomlplusplus| Message: target system: linux
tomlplusplus| Message: target endian: little
tomlplusplus| Compiler for C++ supports arguments -ferror-limit=5: NO (cached)
tomlplusplus| Compiler for C++ supports arguments -fmax-errors=5: YES (cached)
tomlplusplus| Compiler for C++ supports arguments -Wno-unused-command-line-argument: NO (cached)
tomlplusplus| Compiler for C++ supports arguments -Wno-reserved-macro-identifier: NO (cached)
tomlplusplus| Compiler for C++ supports arguments -Wno-init-list-lifetime: YES (cached)
tomlplusplus| Compiler for C++ supports arguments -fchar8_t: YES (cached)
tomlplusplus| Compiler for C++ supports arguments /bigobj: NO (cached)
tomlplusplus| Compiler for C++ supports arguments /Gy: NO (cached)
tomlplusplus| Compiler for C++ supports arguments /GF: NO (cached)
tomlplusplus| Compiler for C++ supports arguments /openmp-: NO (cached)
tomlplusplus| Compiler for C++ supports arguments /permissive-: NO (cached)
tomlplusplus| Compiler for C++ supports arguments /utf-8: NO (cached)
tomlplusplus| Compiler for C++ supports arguments /volatile:iso: NO (cached)
tomlplusplus| Compiler for C++ supports arguments /Zc:__cplusplus: NO (cached)
tomlplusplus| Compiler for C++ supports arguments /Zc:inline: NO (cached)
tomlplusplus| Compiler for C++ supports arguments /Zc:externConstexpr: NO (cached)
tomlplusplus| Compiler for C++ supports arguments /Zc:preprocessor: NO (cached)
tomlplusplus| Compiler for C++ supports arguments /Zc:throwingNew: NO (cached)
tomlplusplus| Compiler for C++ supports arguments -D_HAS_EXCEPTIONS=1: YES (cached)
tomlplusplus| Compiler for C++ supports arguments -Wno-c++98-compat: NO (cached)
tomlplusplus| Compiler for C++ supports arguments -Wno-c++98-compat-pedantic: NO (cached)
tomlplusplus| Compiler for C++ supports arguments -Wno-documentation: NO (cached)
tomlplusplus| Compiler for C++ supports arguments -Wno-documentation-unknown-command: NO (cached)
tomlplusplus| Compiler for C++ supports arguments -Wno-switch-enum: YES (cached)
tomlplusplus| Compiler for C++ supports arguments -Wno-covered-switch-default: NO (cached)
tomlplusplus| Compiler for C++ supports arguments -Wno-padded: YES (cached)
tomlplusplus| Compiler for C++ supports arguments -Wno-float-equal: YES (cached)
tomlplusplus| Compiler for C++ supports arguments -DTOML_HEADER_ONLY=0: YES (cached)
tomlplusplus| Compiler for C++ supports arguments -DTOML_SHARED_LIB=1: YES (cached)
tomlplusplus| Build targets in project: 48
tomlplusplus| Subproject tomlplusplus finished.
Dependency tomlplusplus found: YES 3.4.0 (overridden)
Run-time dependency CUDA (modules: cudart) found: NO (tried system)
Run-time dependency cufft found: NO (tried pkgconfig and cmake)
Dependency OpenCL found: YES 3.0 (cached)
Dependency clFFT found: YES 2.12.2 (cached)
Library stdc++fs found: YES
Dependency libcurl found: YES 7.81.0 (cached)
Compiler for language cuda for the build machine not found.
Compiler for language cuda for the host machine not found.
Build targets in project: 49
spectrumdistributor undefined
Subprojects
glaze : YES
tomlplusplus: YES
websocketpp : YES
User defined options
optimization: 3
Lots of warnings, but it gets worse towards the end
root@phantom:/home/wessex/PhantomSDR-Plus# meson compile -C build
ninja: Entering directory `/home/wessex/PhantomSDR-Plus/build'
[1/21] Compiling C++ object spectrumserver.p/src_samplereader.cpp.o
../src/samplereader.cpp: In function 'void convert(float*, T_signed*, float, siz e_t)':
../src/samplereader.cpp:29:5: warning: attributes at the beginning of statement are ignored [-Wattributes]
29 | [[assume(num > 0)]];
| ^~~~~~~~~~~~~~~~~~~
[2/21] Compiling C++ object spectrumserver.p/src_client.cpp.o
In file included from ../src/client.cpp:1:
../src/client.h:90:7: warning: 'class Client' has virtual functions and accessib le non-virtual destructor [-Wnon-virtual-dtor]
90 | class Client {
| ^~~~~~
[4/21] Compiling C++ object spectrumserver.p/src_fft.cpp.o
In file included from ../src/spectrumserver.h:13,
from ../src/fft.cpp:2:
../src/client.h:90:7: warning: 'class Client' has virtual functions and accessib le non-virtual destructor [-Wnon-virtual-dtor]
90 | class Client {
| ^~~~~~
In file included from ../src/spectrumserver.h:16,
from ../src/fft.cpp:2:
../src/signal.h:58:7: warning: base class 'class Client' has accessible non-virt ual destructor [-Wnon-virtual-dtor]
58 | class AudioClient : public Client {
| ^~~~~~~~~~~
In file included from ../src/spectrumserver.h:17,
from ../src/fft.cpp:2:
../src/waterfall.h:11:7: warning: base class 'class Client' has accessible non-v irtual destructor [-Wnon-virtual-dtor]
11 | class WaterfallClient : public Client {
| ^~~~~~~~~~~~~~~
In file included from ../src/spectrumserver.h:19,
from ../src/fft.cpp:2:
../src/chat.h:11:7: warning: base class 'class Client' has accessible non-virtua l destructor [-Wnon-virtual-dtor]
11 | class ChatClient : public Client {
| ^~~~~~~~~~
../src/fft.cpp: In member function 'void broadcast_server::fft_task()':
../src/fft.cpp:48:10: warning: variable 'prev_data' set but not used [-Wunused-b ut-set-variable]
48 | auto prev_data = std::chrono::steady_clock::now();
| ^~~~~~~~~
[7/21] Compiling C++ object spectrumserver.p/src_http.cpp.o
In file included from ../src/spectrumserver.h:13,
from ../src/http.cpp:2:
../src/client.h:90:7: warning: 'class Client' has virtual functions and accessib le non-virtual destructor [-Wnon-virtual-dtor]
90 | class Client {
| ^~~~~~
In file included from ../src/spectrumserver.h:16,
from ../src/http.cpp:2:
../src/signal.h:58:7: warning: base class 'class Client' has accessible non-virt ual destructor [-Wnon-virtual-dtor]
58 | class AudioClient : public Client {
| ^~~~~~~~~~~
In file included from ../src/spectrumserver.h:17,
from ../src/http.cpp:2:
../src/waterfall.h:11:7: warning: base class 'class Client' has accessible non-v irtual destructor [-Wnon-virtual-dtor]
11 | class WaterfallClient : public Client {
| ^~~~~~~~~~~~~~~
In file included from ../src/spectrumserver.h:19,
from ../src/http.cpp:2:
../src/chat.h:11:7: warning: base class 'class Client' has accessible non-virtua l destructor [-Wnon-virtual-dtor]
11 | class ChatClient : public Client {
| ^~~~~~~~~~
[8/21] Compiling C++ object spectrumserver.p/src_waterfall.cpp.o
In file included from ../src/waterfall.h:4,
from ../src/waterfall.cpp:3:
../src/client.h:90:7: warning: 'class Client' has virtual functions and accessib le non-virtual destructor [-Wnon-virtual-dtor]
90 | class Client {
| ^~~~~~
In file included from ../src/waterfall.cpp:3:
../src/waterfall.h:11:7: warning: base class 'class Client' has accessible non-v irtual destructor [-Wnon-virtual-dtor]
11 | class WaterfallClient : public Client {
| ^~~~~~~~~~~~~~~
[9/21] Compiling C++ object spectrumserver.p/src_signal.cpp.o
In file included from ../src/audio.h:20,
from ../src/signal.h:4,
from ../src/signal.cpp:5:
../src/client.h:90:7: warning: 'class Client' has virtual functions and accessib le non-virtual destructor [-Wnon-virtual-dtor]
90 | class Client {
| ^~~~~~
In file included from ../src/signal.cpp:5:
../src/signal.h:58:7: warning: base class 'class Client' has accessible non-virt ual destructor [-Wnon-virtual-dtor]
58 | class AudioClient : public Client {
| ^~~~~~~~~~~
[10/21] Compiling C++ object spectrumserver.p/src_audio.cpp.o
In file included from ../src/audio.h:20,
from ../src/audio.cpp:1:
../src/client.h:90:7: warning: 'class Client' has virtual functions and accessib le non-virtual destructor [-Wnon-virtual-dtor]
90 | class Client {
| ^~~~~~
[11/21] Compiling C++ object spectrumserver.p/src_utils_dsp.cpp.o
../src/utils/dsp.cpp: In function 'void dsp_negate_float(float*, size_t)':
../src/utils/dsp.cpp:78:5: warning: attributes at the beginning of statement are ignored [-Wattributes]
78 | [[assume(len > 0)]];
| ^~~~~~~~~~~~~~~~~~~
../src/utils/dsp.cpp: In function 'void dsp_negate_complex(std::complex<float>*, size_t)':
../src/utils/dsp.cpp:86:5: warning: attributes at the beginning of statement are ignored [-Wattributes]
86 | [[assume(len > 0)]];
| ^~~~~~~~~~~~~~~~~~~
../src/utils/dsp.cpp: In function 'void dsp_add_float(float*, float*, size_t)':
../src/utils/dsp.cpp:95:5: warning: attributes at the beginning of statement are ignored [-Wattributes]
95 | [[assume(len > 0)]];
| ^~~~~~~~~~~~~~~~~~~
../src/utils/dsp.cpp: In function 'void dsp_add_complex(std::complex<float>*, st d::complex<float>*, size_t)':
../src/utils/dsp.cpp:105:5: warning: attributes at the beginning of statement ar e ignored [-Wattributes]
105 | [[assume(len > 0)]];
| ^~~~~~~~~~~~~~~~~~~
../src/utils/dsp.cpp: In function 'void dsp_am_demod(std::complex<float>*, float *, size_t)':
../src/utils/dsp.cpp:118:5: warning: attributes at the beginning of statement ar e ignored [-Wattributes]
118 | [[assume(len > 0)]];
| ^~~~~~~~~~~~~~~~~~~
../src/utils/dsp.cpp: In function 'void dsp_float_to_int16(float*, int32_t*, flo at, size_t)':
../src/utils/dsp.cpp:154:5: warning: attributes at the beginning of statement ar e ignored [-Wattributes]
154 | [[assume(len > 0)]];
| ^~~~~~~~~~~~~~~~~~~
../src/utils/dsp.cpp:157:9: warning: unused variable 'minimum' [-Wunused-variabl e]
157 | int minimum = 32767;
| ^~~~~~~
../src/utils/dsp.cpp:158:9: warning: unused variable 'maximum' [-Wunused-variabl e]
158 | int maximum = -32768;
| ^~~~~~~
../src/utils/dsp.cpp: In function 'void dsp_float_to_int8(float*, int32_t*, floa t, size_t)':
../src/utils/dsp.cpp:168:5: warning: attributes at the beginning of statement ar e ignored [-Wattributes]
168 | [[assume(len > 0)]];
| ^~~~~~~~~~~~~~~~~~~
[13/21] Compiling C++ object spectrumserver.p/src_waterfallcompression.cpp.o
In file included from ../src/waterfallcompression.h:4,
from ../src/waterfallcompression.cpp:1:
../src/client.h:90:7: warning: 'class Client' has virtual functions and accessib le non-virtual destructor [-Wnon-virtual-dtor]
90 | class Client {
| ^~~~~~
[15/21] Compiling C++ object spectrumserver.p/src_fft_impl.cpp.o
../src/fft_impl.cpp: In member function 'virtual int FFTW::execute()':
../src/fft_impl.cpp:151:9: warning: unused variable 'normalize' [-Wunused-variab le]
151 | int normalize = size;
| ^~~~~~~~~
[16/21] Compiling C++ object spectrumserver.p/src_websocket.cpp.o
In file included from ../src/websocket.cpp:1:
../src/client.h:90:7: warning: 'class Client' has virtual functions and accessib le non-virtual destructor [-Wnon-virtual-dtor]
90 | class Client {
| ^~~~~~
In file included from ../src/websocket.cpp:2:
../src/signal.h:58:7: warning: base class 'class Client' has accessible non-virt ual destructor [-Wnon-virtual-dtor]
58 | class AudioClient : public Client {
| ^~~~~~~~~~~
In file included from ../src/spectrumserver.h:17,
from ../src/websocket.cpp:3:
../src/waterfall.h:11:7: warning: base class 'class Client' has accessible non-v irtual destructor [-Wnon-virtual-dtor]
11 | class WaterfallClient : public Client {
| ^~~~~~~~~~~~~~~
In file included from ../src/spectrumserver.h:19,
from ../src/websocket.cpp:3:
../src/chat.h:11:7: warning: base class 'class Client' has accessible non-virtua l destructor [-Wnon-virtual-dtor]
11 | class ChatClient : public Client {
| ^~~~~~~~~~
../src/websocket.cpp: In member function 'void broadcast_server::on_open_signal( websocketpp::connection_hdl, conn_type)':
../src/websocket.cpp:138:49: warning: unused parameter 'signal_type' [-Wunused-p arameter]
138 | conn_type signal_type) {
| ~~~~~~~~~~^~~~~~~~~~~
[17/21] Compiling C++ object spectrumserver.p/src_events.cpp.o
In file included from ../src/spectrumserver.h:13,
from ../src/events.cpp:1:
../src/client.h:90:7: warning: 'class Client' has virtual functions and accessib le non-virtual destructor [-Wnon-virtual-dtor]
90 | class Client {
| ^~~~~~
In file included from ../src/spectrumserver.h:16,
from ../src/events.cpp:1:
../src/signal.h:58:7: warning: base class 'class Client' has accessible non-virt ual destructor [-Wnon-virtual-dtor]
58 | class AudioClient : public Client {
| ^~~~~~~~~~~
In file included from ../src/spectrumserver.h:17,
from ../src/events.cpp:1:
../src/waterfall.h:11:7: warning: base class 'class Client' has accessible non-v irtual destructor [-Wnon-virtual-dtor]
11 | class WaterfallClient : public Client {
| ^~~~~~~~~~~~~~~
In file included from ../src/spectrumserver.h:19,
from ../src/events.cpp:1:
../src/chat.h:11:7: warning: base class 'class Client' has accessible non-virtua l destructor [-Wnon-virtual-dtor]
11 | class ChatClient : public Client {
| ^~~~~~~~~~
[19/21] Compiling C++ object spectrumserver.p/src_chat.cpp.o
In file included from ../src/spectrumserver.h:13,
from ../src/chat.cpp:2:
../src/client.h:90:7: warning: 'class Client' has virtual functions and accessib le non-virtual destructor [-Wnon-virtual-dtor]
90 | class Client {
| ^~~~~~
In file included from ../src/spectrumserver.h:16,
from ../src/chat.cpp:2:
../src/signal.h:58:7: warning: base class 'class Client' has accessible non-virt ual destructor [-Wnon-virtual-dtor]
58 | class AudioClient : public Client {
| ^~~~~~~~~~~
In file included from ../src/spectrumserver.h:17,
from ../src/chat.cpp:2:
../src/waterfall.h:11:7: warning: base class 'class Client' has accessible non-v irtual destructor [-Wnon-virtual-dtor]
11 | class WaterfallClient : public Client {
| ^~~~~~~~~~~~~~~
In file included from ../src/spectrumserver.h:19,
from ../src/chat.cpp:2:
../src/chat.h:11:7: warning: base class 'class Client' has accessible non-virtua l destructor [-Wnon-virtual-dtor]
11 | class ChatClient : public Client {
| ^~~~~~~~~~
../src/chat.cpp: In member function 'virtual void ChatClient::on_chat_message(we bsocketpp::connection_hdl, std::string&, std::string&)':
../src/chat.cpp:84:49: warning: unused parameter 'sender_hdl' [-Wunused-paramete r]
84 | void ChatClient::on_chat_message(connection_hdl sender_hdl, std::string& username, std::string& message) {
| ~~~~~~~~~~~~~~~^~~~~~~~~~
[20/21] Compiling C++ object spectrumserver.p/src_spectrumserver.cpp.o
In file included from ../src/spectrumserver.h:13,
from ../src/spectrumserver.cpp:1:
../src/client.h:90:7: warning: 'class Client' has virtual functions and accessib le non-virtual destructor [-Wnon-virtual-dtor]
90 | class Client {
| ^~~~~~
In file included from ../src/spectrumserver.h:16,
from ../src/spectrumserver.cpp:1:
../src/signal.h:58:7: warning: base class 'class Client' has accessible non-virt ual destructor [-Wnon-virtual-dtor]
58 | class AudioClient : public Client {
| ^~~~~~~~~~~
In file included from ../src/spectrumserver.h:17,
from ../src/spectrumserver.cpp:1:
../src/waterfall.h:11:7: warning: base class 'class Client' has accessible non-v irtual destructor [-Wnon-virtual-dtor]
11 | class WaterfallClient : public Client {
| ^~~~~~~~~~~~~~~
In file included from ../src/spectrumserver.h:19,
from ../src/spectrumserver.cpp:1:
../src/chat.h:11:7: warning: base class 'class Client' has accessible non-virtua l destructor [-Wnon-virtual-dtor]
11 | class ChatClient : public Client {
| ^~~~~~~~~~
../src/spectrumserver.cpp: In function 'int main(int, char**)':
../src/spectrumserver.cpp:471:12: warning: ignoring return value of 'FILE* freop en(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result ' [-Wunused-result]
471 | freopen(NULL, "rb", stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~
[21/21] Linking target spectrumserver
FAILED: spectrumserver
c++ -o spectrumserver spectrumserver.p/src_spectrumserver.cpp.o spectrumserver.p/src_samplereader.cpp.o spectrumserver.p/src_websocket.cpp.o spectrumserver.p/src_http.cpp.o spectrumserver.p/src_fft.cpp.o spectrumserver.p/src_client.cpp.o spectrumserver.p/src_signal.cpp.o spectrumserver.p/src_waterfall.cpp.o spectrumserver.p/src_events.cpp.o spectrumserver.p/src_audio.cpp.o spectrumserver.p/src_chat.cpp.o spectrumserver.p/src_waterfallcompression.cpp.o spectrumserver.p/src_utils_dsp.cpp.o spectrumserver.p/src_utils_audioprocessing.cpp.o spectrumserver.p/src_fft_impl.cpp.o spectrumserver.p/src_utils.cpp.o spectrumserver.p/src_compression.cpp.o -Wl,--as-needed -Wl,--no-undefined '-Wl,-rpath,$ORIGIN/subprojects/tomlplusplus-3.4.0/src' -Wl,-rpath-link,/home/wessex/PhantomSDR-Plus/build/subprojects/tomlplusplus-3.4.0/src -Wl,--start-group subprojects/tomlplusplus-3.4.0/src/libtomlplusplus.so.3.4.0 -lstdc++fs -pthread /usr/lib/x86_64-linux-gnu/libfftw3f.so -lfftw3f_omp -fopenmp /usr/lib/x86_64-linux-gnu/libOpenCL.so /usr/lib/x86_64-linux-gnu/libclFFT.so /usr/lib/x86_64-linux-gnu/libboost_iostreams.so.1.74.0 /usr/lib/x86_64-linux-gnu/libboost_system.so.1.74.0 /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/libzstd.so /usr/lib/x86_64-linux-gnu/libFLAC++.so /usr/lib/x86_64-linux-gnu/libFLAC.so /usr/lib/x86_64-linux-gnu/libopus.so /usr/lib/x86_64-linux-gnu/libz.so -lliquid /usr/lib/x86_64-linux-gnu/libcurl.so -lstdc++ -Wl,--end-group
/usr/bin/ld: warning: libOpenCL.so.1, needed by /usr/lib/x86_64-linux-gnu/libclFFT.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: spectrumserver.p/src_spectrumserver.cpp.o: in function `cl::detail::ReferenceHandler<_cl_command_queue*>::release(_cl_command_queue*)':
/usr/include/CL/opencl.hpp:1724: undefined reference to `clReleaseCommandQueue'
/usr/bin/ld: spectrumserver.p/src_spectrumserver.cpp.o: in function `cl::detail::ReferenceHandler<_cl_context*>::release(_cl_context*)':
/usr/include/CL/opencl.hpp:1715: undefined reference to `clReleaseContext'
/usr/bin/ld: spectrumserver.p/src_spectrumserver.cpp.o: in function `cl::detail::ReferenceHandler<_cl_device_id*>::release(_cl_device_id*)':
/usr/include/CL/opencl.hpp:1680: undefined reference to `clReleaseDevice'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_mem*>::release(_cl_mem*)':
/usr/include/CL/opencl.hpp:1733: undefined reference to `clReleaseMemObject'
/usr/bin/ld: /usr/include/CL/opencl.hpp:1733: undefined reference to `clReleaseMemObject'
/usr/bin/ld: /usr/include/CL/opencl.hpp:1733: undefined reference to `clReleaseMemObject'
/usr/bin/ld: /usr/include/CL/opencl.hpp:1733: undefined reference to `clReleaseMemObject'
/usr/bin/ld: /usr/include/CL/opencl.hpp:1733: undefined reference to `clReleaseMemObject'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o:/usr/include/CL/opencl.hpp:1733: more undefined references to `clReleaseMemObject' follow
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_kernel*>::release(_cl_kernel*)':
/usr/include/CL/opencl.hpp:1760: undefined reference to `clReleaseKernel'
/usr/bin/ld: /usr/include/CL/opencl.hpp:1760: undefined reference to `clReleaseKernel'
/usr/bin/ld: /usr/include/CL/opencl.hpp:1760: undefined reference to `clReleaseKernel'
/usr/bin/ld: /usr/include/CL/opencl.hpp:1760: undefined reference to `clReleaseKernel'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_program*>::release(_cl_program*)':
/usr/include/CL/opencl.hpp:1751: undefined reference to `clReleaseProgram'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_command_queue*>::release(_cl_command_queue*)':
/usr/include/CL/opencl.hpp:1724: undefined reference to `clReleaseCommandQueue'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_context*>::release(_cl_context*)':
/usr/include/CL/opencl.hpp:1715: undefined reference to `clReleaseContext'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_device_id*>::release(_cl_device_id*)':
/usr/include/CL/opencl.hpp:1680: undefined reference to `clReleaseDevice'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Buffer::Buffer(cl::Context const&, unsigned long, unsigned long, void*, int*)':
/usr/include/CL/opencl.hpp:3916: undefined reference to `clCreateBuffer'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_mem*>::release(_cl_mem*)':
/usr/include/CL/opencl.hpp:1733: undefined reference to `clReleaseMemObject'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Buffer::Buffer(cl::Context const&, unsigned long, unsigned long, void*, int*)':
/usr/include/CL/opencl.hpp:3916: undefined reference to `clCreateBuffer'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_mem*>::release(_cl_mem*)':
/usr/include/CL/opencl.hpp:1733: undefined reference to `clReleaseMemObject'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Buffer::Buffer(cl::Context const&, unsigned long, unsigned long, void*, int*)':
/usr/include/CL/opencl.hpp:3916: undefined reference to `clCreateBuffer'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_mem*>::release(_cl_mem*)':
/usr/include/CL/opencl.hpp:1733: undefined reference to `clReleaseMemObject'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Buffer::Buffer(cl::Context const&, unsigned long, unsigned long, void*, int*)':
/usr/include/CL/opencl.hpp:3916: undefined reference to `clCreateBuffer'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_mem*>::release(_cl_mem*)':
/usr/include/CL/opencl.hpp:1733: undefined reference to `clReleaseMemObject'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::CommandQueue::enqueueMapBuffer(cl::Buffer const&, unsigned int, unsigned long, unsigned long, unsigned long, std::vector<cl::Event, std::allocator<cl::Event> > const*, cl::Event*, int*) const':
/usr/include/CL/opencl.hpp:8109: undefined reference to `clEnqueueMapBuffer'
/usr/bin/ld: /usr/include/CL/opencl.hpp:8109: undefined reference to `clEnqueueMapBuffer'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Buffer::Buffer(cl::Context const&, unsigned long, unsigned long, void*, int*)':
/usr/include/CL/opencl.hpp:3916: undefined reference to `clCreateBuffer'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_mem*>::release(_cl_mem*)':
/usr/include/CL/opencl.hpp:1733: undefined reference to `clReleaseMemObject'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Buffer::Buffer(cl::Context const&, unsigned long, unsigned long, void*, int*)':
/usr/include/CL/opencl.hpp:3916: undefined reference to `clCreateBuffer'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_mem*>::release(_cl_mem*)':
/usr/include/CL/opencl.hpp:1733: undefined reference to `clReleaseMemObject'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Buffer::Buffer(cl::Context const&, unsigned long, unsigned long, void*, int*)':
/usr/include/CL/opencl.hpp:3916: undefined reference to `clCreateBuffer'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_mem*>::release(_cl_mem*)':
/usr/include/CL/opencl.hpp:1733: undefined reference to `clReleaseMemObject'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Buffer::Buffer(cl::Context const&, unsigned long, unsigned long, void*, int*)':
/usr/include/CL/opencl.hpp:3916: undefined reference to `clCreateBuffer'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_mem*>::release(_cl_mem*)':
/usr/include/CL/opencl.hpp:1733: undefined reference to `clReleaseMemObject'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::CommandQueue::enqueueMapBuffer(cl::Buffer const&, unsigned int, unsigned long, unsigned long, unsigned long, std::vector<cl::Event, std::allocator<cl::Event> > const*, cl::Event*, int*) const':
/usr/include/CL/opencl.hpp:8109: undefined reference to `clEnqueueMapBuffer'
/usr/bin/ld: /usr/include/CL/opencl.hpp:8109: undefined reference to `clEnqueueMapBuffer'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_command_queue*>::retain(_cl_command_queue*)':
/usr/include/CL/opencl.hpp:1722: undefined reference to `clRetainCommandQueue'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `std::enable_if<!std::is_pointer<cl::Buffer>::value, int>::type cl::Kernel::setArg<cl::Buffer>(unsigned int, cl::Buffer const&)':
/usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: /usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: /usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `std::enable_if<!std::is_pointer<float>::value, int>::type cl::Kernel::setArg<float>(unsigned int, float const&)':
/usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `std::enable_if<!std::is_pointer<int>::value, int>::type cl::Kernel::setArg<int>(unsigned int, int const&)':
/usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o:/usr/include/CL/opencl.hpp:6093: more undefined references to `clSetKernelArg' follow
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::CommandQueue::enqueueNDRangeKernel(cl::Kernel const&, cl::NDRange const&, cl::NDRange const&, cl::NDRange const&, std::vector<cl::Event, std::allocator<cl::Event> > const*, cl::Event*) const':
/usr/include/CL/opencl.hpp:8570: undefined reference to `clEnqueueNDRangeKernel'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_event*>::release(_cl_event*)':
/usr/include/CL/opencl.hpp:1769: undefined reference to `clReleaseEvent'
/usr/bin/ld: /usr/include/CL/opencl.hpp:1769: undefined reference to `clReleaseEvent'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_command_queue*>::release(_cl_command_queue*)':
/usr/include/CL/opencl.hpp:1724: undefined reference to `clReleaseCommandQueue'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_command_queue*>::retain(_cl_command_queue*)':
/usr/include/CL/opencl.hpp:1722: undefined reference to `clRetainCommandQueue'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `std::enable_if<!std::is_pointer<cl::Buffer>::value, int>::type cl::Kernel::setArg<cl::Buffer>(unsigned int, cl::Buffer const&)':
/usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: /usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: /usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `std::enable_if<!std::is_pointer<int>::value, int>::type cl::Kernel::setArg<int>(unsigned int, int const&)':
/usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: /usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o:/usr/include/CL/opencl.hpp:6093: more undefined references to `clSetKernelArg' follow
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::CommandQueue::enqueueNDRangeKernel(cl::Kernel const&, cl::NDRange const&, cl::NDRange const&, cl::NDRange const&, std::vector<cl::Event, std::allocator<cl::Event> > const*, cl::Event*) const':
/usr/include/CL/opencl.hpp:8570: undefined reference to `clEnqueueNDRangeKernel'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_event*>::release(_cl_event*)':
/usr/include/CL/opencl.hpp:1769: undefined reference to `clReleaseEvent'
/usr/bin/ld: /usr/include/CL/opencl.hpp:1769: undefined reference to `clReleaseEvent'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_command_queue*>::release(_cl_command_queue*)':
/usr/include/CL/opencl.hpp:1724: undefined reference to `clReleaseCommandQueue'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::CommandQueue::enqueueReadBuffer(cl::Buffer const&, unsigned int, unsigned long, unsigned long, void*, std::vector<cl::Event, std::allocator<cl::Event> > const*, cl::Event*) const':
/usr/include/CL/opencl.hpp:7619: undefined reference to `clEnqueueReadBuffer'
/usr/bin/ld: /usr/include/CL/opencl.hpp:7619: undefined reference to `clEnqueueReadBuffer'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::CommandQueue::finish() const':
/usr/include/CL/opencl.hpp:8817: undefined reference to `clFinish'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_command_queue*>::retain(_cl_command_queue*)':
/usr/include/CL/opencl.hpp:1722: undefined reference to `clRetainCommandQueue'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `std::enable_if<!std::is_pointer<cl::Buffer>::value, int>::type cl::Kernel::setArg<cl::Buffer>(unsigned int, cl::Buffer const&)':
/usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: /usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: /usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `std::enable_if<!std::is_pointer<float>::value, int>::type cl::Kernel::setArg<float>(unsigned int, float const&)':
/usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `std::enable_if<!std::is_pointer<int>::value, int>::type cl::Kernel::setArg<int>(unsigned int, int const&)':
/usr/include/CL/opencl.hpp:6093: undefined reference to `clSetKernelArg'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o:/usr/include/CL/opencl.hpp:6093: more undefined references to `clSetKernelArg' follow
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::CommandQueue::enqueueNDRangeKernel(cl::Kernel const&, cl::NDRange const&, cl::NDRange const&, cl::NDRange const&, std::vector<cl::Event, std::allocator<cl::Event> > const*, cl::Event*) const':
/usr/include/CL/opencl.hpp:8570: undefined reference to `clEnqueueNDRangeKernel'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_event*>::release(_cl_event*)':
/usr/include/CL/opencl.hpp:1769: undefined reference to `clReleaseEvent'
/usr/bin/ld: /usr/include/CL/opencl.hpp:1769: undefined reference to `clReleaseEvent'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_command_queue*>::release(_cl_command_queue*)':
/usr/include/CL/opencl.hpp:1724: undefined reference to `clReleaseCommandQueue'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Platform::get(std::vector<cl::Platform, std::allocator<cl::Platform> >*)':
/usr/include/CL/opencl.hpp:2715: undefined reference to `clGetPlatformIDs'
/usr/bin/ld: /usr/include/CL/opencl.hpp:2721: undefined reference to `clGetPlatformIDs'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::GetInfoFunctor0<int (*)(_cl_platform_id*, unsigned int, unsigned long, void*, unsigned long*), _cl_platform_id*>::operator()(unsigned int, unsigned long, void*, unsigned long*)':
/usr/include/CL/opencl.hpp:1619: undefined reference to `clGetPlatformInfo'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Platform::getDevices(unsigned long, std::vector<cl::Device, std::allocator<cl::Device> >*) const':
/usr/include/CL/opencl.hpp:2584: undefined reference to `clGetDeviceIDs'
/usr/bin/ld: /usr/include/CL/opencl.hpp:2591: undefined reference to `clGetDeviceIDs'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_device_id*>::release(_cl_device_id*)':
/usr/include/CL/opencl.hpp:1680: undefined reference to `clReleaseDevice'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_device_id*>::retain(_cl_device_id*)':
/usr/include/CL/opencl.hpp:1669: undefined reference to `clRetainDevice'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::GetInfoFunctor0<int (*)(_cl_device_id*, unsigned int, unsigned long, void*, unsigned long*), _cl_device_id*>::operator()(unsigned int, unsigned long, void*, unsigned long*)':
/usr/include/CL/opencl.hpp:1619: undefined reference to `clGetDeviceInfo'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Context::Context(cl::Device const&, long const*, void (*)(char const*, void const*, unsigned long, void*), void*, int*)':
/usr/include/CL/opencl.hpp:2933: undefined reference to `clCreateContext'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_context*>::release(_cl_context*)':
/usr/include/CL/opencl.hpp:1715: undefined reference to `clReleaseContext'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::CommandQueue::CommandQueue(cl::Context const&, cl::Device const&, unsigned long, int*)':
/usr/include/CL/opencl.hpp:7440: undefined reference to `clCreateCommandQueueWithProperties'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_command_queue*>::release(_cl_command_queue*)':
/usr/include/CL/opencl.hpp:1724: undefined reference to `clReleaseCommandQueue'
/usr/bin/ld: /usr/include/CL/opencl.hpp:1724: undefined reference to `clReleaseCommandQueue'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_context*>::release(_cl_context*)':
/usr/include/CL/opencl.hpp:1715: undefined reference to `clReleaseContext'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Buffer::Buffer(cl::Context const&, unsigned long, unsigned long, void*, int*)':
/usr/include/CL/opencl.hpp:3916: undefined reference to `clCreateBuffer'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_mem*>::release(_cl_mem*)':
/usr/include/CL/opencl.hpp:1733: undefined reference to `clReleaseMemObject'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::CommandQueue::enqueueWriteBuffer(cl::Buffer const&, unsigned int, unsigned long, unsigned long, void const*, std::vector<cl::Event, std::allocator<cl::Event> > const*, cl::Event*) const':
/usr/include/CL/opencl.hpp:7644: undefined reference to `clEnqueueWriteBuffer'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Program::Program(cl::Context const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, int*)':
/usr/include/CL/opencl.hpp:6392: undefined reference to `clCreateProgramWithSource'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_program*>::release(_cl_program*)':
/usr/include/CL/opencl.hpp:1751: undefined reference to `clReleaseProgram'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Program::build(cl::Device const&, char const*, void (*)(_cl_program*, void*), void*) const':
/usr/include/CL/opencl.hpp:6702: undefined reference to `clBuildProgram'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::GetInfoFunctor1<int (*)(_cl_program*, _cl_device_id*, unsigned int, unsigned long, void*, unsigned long*), _cl_program*, _cl_device_id*>::operator()(unsigned int, unsigned long, void*, unsigned long*)':
/usr/include/CL/opencl.hpp:1628: undefined reference to `clGetProgramBuildInfo'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_device_id*>::retain(_cl_device_id*)':
/usr/include/CL/opencl.hpp:1669: undefined reference to `clRetainDevice'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_device_id*>::release(_cl_device_id*)':
/usr/include/CL/opencl.hpp:1680: undefined reference to `clReleaseDevice'
/usr/bin/ld: /usr/include/CL/opencl.hpp:1680: undefined reference to `clReleaseDevice'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Kernel::Kernel(cl::Program const&, char const*, int*)':
/usr/include/CL/opencl.hpp:7067: undefined reference to `clCreateKernel'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_kernel*>::release(_cl_kernel*)':
/usr/include/CL/opencl.hpp:1760: undefined reference to `clReleaseKernel'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Kernel::Kernel(cl::Program const&, char const*, int*)':
/usr/include/CL/opencl.hpp:7067: undefined reference to `clCreateKernel'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_kernel*>::release(_cl_kernel*)':
/usr/include/CL/opencl.hpp:1760: undefined reference to `clReleaseKernel'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Kernel::Kernel(cl::Program const&, char const*, int*)':
/usr/include/CL/opencl.hpp:7067: undefined reference to `clCreateKernel'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::detail::ReferenceHandler<_cl_kernel*>::release(_cl_kernel*)':
/usr/include/CL/opencl.hpp:1760: undefined reference to `clReleaseKernel'
/usr/bin/ld: spectrumserver.p/src_fft_impl.cpp.o: in function `cl::Kernel::Kernel(cl::Program const&, char const*, int*)':
Sorry about that my editing didn't work
So it doesn't see the opencl library....
Did you perform this? Then tried to compile?
sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/lib/libOpenCL.so
That solved the problem with linking for me.
As I can't see what you are doing, I can only guess you didn't do that.
It solved for me the final compiling.
Which directory should that be done from ?
If I try from PhantomSDR-Plus
root@phantom:/home/wessex/PhantomSDR-Plus# sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/lib/libOpenCL.so
ln: failed to create symbolic link '/usr/lib/libOpenCL.so': File exists
Quote from: Bas ON5HB on Sep 25, 2024, 06:09 PMSo it doesn't see the opencl library....
Did you perform this? Then tried to compile?
sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/lib/libOpenCL.so
That solved the problem with linking for me.
As I can't see what you are doing, I can only guess you didn't do that.
It solved for me the final compiling.
The line is directory included, doesn't matter where you run it, as long as it's on the websdr-computer ;D
The line you have may be wrong and missing the directory parts.
Have seen it before. Check the exsiting link, it's probably without directory-parts
Won't be a first that lib's aren't found....like the Windows-dll-hell :o
Try to run
sudo ldconfig
Then recompile
Quote from: magicint1337 on Sep 25, 2024, 06:24 PMTry to run
sudo ldconfig
Then recompile
That shouldn't be needed after a reboot, but I have seen that to solve many things in the past ;D
That should be a default line of the install.sh ;D
root@phantom:/# sudo ldconfig
/sbin/ldconfig.real: File /lib/x86_64-linux-gnu/libOpenCL.so.1.0.0 is empty, not checked.
/sbin/ldconfig.real: File /lib/x86_64-linux-gnu/libOpenCL.so.1 is empty, not checked.
/sbin/ldconfig.real: File /lib/x86_64-linux-gnu/libOpenCL.so is empty, not checked.
/sbin/ldconfig.real: File /lib/libOpenCL.so is empty, not checked.
Did you run this?
sudo apt install ocl-icd-opencl-dev
Looks like you are missing this part....else apt purge and reinstall.
Then reboot and try again.
Yea apt purge and run sudo ldconfig again
The libs are broken
Reboot should not be needed when the ldconfig is run
Quote from: magicint1337 on Sep 25, 2024, 06:34 PMYea apt purge and run sudo ldconfig again
The libs are broken
Reboot should not be needed when the ldconfig is run
I like to see people rebooting all the time ;D 8)
root@phantom:/home/wessex/PhantomSDR-Plus# apt purge
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
intel-igc-cm libigc1 libigdfcl1 libz3-4
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@phantom:/home/wessex/PhantomSDR-Plus# sudo ldconfig
/sbin/ldconfig.real: File /lib/x86_64-linux-gnu/libOpenCL.so.1.0.0 is empty, not checked.
/sbin/ldconfig.real: File /lib/x86_64-linux-gnu/libOpenCL.so.1 is empty, not checked.
/sbin/ldconfig.real: File /lib/x86_64-linux-gnu/libOpenCL.so is empty, not checked.
/sbin/ldconfig.real: File /lib/libOpenCL.so is empty, not checked.
Quote from: magicint1337 on Sep 25, 2024, 06:34 PMYea apt purge and run sudo ldconfig again
The libs are broken
Reboot should not be needed when the ldconfig is run
I give up. It shouldn't be this hard.
Especially on modern Intel CPU's.
Maybe a good idea to format and start again, then FIRST install OpenCL.
Looks like your Ubuntu 22.04 is a real mess. Maybe even upgraded to new version, what should NOT be done.
No
Run this
sudo apt remove intel-oneapi-runtime-opencl intel-basekit clinfo opencl-headers
Then this
sudo apt install intel-oneapi-runtime-opencl intel-basekit clinfo opencl-headers
And then this
sudo ldconfig
This is a mess.
I think I've spent enough time on this today.
Maybe the best option is to start again with a clean Linux build, then try adding OpenCL before installing PhantomSDR-Plus.
Do you wish to add anything to the existing instructions before I do this ?
e.g.
Ubuntu Prerequisites
apt install build-essential cmake pkg-config meson libfftw3-dev libwebsocketpp-dev libflac++-dev zlib1g-dev libzstd-dev libboost-all-dev libopus-dev libliquid-dev git psmisc
Restart your Terminal after you ran install.sh otherwise it wont work..
git clone --recursive https://github.com/Steven9101/PhantomSDR-Plus.git
cd PhantomSDR-Plus
chmod +x *.sh
sudo ./install.sh
Reboot
check for Cypress drivers
lsusb
Check for OpenCL
install intel-gpu-tools and run intel_gpu_top
Start
./start-rx888mk2.sh
apt install build-essential cmake pkg-config meson libfftw3-dev libwebsocketpp-dev libflac++-dev zlib1g-dev libzstd-dev libboost-all-dev libopus-dev libliquid-dev git psmisc libclfft-dev intel-oneapi-runtime-opencl intel-basekit clinfo opencl-headers
This should be fine for your system
But i went to your system when it ran without opencl and havent had any issues (it ran smoothly)
root@phantom:/# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy
Quote from: Bas ON5HB on Sep 25, 2024, 06:52 PMI give up. It shouldn't be this hard.
Especially on modern Intel CPU's.
Maybe a good idea to format and start again, then FIRST install OpenCL.
Looks like your Ubuntu 22.04 is a real mess. Maybe even upgraded to new version, what should NOT be done.
Did you try the apt remove and other commands i posted earlier?
Yeh, but I upgraded the PC specifically to extract the maximum from it, and that includes running OpenCL.
Quote from: magicint1337 on Sep 25, 2024, 07:12 PMBut i went to your system when it ran without opencl and havent had any issues (it ran smoothly)
Yes but many files were not present or found.
I'll start again.
Quote from: magicint1337 on Sep 25, 2024, 07:15 PMDid you try the apt remove and other commands i posted earlier?
Ubuntu has the habit of breaking things:
root@Websdr:~# lsb_release -a
No LSB modules are available.
Distributor ID: Linuxmint
Description: Linux Mint 21.3
Release: 21.3
Codename: virginia
Base is the same but Mint protects things they are not sure about.
But I thought Linux was supposed to be great !
Looks like it's broken the PC hardware too, probably too many reboots :-)
I'll have to return the new PC for a replacement, as it will no longer power up.
Not a good day...
Thanks for everyone's help.
Regards,
Martin
Come on guy's make your mind up, I though Ubuntu 22.04 was the preferred OS.
I've now tasted Debian, Fedora, Mint, Puppy, Alpine, CentOS, Redhat, Pure and Ubuntu, and they all seem to inflect their own type of pain.
Regards,
Martin
Quote from: Bas ON5HB on Sep 25, 2024, 07:19 PMUbuntu has the habit of breaking things:
root@Websdr:~# lsb_release -a
No LSB modules are available.
Distributor ID: Linuxmint
Description: Linux Mint 21.3
Release: 21.3
Codename: virginia
Base is the same but Mint protects things they are not sure about.
I always use ubuntu 22.04
Understood.
I suggest the installation instructions need to be expanded, to try and ensure that any dependencies are dealt with, in the correct order.
As PhantomSDR-Plus becomes more widely adopted, these types of problems are likely to get worse, unless a relatively foolproof process is developed.
I'm certainly not skilled in Linux, but there are many who are even less proficient than myself, and part of my extended attempts throughout today, were in order to try and make things easier for them in the future.
I sometimes think that when folks are very familiar with a process, they assume everyone else is too, and this makes it a lot harder for others to follow.
It always reminds me of when I was being taught maths at school. It usually followed a step by step, methodical path, up to a certain point, then the teacher would say something like, "and from this we can deduce that" and then miss out several vital stages, before magically arriving at the answer.
There are good mathematicians, and good teachers, but unfortunately they are often not the same person.
Please spell things out, in detail, so that folks who don't know, can follow the various steps, and understand what is happening. We can then learn better.
Regards,
Martin
Quote from: magicint1337 on Sep 25, 2024, 09:09 PMI always use ubuntu 22.04
The thing is, OpenCL isn't the same for all CPU's...so there is no simple solution.
Try Cuda, I have, couldn't work it out.
The problem isn't PhantomSDR+ but the manufacturers of the hardware.
Intel alone has dosens of different CPU's and GPU's that all have a different driver, most combined into one, but not all.
AMD has dropped OpenCL as name and has ROCM and other names to do OpenCL.
Broadcom also different. nVidia Cuda that is compatible only with nVidia but is also different over various cards.
There is no simple answer to this.
As for the OS, Ubuntu 22.04 is the one to use, Mint 21.3 uses the same base and can be used without problems. They just refuse for things to be done in snapd that could break updates.
Mint uses the normal package distribution.
We have spelled everything out as best as we could.
No easy solution possible.
Hi Bas,
Yes, I understand, and I also appreciate your assistance in trying to get it to behave as intended.
I have followed most of the instructions, and bought specific hardware that I thought would ease the process, but it would seem that you are correct in saying "No easy solution possible".
I'll try again when the replacement for the faulty PC arrives.
Regards,
Martin
Quote from: Bas ON5HB on Sep 26, 2024, 12:07 PMWe have spelled everything out as best as we could.
No easy solution possible.
Yeah, probably something wrong as the Skylake CPU you tried to use has the most simplistic way of supporting Intel OpenCL.
It should have worked and recompiled almost by itself ;D
Or lastest and greatest package:
https://github.com/intel/compute-runtime/releases
It should have worked, almost all ways of doing it do support that CPU...therefor baffled me it wouldn't work.
OK, I just followed your recommendation and bought a HP Elitedesk PC i5-6500T 3.1Ghz, I wasn't aware there were further considerations.
If I'd know I could have asked for a different replacement, but it's currently being shipped, so I'll have to make do with what I've chosen.
You live and learn...
Quote from: Bas ON5HB on Sep 26, 2024, 01:42 PMYeah, probably something wrong as the Skylake CPU you tried to use has the most simplistic way of supporting Intel OpenCL.
My testing server, just freed this as my desktop machine ;D
Intel(R) Core(TM) i5-6500T CPU @ 2.50GHz
I installed Ubuntu 22.04 fresh.
Now I'm going to install OpenCL and will tell you in about an hour if I have the same difficulites, however I do not expect such.
Hi Bas,
I'm responding in this thread, to avoid contaminating your new one.
The replacement PC arrived.
I made a fresh Ubuntu 22.04 build and followed all the updated instructions to the letter.
clinfo indicated that it had installed correctly.
root@phantom:/home/wessex/PhantomSDR-Plus# clinfo
Number of platforms 1
Platform Name Intel(R) OpenCL Graphics
Platform Vendor Intel(R) Corporation
Platform Version OpenCL 3.0
Platform Profile FULL_PROFILE
I then proceeded with the installation of PhantomSDR-Plus
root@phantom:/home/wessex/PhantomSDR-Plus# sudo ./install.sh
Updating package lists and installing necessary packages...
Hit:1 http://gb.archive.ubuntu.com/ubuntu jammy InRelease
Hit:2 http://gb.archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:3 http://security.ubuntu.com/ubuntu jammy-security InRelease
Hit:4 http://gb.archive.ubuntu.com/ubuntu jammy-backports InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
build-essential is already the newest version (12.9ubuntu3).
libfftw3-dev is already the newest version (3.3.8-2ubuntu8).
libopus-dev is already the newest version (1.3.1-0.1build2).
libzstd-dev is already the newest version (1.4.8+dfsg-3build1).
pkg-config is already the newest version (0.29.2-1ubuntu3).
libboost-all-dev is already the newest version (1.74.0.3ubuntu7).
libcurlpp-dev is already the newest version (0.8.1-5).
libliquid-dev is already the newest version (1.3.2-3).
libwebsocketpp-dev is already the newest version (0.8.2-4).
meson is already the newest version (0.61.2-1).
nlohmann-json3-dev is already the newest version (3.10.5-2).
cmake is already the newest version (3.22.1-1ubuntu1.22.04.2).
curl is already the newest version (7.81.0-1ubuntu1.18).
git is already the newest version (1:2.34.1-1ubuntu1.11).
libflac++-dev is already the newest version (1.3.3-2ubuntu0.2).
zlib1g-dev is already the newest version (1:1.2.11.dfsg-2ubuntu9.2).
The following additional packages will be installed:
libssh2-1 libstd-rust-1.75 libstd-rust-dev rustc
Suggested packages:
cargo-doc llvm-17 lld-17 clang-17
The following NEW packages will be installed:
cargo libssh2-1 libstd-rust-1.75 libstd-rust-dev rustc
0 upgraded, 5 newly installed, 0 to remove and 13 not upgraded.
Need to get 0 B/98.2 MB of archives.
After this operation, 392 MB of additional disk space will be used.
Selecting previously unselected package libssh2-1:amd64.
(Reading database ... 105948 files and directories currently installed.)
Preparing to unpack .../libssh2-1_1.10.0-3_amd64.deb ...
Unpacking libssh2-1:amd64 (1.10.0-3) ...
Selecting previously unselected package libstd-rust-1.75:amd64.
Preparing to unpack .../libstd-rust-1.75_1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04 _amd64.deb ...
Unpacking libstd-rust-1.75:amd64 (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Selecting previously unselected package libstd-rust-dev:amd64.
Preparing to unpack .../libstd-rust-dev_1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04_ amd64.deb ...
Unpacking libstd-rust-dev:amd64 (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Selecting previously unselected package rustc.
Preparing to unpack .../rustc_1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04_amd64.deb ...
Unpacking rustc (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Selecting previously unselected package cargo.
Preparing to unpack .../cargo_1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04_amd64.deb ...
Unpacking cargo (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Setting up libstd-rust-1.75:amd64 (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Setting up libstd-rust-dev:amd64 (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Setting up rustc (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Setting up libssh2-1:amd64 (1.10.0-3) ...
Setting up cargo (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.8) ...
Scanning processes...
Scanning processor microcode...
Scanning linux images...
Running kernel seems to be up-to-date.
The processor microcode seems to be up-to-date.
No services need to be restarted.
No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
Packages installed successfully.
Building the main application...
Directory already configured.
Just run your build command (e.g. ninja) and Meson will regenerate as necessary.
If ninja fails, run "ninja reconfigure" or "meson --reconfigure"
to force Meson to regenerate.
If build failures persist, run "meson setup --wipe" to rebuild from scratch
using the same options as passed when configuring the build.
To change option values, run "meson configure" instead.
ninja: Entering directory `/home/wessex/PhantomSDR-Plus/build'
ninja: no work to do.
Welcome to PhantomPlus Installer!
Which SDR would you like to set up?
[1] RX888 MKII / RX888
[2] RTLSDR
[3] SDRPlay
Select an option [1-3]: 1
Setting up RX888 MKII / RX888...
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
cargo libssh2-1 libstd-rust-1.75 libstd-rust-dev rustc
0 upgraded, 0 newly installed, 5 to remove and 13 not upgraded.
After this operation, 392 MB disk space will be freed.
(Reading database ... 106083 files and directories currently installed.)
Removing cargo (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Removing libssh2-1:amd64 (1.10.0-3) ...
Removing rustc (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Removing libstd-rust-dev:amd64 (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Removing libstd-rust-1.75:amd64 (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.8) ...
Installing Rust...
info: downloading installer
info: profile set to 'default'
info: default host triple is x86_64-unknown-linux-gnu
warning: Updating existing toolchain, profile choice will be ignored
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: default toolchain set to 'stable-x86_64-unknown-linux-gnu'
stable-x86_64-unknown-linux-gnu unchanged - rustc 1.81.0 (eeb90cda1 2024-09-04 )
Rust is installed now. Great!
To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).
To configure your current shell, you need to source
the corresponding env file under $HOME/.cargo.
This is usually done by running one of the following (note the leading DOT):
. "$HOME/.cargo/env" # For sh/bash/zsh/ash/dash/pdksh
source "$HOME/.cargo/env.fish" # For fish
Cloning the rx888_stream repository...
fatal: destination path 'rx888_stream' already exists and is not an empty direct ory.
Building and installing...
Finished `release` profile [optimized] target(s) in 0.19s
Installing rx888_stream v0.1.0 (/home/wessex/PhantomSDR-Plus/rx888_stream)
Updating crates.io index
Locking 45 packages to latest compatible versions
Adding windows-sys v0.52.0 (latest: v0.59.0)
warning: variable does not need to be mutable
--> src/main.rs:232:9
|
232 | let mut handle = open_device_with_vid_pid_timeout(
| ----^^^^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
warning: `rx888_stream` (bin "rx888_stream") generated 1 warning (run `cargo fix --bin "rx888_stream"` to apply 1 suggestion)
Finished `release` profile [optimized] target(s) in 1.71s
Replacing /root/.cargo/bin/rx888_stream
Replaced package `rx888_stream v0.1.0 (/home/wessex/PhantomSDR-Plus/rx888_st ream)` with `rx888_stream v0.1.0 (/home/wessex/PhantomSDR-Plus/rx888_stream)` (e xecutable `rx888_stream`)
RX888 is successfully set up. Please restart your Terminal and then run the star t command.
Cont.
I tried to run PhantomSDR-Plus but, it came up with errors.
wessex@phantom:~/PhantomSDR-Plus$ sudo ./start-rx888mk2.sh
[sudo] password for wessex:
spectrumserver: no process found
rx888_stream: no process found
./start-rx888mk2.sh: line 8: rx888_stream: command not found
As su
root@phantom:/home/wessex/PhantomSDR-Plus# ./start-rx888mk2.sh spectrumserver: no process found
rx888_stream: no process found
root@phantom:/home/wessex/PhantomSDR-Plus# thread 'main' panicked at library/std/src/io/stdio.rs:1118:9:
failed printing to stdout: Broken pipe (os error 32)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
I edited the toml files and put none in place of opencl.
It started without any obvious errors, and I could get a browser to connect, it asked me to tap to start the audio, but there was no audio or waterfall. Restarting PhantomSDR-Plus and refreshing the browser, had no effect.
I went away for a while to have my evening meal, and I've just returned, refreshed the browser, and the audio and waterfall are running.
So, as before, it is still not recognising opencl.
Regards,
Martin
I suspect something has changed from earlier versions with the way opencl is deployed, but I'm not a software guy.
https://www.intel.com/content/www/us/en/developer/articles/tool/opencl-drivers.html
Intel® SDK for OpenCL Applications is EOL. The transition to Intel® oneAPI and its unified, cross-architecture programming model brings greater efficiency and reuse across hardware targets. See the Intel® oneAPI Programming Guide for information migrating OpenCL code and OpenCL interoperability by way of SYCL* objects.
snipped from clinfo - is this a clue ?
NULL platform behavior
clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) Intel(R) OpenCL Graphics
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) Success [INTEL]
clCreateContext(NULL, ...) [default] Success [INTEL]
clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) Success (1)
Platform Name Intel(R) OpenCL Graphics
Device Name Intel(R) HD Graphics 530
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) Success (1)
Platform Name Intel(R) OpenCL Graphics
Device Name Intel(R) HD Graphics 530
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) Success (1)
Platform Name Intel(R) OpenCL Graphics
Device Name Intel(R) HD Graphics 530
ICD loader properties
ICD loader Name OpenCL ICD Loader
ICD loader Vendor OCL Icd free software
ICD loader Version 2.2.14
ICD loader Profile OpenCL 3.0
Maybe after meal you restarted your terminal and reconnected? Because after the rust installation this is needed. Try it with opencl again and restart and send the error if any
No, I had just left the browser running, with a blank waterfall, when I returned I refreshed the tab, and it was working.
Without Opencl running, I can just about achieve a 60MHz sample rate, above this it has severe audio dropouts. I'd hoped to be able to have a slightly greater margin.
The next job it to somehow implement an automatic startup on boot or power restoration. I guess a chron job would achieve this, but there should really be an inbuilt option to start on boot.
Regards,
Martin
Quote from: magicint1337 on Sep 28, 2024, 11:39 AMMaybe after meal you restarted your terminal and reconnected? Because after the rust installation this is needed. Try it with opencl again and restart and send the error if any
Looks like you didn't install the libaries.
You never told us the install showed the libraries.
Also, I do not run a desktop, that is disabled in grub at boot.
GRUB_CMDLINE_LINUX_DEFAULT="systemd.unit=multi-user.target usbcore.usbfs_memory_mb=2048 pci=noaer"
Maybe you have a desktop running? I never do. Blackbox only. ;)
Which / What libraries ? Do you mean the OpenCL deb files or some other prerequisites that should have been part of the Ubuntu install ?thing else ?
I followed all of the instructions, step by step, and as described.
I'm not running the Linux desktop, it's headless, and I'm SSHing in, but I do have a VGA monitor connected, so that I can confirm that it is booting up correctly.
Regards,
Martin
Quote from: Bas ON5HB on Sep 28, 2024, 05:26 PMLooks like you didn't install the libaries.
You never told us the install showed the libraries.
Also, I do not run a desktop, that is disabled in grub at boot.
GRUB_CMDLINE_LINUX_DEFAULT="systemd.unit=multi-user.target usbcore.usbfs_memory_mb=2048 pci=noaer"
Maybe you have a desktop running? I never do. Blackbox only. ;)
You must have missed something, as I wrote it while doing it.
https://www.phantomsdr.fun/index.php?topic=58.msg331#msg331
I can not understand why it keeps failing on your part, sorry I don't.
I especially took my Desktop machine, formatted it, and started from scratch.
I wrote down all steps.
It's beyond me why you can't get it working.
Maybe time to ask a Linux-nerd to help you? I'm baffled why you didn't get it working, again.
Sorry mate. I'm clueless at this point.
ge Martin and Bas,
when I installed Ubuntu 22.04 LTS I could choose which kernel should be installed. I selected HWE (newest kernel).
Can this have an influence on the installation of OpenCl ? I have now idea, just a thought.
uname -r
6.8.0-45-generic
73
John
Hi Bas,
I appreciate your help, and I'm not having a go at you, it's just very frustrating (for all parties) when something works for one person but not another.
We are using different hardware, and it may be that as part of the initial Ubuntu installation process, you have done something that I have not. Maybe using different libraries, or permissions, or something similar.
I followed the instructions on the intel Github and created a directory named neo, which housed all the downloaded deb files. They were all present, and seemed to have installed correctly without flagging up any errors.
I think I'll try again from scratch, just in case I've missed anything, but having now done it twice, with the same end result, it would seem to be something peculiar with the hardware / Bios / or some other incompatibility with Opencl.
I do know a Linux guru, so I may ask him, as you suggest.
Thnaks again for perservering.
Martin
Quote from: Bas ON5HB on Sep 28, 2024, 06:59 PMI can not understand why it keeps failing on your part, sorry I don't.
I especially took my Desktop machine, formatted it, and started from scratch.
Quote from: John DF4UE on Sep 28, 2024, 07:37 PMge Martin and Bas,
when I installed Ubuntu 22.04 LTS I could choose which kernel should be installed. I selected HWE (newest kernel).
Can this have an influence on the installation of OpenCl ? I have now idea, just a thought.
uname -r
6.8.0-45-generic
73
John
Normally no. Test and find out. But typical a kernel has no impact.
Quote from: Martin G8JNJ on Sep 28, 2024, 08:50 PMHi Bas,
I appreciate your help, and I'm not having a go at you, it's just very frustrating (for all parties) when something works for one person but not another.
We are using different hardware, and it may be that as part of the initial Ubuntu installation process, you have done something that I have not. Maybe using different libraries, or permissions, or something similar.
We are NOT using different hardware, as I especially changed my Desktop machine to match yours.
It's the EXACT same machine and hardware,
I'm getting the feeling you are not following directions on purpose....ELSE IT WOULD HAVE WORKED!
At the same time you keep insisting on demands you want to see, and you post nasty comments.
You do not want to get it running, you want it all about Martin.
I have had enough of your tone and I'm not going to put any effort in solving your problem anymore.
You Sir, need to learn some manners, in all aspects. We are not your employees.
Hi Bas,
I hadn't realised you were using exactly the same make and model as myself, including I assume the same processor.
I can assure you I have followed your written instructions to the letter, and I would not wish to self sabotage this project after spending a considerable amount of money on the RX888, cooling mods, the original PC, it's subsequent replacement, and the second replacement after the first had failed, not to mention several days worth of effort that has not produced the end result I had hoped for.
I don't understand which of my comments you have interpreted as being "a nasty demand", I'm not demanding anything of you, and wouldn't wish to, why should I ? In fact I can't recall any time I have "demanded anything of anyone" and that includes in a work environment, it's just not my style. I'll debate, and make persuasive statements, to try and move a project forward, but that's not the same as making a demand. I can't do much to alter your perception of me, it's your opinion, and is as valid as that of anyone else.
I genuinely appreciate that you have tried to help me, and I have already said as much. I'm not blaming you, I'm just stating that my outcome is different to yours, for an unknown reason. I would not have persevered if I wasn't bothered, and didn't want to know what had gone wrong. That's how we learn. I'm not trying to "wind you up" it would serve no purpose, and be counterproductive in trying to get the thing to work as it should.
I find the situation as frustrating as you do, and I would really like to find out what is causing the problem. It is more than likely to be something that I have done incorrectly, and I would like to know what it is. If I have made a mistake, I will willingly admit to it, especially if it helps someone else to avoid the same problem. I see this as a work in progress, and finding and resolving bugs are an inherent part of it.
Regards,
Martin
Quote from: Bas ON5HB on Sep 28, 2024, 09:07 PMQuote from: Martin G8JNJ on Sep 28, 2024, 08:50 PMHi Bas,
I appreciate your help, and I'm not having a go at you, it's just very frustrating (for all parties) when something works for one person but not another.
We are using different hardware, and it may be that as part of the initial Ubuntu installation process, you have done something that I have not. Maybe using different libraries, or permissions, or something similar.
We are NOT using different hardware, as I especially changed my Desktop machine to match yours.
It's the EXACT same machine and hardware,
I'm getting the feeling you are not following directions on purpose....ELSE IT WOULD HAVE WORKED!
At the same time you keep insisting on demands you want to see, and you post nasty comments.
You do not want to get it running, you want it all about Martin.
I have had enough of your tone and I'm not going to put any effort in solving your problem anymore.
You Sir, need to learn some manners, in all aspects. We are not your employees.
Hi guys. Please keep it respectful, we are all here to help. To be honest the easiest way would be to let me ssh into the system and let me find the error so we know what it is. If thats fine for you we can do it, but its your decision. Otherwise if not we need more info on what you did exactly, maybe explain here the steps you did in the order and not refer to the tutorial, maybe we can find something missing.
Greetings!
What is the problem?
For me, PhantomSDR+ works on an old FUJITSU LIFEBOOK S752 laptop with 20MHz bandwidth, the operating system is LMDE 6 (Debian Bookworm with Cinammon interface).
There is no acceleration, it is not even necessary for that bandwidth, the load on the processor is less than 55 percent.
You need to read the instructions and follow them consistently, the people who made that SDR did a great job and simplified the installation process to the limit.
I tried PhantomSDR+ with RTL-SDR v3, RSP1 clone, RSP1A original... everything worked fine.
I'm currently working with RX888MK2 and everything works fine. The waterfall is deliberately slow because if I speed it up the processor load rises too much for my taste.
websdr@Siemens:~/PhantomSDR-Plus$ inxi
System:
Kernel: 6.1.0-25-amd64 arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
Console: pty pts/0 Distro: LMDE 6 Faye base: Debian 12.1 bookworm
Machine:
Type: Laptop System: FUJITSU product: LIFEBOOK S752 v: 10601581625
serial: <superuser required>
Mobo: FUJITSU model: FJNB252 v: L3 serial: <superuser required>
UEFI-[Legacy]: FUJITSU // Phoenix v: Version 2.04 date: 10/16/2012
CPU:
Info: dual core model: Intel Core i5-3320M bits: 64 type: MT MCP
arch: Ivy Bridge rev: 9 cache: L1: 128 KiB L2: 512 KiB L3: 3 MiB
Speed (MHz): avg: 2968 high: 3063 min/max: 1200/3300 cores: 1: 2934
2: 3063 3: 2934 4: 2944 bogomips: 20753
Flags: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
Device-1: Intel 3rd Gen Core processor Graphics
vendor: Fujitsu . LIFEBOOK E752 driver: i915 v: kernel arch: Gen-7
bus-ID: 00:02.0
Display: server: X.org v: 1.21.1.7 with: Xwayland v: 22.1.9 driver: X:
loaded: modesetting unloaded: fbdev,vesa dri: crocus gpu: i915 tty: 80x24
resolution: 1366x768
API: OpenGL Message: GL data unavailable in console. Try -G --display
Audio:
Device-1: Intel 7 Series/C216 Family High Definition Audio
vendor: Fujitsu . LIFEBOOK E752 driver: snd_hda_intel v: kernel
bus-ID: 00:1b.0
API: ALSA v: k6.1.0-25-amd64 status: kernel-api
Server-1: PipeWire v: 0.3.65 status: active
Server-2: PulseAudio v: 16.1 status: off (using pipewire-pulse)
Network:
Device-1: Intel 82579V Gigabit Network vendor: Fujitsu . LIFEBOOK E752
driver: e1000e v: kernel port: 4080 bus-ID: 00:19.0
IF: enp0s25 state: down mac: <filter>
Device-2: Intel Centrino Advanced-N 6205 [Taylor Peak] driver: iwlwifi
v: kernel bus-ID: 0a:00.0
IF: wlp10s0 state: up mac: <filter>
Device-3: Sierra Wireless MC8305 Modem type: USB driver: qcserial,qmi_wwan
bus-ID: 1-1.5:4
IF: wwan0 state: down mac: <filter>
Drives:
Local Storage: total: 232.89 GiB used: 19.06 GiB (8.2%)
ID-1: /dev/sda vendor: Toshiba model: MK2552GSX size: 232.89 GiB
Partition:
ID-1: / size: 33.61 GiB used: 14.73 GiB (43.8%) fs: ext4 dev: /dev/sda5
ID-2: /home size: 61.94 GiB used: 4.33 GiB (7.0%) fs: ext4 dev: /dev/sda6
Swap:
Alert: No swap data was found.
Sensors:
System Temperatures: cpu: 67.0 C mobo: N/A
Fan Speeds (RPM): N/A
Info:
Processes: 160 Uptime: 2d 14h 4m Memory: 7.62 GiB used: 1.06 GiB (13.9%)
Init: systemd target: graphical (5) Compilers: gcc: 12.2.0 Packages: 2948
Shell: Bash v: 5.2.15 inxi: 3.3.26
websdr@Siemens:~/PhantomSDR-Plus$
websdr@Siemens:~/PhantomSDR-Plus$ neofetch
`.-::---.. websdr@Siemens
.:++++ooooosssoo:. --------------
.+o++::. `.:oos+. OS: LMDE 6 (faye) x86_64
:oo:.` -+oo: Host: LIFEBOOK S752 10601581625
`+o/` .::::::-. .++-` Kernel: 6.1.0-25-amd64
`/s/ .yyyyyyyyyyo: +o-` Uptime: 2 days, 14 hours, 8 mins
`so .ss ohyo` :s-: Packages: 2948 (dpkg)
`s/ .ss h m myy/ /s`` Shell: bash 5.2.15
`s: `oo s m Myy+-o:` Resolution: 1366x768
`oo :+sdoohyoydyso/. Terminal: /dev/pts/0
:o. .:////////++: CPU: Intel i5-3320M (4) @ 3.300GHz
`/++ -:::::- GPU: Intel 3rd Gen Core processor Graphics Contr
`++- Memory: 689MiB / 7800MiB
`/+-
.+/.
.:+-.
`--.``
websdr@Siemens:~/PhantomSDR-Plus$
websdr@Siemens:~/PhantomSDR-Plus$ free -h
total used free shared buff/cache available
Mem: 7,6Gi 1,0Gi 4,1Gi 32Mi 2,9Gi 6,6Gi
Swap: 0B 0B 0B
websdr@Siemens:~/PhantomSDR-Plus$
OK, another day of effort and...
Third time lucky.
What I did differently this time.
When installing Ubuntu, I didn't tick the option to install 3rd party drivers.
Installed clinfo intel-gpu-tools, OpenCL, cuFFT and clFFT10, all of these were installed before the deb files.
I had previously installed libclfft-dev, after the deb files, in the order shown on this page https://www.phantomsdr.fun/index.php?topic=58.msg331#msg331
When I initially tried Bas's list of deb files on the same page https://www.phantomsdr.fun/index.php?topic=58.msg331#msg331 I got an error.
N: Download is performed unsandboxed as root as file '/home/wessex/neo/intel-igc -core_1.0.17537.20_amd64.deb' couldn't be accessed by user '_apt'. - pkgAcquire: :Run (13: Permission denied)
I then used the list on the Intel Github, and that seemed to run OK.
Each time I was instructed to open a new terminal, I also performed a reboot, just to be safe.
All the rest was performed as before, so I don't know which of these actions made the difference.
intel-gpu-top now shows OpenCL performing as expected, this is when running smoothly at 80meg sample rate, so it was definitely worth the effort.
intel-gpu-top: Intel Skylake (Gen9) @ /dev/dri/card0 - 1051/1099 MHz; 3% RC6
11.06/19.64 W; 507 irqs/s
IMC reads: 8073 MiB/s
IMC writes: 6154 MiB/s
ENGINES BUSY MI_SEMA MI_WAIT
Render/3D 94.94% |█████████████████████████████████▎ | 0% 0%
Blitter 0.00% | | 0% 0%
Video 0.00% | | 0% 0%
VideoEnhance 0.00% | | 0% 0%
Thanks to everyone who helped me to resolve this issue. Even though I don't know which part of the installation caused the problem. Hopefully, these observations may help identify why it didn't work on previous occasions.
Regards,
Martin
You can now connect to it (on a temporary basis) at http://g8jnj.zapto.org:8090
It's running at 82Meg sample rate, which is good, as I wanted to cover the 40MHz 8m band.
Once I sort out how to get it to start on boot, I'll move it to my Wessex site.
Regards,
Martin
Congratulation Martin,
software is sometimes magical ;D
John
I think I'd prefer "unpredictable" I tried adding a service, so that it would start up automatically on boot.
It didn't work, due to some form of timing issue.
× rx888boot.service - Start RX888 on boot
Loaded: loaded (/etc/systemd/system/rx888boot.service; enabled; vendor preset: enabled)
Active: failed (Result: start-limit-hit) since Sun 2024-09-29 15:40:57 UTC; 29s ago
Process: 1110 ExecStart=/home/wessex/PhantomSDR-Plus/start-rx888mk2.sh (code=exited, status=0/SUCCESS)
Main PID: 1110 (code=exited, status=0/SUCCESS)
CPU: 19ms
Sep 29 15:40:57 phantom systemd[1]: rx888boot.service: Scheduled restart job, restart counter is at 5.
Sep 29 15:40:57 phantom systemd[1]: Stopped Start RX888 on boot.
Sep 29 15:40:57 phantom systemd[1]: rx888boot.service: Start request repeated too quickly.
Sep 29 15:40:57 phantom systemd[1]: rx888boot.service: Failed with result 'start-limit-hit'.
Sep 29 15:40:57 phantom systemd[1]: Failed to start Start RX888 on boot.
But somehow the OpenCL part became corrupted in the process, and when started manually with the service disbaled, the streamer wouldn't run.
Re-installing the deb files fixed it, but I don't understand how adding something unrelated managed to mess things up so badly.
Regards,
Martin
Quote from: John DF4UE on Sep 29, 2024, 06:35 PMsoftware is sometimes magical ;D
Quote from: 9a7aof on Sep 29, 2024, 08:58 AMWhat is the problem?
For me, PhantomSDR+ works on an old FUJITSU LIFEBOOK S752 laptop with 20MHz bandwidth, the operating system is LMDE 6 (Debian Bookworm with Cinammon interface).
There is no acceleration, it is not even necessary for that bandwidth, the load on the processor is less than 55 percent.
Sorry you do not run 50%, you run 200%, equals to 4-core loaded upto 50%.
This may sound the same but it isn't.
As you can only load 1 core upto 100% IF the program is single-threaded, go beyond this and it will give problems, slowdowns etc.
With applications that can handle more threads you may count all loads together.
So a 4 core CPU may be loaded upto 400% (in practice it's not more then 350%).
That is why the thread-settings in the toml are important, to make sure the cores are NOT overloaded and you never get above the max the CPU can handle.
It depends on the CPU how much bandwidth you can do, however, OpenCL takes so much load OFF the cores that 30MHz will result in 70% usage (total!).
If the USB port would be faster, the RX888MK2 could do 60MHz bandwidth and because of OpenCL the CPU can handle it.
That is the difference.
In fact, you could run 2 instances of the RX-888MHz on 1 CPU at 30MHz....try that without OpenCL or Cuda...no way ;)
Yes i know,
QuoteSorry you do not run 50%, you run 200%, equals to 4-core loaded upto 50%.
I should have written the load per core, four virtual cores, each about 50 percent, a total of 200 percent.
websdr@Siemens:~$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +64.0°C (high = +87.0°C, crit = +105.0°C)
Core 0: +66.0°C (high = +87.0°C, crit = +105.0°C)
Core 1: +56.0°C (high = +87.0°C, crit = +105.0°C)
I was not able to write a script to automatically start Phantom SDR+ as a service, so I start it through cron on reboot:
#-------------------
@reboot /bin/bash -lc 'cd /home/websdr/PhantomSDR-Plus/ && ./start-rx888mk2.sh'
#-------------------
I have a question, I see that some colleagues managed to fix the bug with switching the modulation type AM => FM => AM and the problem with the correct display of the modulation type when the marker is clicked.
Is it possible to start a test branch where the rest of us can test the fixed bugs before the final version.
Another possibility would be to put the fixed scripts in a tar.gz archive with included paths where these scripts should be located.
By simply unpacking the tar.gz archive, the fixed scripts would be in the right place.
I know what I'm writing about, I've been a satisfied Linux user since 1996.
Kind regards,
Darko, 9a7aof
The problem of going to FM and back to other modulation has been seen before.
I also noticed it.
However, running OpenCL acceleration doesn't show this problem.
I can not say where this problem is, but it's shown all over non-OpenCL running systems.
I do not know when I started Linux, it was at the time of OS/2 1.3x when I side-looked at Linux.
But compiling a system took days, and failed a lot.
My first Linux was Slackware....still hate it ;D TurboLinux wasn't much better :o
Hi,
After too many experiments and fine tunings during the last week, I've setup the .toml and .sh files as follows. No cross modulation or overloads until now, even during hard periods of extreme high propagation and very strong signals in radio bands of 41 and 49 meters.
Antenna is EndFed, with 64:1 balun, ~46m. long, loading coil at 38m. (192μH), covering all amateurs' band from 160-10m. It is the same antenna used for transmitting my radioamateur activities. The sack is located in Athens, Greece, so the conditions are the expected ones for an urban area.
config-rx888mk2.toml
[server]
port=8888 # Server port
html_root="frontend/dist/" # HTML files to be hosted
otherusers=1 # Send where other users are listening, 0 to disable
threads=4
[websdr]
register_online=true # If the SDR should be registered on https://sdr-list.xyz then put it to true
name="SV1BTL - Athens, GR" # Name that is shown on https://sdr-list.xyz
antenna="EndFed 160-10m." # Antenna that is shown on https://sdr-list.xyz
grid_locator="KM17VX" # 4 or 6 length Grid Locator shown on https://sdr-list.xyz and for the Distance of FT8 Signals
hostname="sv1btlham.no-ip.org" # If you use ddns or something to host with a domain enter it here for https://sdr-list.xyzv
[limits]
audio=100
waterfall=100
events=100
[input]
sps=60000000 # Input Sample Rate
fft_size=8388608 # FFT bins
fft_threads=2
brightness_offset=-4
# Waterfall brightness offset. Reduce to negative if you see black regions in the waterfall
frequency=0 # Baseband frequency
signal="real" # real or iq
accelerator="opencl" # Accelerator: none, cuda, opencl
audio_sps=12000 # Audio Sample Rate
audio_compression="flac" # flac or opus
waterfall_size=2048
waterfall_compression="zstd" # zstd or av1
smeter_offset=9
[input.driver]
name="stdin" # Driver name
format="s16" # Sample format: u8, s8, u16, s16, u32, s32, f32, f64
[input.defaults]
frequency=7120000 # Default frequency to show user
modulation="LSB" # Default modulation
#####
.sh
#!/bin/bash
cd ~/PhantomSDR-Plus
killall -s 9 spectrumserver
sudo killall -s 9 rx888_stream
sleep 1
# Turn USB powersaving off
echo on | sudo tee /sys/bus/usb/devices/*/power/control > /dev/null
if test -e ~/PhantomSDR-Plus/rtl.fifo; then
echo fifo alredy exists
else
echo creating fifo...
mkfifo ~/PhantomSDR-Plus/rtl.fifo
fi
sleep 1
RUST_BACKTRACE=1
sudo ~/PhantomSDR-Plus/rx888_stream/target/release/rx888_stream -f ~/PhantomSDR-Plus/rx888_stream/SDDC_FX3.img -s 60000000 -g 50 -a 50 -m high --pga -r -d -o - > ~/PhantomSDR-Plus/rtl.fifo &
sleep 1
~/PhantomSDR-Plus/build/spectrumserver --config ~/PhantomSDR-Plus/config-rx888mk2.toml < ~/PhantomSDR-Plus/rtl.fifo &
# > /dev/null 2>&1 &
exit
#####
P.S. Using a Mini PC Intel Core i5-12450H, 16 GB DDR4, 512 GB M.2 2280 NVMe. Ubuntu 22.04
73 de SV1BTL, Emmanuel