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

Bruce Ashfield bruce.ashfield at windriver.com
Fri Mar 8 15:35:39 PST 2013


On 13-03-08 12:01 PM, Darren Hart wrote:
>
>
> 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.

wow. mailing list delays are making this conversation *extremely*
painful and disjointed.

>
> 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).

sched_deadline applies to mainline, right on top of CFS as a scheduler
class. So in fact, I wouldn't suggest it with preempt-rt at all at the
moment.

>
> 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.

Already done. I've had it in linux-yocto-3.8 since I first introduced
it. We just need the supporting userspace to easily change the
scheduler class for a process.

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

Or if they aren't fully 'core', our new meta-realtime that I'd like
to have created shortly.

Cheers,

Bruce

>
>>
>> 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
>>
>




More information about the yocto mailing list