RaspberryPi

After some efforts, fighting with cross-compilers (cross assemblers) Jean-Baptiste Arnaud finally fixed the PharoS bug on Raspbian and now Pharo http://www.pharo.org runs totally on Raspberry. Well done JB.

https://ci.inria.fr/pharo-contribution/view/RaspberryPi/job/RaspberryPi-Cross-Compilation-FastBltBit/

photo

Here is the announce made by Jean-Baptiste

I made some advances and cleans for the RaspberryPi, compilation. I cross compile from an unix slave, that is really faster and this allows me easily to compile the fast bltbit file.

Now I integrated the fastbltbit into the StackVM (there a job associated but at term It will be merged):
https://ci.inria.fr/pharo-contribution/view/RaspberryPi/job/RaspberryPi-Cross-Compilation/
https://ci.inria.fr/pharo-contribution/view/RaspberryPi/job/RaspberryPi-Cross-Compilation-FastBltBit/
We have a small bug on the git tracker now but once it will solve the job will automatically follow the update.
The version downloadable should work.

We compile the StackVM now for RaspberryPi based on a Raspbian os.

In order to do that you have to:
– get your image
– prepare your RaspberryPi or your cross compile environment
– and compile

First step, the VMMaker image:
Here is the link to the source (basically the job just prepare the source and a image):
https://ci.inria.fr/pharo-contribution/view/RaspberryPi/job/RaspberryPi-Cog-Git-Tracker/

You will find a preconfigured image in the image folder.
If you want to create your own and not just extend this one, you need to clone the pharo-vm git repository:
https://github.com/pharo-project/pharo-vm
all the used source code is in mc use the filetree in montecello.
Second Step Preparing the Raspberry:
I used the linux source (raspbian),
Then you can recompile using a RaspberryPi (what I do),
but you need to follow Nick instruction for install all the required dependencies on the RaspberryPi:

On the raspberry PI:
# install build tools
sudo apt-get install gcc g++ cmake

# dependencies for vm plugins
sudo apt-get install libasound2-dev libssl-dev libfreetype6-dev libgl1-mesa-dev

sudo apt-get install build-essential

# to fix:
# /usr/bin/ld: cannot find -lSM
#/usr/bin/ld: cannot find -lICE
# create the following links in: /usr/lib/arm-linux-gnueabihf/

sudo ln -s libSM.so.6 libSM.so
sudo ln -s libICE.so.6 libICE.so

Once the source is installed:

chmod +x platforms/unix/config/version
chmod +x platforms/unix/config/verstamp

Then compile:
I have done a configuration to generate VM on raspbian.
StackRaspbianConfig, you need to subclass and add your plugin + configure Cmake as you want.
“YourSubclass generate”

and recompile (cmake . & make from a terminal in build folder) on the Raspberry Pi, it should work.
My jenkins job actually take the last version of the source VM, and it is able to rebuild it on RaspPi.
You can cross-compile but I do not explore that way.

I hope that help you.

Tagged

Leave a comment