Skip to contentSkip to conversation

kernel: consolidated pull request

PATCH Applied Bruce Ashfield 3 participants 10 messages Jul 21, 2011 – Jul 22, 2011

lore
Share & tools
lore
#0 lore raw

cover kernel: consolidated pull request

Richard/Saul,

What follows is a set of kernel changes that have been brewing for a while now:

294170 kern-tools: update SRCREV
65d8b50 linux-yocto: update LICENSE to GPLv2
069e9d9 kernel: copy defconfig to {B} vs {S}
6796e11 linux-yocto: kernel-3.0 support recipe

The patches are pretty self explanitory, but a few comments follow.

The kern-tools tweak Fixes [YOCTO #1261], which allows both the 2.6.34 and 3.0 based -rt kernels to build again.

The next two changes are small cleanups and a allow linux-yocto to inherit changes to the base kernel class' do_configure().

And finally, we create the 3.0 base recipe. A few notes about this are:

- it is a carry forward of the immediately available 2.6.37 (and before) functionality
- it has an audit and cleanup of the config fragments, which was one of the 1.1 deliverables
- it has been built for all core arches, and (attempted) boot tested on them as well.
- it is not the default for any target at the moment, this needs more testing, and there are two known issues I'm tracking a qemumips boot failure that snuck in during the 3.0 -rc cycle (it did boot) and qemuppc interrupts being lost. I'll update the preferred versions as targets are validated.
- I've built and booted the core-images on them, but functionality like graphics, etc, still needs to be tested. There's only so much I can do :)
- the -rt branch is populated with tglx's recent update of -rt!
- separate patches will go out for other layers (meta-kernel-dev, meta-rt, meta-yocto, etc) shortly.

** This obviously builds on the other hard work done to get userspace and tools ready for the 3.0 kernel version change. Many thanks for that, since it allowed me to focus on the kernel only.

Patches are welcome for any misbehaving boards or qemu targets :

cc Darren Hart <[email protected]>
cc Tom Zanussi <[email protected]>

The following changes since commit 1df5ab5ee285b3220348ce0cf371b81446d55832:

parse/ConfHandler: Fix multiline variable corruption (2011-07-21 11:09:47 +0100)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib zedd/kernel
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/kernel

Bruce Ashfield (4):
linux-yocto: kernel-3.0 support recipe
kernel: copy defconfig to {B} vs {S}
linux-yocto: update LICENSE to GPLv2
kern-tools: update SRCREV

 meta/classes/kernel-yocto.bbclass                  |    6 ---
 meta/classes/kernel.bbclass                        |    4 +-
 .../kern-tools/kern-tools-native_git.bb            |    2 +-
 meta/recipes-kernel/linux/linux-yocto.inc          |    2 +-
 meta/recipes-kernel/linux/linux-yocto_3.0.bb       |   47 ++++++++++++++++++++
 5 files changed, 51 insertions(+), 10 deletions(-)
 create mode 100644 meta/recipes-kernel/linux/linux-yocto_3.0.bb
Signature · 1 line
1.7.4.1
#1 lore raw

PATCH 1/4 linux-yocto: kernel-3.0 support recipe

Establish the infrastructure to start more comprehensive linux-3.0 testing. With this in place, the populated linux-yocto 3.0 can optionally be built for supported machines.

Note: this commit does not change the default for any targets and as such, it would need to be explicitly set as the preferred version to be built. The staged introduction allows some remaining issues to be solved, while making this available. Subsequent commits will be done to switch qemu machines ones they have been validated. If the default for a machine is not this kernel, consider it best effort.

---
 meta/recipes-kernel/linux/linux-yocto_3.0.bb |   47 ++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-kernel/linux/linux-yocto_3.0.bb
