Skip to contentSkip to conversation

linux-yocto-custom: Clarify usage and clear COMPATIBLE_MACHINE

PATCH Superseded Darren Hart 2 participants 4 messages Aug 3, 2012 – Aug 6, 2012

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

cover linux-yocto-custom: Clarify usage and clear COMPATIBLE_MACHINE

The following changes since commit a9d0cbe1d84bb26fc1a1f48764fe514cf9f9c548:

gcc: Bump PR since there have been several gcc changes and various problems reported and this should flush anything stale out (2012-08-03 10:32:24 +0100)

are available in the git repository at:

git://git.yoctoproject.org/user-contrib/dvhart/oe-core skeleton
http://git.yoctoproject.org/cgit.cgi/user-contrib/dvhart/oe-core/log/?h=skeleton

Darren Hart (1):
linux-yocto-custom: Clarify usage and clear COMPATIBLE_MACHINE

 .../recipes-kernel/linux/linux-yocto-custom.bb     | 52 +++++++++++++++-------
 1 file changed, 35 insertions(+), 17 deletions(-)
Signature · 1 line
1.7.11.2
#1 lore raw

PATCH 1/1 linux-yocto-custom: Clarify usage and clear COMPATIBLE_MACHINE

There has been some confusion over proper use of the linux-yocto-custom recipe. It is not intended to build as is from meta-skeleton. It should be modified via a bbappend file to provide a Linux kernel config at the very least.

Update the commentary to make this requirement more explicit. Add some additional detail about how to create a bbappend file and how and when to modify the various variables.

Clear COMPATIBLE_MACHINE so bitbake will not attempt to build the recipe unless the user explicitly adds there machine to the variable, which should encourage them to read the recipe comments before attempting to build it.

CC Bruce Ashfield <[email protected]>
CC Tom Zanussi <[email protected]>
---
 .../recipes-kernel/linux/linux-yocto-custom.bb     | 52 +++++++++++++++-------
 1 file changed, 35 insertions(+), 17 deletions(-)
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb +35 -17
index 55f0c38..dd98228 100644
@@ -1,17 +1,35 @@
 # linux-yocto-custom.bb:
 #
-#   Provides an example/minimal kernel recipe that uses the linux-yocto
-#   and oe-core kernel classes to apply a subset of yocto kernel 
-#   management to git managed kernel repositories.
+#   An example kernel recipe that uses the linux-yocto and oe-core
+#   kernel classes to apply a subset of yocto kernel management to git
+#   managed kernel repositories.
+#
+#   To use linux-yocto-custom in your layer, create a
+#   linux-yocto-custom.bb file containing at least the following lines:
+#
+#     FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+#     COMPATIBLE_MACHINE_yourmachine = "yourmachine"
+#
+#   You must also provide a Linux kernel configuration. The most direct
+#   method is to copy your .config to files/defconfig in your layer,
+#   parallel to the linux-yocto-custom.bbappend file.
+#
+#   To use the yocto kernel tooling to generate a BSP configuration
+#   using modular configuration fragments, see the yocto-bsp and
+#   yocto-kernel tools documentation.
+#
+# Warning:
+#
+#   Building this example without providing a defconfig or BSP
+#   configuration will result in build or boot errors. This is not a
+#   bug.
+#
 #
 # Notes:
 #
-#   kconfig(s): the kernel must be configured with a defconfig, or via
-#               configuration fragment(s). Either of these can be added
-#               via bbappend.
-#   patches: patches can be merged into to the source git tree itself, added
-#            using standard bbappend syntax or controlled via .scc feature 
-#            descriptions (also via bbappends)
+#   patches: patches can be merged into to the source git tree itself,
+#            added via the SRC_URI, or controlled via a BSP
+#            configuration.
 #   
 #   example configuration addition:
 #            SRC_URI += "file://smp.cfg"
@@ -20,25 +38,25 @@
 #   example feature addition (for kernel v3.4 only):
 #            SRC_URI += "file://feature.scc"
 #
-# Warning:
-#
-#   Building the sample kernel tree (kernel.org) without providing any
-#   configuration will result in build or boot errors. This is not a bug
-#   it is a required element for creating a valid kernel.
-#    
 
 inherit kernel
 require recipes-kernel/linux/linux-yocto.inc
 
+# Override SRC_URI in a bbappend file to point at a different source
+# tree if you do not want to build from Linus' tree.
 SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git;protocol=git;nocheckout=1"
 
 LINUX_VERSION ?= "3.4"
 LINUX_VERSION_EXTENSION ?= "-custom"
 
+# Override SRCREV to point to a different commit in a bbappend file to
+# build a different release of the Linux kernel.
 # tag: v3.4 76e10d158efb6d4516018846f60c2ab5501900bc
 SRCREV="76e10d158efb6d4516018846f60c2ab5501900bc"
 
