[yocto] 1.3_M3 do_kernel_config failes, config_frag.txt is crippled.

Markus Hubig mhubig at imko.de
Thu Aug 23 09:18:22 PDT 2012


On Thu, Aug 23, 2012 at 09:31:15AM -0400, Bruce Ashfield wrote:
> On 12-08-23 09:24 AM, Markus Hubig wrote:

<snipp>

> >And again a bit deeper I found that the file
> >
> >| ./meta/cfg/standard/portuxg20/config_frag.txt
> >
> >is somewhat crippled:
> >
> >| ...
> >| /kernel-cache/ktypes/standard/standard.cfg
> >| /kernel-cache/cfg/devtmpfs.cfg
> >| /kernel-cache/cfg/debugfs.cfg
> >| portuxg20
> >   ^^^^^^^^^

That was a typo. Fixed!

> >| hardware.cfg
> >| non-hardware.cfg

These files were living in "meta-stamp9g20/recipes-kernel/files"

> >| /kernel-cache/features/usb-net/usb-net.cfg

> >| portuxg20
> >| hardware.cfg
> >| non-hardware.cfg
> >| /kernel-cache/features/usb-net/usb-net.cfg

Here we have the same thing a second time.

> >| /hardware.cfg
> >| /non-hardware.cfg
> >| /portuxg20/portuxg20.cfg

And a third time, but with a correct path.

After changing my BSP-Kernel layout from:

| ▾ recipes-kernel/
|   ▾ linux/
|     ▾ files/
|         hardware.cfg
|         non-hardware.cfg
|       ▾ portuxg20/
|           portuxg20-preempt-rt.scc
|           portuxg20-standard.scc
|           portuxg20.cfg
|           portuxg20.scc
|       ▾ stamp9g20/
|           stamp9g20-preempt-rt.scc
|           stamp9g20-standard.scc
|           stamp9g20.cfg
|           stamp9g20.scc

To this:

| ▾ recipes-kernel/
|   ▾ linux/
|     ▾ files/
|       ▾ portuxg20/
|           hardware.cfg
|           non-hardware.cfg
|           portuxg20-preempt-rt.scc
|           portuxg20-standard.scc
|           portuxg20.cfg
|           portuxg20.scc
|       ▾ stamp9g20/
|           hardware.cfg
|           non-hardware.cfg
|           stamp9g20-preempt-rt.scc
|           stamp9g20-standard.scc
|           stamp9g20.cfg
|           stamp9g20.scc

and using

| SRC_URI_append_portuxg20 = "\
|         file://portuxg20-standard.scc   \
|         file://portuxg20-preempt-rt.scc \
|         file://portuxg20.scc            \
|         file://portuxg20.cfg            \
|         file://hardware.cfg             \
|         file://non-hardware.cfg         \
|         "
| 
| SRC_URI_append_stamp9g20 = "
|         file://stamp9g20-standard.scc   \
|         file://stamp9g20-preempt-rt.scc \
|         file://stamp9g20.scc            \
|         file://stamp9g20.cfg            \
|         file://hardware.cfg             \
|         file://non-hardware.cfg         \
|         "

instead of this:

| SRC_URI += "\
|         file://hardware.cfg             \
|         file://non-hardware.cfg         \
|         "
|
| SRC_URI_append_portuxg20 = "\
|         file://portuxg20-standard.scc   \
|         file://portuxg20-preempt-rt.scc \
|         file://portuxg20.scc            \
|         file://portuxg20.cfg            \
|         "
| 
| SRC_URI_append_stamp9g20 = "
|         file://stamp9g20-standard.scc   \
|         file://stamp9g20-preempt-rt.scc \
|         file://stamp9g20.scc            \
|         file://stamp9g20.cfg            \
|         "

I get this config_frag.txt but at the cost of duplicating the
hardware.cfg and non-hardware.cfg files.