meta/recipes-kernel/linux/linux-yocto_3.0.bb new file +47 -0
new file mode 100644
index 0000000..342993f
@@ -0,0 +1,47 @@
+inherit kernel
+require recipes-kernel/linux/linux-yocto.inc
+
+KMACHINE = "yocto/standard/base"
+KMACHINE_qemux86  = "yocto/standard/common-pc/base"
+KMACHINE_qemux86-64  = "yocto/standard/common-pc-64/base"
+KMACHINE_qemuppc  = "yocto/standard/qemu-ppc32"
+KMACHINE_qemumips = "yocto/standard/mti-malta32-be"
+KMACHINE_qemuarm  = "yocto/standard/arm-versatile-926ejs"
+
+KBRANCH = ${KMACHINE}
+KMETA = meta
+
+LINUX_VERSION ?= "3.0"
+LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE}"
+
+SRCREV_machine_qemuarm = "021129d0ad7dd63cbe68c9a1d369519a9e5e8440"
+SRCREV_machine_qemumips = "e86282b3085c5310d1c43af66242845ddadd49b6"
+SRCREV_machine_qemuppc = "f4ce805d0b74f9f32b6455730485120e27a4711e"
+SRCREV_machine_qemux86 = "3216e7d5c3cada16161481826cdb39c930457587"
+SRCREV_machine_qemux86-64 = "3216e7d5c3cada16161481826cdb39c930457587"
+SRCREV_machine = "3216e7d5c3cada16161481826cdb39c930457587"
+SRCREV_meta = "9010d1cbef2633dac7e559a7705c326b7601dd4c"
+
+PR = "r0"
+PV = "${LINUX_VERSION}+git${SRCPV}"
+SRCREV_FORMAT = "meta_machine"
+
+SRC_URI = "git://git.pokylinux.org/linux-yocto-3.0;protocol=git;nocheckout=1;branch=${KBRANCH},meta;name=machine,meta"
+
+COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64)"
+
+# Functionality flags
+KERNEL_REVISION_CHECKING ?= "t"
+KERNEL_FEATURES="features/netfilter"
+KERNEL_FEATURES_append=" features/taskstats"
+KERNEL_FEATURES_append_qemux86=" cfg/sound"
+KERNEL_FEATURES_append_qemux86-64=" cfg/sound"
+
+YOCTO_KERNEL_META_DATA=t
+
+# extra tasks
+addtask kernel_link_vmlinux after do_compile before do_install
+addtask validate_branches before do_patch after do_kernel_checkout
+addtask kernel_configcheck after do_configure before do_compile
+
+require linux-tools.inc
Signature · 1 line
1.7.4.1
Acked-by on v1 1/4
#2 lore raw

Re: [PATCH 1/4] linux-yocto: kernel-3.0 support recipe

Quoted 4 lines · Bruce Ashfield

Establish the infrastructure to start more comprehensive linux-3.0 testing. With this in place, the populated linux-yocto 3.0 can optionally be built for supported machines.

Quoted 8 lines

Note: this commit does not change the default for any targets and as such, it would need to be explicitly set as the preferred version to be built. The staged introduction allows some remaining issues to be solved, while making this available. Subsequent commits will be done to switch qemu machines ones they have been validated. If the default for a machine is not this kernel, consider it best effort.

Quoted 58 lines
---
 meta/recipes-kernel/linux/linux-yocto_3.0.bb |   47 ++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-kernel/linux/linux-yocto_3.0.bb
