Tango recipes for OpenEmbedded Bitbake

Hi Wahid

sorry for the late response …

did you read the paper :
https://drive.google.com/open?id=1HOfuCSrw6B209dEPM7wvXpxm8jWtyQ9mt2t3AShQnJI

everything is here I hope…

wahid
Hi!

Do you maybe have some tips on how to use the recipes for open-embedded/yocto? I'm trying it since a week and it is still not working with the recipes. Is there a typo in the filename: omniorb4_4.1.7.bb instead of omniorb_4.1.7.bb ?
yes, you are right it is omniorb4_4.1.7, shared on google drive here :
https://drive.google.com/open?id=0BzpTFvp3zlvkVE1LYTJ1RW5WNzg


1)you need a linux host with 150 GB free, high speed internet access

2)install bitbake via git
http://www.yoctoproject.org/docs/1.8/yocto-project-qs/yocto-project-qs.html

3)get some extra recipes
https://github.com/Xilinx/meta-xilinx

I have on my host : (these are recipes, not all are used for our purpose)
meta
meta-oe
meta-selftest
meta-skeleton
meta-xilinx
meta-yocto
meta-yocto-bsp

4) add tango recipes and hack zmq/omniorb as explained in the paper
my custom recipes are in meta-skeleton/recipes-core/
For now, I have those recipes : (redpitaya is a DeviceServer recipe for the redpitaya)
ds omniORB4 redpitaya tango zeromq


I tested the VM and hoped your openembedded project was integrated and i could use it from your VM.
I am working on a project where a controlsystem needs to be integrated on embedded devices like the zedboard (we're planing to develop a customized board with the Zynq Chip, but for now the Zedboard is more then we need for developing). The idea is, that we build a tailored os on the arm core running which is ready to use by plug'n'play in the control system, an automated subscription to the TangoHost / ServerIntegration is planed.

sorry but Openembedded downloads lots of files, cross compile everything, it generates a huge vdi disk (>100GB)
can't put it online.

there is a learning curve, but it is worth it !
keep me informed of your progress.

Where are you ? Is it for edu. or real hardware ?

Hi Raphael,

At first I want to thank you for your advices and I'm sorry if I disturb you with my annoying questions.

I have some problems with the recipes.

- Did you write them yourself or is there a repository given? I'm asking because I was looking for the additional files the recipe for omniorb4-4.1.7.bb needs, but the only version I could find in the web is omniorb 4.1.4 and 4.2. I was looking for the patches which i have to include in the files directory.

- What do you mean with "hack zeromq/omniorb as explained in the paper"?

- When I use bitbake, can I still use the command: bitbake core-image-minimal ?

- Like you said I copied the recipes into the ../meta-skeleton/recipes-core/ directory.

Let me show you my directory-tree:
————————————————-
/opt/tango0915/poky/meta-skeleton/
├── conf
│ ├── layer.conf
│ ├── multilib-example2.conf
│ └── multilib-example.conf
├── COPYING.MIT
├── recipes-core
│ ├── busybox
│ │ ├── busybox
│ │ │ └── no_rfkill.cfg
│ │ └── busybox_%.bbappend
│ ├── ds
│ │ └── ds_1.1.1.bb
│ ├── omniorb4
│ │ ├── files
│ │ │ ├── omniorb_4.1.7.patch
│ │ │ ├── omniORB.cfg
│ │ │ ├── omniORB-cross.patch
│ │ │ ├── omniORB_embedded_appl.patch
│ │ │ └── rm_LongDouble.patch
│ │ └── omniorb4_4.1.7.bb
│ ├── tango
│ │ ├── files
│ │ │ ├── p812_1.diff
│ │ │ ├── p812_2.diff
│ │ │ ├── p812_3.diff
│ │ │ └── p812_4.diff
│ │ └── tango_8.1.2.bb
│ └── zeromq
│ └── zeromq_3.2.5.bb
├── recipes-kernel
│ ├── hello-mod
│ │ ├── files
│ │ │ ├── COPYING
│ │ │ ├── hello.c
│ │ │ └── Makefile
│ │ └── hello-mod_0.1.bb
│ └── linux
│ ├── linux-yocto-custom
│ │ ├── 0001-linux-version-tweak.patch
│ │ ├── feature.scc
│ │ └── smp.cfg
│ └── linux-yocto-custom.bb
├── recipes-multilib
│ └── images
│ └── core-image-multilib-example.bb
└── recipes-skeleton
├── service
│ ├── service
│ │ ├── COPYRIGHT
│ │ ├── skeleton
│ │ └── skeleton_test.c
│ └── service_0.1.bb
└── useradd
├── useradd-example
│ ├── file1
│ ├── file2
│ ├── file3
│ └── file4
└── useradd-example.bb

—————————————————————


The problem is that I can start bitbake till it gives me errors, because it can't fetch the needed patches etc. for omniorb.

Maybe you'll find some time to help me with this problem.

I really appreciate your help.

About me: I'm studying microelectronics / electrical engineering, working as a research student at DESY in Hamburg/Germany and doing this for my master thesis.
Best regards

Wahid
1)your directory tree looks correct… your are not far from goal !
and you are right, I didn't find recipes for 4.1.7 ; I used 4.1.4 and modified it

