This is an old revision of the document!
Setup the environment
Useful information about the Beagle Bone Blue can be found here. How to setup the wifi, copy your image to the onboard eMMC or any other FAQs can be found here.
Getting the Scripts
There are useful scripts for downloading and building EEROS applications for your Beagle Bone Blue. On your host system, switch to your current working directory
$ cd /path/to/working/directory
and clone the following git repository.
$ git clone https://github.com/ntb-ch/BeagleBoneBlue.git
Get into that cloned folder and run the clone script
$ cd BeagleBoneBlue $ ./clone.sh
this will clone all the required packages to run EEROS on your Beagle Bone Blue.
Prepare the Robotics Cape Library
The library for the roboticscape must be manually compiled. Though the library is already on the target, we must also have it on the host, in order to be able to link an application. At the time of writing, the BeagleBone Blue Boards are shipped with an image that has the robotics cape library version 0.3.4 installed. Therefore, it is highly recommended to use this version. The bbblue-eeros wrapper library was implemented to work with the robotics cape library v0.3.4. Newer version were not tested yet. When using the clone.sh script, the right version is checked out per default and no additional step is needed.
To compile the library, change into:
$ cd robotics_cape_installer/libraries
and edit the Makefile
therein. Change the following to lines from
CC := gcc LINKER := gcc
and change them to
CC := arm-linux-gnueabihf-gcc-4.9 LINKER := arm-linux-gnueabihf-gcc-4.9
This is necassary because we work on the host and must make sure to choose the right cross compiler for our target. If you do not have this compiler on your host, you can get it with
$ sudo apt-get install g++-4.9-arm-linux-gnueabihf && sudo apt-get install cmake
If this package can not be found (Ubuntu 18.04) you have to add xenial to your sources.list
$ sudo gedit /etc/apt/sources.list
Add the following entries:
deb http://dk.archive.ubuntu.com/ubuntu/ xenial main deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe
Build the robotics cape library with
$ make
Build and Deploy
Change back to your BeagleBoneBlue git repository and run the make
script.
$ cd /path/to/working/directory/BeagleBoneBlue $ ./make.sh
This will build EEROS for your target system and also builds a small EEROS application named myApp
.
SSH into your target and create the required folders (default password for “debian” is “temppwd”)
$ ssh debian@192.168.7.2 $ sudo mkdir /opt/eeros $ sudo chown debian:debian /opt/eeros
Back on the host deploy the necessary files to your target by running
$ ./deploy.sh
Run the Application
On the target run the myApp
application
$ cd /opt/eeros/bin $ sudo ./myApp -c HwConfigBBBlue.json
If the libraries have not yet been copied to the target, copy them by hand to the right place
$ scp ./install-armhf/lib/libbbblueeeros.so debian@192.168.7.2:/opt/eeros/lib $ scp ./install-armhf/lib/libeeros.so.0.0.0.0 debian@192.168.7.2:/opt/eeros/lib $ scp ./build-armhf/myApp/myApp debian@192.168.7.2:/opt/eeros/bin $ scp ./myApp/HwConfigBBBlue.json debian@192.168.7.2:/opt/eeros/bin
On your target link both libraries to /usr/lib
$ sudo ln -s /opt/eeros/lib/libeeros.so.1.0.0.0 /usr/lib/libeeros.so.1.0.0.0 $ sudo ln -s /opt/eeros/lib/libeeros.so.1.0.0.0 /usr/lib/libeeros.so $ sudo ln -s /opt/eeros/lib/libbbblueeeros.so.0.1.0 /usr/lib/libbbblueeeros.so.0.1.0 $ sudo ln -s /opt/eeros/lib/libbbblueeeros.so.0.1.0 /usr/lib/libbbblueeeros.so
Now you should be able to run the myApp application.
Linux on Beagle Bone Blue
The Beagle Bone Blue comes with a preinstalled Debian 8 with Kernel 4.4.54-ti-r93 or similar. Do not upgrade to Debian 9 cause robitics cape will not work anymore. Also do not use any newer Kernel, this will cause the same problem. The latest Debian Images for your Beagle Bone Blue can be downloaded here.
RT Kernel for Beagle Bone Blue
You can also run the Beagle Bone Blue with a real-time Kernel. Check if there is already a RT-Kernel:
uname -r
If not, download:
$ sudo apt-get install linux-image-4.4.49-ti-rt-r89
Do not use a newer one. Robotics Cape won't work anymore (ERROR: missing PINMUX driver). Reboot and delete the old kernel:
sudo apt remove --purge linux-image-4.4.54-ti-r93
Get your IDE
It is highly recommended to use an IDE for your EEROS applications. You can use an IDE of your choice. The following steps explain how to setup an EEROS application with KDevelop.
$ sudo apt-get install kdevelop
Import an EEROS project
- Start KDevelop
- Project → Open/Import project
- Get to your working directory and choose the folder “BeagleBoneBlue/myApp”. Select the CMakeLists.txt and click next.
- You can use myApp as name, or any other, as you prefer. If you change this name, you also have to make changes to the deploy.txt file (later on).
- Click finish.
- Create the build configuration. It is recommended to put the target architecture in the name of the build folder. Put the path where EEROS is install in the “Installation Prefix” field.
You now have your main.cpp, HwConfigBBBlue.json and the CMakeLists.txt in your project solution. You can build this application by pressing the build-button in the top left corner. To run this application on your target device, get to your working directory
$ cd /path/to/working/directory/BeagleBoneBlue
If your project name is still myApp you can run the
$ ./deploy.sh
otherwise you have to change the project name in the deploy.txt file
install-armhf/lib/libeeros.so.1.0.0.0 install-armhf/lib/libbbblueeeros.so.0.1.0 myApp/HwConfigBBBlue.json build-armhf/YOUR-PROJECT-NAME/myApp
and run the deploy.sh afterwards.