meta/recipes-kernel/linux/linux-yocto_3.0.bb new file +47 -0
new file mode 100644
index 0000000..342993f
@@ -0,0 +1,47 @@
+inherit kernel
+require recipes-kernel/linux/linux-yocto.inc
+
+KMACHINE = "yocto/standard/base"
+KMACHINE_qemux86  = "yocto/standard/common-pc/base"
+KMACHINE_qemux86-64  = "yocto/standard/common-pc-64/base"
+KMACHINE_qemuppc  = "yocto/standard/qemu-ppc32"
+KMACHINE_qemumips = "yocto/standard/mti-malta32-be"
+KMACHINE_qemuarm  = "yocto/standard/arm-versatile-926ejs"
+
+KBRANCH = ${KMACHINE}
+KMETA = meta
+
+LINUX_VERSION ?= "3.0"
+LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE}"
+
+SRCREV_machine_qemuarm = "021129d0ad7dd63cbe68c9a1d369519a9e5e8440"
+SRCREV_machine_qemumips = "e86282b3085c5310d1c43af66242845ddadd49b6"
+SRCREV_machine_qemuppc = "f4ce805d0b74f9f32b6455730485120e27a4711e"
+SRCREV_machine_qemux86 = "3216e7d5c3cada16161481826cdb39c930457587"
+SRCREV_machine_qemux86-64 = "3216e7d5c3cada16161481826cdb39c930457587"
+SRCREV_machine = "3216e7d5c3cada16161481826cdb39c930457587"
+SRCREV_meta = "9010d1cbef2633dac7e559a7705c326b7601dd4c"
+
+PR = "r0"
+PV = "${LINUX_VERSION}+git${SRCPV}"
+SRCREV_FORMAT = "meta_machine"
+
+SRC_URI = "git://git.pokylinux.org/linux-yocto-3.0;protocol=git;nocheckout=1;branch=${KBRANCH},meta;name=machine,meta"
+
+COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64)"
+
+# Functionality flags
+KERNEL_REVISION_CHECKING ?= "t"
+KERNEL_FEATURES="features/netfilter"
+KERNEL_FEATURES_append=" features/taskstats"
+KERNEL_FEATURES_append_qemux86=" cfg/sound"
+KERNEL_FEATURES_append_qemux86-64=" cfg/sound"
+
+YOCTO_KERNEL_META_DATA=t
+
+# extra tasks
+addtask kernel_link_vmlinux after do_compile before do_install
+addtask validate_branches before do_patch after do_kernel_checkout
+addtask kernel_configcheck after do_configure before do_compile
+
+require linux-tools.inc
Signature · 3 lines
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
#3 lore raw

PATCH 2/4 kernel: copy defconfig to {B} vs {S}

In reply to Bruce Ashfield

For kernel's that use a split source/object build the copy of defconfig to {S} in the base kernel class is problematic. The previous solution for this was to override the do_configure of the base kernel class in a subclass. While this is still a viable/valid option, it does mean that changes to the base do_configure will be missed.

The solution to this is to copy a defconfig to {B} which is typically the same as {S}, so most kernel recipes won't see or care about this change.

With this change in place, linux-yocto.bbclass can drop its override of do_configure.

Tested with linux-yocto and oe linux recipes.

---
 meta/classes/kernel-yocto.bbclass |    6 ------
 meta/classes/kernel.bbclass       |    4 ++--
 2 files changed, 2 insertions(+), 8 deletions(-)
meta/classes/kernel-yocto.bbclass +0 -6
index 98272fc..a374df1 100644
@@ -118,12 +118,6 @@ python do_kernel_configcheck() {
     bb.plain( "%s" % result )
 }
 
-# overrides the base kernel_do_configure, since we don't want all the
-# defconfig processing in there
-kernel_do_configure() {
-        yes '' | oe_runmake oldconfig
-}
-
 
 # Ensure that the branches (BSP and meta) are on the locatios specified by
 # their SRCREV values. If they are NOT on the right commits, the branches
meta/classes/kernel.bbclass +2 -2
index 2e36e86..9c492a3 100644
@@ -181,8 +181,8 @@ sysroot_stage_all_append() {
 kernel_do_configure() {
 	# Copy defconfig to .config if .config does not exist. This allows
 	# recipes to manage the .config themselves in do_configure_prepend().
-	if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${S}/.config" ]; then
-		cp "${WORKDIR}/defconfig" "${S}/.config"
+	if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then
+		cp "${WORKDIR}/defconfig" "${B}/.config"
 	fi
 	yes '' | oe_runmake oldconfig
 
Signature · 1 line
1.7.4.1
Acked-by on v1 2/4
#4 lore raw

Re: [PATCH 2/4] kernel: copy defconfig to {B} vs {S}

Quoted 11 lines · Bruce Ashfield

For kernel's that use a split source/object build the copy of defconfig to {S} in the base kernel class is problematic. The previous solution for this was to override the do_configure of the base kernel class in a subclass. While this is still a viable/valid option, it does mean that changes to the base do_configure will be missed.

The solution to this is to copy a defconfig to {B} which is typically the same as {S}, so most kernel recipes won't see or care about this change.

Quoted 6 lines

With this change in place, linux-yocto.bbclass can drop its override of do_configure.

Tested with linux-yocto and oe linux recipes.

Quoted 37 lines
---
 meta/classes/kernel-yocto.bbclass |    6 ------
 meta/classes/kernel.bbclass       |    4 ++--
 2 files changed, 2 insertions(+), 8 deletions(-)
meta/classes/kernel-yocto.bbclass +0 -6
index 98272fc..a374df1 100644
@@ -118,12 +118,6 @@ python do_kernel_configcheck() {
     bb.plain( "%s" % result )
 }
 
-# overrides the base kernel_do_configure, since we don't want all the
-# defconfig processing in there
-kernel_do_configure() {
-        yes '' | oe_runmake oldconfig
-}
-
 
 # Ensure that the branches (BSP and meta) are on the locatios specified by
 # their SRCREV values. If they are NOT on the right commits, the branches
meta/classes/kernel.bbclass +2 -2
index 2e36e86..9c492a3 100644
@@ -181,8 +181,8 @@ sysroot_stage_all_append() {
 kernel_do_configure() {
 	# Copy defconfig to .config if .config does not exist. This allows
 	# recipes to manage the .config themselves in do_configure_prepend().
-	if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${S}/.config" ]; then
-		cp "${WORKDIR}/defconfig" "${S}/.config"
+	if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then
+		cp "${WORKDIR}/defconfig" "${B}/.config"
 	fi
 	yes '' | oe_runmake oldconfig
 
Signature · 3 lines
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
#5 lore raw

PATCH 3/4 linux-yocto: update LICENSE to GPLv2

In reply to Bruce Ashfield

As reported by Koen Kooi, the LICENSE for linux-yocto can be tightened up to specifiy the particular version of the GPL.

---
 meta/recipes-kernel/linux/linux-yocto.inc |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
meta/recipes-kernel/linux/linux-yocto.inc +1 -1
index c304d00..595795b 100644
@@ -1,6 +1,6 @@
 DESCRIPTION = "Yocto Kernel"
 SECTION = "kernel"
-LICENSE = "GPL"
+LICENSE = "GPLv2"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
 
Signature · 1 line
1.7.4.1
Acked-by on v1 3/4
#6 lore raw

Re: [PATCH 3/4] linux-yocto: update LICENSE to GPLv2

Ahh, /me deletes this from his list of things he isn't getting to...

Quoted 5 lines · Bruce Ashfield

As reported by Koen Kooi, the LICENSE for linux-yocto can be tightened up to specifiy the particular version of the GPL.

Quoted 16 lines
---
 meta/recipes-kernel/linux/linux-yocto.inc |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
meta/recipes-kernel/linux/linux-yocto.inc +1 -1
index c304d00..595795b 100644
@@ -1,6 +1,6 @@
 DESCRIPTION = "Yocto Kernel"
 SECTION = "kernel"
-LICENSE = "GPL"
+LICENSE = "GPLv2"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
 
Signature · 3 lines
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
#7 lore raw

PATCH 4/4 kern-tools: update SRCREV

In reply to Bruce Ashfield

Fixes [YOCTO #1261]

Updating the SRCREV to pickup some branch creation fixes that were causing an invalid branch name to be used on a repository that couldn't support it (i.e. standard/base on a 2.6.34).

With this the 2.6.34 and 3.0 -rt branches will build.

---
 .../kern-tools/kern-tools-native_git.bb            |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
meta/recipes-kernel/kern-tools/kern-tools-native_git.bb +1 -1
index f7600ca..1fbb1f7 100644
@@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://git/tools/kgit;beginline=5;endline=9;md5=e2bf4415f3d8
 
 DEPENDS = "git-native guilt-native"
 
-SRCREV = "f8eb067b023d590b6cd8deddf6f96d6a820997af"
+SRCREV = "f5a915c277a37ba5949b4c0778356189e7dd9ec0"
 PR = r10
 PV = "0.1+git${SRCPV}"
 
Signature · 1 line
1.7.4.1
Acked-by on v1 4/4
#8 lore raw

Re: [PATCH 4/4] kern-tools: update SRCREV

Quoted 9 lines · Bruce Ashfield

Fixes [YOCTO #1261]

Updating the SRCREV to pickup some branch creation fixes that were causing an invalid branch name to be used on a repository that couldn't support it (i.e. standard/base on a 2.6.34).

With this the 2.6.34 and 3.0 -rt branches will build.

Quoted 17 lines
---
 .../kern-tools/kern-tools-native_git.bb            |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
meta/recipes-kernel/kern-tools/kern-tools-native_git.bb +1 -1
index f7600ca..1fbb1f7 100644
@@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://git/tools/kgit;beginline=5;endline=9;md5=e2bf4415f3d8
 
 DEPENDS = "git-native guilt-native"
 
-SRCREV = "f8eb067b023d590b6cd8deddf6f96d6a820997af"
+SRCREV = "f5a915c277a37ba5949b4c0778356189e7dd9ec0"
 PR = r10
 PV = "0.1+git${SRCPV}"
 
Signature · 3 lines
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
Applied
#9 lore raw
In reply to Bruce Ashfield
Quoted 61 lines · Bruce Ashfield

Richard/Saul,

What follows is a set of kernel changes that have been brewing for a while now:

294170 kern-tools: update SRCREV
65d8b50 linux-yocto: update LICENSE to GPLv2
069e9d9 kernel: copy defconfig to {B} vs {S}
6796e11 linux-yocto: kernel-3.0 support recipe

The patches are pretty self explanitory, but a few comments follow.

The kern-tools tweak Fixes [YOCTO #1261], which allows both the 2.6.34 and 3.0 based -rt kernels to build again.

The next two changes are small cleanups and a allow linux-yocto to inherit changes to the base kernel class' do_configure().

And finally, we create the 3.0 base recipe. A few notes about this are:

- it is a carry forward of the immediately available 2.6.37 (and before) functionality
- it has an audit and cleanup of the config fragments, which was one of the 1.1 deliverables
- it has been built for all core arches, and (attempted) boot tested on them as well.
- it is not the default for any target at the moment, this needs more testing, and there are two known issues I'm tracking a qemumips boot failure that snuck in during the 3.0 -rc cycle (it did boot) and qemuppc interrupts being lost. I'll update the preferred versions as targets are validated.
- I've built and booted the core-images on them, but functionality like graphics, etc, still needs to be tested. There's only so much I can do :)
- the -rt branch is populated with tglx's recent update of -rt!
- separate patches will go out for other layers (meta-kernel-dev, meta-rt, meta-yocto, etc) shortly.

** This obviously builds on the other hard work done to get userspace and tools ready for the 3.0 kernel version change. Many thanks for that, since it allowed me to focus on the kernel only.

Patches are welcome for any misbehaving boards or qemu targets :

cc Darren Hart<[email protected]>
cc Tom Zanussi<[email protected]>

The following changes since commit 1df5ab5ee285b3220348ce0cf371b81446d55832:

   parse/ConfHandler: Fix multiline variable corruption (2011-07-21 11:09:47 +0100)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib zedd/kernel
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/kernel

Bruce Ashfield (4):
linux-yocto: kernel-3.0 support recipe
kernel: copy defconfig to {B} vs {S}
linux-yocto: update LICENSE to GPLv2
kern-tools: update SRCREV

Quoted 8 lines
  meta/classes/kernel-yocto.bbclass                  |    6 ---
  meta/classes/kernel.bbclass                        |    4 +-
  .../kern-tools/kern-tools-native_git.bb            |    2 +-
  meta/recipes-kernel/linux/linux-yocto.inc          |    2 +-
  meta/recipes-kernel/linux/linux-yocto_3.0.bb       |   47 ++++++++++++++++++++
  5 files changed, 51 insertions(+), 10 deletions(-)

create mode 100644 meta/recipes-kernel/linux/linux-yocto_3.0.bb

Merged into OE-Core

Thanks
Sau!