I have checked my disk :

in directory omniORB4/files, I have these patches :
arm_double.patch omniORB.cfg rm_LongDouble.patch
dynskel.patch omniORB-cross.patch
omniorb_4.1.7.patch omniORB_embedded_appl.patch


so you need some ARM patches (I don't remember for now where I found them…)


2)
FYI, omniorb compiling is a 2 steps procedure (bootstrapping)
omniorb-arm (zynq target) needs omniorb-x86 (linux host)


caution
there is a little issue in this recipes
during do_install () you need to manualy copy ./tmp/work/x86_64-linux/omniorb-native/4.1.7-r0/build/bin/omniidl to ./tmp/sysroots/x86_64-linux/usr/bin/omniidl


my omniorb4_4.4.1.7.bb



DESCRIPTION = "OmniORB High Performance ORB"
SECTION = "devel"
PRIORITY = "optional"
LICENSE = "LGPL"
REQUIRES += "omniorb-native"
#rp OMNIORNB-NATIVE (no 4)
DEPENDS_virtclass-native += "python-native"
PR = "r2"

LICENSE = "GPLv3 | LGPLv3"
LIC_FILES_CHKSUM = " \
		 file://COPYING;md5=75b02c2872421380bbd47781d2bd75d3 \
"
SRC_URI = "http://downloads.sourceforge.net/project/omniorb/omniORB/omniORB-4.1.7/omniORB-4.1.7.tar.bz2;name=omniORB417tarbz \
file://omniorb_4.1.7.patch;patch=1 \ 
file://omniORB.cfg \
file://omniORB-cross.patch;patch=1 \
file://omniORB_embedded_appl.patch;patch=1 \
file://rm_LongDouble.patch;patch=1 \
"

SRC_URI[omniORB417tarbz.md5sum] = "ce8cbe25418a76a2aac5395399463362"
SRC_URI[omniORB417tarbz.sha256sum] = "2c589ae4e1d814c81f994f1c3da10afb09e3173213b870e9056162b7331e273c"

S = "${WORKDIR}/omniORB-${PV}"

FILES_${PN}-dev += "${datadir}/idl/omniORB/* ${datadir}/idl/omniORB/cos/*"
TARGET_CC_ARCH += "${LDFLAGS}"

inherit autotools pkgconfig 

do_compile () {
        export EmbeddedSystem=1
        export TOOLBINDIR=${STAGING_BINDIR_NATIVE}
	oe_runmake
}

do_compile_virtclass-native() {
        oe_runmake
}

do_install () {
        # Set a variable that the Makefiles obey for install.
        export EmbeddedSystem=1
        autotools_do_install
        install -d ${D}${sysconfdir}
        install -m 0644 ${WORKDIR}/omniORB.cfg ${D}${sysconfdir}
        install -d ${D}${localstatedir}/omninames

	#rp manualy copy ./tmp/work/x86_64-linux/omniorb-native/4.1.7-r0/build/bin/omniidl to /mnt/poky/bbblack/tmp/sysroots/x86_64-linux/usr/bin/omniidl

	#only executable libraries are stripped by the stripper
	chmod +x ${WORKDIR}/image/usr/lib/lib*
}

do_install_virtclass-native() {
        autotools_do_install

	# Ugly hack so libtool does not find native libs when building cross
	# packages We really only build this package for omniidl anyway

        rm -f  ${D}${libdir}/libomni*
}

BBCLASSEXTEND = "native"
NATIVE_INSTALL_WORKS = "1"


Edited 5 years ago
actually, you need this extra recipe, for the 1st stage compilation (linux omniidl tool)
omniorb-native_4.1.7.bb

in addition to omniorb4_4.1.7
(put it in the same dir, edit local.conf)


my omniorb-native

SECTION = "devel"
DEPENDS += "python-native"
PR = "r2"
LICENSE = "GPLv3 | LGPLv3"
LIC_FILES_CHKSUM = " \
		 file://COPYING;md5=75b02c2872421380bbd47781d2bd75d3 \
"

SRC_URI = "http://downloads.sourceforge.net/project/omniorb/omniORB/omniORB-4.1.7/omniORB-4.1.7.tar.bz2;name=omniORB417tarbz \
	  file://omniorb_4.1.7.patch;patch=1 \
"

SRC_URI[omniORB417tarbz.md5sum] = "ce8cbe25418a76a2aac5395399463362"
SRC_URI[omniORB417tarbz.sha256sum] = "2c589ae4e1d814c81f994f1c3da10afb09e3173213b870e9056162b7331e273c"

S = "${WORKDIR}/omniORB-${PV}"

inherit native autotools

do_compile () {
        oe_runmake
}
# Ugly hack so libtool does not find native libs when building cross packages
# We really only build this package for omniidl anyway
do_install() {
        rm -f  ${STAGING_LIBDIR_NATIVE}/libomni*
}
 
Register or login to create to post a reply.