[poky] kernel SRCREV and meta series woes re new preempt_rt recipe
Darren Hart
dvhart at linux.intel.com
Fri Dec 17 08:17:27 PST 2010
On 12/17/2010 05:53 AM, Bruce Ashfield wrote:
> On Thu, Dec 16, 2010 at 6:51 PM, Darren Hart<dvhart at linux.intel.com> wrote:
>> Hey Bruce,
>>
>> (lots of logs, explanation all through to the end)
>>
>> I'm running into a couple issues I haven't been able to explain.
>> I'm building from poky-contrib dvhart/rt which I rebased against
>> zedd/kernel today (646be7efc3c2a966607526439e3ad812cb4ae3f8). My
>> local.conf has 'MACHINE?=qemux86-64'.
>
> This repo is missing a paired up kernel repo modification, but it should
> be sane.
>
>>
>> You can see the linux-yocto-rt recipe in my contrib branch mentioned
>> above, but for quick reference, here's the diff from linux-yocto-stable:
>
> one demerit point fine for a non-unified diff ;)
Heh, in this case I thought the simple diff did a better job
highlighting the only significant change was:
LINUX_KERNEL_TYPE = "preempt_rt"
>
>>
>> $ diff linux-yocto-stable_git.bb linux-yocto-rt_stablegit.bb
>> 14a15
>> > LINUX_KERNEL_TYPE = "preempt_rt"
>> 21c22
>> < COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64|atom-pc|routerstationpro|mpc8315e-rdb|beagleboard)"
>> ---
>> > COMPATIBLE_MACHINE = "(qemux86-64)"
>> 32a34
>> > print "LINUX_KERNEL_TYPE_EXTENSION: ", bb.data.getVar("LINUX_KERNEL_TYPE_EXTENSION", d)
>> 37a40,41
>> > #SRCREV_machine_pn-linux-yocto-rt_qemux86-64 = "f49444f06875894389e640bcda6c3f6ceb1f0c3e"
>> > #SRCREV = "f49444f06875894389e640bcda6c3f6ceb1f0c3e"
>>
>> I determined the SRCREV from:
>> $ git log --pretty=oneline origin/common_pc_64-preempt_rt -1
>> f49444f06875894389e640bcda6c3f6ceb1f0c3e Merge branch 'standard' into common_pc_
>>
>
> That should be the right rev.
>
Richard,
Any thoughts on this first error - from here down to Bruce's comment?
>> First, bitbake is complaining about SRCREV while parsing
>> linux-yocto-rt_stablegit.bb:
>>
>> $ bitbake linux-yocto-rt
>> NOTE: Handling BitBake files: | (0236/0803) [29 %]
>> LINUX_KERNEL_TYPE_EXTENSION: preempt-rt # dvhart debug
>> NOTE:<class 'bb.fetch.InvalidSRCREV'>:Please set SRCREV to a valid value while evaluating:
>> ${@bb.fetch.get_srcrev(d)}
>> NOTE:<class 'bb.fetch.InvalidSRCREV'>:Please set SRCREV to a valid value while evaluating:
>> ${LINUX_VERSION}+git${SRCPV}
>> NOTE:<class 'bb.fetch.InvalidSRCREV'>:Please set SRCREV to a valid value while evaluating:
>> ${PN}-${EXTENDPE}${PV}-${PR}
>> NOTE:<class 'bb.fetch.InvalidSRCREV'>:Please set SRCREV to a valid value while evaluating:
>> ${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PF}
>> NOTE:<class 'bb.fetch.InvalidSRCREV'>:Please set SRCREV to a valid value while evaluating:
>> ${WORKDIR}/linux
>> NOTE:<class 'bb.fetch.InvalidSRCREV'>:Please set SRCREV to a valid value while evaluating:
>> cd ${S}
>> if [ -f ${WORKDIR}/defconfig ]; then
>> defconfig=${WORKDIR}/defconfig
>> fi
>>
>> kbranch=${KBRANCH}
>>
>> # simply ensures that a branch of the right name has been created
>> createme ${ARCH} ${kbranch} ${defconfig}
>> if [ $? -ne 0 ]; then
>> echo "ERROR. Could not create ${kbranch}"
>> exit 1
>> fi
>>
>> # updates or generates the target description
>> if [ -n "${KERNEL_FEATURES}" ]; then
>> addon_features="--features ${KERNEL_FEATURES}"
>> fi
>> updateme ${addon_features} ${ARCH} ${WORKDIR}
>> if [ $? -ne 0 ]; then
>> echo "ERROR. Could not update ${kbranch}"
>> exit 1
>> fi
>>
>> # executes and modifies the source tree as required
>> patchme ${kbranch}
>> if [ $? -ne 0 ]; then
>> echo "ERROR. Could not modify ${kbranch}"
>> exit 1
>> fi
>>
>> NOTE: Error expanding variable do_patch
>> ERROR: Please set SRCREV to a valid value while parsing /home/dvhart/data/poky.git/meta/recipes-kernel/linux/linux-yocto-rt_stablegit.bb
>> NOTE: Handling BitBake files: - (0802/0803) [99 %]Command execution failed: Traceback (most recent call last):
>> File "/vol/1/dvhart/poky.git/scripts/..//bitbake/lib/bb/command.py", line 85, in runAsyncCommand
>> self.cooker.updateCache()
>> File "/vol/1/dvhart/poky.git/scripts/..//bitbake/lib/bb/cooker.py", line 804, in updateCache
>> if not self.parser.parse_next():
>> File "/vol/1/dvhart/poky.git/scripts/..//bitbake/lib/bb/cooker.py", line 1036, in parse_next
>> raise ParsingErrorsFound
>> ParsingErrorsFound
>>
>
>> I have added a SRC_REV in poky-default-revisions:
>> +# preempt_rt SRCREVs
>> +SRCREV_machine_pn-linux-yocto-rt_qemux86-64 ?= "f49444f06875894389e640bcda6c3f6ceb1f0c3e"
>
> I've seen this man times, and typically it has always had to do with
> processing order of the files related to the fetcher. I'm hoping
> Richard reads this and can jump in with more details, since this is
> something internal to BB and not something I've had the pleasure
> of adding or digging into very much.
>
>>
>>
>> If I add the following to linux-yocto-rt_stablegit.bb:
>> SRCREV = "f49444f06875894389e640bcda6c3f6ceb1f0c3e"
>
> This hits it with a hammer .. yes. Because you set this, we aren't
> counting on the machine specific override of SRCREV to set the
> variable. So this ensures that the variable has *something*, just
> not something that the fetcher will use properly.
But will it send the proper information to the kernel tools? I
understand something needs to get fixed in bitbake or the linux-yocto
recipe components, but does this short-cut that to allow us to examine
the kernel-tools issues?
>>
>>
>> I get passed the parse error, but do_patch fails:
>>
>> Unstaged changes after reset:
>> M .gitignore
>> M Documentation/DocBook/kgdb.tmpl
<snip>
>> Aborting
>> warning: could not find ktypes/temp.scc
>> ./0-wrs_meta-temp-33ebe31bfbabe8a7793524c85ea65707.sco: line 14: temp_68b329da9893e34099c7d8ad5cb9c940: command not found
>> ERROR. Could not locate meta series for common_pc_64-preempt_rt
>> ERROR: Task failed: ('function do_patch failed', '/vol/1/dvhart/poky.git/build/tmp/work/qemux86-64-poky-linux/linux-yocto-rt-2.6.34+git1+f49444f06875894389e640bcda6c3f6ceb1f0c3e_2+f49444f06875894389e640bcda6c3f6ceb1f0c3e-r0/temp/log.do_patch.30710')
>
>
> This means you built a random temporary board and when the branch
> validation steps kicked in, they declared that patches were not present,
> and tried to re-push changes (which were really there) and hence caused
> your failure.
>
> It implies that your tools weren't up to date to me. Since I made changes
> to allow it to locate the proper meta series adapting for the _ vs -
> in the name.
I thought we left the _ in the kernel repository and only munged it to -
in the bitbake string. The log mentions "common_pc_64-preempt_rt" which
I took to mean it was looking for the right thing. Is this not the case?
>
> I'll check the SRCREV I pushed for the tools and see if it is out of date.
>
>>
>>
>> I look at look at the linux directory:
>> $ cd tmp/work/qemux86-64-poky-linux/linux-yocto-rt-2.6.34+git1+f49444f06875894389e640bcda6c3f6ceb1f0c3e_2+f49444f06875894389e640bcda6c3f6ceb1f0c3e-r0/linux/
>> $ git branch
>> arm_versatile_926ejs-standard
>> atom-pc-standard
>> beagleboard-standard
>> blacksand-standard
>> common_pc-preempt_rt
>> common_pc-standard
>> common_pc_64-preempt_rt
>> common_pc_64-standard
>> crownbay-standard
>> davinci-consolidated-2.6.34-merge
>> emenlow-standard
>> fsl-mpc8315e-rdb-standard
>> kgdb-2.6.34-base-merge
>> master
>> mti_malta32_be-standard
>> mti_malta32_le-standard
>> omap-base-merge
>> preempt_rt
>> qemu_ppc32-standard
>> routerstationpro-standard
>> rt-2.6.34-base-merge
>> standard
>> wrs_base
>> wrs_meta
>> wrs_meta-orig
>> * wrs_meta-temp
>>
>> This suggests to me that I'm not hitting the previous
>> no-local-branches-after-clone issues, and that "common_pc-preempt_rt"
>> does indeed exist. A quick review of the linux-2.6-wrs.git wrs_meta
>> branch wrs directory suggests all the preempt-rt meta data exists and
>> matches the expected naming.
>>
>> $ find wrs -name "*preempt_rt*"
>> wrs/cfg/kernel-cache/bsp/common_pc/common_pc-preempt_rt.scc
>> wrs/cfg/kernel-cache/bsp/common_pc_64/common_pc_64-preempt_rt.scc
>> wrs/cfg/kernel-cache/ktypes/preempt_rt
>> wrs/cfg/kernel-cache/ktypes/preempt_rt/preempt_rt.cfg
>> wrs/cfg/kernel-cache/ktypes/preempt_rt/preempt_rt.scc
>> wrs/cfg/meta/common_pc-preempt_rt-meta
>> wrs/cfg/meta/common_pc_64-preempt_rt-meta
>> wrs/patches/common_pc_64-preempt_rt
>> wrs/patches/preempt_rt
>> wrs/patches/common_pc-preempt_rt
>>
>>
>> Any thoughts on what might be going wrong?
>
> Just the tools :) Since I just built the same thing here and it worked. I'll
> grab your recipe and have a look at the SRCREV and hopefully send a
> consolidated series ASAP.
dvhart at doubt:wr-kernel-tools.git$ git log --pretty=oneline -1
796d7fef92b2eed449c17c14441587ff0c465368 configme: check alternate
meta-series
$ grep kern-tools
../../../meta/conf/distro/include/poky-default-revisions.inc
SRCREV_pn-kern-tools-native ??= "796d7fef92b2eed449c17c14441587ff0c465368"
They appear to be in agreement, and that SRCREV is for the META_ALT
patch - but it wasn't obvious to me if that was the one to account for
-_ mangling.
--
Darren Hart
Yocto Linux Kernel
More information about the poky
mailing list