Gnuradio companion not installed after running build-gnuradio script - gnuradio

I tried installing Gnuradio 3.7.9.2 using build-gnuradio script and apart from a few hiccups due to some packages (which I installed and re-ran the script again) , the script completed its run successfully (I enabled the verbose option of the script to check the output). I even added the PYTHONPATH to the .bashrc script after completing the installation. When I tried launching gnuradio-companion though, it doesnt recognise the command.
:~$ gnuradio-companion
The program 'gnuradio-companion' is currently not installed. You can install it by typing:
sudo apt-get install gnuradio
So, I was wondering whether I need to install grc separately after the build-gnuradio script installation ?. I apologise if this is too simple, I have tried the installation many times and searched the web for problems like this. To the best of my efforts, I was not able to find any. It would be great, if anyone can point to any existing question similar to this, or guide me in fixing this issue. Thank you.

It is advised to use PyBOMBS to install GNU Radio. Installing Out-of-Tree modules (OOTs) will be much easier afterwards. As for your problem: Did you check if your $PATH variable (echo $PATH) contains /usr/local/bin/? This should be the default installation path for a non-system install of GNU Radio.
Alternatively you can try to run /usr/local/bin/gnuradio-companion.

Related

Problem running a PyQt5 project in WSLg - no application window shows up

I am running WSL2 under Windows 10.
If I type "gedit &" into the WSL console, the Gedit application window pops up. Thus I assume that WSLg properly works.
Next, I am trying to run the following PyQt5 project:
https://github.com/rafaelpadilla/review_object_detection_metrics
However, no application window pops up this time, although no error message appears either.
First of all, I do wonder whether this could work at all with WSL!?
Appendix for additional context:
I am not using conda because of licensing issues, but a combination of pyenv + poetry instead. First I had problems with a missing library (libxcb.so), which I could solve by running "sudo apt python-pyqt5". Now everything seems to work, except from no application window being shown.
UPDATE:
I tried with "/src/pyqt-official/qtdemo/qtdemo.py" from the official PyQt Examples github repository and I observed exactly the same issue.
There is no error message. Last prompt informs me that the "xcb plugin was loaded“, then nothing happens. In particular, no window is showing up.
Some related observations:
(1) I haven't yet updated my grafics card driver to support vGPUs. However, Gedit works and opens in a separate window.
(2) Unless I do "sudo apt install python3-pyqt", I receive an error message saying that it cannot find "libxcb.so". However, I am running the code in a virtual pyenv/poetry environment, which is separate from the system python installation. I don't understand why "sudo apt install python3-pyqt" makes a difference here. Shouldn't installing "PyQt5" with poetry obtain a wheel that comes with all libraries already compiled? I don't understand how all of this is playing together.
Open Questions:
Do you think the driver issue could be an explanation? I actually cannot imagine that. I thought it is only about better performance for OpenGL applications.
Can you explain observation (2)?
What else can I do?
First of all, I do wonder whether this could work at all with WSL!?
I can't tell you if that particular application will run under WSL, but my expectation is that it will. As far as I can tell in its dependencies there doesn't seem to be any reliance on GPU compute. That, to me, would be the trickiest part to configure under WSL (but is still typically possible). However, there may be other dependencies (not covered below) that you need to get running before the application can work.
What I can confirm is that PyQt works under WSL just fine. However, keep in mind that a default Ubuntu installation under WSL is based on a non-GUI Ubuntu Server distribution, rather than standard Ubuntu (with a desktop and GUI).
This means that Ubuntu Server is often missing system level libraries needed for GUI support, which appears to be the case here.
I don't understand why "sudo apt install python3-pyqt" makes a difference here. Shouldn't installing "PyQt5" with poetry obtain a wheel that comes with all libraries already compiled?
Poetry and/or Pip manage the Python library dependencies, but those Python libraries still require the native system library dependencies. That's where sudo apt install python3-pyqt5 comes in. Under a desktop Ubuntu system, most of these libraries would already be in place. However, with Ubuntu Server/WSL, they aren't.
For reference, here's my configuration. On a freshly initialized Ubuntu 22.04 WSL2 distribution:
sudo apt update && sudo apt upgrade -y
sudo apt install python3-venv python3-pyqt5
mkdir -p src/pyqt_test
cd src/pyqt_test
python3 -m venv .venv
source .venv/bin/activate
pip install pyqt5
I was then able to create and run the following, taken from Learn Python PyQt:
import sys
from PyQt5 import QtWidgets
app = QtWidgets.QApplication(sys.argv)
windows = QtWidgets.QWidget()
windows.resize(500,500)
windows.move(100,100)
windows.show()
sys.exit(app.exec_())
The window displayed correctly.

Fixing gnuradio deleted directory

