Go to file
Lukas Bulwahn 62bc68a4f7 the rospkg installation natively (in the installation script) is only required because the PYTHON_PATH is not set, which is not set because the easy_install.pth files are deleted 2012-12-20 14:21:25 +01:00
meta Revert "trying if rospkg-dev can replace native installation of rospkg in the installation script" 2012-12-20 14:21:25 +01:00
README.af_yocto extending installation script so that it patches, compiles, installs and starts ROS; extending README 2012-12-20 14:21:25 +01:00
install.sh the rospkg installation natively (in the installation script) is only required because the PYTHON_PATH is not set, which is not set because the easy_install.pth files are deleted 2012-12-20 14:21:25 +01:00

README.af_yocto

PURPOSE:
  This document describes the installation, use and content of the git repository af_yocto.

INSTALLATION and USE:

  The repository only contains our contributions to the existing yocto poky-danny-8.0 archive.
  To obtain all files, unpack http://downloads.yoctoproject.org/releases/yocto/yocto-1.3/poky-danny-8.0.tar.bz2 into this repository.

  The commands
    source oe-init-build-env
    bitbake core-image-bmw
  builds our specifically configured linux image.
  
  With `runqemu qemux86-64 qemuparams="-m 2048" core-image-bmw` the linux image runs within a virtual machine with 2048 MB of memory.
  We assume that this is running on and compiled for an x86-64 architecture. For other architectures, some settings must be adjusted.
  
  Extract ros_server.tar.gz somewhere, adjust pathes in fuerte-ros-base.rosinstall to the location where it has been extracted to.
  After starting the virtual machine, copy the installation script from the guest system to the home directory with scp and execute it.
  
    scp lukas@192.168.7.1:/<location of repository>/install.sh .
    sh ./install.sh
  
WARNING:
  When contributing repository, notice that the recipe for log4cxx was based on the recipe in the OpenEmbedded (Classic) Development
  (cf. http://cgit.openembedded.org/openembedded/tree/recipes/log4cxx), which is licensed with the MIT Licence.
  
CONTENT of the repository:

  .gitignore                                                    list of filenames of the poky-danny-8.0 release to ignore. Adjust file to track newly added recipes.
  README.af_yocto                                               this README file, which contains all important information
  install.sh                                                    installation script that runs within the virtual machine
  ros_server.tar.gz                                             archive with all ros-base repositories and an adjusted .rosinstall file
  build/conf/bblayers.conf                                      setting file for building image
  build/conf/local.conf                                         setting file for building image
  meta/recipes-core/images/core-image-bmw.bb                    recipe for our own core image (derived from core-image-minimal)
  meta/recipes-devtools/python/python-pyyaml_3.10.bb            recipe for pyyaml python library
  meta/recipes-devtools/python/python-rospkg_1.0.15.bb          recipe for rospkg tool
  meta/recipes-devtools/python/python-empy_3.3.bb               recipe for empy python library
  meta/recipes-devtools/python/python-nose_1.2.1.bb             recipe for nose python library
  meta/recipes-devtools/python/python-rosinstall_0.6.21.bb      recipe for rosinstall tool
  meta/recipes-devtools/log4cxx                                 recipes and patches for log4cxx (only 0.10.0 is used)
  
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 AF requirements 

RESOLVED ISSUES for M1:

  - 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--will be committed to yocto.
  - recipe for log4cxx requires another patch.
    RESOLVED by providing patch 0003 in recipe
  - Compilation with make fails in the virtual machine because of insufficient memory during compilation.
    RESOLVED by increasing memory.
  
OPEN ISSUES for M1:

  - Yocto: 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
  - rospkg modules are not found when runnning python.
    TEMPORARILY RESOLVED by installing natively in the virtual machine
    SOLUTION UNCLEAR. Cannot be solved by adding rospkg-dev.