Running PySide6 and GPIO on Raspberry PI 4 - user-interface

Recently I have bought a brand new Raspberry Pi 4B with 8Gb RAM and installed Ubuntu Desktop 21.04 there.
My goal is to create a GUI on a touchscreen which controls GPIO pins (some hardware devices).
Since controlling GPIO is done by Python I would like to use is to write GUI as well. I saw a couple of tutorials and decided to use PySide6 + Qt Quick. This kind of program runs fine on my personal laptop but when trying to download required dependencies on Raspberry, like:
python3.9 -m pip install PySide6
I got the following error:
ERROR: Could not find a version that satisfies the requirement PySide6 (from versions: none)
ERROR: No matching distribution found for PySide6
I suppose the issue might be caused by the cross compiling.
Do you know if there is any chance of running PySide6 and QtQuick on a Raspberry Pi 4B?
UPDATE:
Tested on a Raspberry Pi 4B with Manjaro ARM KDE Plasma 21.07 64 bit OS
Run the following commands:
* Update the package database and update all packages on the OS:
sudo pacman -Syu
* Install PySide6:
sudo pacman -Syu pyside6
* Install Qt6:
sudo pacman -Syu qt6
* Install pip3:
sudo pacman -Syu python-pip
* Install gpizero using pip3:
sudo pip3 install gpiozero
* Install rpi.gpio:
sudo env CFLAGS="-fcommon" pip install rpi.gpio
* Support access to gpio:
sudo groupadd gpio
sudo usermod -a -G gpio user
sudo su
cat << EOF > /etc/udev/rules.d/90-gpio.rules
KERNEL=="gpiomem", OWNER="root", GROUP="gpio"
EOF
exit

I was trying to build pyside6 for raspbian bullseye but after several attempts of 8-10 hour builds and running into weird errors I've decided to try your method and switch to manjaro. I can confirm that your method to install PySide6 works. Next goal is to play with this flavour of linux and get comfortable with the envoinrment.

Related

How do I build the Firebird database extension (ext-interbase) for PHP on a MacOS M1 Monterey?