I have been following this guide to install gnuradio 3.8 onto my Ubuntu 22.04.1 LTS, but I missed the instruction where it said "Ensure the "gitbranch" is maint-3.8", and mine said maint-3.10. After trying to install gr-iqbal, it gave me an error. For whatever reason, I thought that simply deleting the directory it was built in would let me reinstall it. It didn't.
I have tried using pybombs install gnuradio which gives me CMake Error: The source directory "/home/aboigoe/sdr/src/gnuradio" does not appear to contain CMakeLists.txt.
I have tried using pybombs rebuild gnuradio, but that obtains Package gnuradio is not installed into current prefix. Aborting.
To fix that, I tried using pybombs fetch gnuradio, which runs fine, but doesn't fix the previous error.
Finally, I tried pybombs remove gnuradio, but it says Package gnuradio is not installed. Aborting.
So you're working with pybombs! That makes this particular task easier: just delete the whole prefix, and start anew. The main thing you needed to build in that prefix was GNU Radio, and you built 3.10, and wanted 3.8, so that's a complete rebuild, anyways.
I assume you're following that guide (which comes, kind of, out of nowhere – GNU Radio has installation guides on their wiki, https://wiki.gnuradio.org) because you want exactly GNU Radio 3.8, with gr-osmosdr and gr-iqbal.
If you just want a working GNU Radio that can talk to your SDR hardware, um, don't follow random guides from the internet :) Instead, your whole problem boils down to a simple
sudo apt install gnuradio
and that's it – GNU Radio 3.10, as Ubuntu 22.04 ships it, contains gr-soapy, and Ubuntu's apt will install many available hardware drivers (for RTL-SDR, hackrf, mirisdr, bladerf, audio-interfaced hardware, red pitaya,…) without any need to do anything yourself. It just works.
The thing that will be different is that the blocks to inteface with your hardware will not reside under the "osmosd" category in your GRC, but in "Soapy", but I guess you'll deal with that rather than going through the rather convoluted way of installing an old (and not updated anymore) version of GNU Radio, to include an old (and not updated anymore) version of gr-osmosdr :)

Making the CMAKE path available to another software

I am trying to install a software package called kinsol, a non-linear equation solver, through ccmake as instructed in its documentation. The package requires a cmake version 3.12 or higher. So, I installed 3.17.3. Now, the problem is that my kinsol installation process is not able to locate ccmake and hence gives the message "ccmake ../kinsol-6.2.0
The program 'ccmake' is currently not installed. You can install it by typing:
sudo apt install cmake-curses-gui". But using the aforementioned command installs the version 3.5, which again fails in the task due to the version requirement of kinsol. I had come across a similar question in this forum and so I followed the workarounds suggested there as in putting the installation path of cmake in the .bashrc file still without any success. Does anyone know how to make the path of cmake known to the software?
Thanks,
DP

problems with ubiquity/success_command Ubuntu 14.04

I want to automate the Ubuntu installation (a fully unattended installation without questions). I also want to run a script right after the installation is finished.
What I did is that I managed to have a fully unattended Ubuntu installation. I am doing this by providing a pre-seed file and using boot parameters to preseed the questions that are asked before the preseed file is loaded. The installation went okay but the problem lies with running the script right after the installation completion. I am using Ubuntu 14.04 LTS desktop version thus I am not using the late command as I have read that it won't be noticed by the installer. Instead, I am using the Ubiquity/success_command. I have the following code at the end of my pre-seed file.
ubiquity ubiquity/success_command string \
mkdir /target/dev-master/; \
cp -r /cdrom/dev-master/* /target/dev-master/; \
chroot /target bash /dev-master/SCRIPT;
The problem is nothing happens. I think the command went unnoticed as well.
I am not sure if I am approaching the problem correctly.
What am I doing wrong ?
Is there any other alternatives that might provide the desired result ? Any help would be appreciated and thanks.

Cannot run standalone psychopy if PYTHONPATH and PYTHONHOME set for different python version

I thought that the standalone PsychoPy install could coexist happily if Python was installed separately on the PC to but I can't get it to, nor can I find any docs. (I'm using Windows 7)
I have the lastest standalone version installed and the shortcut to run it is
"D:\Program Files (x86)\PsychoPy2\pythonw.exe" "D:\Program Files (x86)\PsychoPy2\Lib\site-packages\PsychoPy-1.81.02-py2.7.egg\psychopy\app\psychopyApp.py"
This works fine if my system env variables for PYTHONHOME & PYTHONPATH aren't set but I also use Python for other apps and need them setting to point to the other version of Python I have installed natively. When these env vars are set, Psychopy fails to load and gives no error messages at all.
Can anyone advise how I get them to play together nicely? (I thought it used to work last year, has something changed?)
[ I've tried a full uninstall of psychopy and freshly installed the latest standalone version v1.81.02
Yes, this is an unfortunate consequence of the way that PsychoPy is currently bundled with it's own closed environment in it's own python and dependencies installed seperately.
However, a new option to install psychopy using the conda package manager was introduced recently for Mac OS but some have also got it to work on Windows with a bit of tweaking.. Work is currently ongoing for this feature. I doubt that it was working previously unless you manually installed all dependencies in your default python, or ran linux:
On linux you can simply install psychopy from the neuro.debian repository, making it available for python system-wide. See PsychoPy documentation.
Thinking about it, I don't think it would ever worked if you had set PYTHONPATH (I don't know about PYTHONHOME).
BUT I did have a 'regular' python installation running alongside my Standalone PsychoPy install by not using the PYTHONPATH variable. You can add further paths to your python importing path (I assume that's the aim here) without setting any environment variable by adding text files ending in .pth to your site-packages directory. Essentially any lines in a .pth file that is found while navigating the existing path will also be added to the path!
Actually, according to the python docs you can also set a flag -E to ignore the environment variables:
https://docs.python.org/2/using/cmdline.html
To use that solution for the Standalone PsychoPy installation you'd have to alter the application shortcut to add this (that should get the app to load), but also make a couple of changes to the code for running scripts so that they also run with the flag set.
I still think not setting those variables is the easier solution though.
cheers,
Jon