-PR = "r0"
+PR = "r1"
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
-COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64)"
+# Override COMPATIBLE_MACHINE to include your machine in a bbappend
+# file. Leaving it empty here ensures an early explicit build failure.
+COMPATIBLE_MACHINE = "(^$)"
Signature · 1 line
1.7.11.2
#2 lore raw
Quoted 27 lines · Darren Hart

There has been some confusion over proper use of the linux-yocto-custom recipe. It is not intended to build as is from meta-skeleton. It should be modified via a bbappend file to provide a Linux kernel config at the very least.

Update the commentary to make this requirement more explicit. Add some additional detail about how to create a bbappend file and how and when to modify the various variables.

Clear COMPATIBLE_MACHINE so bitbake will not attempt to build the recipe unless the user explicitly adds there machine to the variable, which should encourage them to read the recipe comments before attempting to build it.

CC Bruce Ashfield <[email protected]>
CC Tom Zanussi <[email protected]>
---
 .../recipes-kernel/linux/linux-yocto-custom.bb     | 52 +++++++++++++++-------
 1 file changed, 35 insertions(+), 17 deletions(-)
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb +0 -0
index 55f0c38..dd98228 100644
@@ -1,17 +1,35 @@
 # linux-yocto-custom.bb:

meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb line 8

Quoted 10 lines
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb +6 -3
 #
-#   Provides an example/minimal kernel recipe that uses the linux-yocto
-#   and oe-core kernel classes to apply a subset of yocto kernel
-#   management to git managed kernel repositories.
+#   An example kernel recipe that uses the linux-yocto and oe-core
+#   kernel classes to apply a subset of yocto kernel management to git
+#   managed kernel repositories.
+#
+#   To use linux-yocto-custom in your layer, create a
+#   linux-yocto-custom.bb file containing at least the following lines:

s/linux-yocto-custom.bb/linux-yocto-custom.bbappend/

meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb line 15

Quoted 7 lines
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb +7 -0
+#
+#     FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+#     COMPATIBLE_MACHINE_yourmachine = "yourmachine"
+#
+#   You must also provide a Linux kernel configuration. The most direct
+#   method is to copy your .config to files/defconfig in your layer,
+#   parallel to the linux-yocto-custom.bbappend file.

hmm. parallel ready odd to me, but I don't have a better suggestion.

Quoted 7 lines
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb +7 -0
+#
+#   To use the yocto kernel tooling to generate a BSP configuration
+#   using modular configuration fragments, see the yocto-bsp and
+#   yocto-kernel tools documentation.
+#
+# Warning:
+#

meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb line 11

Quoted 10 lines
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb +4 -3
+#   Building this example without providing a defconfig or BSP
+#   configuration will result in build or boot errors. This is not a
+#   bug.
+#
 #
 # Notes:
 #
-#   kconfig(s): the kernel must be configured with a defconfig, or via
-#               configuration fragment(s). Either of these can be added
-#               via bbappend.

Leaving the part about configuration fragments might be useful.

.. but this looks good, lets see if it saves a few questions :)

Cheers,

Bruce

Quoted 51 lines
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb +11 -12
-#   patches: patches can be merged into to the source git tree itself, added
-#            using standard bbappend syntax or controlled via .scc feature
-#            descriptions (also via bbappends)
+#   patches: patches can be merged into to the source git tree itself,
+#            added via the SRC_URI, or controlled via a BSP
+#            configuration.
 #
 #   example configuration addition:
 #            SRC_URI += "file://smp.cfg"
@@ -20,25 +38,25 @@
 #   example feature addition (for kernel v3.4 only):
 #            SRC_URI += "file://feature.scc"
 #
-# Warning:
-#
-#   Building the sample kernel tree (kernel.org) without providing any
-#   configuration will result in build or boot errors. This is not a bug
-#   it is a required element for creating a valid kernel.
-#
 
 inherit kernel
 require recipes-kernel/linux/linux-yocto.inc
 
+# Override SRC_URI in a bbappend file to point at a different source
+# tree if you do not want to build from Linus' tree.
 SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git;protocol=git;nocheckout=1"
 
 LINUX_VERSION ?= "3.4"
 LINUX_VERSION_EXTENSION ?= "-custom"
 
+# Override SRCREV to point to a different commit in a bbappend file to
+# build a different release of the Linux kernel.
 # tag: v3.4 76e10d158efb6d4516018846f60c2ab5501900bc
 SRCREV="76e10d158efb6d4516018846f60c2ab5501900bc"
 
-PR = "r0"
+PR = "r1"
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
-COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64)"
+# Override COMPATIBLE_MACHINE to include your machine in a bbappend
+# file. Leaving it empty here ensures an early explicit build failure.
+COMPATIBLE_MACHINE = "(^$)"
--

1.7.11.2

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Signature · 2 lines
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"
#3 lore raw
Quoted 32 lines · Bruce Ashfield
Quoted 31 lines · Darren Hart

There has been some confusion over proper use of the linux-yocto-custom recipe. It is not intended to build as is from meta-skeleton. It should be modified via a bbappend file to provide a Linux kernel config at the very least.

