I'm building a Raspberry Pi cluster and am using Open MPI to do some parallel processing... I was able to get it up and running with my Raspberry Pi 3 and a few Pi 1s, but when I tried to add another Pi 3 I started getting some errors (Error: unknown option "--hnp-topo-sig")
It's possible that the problem is because the versions of mpi between both my pis are different - my first pi 3 has version 2.0.2 while the other has 1.6.5, which is odd considering I only installed it on that pi today and on the first pi about a week ago.
I've tried sudo apt-get update and upgrade, but my pi keeps telling me that everything is up to date, even though it doesn't seem like it is. So my question is this - how can I update my open mpi to a newer version so I can run my files? Thanks in advance!
As Gilles noted, Open MPI requires the version to be identical on all machines.
If your Linux distro is telling you that the packaged version of Open MPI is up to date, then you probably have different versions of Linux distros on your different RPi units.
You might want to try:
Installing the same exact Linux distro/version on all your RPi units, and/or
Downloading the latest Open MPI source code tarball from www.open-mpi.org and building/installing Open MPI from source on all your RPi units. That will definitely work, but be aware that Open MPI is a large software package -- compiling it on an RPi will take quite a while.
Related
I have a working debian package that I'd like to backport to the current version of Raspberry Pi OS 64 bit (not 32-bit Raspbian).
Confusingly, while Debian itself seems to be robust about enabling cross-builds in their own package, there seems to be much less official documentation about how raspberry Pi OS (64 bit) packages are built¹.
Since I'm relatively certain this should be possible, I ask:
How to take a debian .dsc / debian rules, and build, on an x86_64, a 64 bit Raspberry Pi OS 64-bit compatible image
without using QEMU to actually build the image on arm64, without access to an actual RPi,
using an existing debian package that is known to work on sid on aarch64, and should be backportable,
making sure it's actually built against the correct set of Raspbian dependencies.
I'm guess this is a rather standard thing, I just don't know how to do it. I'm happy with using containers and similar technology, as I can easily integrate that with CI.
I do not plan to use an Arm64 VM, as the software in question takes about an hour to build and test, on an x86_64 server, natively.
¹I've talked to plugwash of Raspbian fame, and as earlier versions of this question showed: there's significant confusion about the heredity of Raspbian OS 64 bit: It's not Raspbian nor based on it. But people including Wikipedia and the RPi Foundation themselves conflate Raspberry Pi OS and Raspbian ("Raspberry Pi OS, formerly Raspbian"), which is 32 bit only.
RaspberryPi documentation here has explained how to build the x64 kernel from the source. What you want is in a way exactly like that.
Notice this line on the Kernel building page:
sudo apt install crossbuild-essential-arm64
This command on your Linux host machine installs a compiler that runs on an AMD64 machine but produces a binary that runs on an ARM machine.
And this line tells the compiler to actually build the source for that architecture:
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs
Image modules dtbs are specific to your project. they may differ.
As for your Debian package, there is no way that you can transform an AMD64 package into an ARM one. Your package for the RaspberryPi if doesn't exist in an official or some third-party repository, must be built from the source.
Find the source code of your package and build it very similarly to RaspberryOS.
If your Package has dependencies it gets a little more complicated. First, install the dependency on your RaspberryPi. Then you should set up a sysroot on your host machine which is basically a mirror image of the preinstalled packages on RaspberryPi. Then for compiling your package you should give the sysroot address to cross compiler so that it can find dependencies.
There is another way too, you can put the source code of your package on your RaspberryPi and build it locally which can take a very long time based on the source code. Just to have a sense, Qt source code without WebEngine module took 48h for me. But Qt is big.
In conclusion, if your package binary is not on any repository you must compile it from the source.
Cross-compilation of different projects and executables are very similar to each other. To have a clear understanding of the process it can be beneficial to look for some other projects that were ported to RaspberryPi OS. Things like Qt, TagLib for android, and ...
First, I would take a look here:
https://github.com/Truelite/qt5custom for inspiration. I checked and those scritps work. However, you might have problems going completely „qemuless”; e.g. in case of QT some libraries needed to be added to host machine sysroot and qemu was simply the easiest way to add them properly: it seems to me that multiarch Debian has some deficiencies in the field of cross-compilation and the simplest way to overcome them is to pretend it’s the native one.
I am struggling on how to make a Raspberry Pi app for Raspbian (On a raspberry pi). I have searched and searched for hours but I still can't find out how to make one. There are apps that I can use but I cannot install them. Should I use python??... Please help me!!...
I found a few visual editors like XOJO, I am knew to "RASPBERRY PI" stuff.
It's just a bare machine you can cover it with anything you want. It's basically Lightweight Linux distro which we install mostly on the PI. Can support wide range of applications but IOT related products are more often developed using PI. If this is the case you can start here using android also.
https://developer.android.com/things/hardware/raspberrypi
So I will start off by saying that I do NOT want know how to setup or run QT on the pi. I am specifically trying to setup Qt Creator 4.0.3 (Based on Qt 5.7.0 (MSVC 2013, 32 bit)) to write and compile C++ and the run it on the Raspberry pi 2. I have found that running qt on the pi is far to slow.
I have searched for two days to find the right toolchain download for qt/raspberry and its corresponding qt configuration. Nothing seems to work. I have found what seems like a thousand dead ends searching the web. I can write and compile apps for windows console fine. But finding information to cross compile for raspberry seems to be an elusive Unicorn!
Does anyone have this working??? If so which of the many toolchains did you use? And please help me replicate your QT configuration. The closest I have come is using the GCC ARM Embedded toolchain but I cant seem to get the QT options set correctly and I believe that only gets me part of the way there. My ultimate goal is to control GPIO and use the RadioHead library.
Thanks in advance!
I also wanted to do that, and I actually achieved it, It's called "cross-compilation", you build on the Main PC and then compile it to the target.
Initially I wanted to use my main PC with windows 10, but I ended creating a linux partition on my pc to do it since I didn't found any way to do it with windows.
Qt has a very comprehensive tutorial with Qt5 and RaspberryPi2 (both with linux), the only problem is you need linux on your pc to do it. If you want to do this I would suggest following this steps:
Create a linux partition with the same os as in the pi (for example raspbian and debian) and name the username (in linux) "pi" and the password "raspberry". This will help you with external libraries.
Install Qt for Linux on your new partition
Follow Qt's tutorial on https://wiki.qt.io/RaspberryPi2EGLFS
The tutorial is really straightforward, I really recommend it.
Good Luck.
I've been using nano editor most of the time to work on some php jquery projects that while I found nano is good, I need to find a better full blown IDE as the work load increases. Anyway Aptana3 studio looks like a good fit and I go download it into my raspberry pi 3
I tried 32bit and 64bit version, but both gave me same error when I execute the binary :
bash: ./AptanaStudio3: cannot execute binary file: Exec format error
You are downloading a pre-built binary for Linux running on Intel. If it were available, you'd want to get a pre-built binary for ARM. In looking at the Aptana download site I don't see an ARM version.
I am trying to setup an iDs ueye camera on my raspberry pi for a project. I am supposed to run a .gz.run script file that setups everything and then run a daemon that startups the camera.Although on my laptop it works fine (64bit ubuntu) when I setup the 32bit version on the pi and then run the daemon I get the following error:
/usr/local/share/ueye/ueyeusbd/ueyeusbd: 1:
/usr/local/share/ueye/ueyeusbd/ueyeusbd: Syntax error: word unexpected
(expecting ")")
I'm suspecting that the camera is not compatible for arm processors , but I would like to find out if there's a way for it to be.
IDS has recently released an alpha driver for the Raspberry Pi in the form of an image file. Basically it is a normal Wheezy Rasbian distribution with the ueye-driver (i.e. ueye-daemon) installed. Although the official documentation is sparse (to say the least), everything seems to be in place - the complete Linux SDK should be supported.
You can get the stuff from: http://en.ids-imaging.com/embedded.html