[yocto] A question on adding a new program to a new meta layer

Darren Hart dvhart at linux.intel.com
Fri Mar 8 09:01:14 PST 2013



On 03/04/2013 08:04 PM, Insop Song wrote:
> Hi,
> 
> I am preparing a new meta layer for testing and promoting a
> sched_deadline scheduler, called "meta-dl". I am planning to add
> scheduler testing tools and different kernel versions as well.
> - http://insop.github.com/meta-dl/

Note that qemux86 doesn't support the EMGD graphics driver. You mention
this and its license in the README, but it isn't necessary. If you are
pulling that in, there is a problem with your recipes.

I highly recommend you do not use USB keys for real-time storage. I
would also suggest avoiding the hddimg as a test vehicle as it consumes
memory and other resources for the live image. If anything, use the live
image as an installer only.

For some added safety, consider using poky/contrib/ddimage instead of
dd. It is a simple wrapper script around DD which offers a device
blacklist and uses sysfs to present the user with some helpful
information to confirm the operation.

So you are using the sched_deadline patches, but not PREEMPT_RT, is that
right? I had always assumed sched_deadline ran on top of PREEMPT_RT (but
I haven't every tried building it myself).

What you have here is a good experimental layer. Looking forward, please
consider:

o Incorporating sched_deadline as a kernel feature into the
linux-yocto_3.8 kernel. We can easily add recipes to build a
linux-yocto-deadline kernel and you will get all the benefits of the
yocto tooling, testing, bugfixing, and free forward porting.

o Incorporating your tests into (poky|oe-core)/meta/recipes-rt

> 
> With the help of hands-on kernel lab (thank you Tom and Darren), I am
> able to make kernel with sched_deadline enabled.
> 
> 
> Now, I am having some trouble of adding testing tools to this meta-dl,
> and hope I can get some help from you.
> 
> - problem: adding a new software into my meta-dl layer
> 
> - symtom and questions?
> 1. bitbake core-image-minimal (normal image build) won't include the
> additional program that I listed in .bb file below
> 2. If I do "bitbake schedtool-dl -c install" it builds and install,
> but at "i586" location instead of my machine staging rootfs
> (dl-qemux86)
> 
> 
> 
> - Here is my .bb file that pulls an additional program.
> https://github.com/insop/meta-dl/blob/sched-dl-V7/recipes-tools/schedtool-dl/schedtool-dl.bb
> ===
> DESCRIPTION = "schedtool-dl (scheduler test tool) for deadline scheduler"
> HOMEPAGE = "https://github.com/insop/schedtool-dl"
> SECTION = "base"
> LICENSE = "GPLv2"
> LIC_FILES_CHKSUM =
> "file://Makefile;endline=55;md5=e4b4e8ed9c2132e1d727a1bb5e3bd984"
> PR = "r1"
> 
> SRC_URI = "git://github.com/insop/schedtool-dl.git;protocol=git"
> SRCREV = "${AUTOREV}"
> 
> S = "${WORKDIR}/git"
> 
> do_compile() {
> 	oe_runmake
> }
> 
> do_install() {
> 	oe_runmake install DESTDIR=${D}
> }
> 
> PARALLEL_MAKE = ""


Hopefully you can find the missing dependency in your makefile that
makes this necessary. This slows the build down and cumulatively, this
becomes a problem. This setting should always be considered a band-aid
and should have a comment starting with "FIXME: " ;-)


> 
> BBCLASSEXTEND = "native"
> 
> COMPATIBLE_MACHINE_dl-qemux86 = "dl-qemux86"
> ====
> 
> 
> - I've updated my conf/layer.conf file to include above file
> https://github.com/insop/meta-dl/blob/sched-dl-V7/conf/layer.conf
> ====
> # We have a conf and classes directory, add to BBPATH
> BBPATH := "${BBPATH}:${LAYERDIR}"
> 
> # We have a recipes directory, add to BBFILES
> BBFILES := "${BBFILES} ${LAYERDIR}/recipes-*/*/*.bb \
> 	${LAYERDIR}/recipes-*/*/*.bbappend"
> 
> BBFILE_COLLECTIONS += "dl-qemux86"
> BBFILE_PATTERN_dl-qemux86 := "^${LAYERDIR}/"
> BBFILE_PRIORITY_dl-qemux86 = "6"
> =====
> 
> 
> 
> Thank you.
> 
> Regards,
> 
> Insop
> 
> 
> - ref:
> 1. sched_deadline:
> https://events.linuxfoundation.org/events/linuxcon-europe/song
> 2. sched_deadline:
> http://events.linuxfoundation.org/images/stories/slides/elc2013_kobayashi.pdf?a
> 

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Technical Lead - Linux Kernel



More information about the yocto mailing list