Update the commentary to make this requirement more explicit. Add some additional detail about how to create a bbappend file and how and when to modify the various variables.

Clear COMPATIBLE_MACHINE so bitbake will not attempt to build the recipe unless the user explicitly adds there machine to the variable, which should encourage them to read the recipe comments before attempting to build it.

CC Bruce Ashfield <[email protected]>
CC Tom Zanussi <[email protected]>
---
 .../recipes-kernel/linux/linux-yocto-custom.bb     | 52 +++++++++++++++-------
 1 file changed, 35 insertions(+), 17 deletions(-)
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb +0 -3
index 55f0c38..dd98228 100644
@@ -1,17 +1,35 @@
 # linux-yocto-custom.bb:
 #
-#   Provides an example/minimal kernel recipe that uses the linux-yocto
-#   and oe-core kernel classes to apply a subset of yocto kernel
-#   management to git managed kernel repositories.
Quoted 8 lines

meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb line 8

Quoted 6 lines
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb +6 -0
+#   An example kernel recipe that uses the linux-yocto and oe-core
+#   kernel classes to apply a subset of yocto kernel management to git
+#   managed kernel repositories.
+#
+#   To use linux-yocto-custom in your layer, create a
+#   linux-yocto-custom.bb file containing at least the following lines:

s/linux-yocto-custom.bb/linux-yocto-custom.bbappend/

Thanks!

Quoted 10 lines

meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb line 15

Quoted 8 lines
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb +7 -0
+#
+#     FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+#     COMPATIBLE_MACHINE_yourmachine = "yourmachine"
+#
+#   You must also provide a Linux kernel configuration. The most direct
+#   method is to copy your .config to files/defconfig in your layer,
+#   parallel to the linux-yocto-custom.bbappend file.

hmm. parallel ready odd to me, but I don't have a better suggestion.

"in the same directory as the bbappend."

Quoted 12 lines
Quoted 12 lines
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb +11 -0
+#
+#   To use the yocto kernel tooling to generate a BSP configuration
+#   using modular configuration fragments, see the yocto-bsp and
+#   yocto-kernel tools documentation.
+#
+# Warning:
+#
+#   Building this example without providing a defconfig or BSP
+#   configuration will result in build or boot errors. This is not a
+#   bug.
+#
Quoted 8 lines

meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb line 11

Quoted 6 lines
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb +0 -3
 #
 # Notes:
 #
-#   kconfig(s): the kernel must be configured with a defconfig, or via
-#               configuration fragment(s). Either of these can be added
-#               via bbappend.

Leaving the part about configuration fragments might be useful.

I removed it because I felt I adequately covered it above:

#   You must also provide a Linux kernel configuration. The most direct
#   method is to copy your .config to files/defconfig in your layer,
#   in the same directory as the bbappend.
#
#   To use the yocto kernel tooling to generate a BSP configuration
#   using modular configuration fragments, see the yocto-bsp and
#   yocto-kernel tools documentation.
Quoted 1 line

.. but this looks good, lets see if it saves a few questions :)

Will send V2 with your comments addressed.

--
Darren

Quoted 59 lines

Cheers,

Bruce

Quoted 51 lines
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb +11 -12
-#   patches: patches can be merged into to the source git tree itself, added
-#            using standard bbappend syntax or controlled via .scc feature
-#            descriptions (also via bbappends)
+#   patches: patches can be merged into to the source git tree itself,
+#            added via the SRC_URI, or controlled via a BSP
+#            configuration.
 #
 #   example configuration addition:
 #            SRC_URI += "file://smp.cfg"
@@ -20,25 +38,25 @@
 #   example feature addition (for kernel v3.4 only):
 #            SRC_URI += "file://feature.scc"
 #
-# Warning:
-#
-#   Building the sample kernel tree (kernel.org) without providing any
-#   configuration will result in build or boot errors. This is not a bug
-#   it is a required element for creating a valid kernel.
-#
 
 inherit kernel
 require recipes-kernel/linux/linux-yocto.inc
 
+# Override SRC_URI in a bbappend file to point at a different source
+# tree if you do not want to build from Linus' tree.
 SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git;protocol=git;nocheckout=1"
 
 LINUX_VERSION ?= "3.4"
 LINUX_VERSION_EXTENSION ?= "-custom"
 
+# Override SRCREV to point to a different commit in a bbappend file to
+# build a different release of the Linux kernel.
 # tag: v3.4 76e10d158efb6d4516018846f60c2ab5501900bc
 SRCREV="76e10d158efb6d4516018846f60c2ab5501900bc"
 
-PR = "r0"
+PR = "r1"
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
-COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64)"
+# Override COMPATIBLE_MACHINE to include your machine in a bbappend
+# file. Leaving it empty here ensures an early explicit build failure.
+COMPATIBLE_MACHINE = "(^$)"
--

1.7.11.2

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Signature · 3 lines
Darren Hart
Intel Open Source Technology Center
Yocto Project - Technical Lead - Linux Kernel