Firebird Extension for PHP on MacOS M1
I have PHP7.4 installed with homebrew and the Xcode command line tools.
I followed the instructions as per the source repository here https://github.com/FirebirdSQL/php-firebird using the following methodology, I have changed the Linux formula to suite the MacOS library locations as per this answer here
Issues compiling firebird driver for PHP-7.4 on macos:
git clone https://github.com/FirebirdSQL/php-firebird.git
cd php-firebird
phpize
CPPFLAGS=-I/Library/Frameworks/Firebird.framework/Headers LDFLAGS=-L/Library/Frameworks/Firebird.framework/Resources/lib ./configure
make
The error I get is
configure: error: libfbclient, libgds or libib_util not found! Check config.log for more information.
In the log file it refers to the following which is the crux of the issue
ld: warning: ignoring file /opt/firebird/lib/libib_util.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
The problem is that the Firebird package for Mac is only built for the 64bit architecture and not the ARM architecture.
Solution
I always seem to struggle building the extension for Firebird on MacOS (Intel or M1) and after a month of leaving the problem I discovered the solution which I leave here for myself all of you who have hit this wall, until ARM is supported on MacOS for Firebird we probably have to run the 64 bit version with 64 bit PHP. The steps below should get you up and running. I came up with 2 solutions, the first most obvious one was to make a docker build.
Docker Solution
docker run -v $(pwd):/app tina4stack/php -ini | grep interbase
Home brew solution
The second solution (more complicated) was to follow these steps, I don't always like to run a docker engine for simple things.
Install latest Firebird for MacOS
First, make sure you have installed the latest Firebird MacOS package, Firebird 3.0 at the time of writing has only one you can install.
The next problem I ran into was home-brew had installed an ARM version of PHP which made the linking to the x86_64 architecture impossible. Kudos to the documentation here https://austencam.com/posts/setting-up-an-m1-mac-for-laravel-development-with-homebrew-php-mysql-valet-and-redis
Install Rosetta
First I installed Rosetta (helps run 64 bit apps on MacOS ARM)
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
Install Home-brew for 64bit architecture
Next I removed homebrew and reinstalled it with the arch -x86_64 bit flag
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Install PHP7.4
Then installed a fresh php#7.4
arch -x86_64 brew install php#7.4
Compile the extension
git clone https://github.com/FirebirdSQL/php-firebird.git
cd php-firebird
phpize
CFLAGS='-arch x86_64' CPPFLAGS=-I/Library/Frameworks/Firebird.framework/Headers LDFLAGS=-L/Library/Frameworks/Firebird.framework/Resources/lib ./configure
make
sudo make install
Tying it all together
I added the following to my php.ini file
extension=interbase
If you don't know where to edit your ini file, run the following command:
php -ini | grep php.ini
When I ran php -ini | grep interpose I got errors about not finding the firebird libraries. In the end I copied the libraries to the PHP bin and lib folders
cp /Library/Frameworks/Firebird.framework/Resources/lib/* /usr/local/Cellar/php#7.4/7.4.25/lib
cp /Library/Frameworks/Firebird.framework/Resources/lib/* /usr/local/Cellar/php#7.4/7.4.25/bin
I'm sure someone could comment on making the above a bit neater but I was happy to find that the ini command returns now as expected.
php -ini | grep interbase
interbase
Let me know if you hit issues I didn't find, there were some other things I tried for the Firebird library resolution but I'm not sure they worked.
Installing modules with PECL
As an addition the the above solution, easily install other PHP modules using the following command
arch -x86_64 pecl install <module>
Example
arch -x86_64 pecl install openswoole

How to setup environment for Scaled-YOLOv4 in linux

I need some help for setting up my linux box for scaled-yolov4.
My linux box have a gpu card, Nvidia quadro P620 2GB card. running linux mint 20.4 = ubuntu 20.4.
I have anaconda setup. But didn't help much.
This is what I did.
I installed the cuda 11.2 by using the following:
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda-repo-ubuntu2004-11-2-local_11.2.1-460.32.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-2-local_11.2.1-460.32.03-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-2-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
and then using conda to install the rest. In this case, the detect.py works fine, but train.py didn't work with out of memory error.
I installed the CUDA10.2, things work without GPU, so its very slow.
Can someone tell me the right way to install NVIDIA card and CUDA and setup the environment for the scaled-yolov4? Thank you very much.

Error when importing XGBoost on Apple M1?

Has anyone figured out how to make XGboost work with Apple M1?
I have tried multiple things to fix it, but it does not work.
I have tried reinstalling it; pip and pip3 and python -m pip and conda install; brew install limpomp; brew install gcc#8; Downloading source code and compiling locally.
It seems XGboost does not work on Apple M1.
Here is the error, this occurs when I import xgboost in my script:
XGBoostError: XGBoost Library (libxgboost.dylib) could not be loaded.
Likely causes:
* OpenMP runtime is not installed (vcomp140.dll or libgomp-1.dll for Windows, libomp.dylib for Mac OSX, libgomp.so for Linux and other UNIX-like OSes). Mac OSX users: Run `brew install libomp` to install OpenMP runtime.
* You are running 32-bit Python on a 64-bit OS
Error message(s): ['dlopen(/opt/anaconda3/envs/msc-env/lib/python3.8/site-packages/xgboost/lib/libxgboost.dylib, 6): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib\n Referenced from: /opt/anaconda3/envs/msc-env/lib/python3.8/site-packages/xgboost/lib/libxgboost.dylib\n Reason: image not found']
i'd got the same issue on MacBook Pro (13-inch, M1, 2020) with chip Apple M1, fortunately after of hours of some researches i got the solution, you just follow the following instruction:
brew install libomp
conda install -c conda-forge py-xgboost
https://discuss.xgboost.ai/t/xgboost-on-apple-m1/2004/8
How to install xgboost in python on MacOS?
A combination of the answer from cherry (first) and Christoffer (second) work for me with miniforge interpreter:
Make sure gcc-11 (and g+±11) is installed, if not do so with
brew install gcc#11
brew install cmake
Then, do the following
git clone --recursive https://github.com/dmlc/xgboost
mkdir xgboost/my_build
cd xgboost/my_build
CC=gcc-11 CXX=g++-11 cmake ..
make -j4
cd ../python_package
/Users/xx/miniforge3/envs/MLEnv/bin/python setup.py install
With the path to you miniforge venv
I put Terminal in Rosetta mode first before installing brew. This way I'm essentially running intel version of the packages. I provided more details in this gist.

Install Metatrader 5 on Ubuntu 17.04

I try to install Metatrader 5, on Ubuntu 17.04 (64-bit).
I get stuck, and need somebody to help me to solve this problem.
I've installed wine-2.0.1, which is the latest stable version at the moment, and it's for 64-bit.
Finally, after successfully installing Metatrader 5, on launching the application appears an error window: terminal64.exe, with message:
A debugger has been found running in your system.
Please, unload it from memory and restart your programm.
On wiki.winehq.org, I've found that is needed to install 2 separate versions of wine: 32-bit and 64-bit. I try to do all like in:
https://wiki.winehq.org/Building_Biarch_Wine_On_Ubuntu
, but at the stage "Build 64-bit Wine", for: make clean, I got:
make: *** No rule to make target 'clean'. Stop.
There is a way to really install mt5 on Ubuntu 17.04 ?
Just installed it after suffering a little bit. After seeing many requests from the installer to provide a proxy!
First install the latest Wine from the instructions given in its website for Ubuntu (this is the one that will work!)
sudo dpkg --add-architecture i386
wget -nc https://dl.winehq.org/wine-builds/Release.key
sudo apt-key add Release.key sudo apt-add-repository
https://dl.winehq.org/wine-builds/ubuntu/
sudo apt-get update
Stable branch:
sudo apt-get install --install-recommends winehq-stable
Configure Wine to 32 bits (only your user)
WINEARCH=win32 WINEPREFIX=~/.wine32 wineboot
Install Metatrader 5
WINEPREFIX=~/.wine32 wine start /unix /path/to/mt5setup.exe
Happiness
Finally to run MetaTrader 5 add the following to your .bashrc our .profile. And type metatrader on your terminal.
export WINEPREFIX=~/.wine32
alias metatrader='wine start "C:\program files\metatrader 5\terminal.exe"'
Thanks to #Kaleshwar Chand
I recently installed metatrader5 on ubuntu 17.04, using the instructions found on mql5 thread
basically mt5 is 32 bit and your ubuntu is 64 bit so you need to change arch to 32 bit to install/use it properly
enter into terminal
WINEARCH=win32 WINEPREFIX=/home/user/.wine32 wineboot
replace user with your username
then install with
WINEPREFIX=/home/user/.wine32 wine start /unix /path/to/mtsetup.exe
again replace user with your username
I am running MT5 on Arch,
in my case, a 64bit wineprefix is needed for connect with other apis so...
For install and run it correctly I installed:
wine, wine-mono, wine_gecko, winetricks, playonlinux
winetircks corefonts, winetricks winhttp
libgnutls allowed to skip the required proxy error
MT5 was installed throught playonlinux on a 64bit wineprefix
Follow the steps from office winehq at https://wiki.winehq.org/
and find your OS you are using
Android (WineHQ binary packages for Android)
Ubuntu (WineHQ binary packages for Ubuntu 16.04, 18.04, 19.04, and 19.10)
Debian (WineHQ binary packages for Debian Stretch, Buster, and Bullseye)
Fedora (WineHQ binary packages for Fedora 30 and 31)
MacOS (WineHQ binary packages for macOS 10.8 through 10.14)

Raspberry Pi 3 Model B setup startx or sudo startx gives: command not found

How can I get startx to work?
I have my SD set -used pi filler and image raspbian jessie.
However, I did download the zip Raspbian Jessie Lite (usually I have done the full desktop image, not lite)
After I log in as pi I want to get to my GUI. I type:
$startx
-bash: startx: command not found
So then I try with sudo, still: command not found.
I have done my steps in the sudo raspi-config to extend file system, set correct time and keyboard.
When I try to install some python packages
I want to configure my wi-fi by running the GUI. But, I cannot get to my gui with startx.
I know a few things (I've had startx work before on other pi 3s, but I'm a big noob, so please be detailed if you can help me out.
Thank you, in advance!
sudo apt-get install lxde
after this one gets installed, used the command
startlxde
My solution was to install these packages
sudo apt-get --no-install-recommends install xserver-xorg xserver-xorg-video-fbdev xinit pciutils xinput xfonts-100dpi xfonts-75dpi xfonts-scalable
The lite version of Raspian Jessie doesn't come with X installed. That's why you cannot start it.
Raspbian lite is intended for a headless system usage, however you can still install X (don't ask me how, the web is plenty of tutorials)
use sudo apt-get install xinit instead.
Don't forget to expand your File System and reboot: sudo raspi-config

Resources