| /kernel-cache/ktypes/base/base.cfg
| /kernel-cache/features/kgdb/kgdb.cfg
| /kernel-cache/features/lttng/lttng.cfg
| /kernel-cache/features/blktrace/blktrace.cfg
| /kernel-cache/features/systemtap/systemtap.cfg
| /kernel-cache/features/utrace/utrace.cfg
| /kernel-cache/arch/arm/arm.cfg
| /kernel-cache/features/hrt/hrt.cfg
| /kernel-cache/features/ftrace/ftrace.cfg
| /kernel-cache/features/unionfs/unionfs.cfg
| /kernel-cache/features/cgroups/cgroups.cfg
| /kernel-cache/features/namespaces/namespaces.cfg
| /kernel-cache/features/namespaces/namespaces-experimental.cfg
| /kernel-cache/features/fuse/fuse.cfg
| /kernel-cache/ktypes/standard/standard.cfg
| /kernel-cache/cfg/devtmpfs.cfg
| /kernel-cache/cfg/debugfs.cfg
| /portuxg20/portuxg20.cfg
| /portuxg20/hardware.cfg
| /portuxg20/non-hardware.cfg
| /kernel-cache/features/usb-net/usb-net.cfg
| /portuxg20/portuxg20.cfg
| /portuxg20/hardware.cfg
| /portuxg20/non-hardware.cfg
| /kernel-cache/features/usb-net/usb-net.cfg
| /kernel-cache/features/netfilter/netfilter.cfg
| /kernel-cache/features/taskstats/taskstats.cfg

Whitch looks way better! And now I get this config check again:

| This BSP sets 2 invalid/obsolete kernel options.
| These config options are not offered anywhere within this kernel.
| The full list can be found in your kernel src dir at:
| meta/cfg/standard/portuxg20/invalid.cfg
| 
| This BSP sets 11 kernel options that are possibly non-hardware related.
| The full list can be found in your kernel src dir at:
| meta/cfg/standard/portuxg20/specified_non_hdw.cfg
| 
| WARNING: There were 1 hardware options requested that do not
|          have a corresponding value present in the final ".config" file.
|          This probably means you aren't getting the config you wanted.
| The full list can be found in your kernel src dir at:
| meta/cfg/standard/portuxg20/mismatch.cfg
| 
| Waiting a second to make sure you get a chance to see this...

Surprisingly if I remove the *.cfg files from the SRC_URI

| SRC_URI_append_portuxg20 = "\
|         file://portuxg20-standard.scc   \
|         file://portuxg20-preempt-rt.scc \
|         file://portuxg20.scc            \
|         "
| 
| SRC_URI_append_stamp9g20 = "
|         file://stamp9g20-standard.scc   \
|         file://stamp9g20-preempt-rt.scc \
|         file://stamp9g20.scc            \

it also works ...

Some more tests showed that if I make a flat layout like
this:

| ▾ recipes-kernel/
|   ▾ linux/
|     ▾ files/
|         hardware.cfg
|         non-hardware.cfg
|         portuxg20-preempt-rt.scc
|         portuxg20-standard.scc
|         portuxg20.cfg
|         portuxg20.scc
|         stamp9g20-preempt-rt.scc
|         stamp9g20-standard.scc
|         stamp9g20.cfg
|         stamp9g20.scc

and change my linux-yocto_3.2.bbappend file so it just includes
the *.scc files

| FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
| 
| PR := "${PR}.1"
| 
| KEEPUIMAGE = "no"
| 
| COMPATIBLE_MACHINE_stamp9g20 = "stamp9g20"
| KBRANCH_stamp9g20  = "standard/default/arm-versatile-926ejs"
| KMACHINE_stamp9g20  = "stamp9g20"
| 
| COMPATIBLE_MACHINE_portuxg20 = "portuxg20"
| KBRANCH_portuxg20  = "standard/default/arm-versatile-926ejs"
| KMACHINE_portuxg20  = "portuxg20"
| 
| SRC_URI_append_portuxg20 = "\
|         file://portuxg20-standard.scc   \
|         file://portuxg20-preempt-rt.scc \
|         file://portuxg20.scc            \
|         "
| 
| SRC_URI_append_stamp9g20 = "\
|         file://stamp9g20-standard.scc   \
|         file://stamp9g20-preempt-rt.scc \
|         file://stamp9g20.scc            \
|         "

everything works. But it's a bit confusing! 

To summarize my expirience a bit:

All files in "FILESEXTRAPATHS_prepend" get copied to "meta/cfg/files",
but only the *.scc files I include into "SRC_URI" will be used to make
the kernel config file.

> Were you using yocto-bsp to create the BSP framework?

Yes but later I changed everything ... 

> I did some test builds of the layer you previously sent me, and I didn't
> reproduce the problem, but this is the same thing that you had seen last
> week.

Strange ...

> Do you have an updated layer that I can try against master ?

Yes in some hours, i'll send you a ping if I included my new changes.

Cheers, Markus

-- 
Human beings were created by water to transport it uphill.



More information about the yocto mailing list