Skip to content
Snippets Groups Projects
Commit 3d8fdd04 authored by Lukas Bulwahn's avatar Lukas Bulwahn
Browse files

adjusting the README; a first try for cross-compiling the cpp-common things;...

adjusting the README; a first try for cross-compiling the cpp-common things; extending the install-fuerte script
parent 7be889cc
No related branches found
No related tags found
No related merge requests found
......@@ -41,39 +41,86 @@ INSTALLATION:
Add the meta-ros directory to your local bblayers.conf file.
USE for native compilation on the VM (milestone M1):
USE for native compilation of ROS-fuerte on the qemu VM:
The commands
source oe-init-build-env
bitbake core-image-ros
bitbake core-image-ros-fuerte
builds our specifically configured linux image.
With `runqemu qemux86-64 qemuparams="-m 2048" core-image-ros` the linux image runs within a virtual machine with 2048 MB of memory.
We assumed that this is running on and compiled for an x86-64 architecture. For other architectures, some settings must be adjusted.
With `runqemu qemux86 qemuparams="-m 2048" core-image-ros-fuerte` the linux image runs within a virtual machine with 2048 MB of memory.
We assumed that this is running on and compiled for an x86 architecture. For other architectures, some settings must be adjusted.
On the host system, run fetch_ros.sh in a fresh directory, e.g. ~/ros-repos/.
On the host system, run fetch-ros-fuerte.sh in a fresh directory, e.g. ~/ros-repos/.
It clones all ros repositories locally.
After starting the virtual machine, copy the installation script from the host system to the home directory with scp.
scp lukas@192.168.7.1:/<location of repository>/install.sh .
scp lukas@192.168.7.1:/<location of repository>/install-fuerte.sh .
Adjust configuration in install.sh and then run
Adjust configuration in install-fuerte.sh and then run
c
sh ./install-fuerte.sh
The installation script installs ros and starts roscore.
USE for native compilation of ROS-groovy on the qemu VM:
The commands
source oe-init-build-env
bitbake core-image-ros-groovy
builds our specifically configured linux image.
With `runqemu qemux86 qemuparams="-m 2048" core-image-ros-groovy` the linux image runs within a virtual machine with 2048 MB of memory.
We assumed that this is running on and compiled for an x86 architecture. For other architectures, some settings must be adjusted.
On the host system, run mk_src in some clean temporary directory.
It copies all ros sources from their URLs and puts them into one src.tar.gz archive.
After starting the virtual machine, copy the installation script from the host system to the home directory with scp.
scp lukas@192.168.7.1:/<location of repository>/install-groovy.sh .
sh ./install.sh
Adjust configuration in install-groovy.sh and then run
sh ./install-groovy.sh
The installation script installs ros and starts roscore.
USE for cross-compilation (milestone M2):
USE for cross-compilation of ROS-fuerte (in development):
source oe-init-build-env
bitbake ros
momentarily fails at some point (see CURRENT STATE)
momentarily fails at some point with:
> CMake Error at catkin/cmake/find_program_required.cmake:5 (message):
> check_test_ran.py not found
> Call Stack (most recent call first):
> ../catkin/CMakeFiles/tests.cmake:31 (find_program_required)
> ../catkin/CMakeFiles/tests.cmake:41 (catkin_initialize_tests)
> catkin/cmake/all.cmake:54 (include)
> catkin/CMakeLists.txt:12 (include)
>
>
>
> -- Configuring incomplete, errors occurred!
>
>
> ERROR: Function failed: do_configure (see /home/lukas/NEW/poky-danny-8.0/build/tmp/work/i586-poky-linux/ros-1.0-r0/temp/log.do_configure.9702 for further information)
> ERROR: Logfile of failure stored in: /home/lukas/NEW/poky-danny-8.0/build/tmp/work/i586-poky-linux/ros-1.0-r0/temp/log.do_configure.9702
USE for cross-compilation of ROS-groovy (in development):
source oe-init-build-env
bitbake ros-cpp-common
does not work because the catkin-native package does not install correctly yet.
CONTENT of the repository:
README this README file, which contains all important information
COPYING.MIT
COPYING.MIT MIT license
conf/layer.conf configuration file for this layer
install.sh installation script that runs within the virtual machine
recipes-core/images/core-image-ros.bb recipe for our own core image (derived from core-image-minimal)
......@@ -99,13 +146,7 @@ CONTENT of the repository:
classes/setuptools.bbclass adjustments for python setuptools
MILESTONES
M1: basic image with dev-tools (make, cmake, ...) and ROS compiles natively in the virtual machine
M2: Linux+ROS System can be built completely with bitbake (no compilation and installing in the virtual machine)
M3: Linux+ROS System with configured kernel (e.g. RT-Linux, System-D) that meets real-time and safety requirements
RESOLVED ISSUES for M1:
RESOLVED ISSUES for native compilation:
- recipes for python-pyyaml and python-rospkg create invalid shell scripts (header line refers to python-native instead of python.)
RESOLVED by patching distutils class--has been committed to oe-core.
......@@ -116,38 +157,17 @@ RESOLVED ISSUES for M1:
- rospkg modules are not found when runnning python.
RESOLVED by using the dist_utils argument to use traditional packaging mechanism and avoid .egg files at all (suggested by Ross Burton)
OPEN ISSUES for M1:
OPEN ISSUES for native compilation:
- python-setuptools requires some python-modules at run-time.
TEMPORARILY RESOLVED by adding all python-modules in the image
SHOULD BE RESOLVED by creating an appropriate patch for python-setuptools and contributing to openembedded-core
OPEN ISSUES for M2:
OPEN ISSUES for cross-compilation of ros-fuerte:
- understand what rosinstall actually does
- how fetch from multiple git repositories in one recipe?
CURRENT STATE:
`bitbake ros` fails with:
> CMake Error at catkin/cmake/find_program_required.cmake:5 (message):
> check_test_ran.py not found
> Call Stack (most recent call first):
> ../catkin/CMakeFiles/tests.cmake:31 (find_program_required)
> ../catkin/CMakeFiles/tests.cmake:41 (catkin_initialize_tests)
> catkin/cmake/all.cmake:54 (include)
> catkin/CMakeLists.txt:12 (include)
>
>
>
> -- Configuring incomplete, errors occurred!
>
>
> ERROR: Function failed: do_configure (see /home/lukas/NEW/poky-danny-8.0/build/tmp/work/i586-poky-linux/ros-1.0-r0/temp/log.do_configure.9702 for further information)
> ERROR: Logfile of failure stored in: /home/lukas/NEW/poky-danny-8.0/build/tmp/work/i586-poky-linux/ros-1.0-r0/temp/log.do_configure.9702
LICENSE
All metadata is MIT licensed unless otherwise stated. Source code included
......
......@@ -3,7 +3,7 @@
# copy it into the virtual machine with:
# scp <user>@192.168.7.1:/<location of install.sh> .
# and run it:
# sh ./install.sh
# sh ./install-fuerte.sh
#
# local setting (must be adjusted)
USERNAME="lukas"
......
......@@ -18,3 +18,6 @@ cd ros_catkin_ws
tar -xzf ../src.tar.gz
# compile, make and install
catkin_make_isolated --install
# start roscore
. install_isolated/setup.sh
roscore
DESCRIPTION = "Low-level build system macros and infrastructure for ROS"
SECTION = "devel"
# TODO: License of catkin unmentioned in the repository
LICENSE = "CLOSED"
SRC_URI = "https://github.com/ros/catkin/archive/0.5.58.tar.gz \
file://catkin-change_default_for_debsetuptools.patch"
SRC_URI[md5sum] = "e4df85e60dc792af9324334547cc76aa"
SRC_URI[sha256sum] = "dd99cc04eeaf16a13185dd0a2f576939fa997dfb16a40ba45068c4d2ebbcb44b"
# DEPENDS = "python-setuptools"
EXTRA_OECMAKE = "-DSETUPTOOLS_DEB_LAYOUT=OFF"
inherit cmake pythonnative python-dir
FILES_${PN} += "${libdir}/${PYTHON_DIR}/* ${PYTHON_SITEPACKAGES_DIR}/*"
export BUILD_SYS
export HOST_SYS
export STAGING_LIBDIR
export STAGING_INCDIR
BBCLASSEXTEND += "native"
DESCRIPTION = "Low-level build system macros and infrastructure for ROS"
SECTION = "devel"
# TODO: License of cpp_common not mentioned in the file
LICENSE = "CLOSED"
SRC_URI = "https://github.com/ros-gbp/roscpp_core-release/archive/release/cpp_common/0.3.11.tar.gz"
SRC_URI[md5sum] = "7bf32963b9e2c82911bf089531c18482"
SRC_URI[sha256sum] = "86018219aa77f109d3340d332e7a041a9e047fd48d3d0e03bf2a4bd9baa66bde"
S = "${WORKDIR}/roscpp_core-release-release-cpp_common-0.3.11"
DEPENDS = "catkin-native"
## changed in catkinConfig.cmake
# set(catkin_EXTRAS_DIR "/usr/share/catkin/cmake")
# to
# set(catkin_EXTRAS_DIR "/home/lukas/poky-danny-8.0/build/tmp/sysroots/qemux86/usr/share/catkin/cmake")
##
# should somehow install catkin to know the right pathes.
#
EXTRA_OECMAKE = ""
inherit cmake pythonnative
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment