Re: [OE-core] [PATCH v3 1/1] kernel: Add KERNEL_IMAGETYPES to build multi types of kernel at one time

2015-08-07 Thread Richard Purdie
On Fri, 2015-08-07 at 05:50 -0500, Richard Purdie wrote:
 On Tue, 2015-08-04 at 17:17 +0800, zhe...@windriver.com wrote:
  From: He Zhe zhe...@windriver.com
  
  Add KERNEL_IMAGETYPES to support building packaging and installing
  multi types of kernel images, such as zImage uImage, at one time.
  KERNEL_IMAGETYPE works as it did.
  
  Fixes [YOCTO #6945].
  
  Signed-off-by: He Zhe zhe...@windriver.com
  ---
   meta/classes/kernel-fitimage.bbclass|  21 +++---
   meta/classes/kernel-grub.bbclass|  46 
   meta/classes/kernel-uimage.bbclass  |  22 +++---
   meta/classes/kernel.bbclass | 128 
  +++-
   meta/conf/documentation.conf|   1 +
   meta/recipes-kernel/linux/linux-dtb.inc |  15 ++--
   6 files changed, 159 insertions(+), 74 deletions(-)
 
 I put this into master-next just to see what happened. I haven't
 reviewed the code in more detail as yet. We saw:
 
 https://autobuilder.yoctoproject.org/main/builders/build-appliance/builds/418/steps/BuildImages_1/logs/stdio
 
 as one of the results and I suspect the linux-yocto packaging issue
 comes from this. This suggests ipk packaging was not tested :(.

Also, if I have to guess, I think the uboot mkimage failure from:
https://autobuilder.yoctoproject.org/main/builders/nightly-arm64/builds/83/steps/BuildImages/logs/stdio

may be from this patch.

Cheers,

Richard

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH v3 1/1] kernel: Add KERNEL_IMAGETYPES to build multi types of kernel at one time

2015-08-07 Thread Richard Purdie
On Tue, 2015-08-04 at 17:17 +0800, zhe...@windriver.com wrote:
 From: He Zhe zhe...@windriver.com
 
 Add KERNEL_IMAGETYPES to support building packaging and installing
 multi types of kernel images, such as zImage uImage, at one time.
 KERNEL_IMAGETYPE works as it did.
 
 Fixes [YOCTO #6945].
 
 Signed-off-by: He Zhe zhe...@windriver.com
 ---
  meta/classes/kernel-fitimage.bbclass|  21 +++---
  meta/classes/kernel-grub.bbclass|  46 
  meta/classes/kernel-uimage.bbclass  |  22 +++---
  meta/classes/kernel.bbclass | 128 
 +++-
  meta/conf/documentation.conf|   1 +
  meta/recipes-kernel/linux/linux-dtb.inc |  15 ++--
  6 files changed, 159 insertions(+), 74 deletions(-)

I put this into master-next just to see what happened. I haven't
reviewed the code in more detail as yet. We saw:

https://autobuilder.yoctoproject.org/main/builders/build-appliance/builds/418/steps/BuildImages_1/logs/stdio

as one of the results and I suspect the linux-yocto packaging issue
comes from this. This suggests ipk packaging was not tested :(.

Cheers,

Richard

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH v3 1/1] kernel: Add KERNEL_IMAGETYPES to build multi types of kernel at one time

2015-08-04 Thread zhe.he
From: He Zhe zhe...@windriver.com

Add KERNEL_IMAGETYPES to support building packaging and installing
multi types of kernel images, such as zImage uImage, at one time.
KERNEL_IMAGETYPE works as it did.

Fixes [YOCTO #6945].

Signed-off-by: He Zhe zhe...@windriver.com
---
 meta/classes/kernel-fitimage.bbclass|  21 +++---
 meta/classes/kernel-grub.bbclass|  46 
 meta/classes/kernel-uimage.bbclass  |  22 +++---
 meta/classes/kernel.bbclass | 128 +++-
 meta/conf/documentation.conf|   1 +
 meta/recipes-kernel/linux/linux-dtb.inc |  15 ++--
 6 files changed, 159 insertions(+), 74 deletions(-)

diff --git a/meta/classes/kernel-fitimage.bbclass 
b/meta/classes/kernel-fitimage.bbclass
index 2a56a54..1b65c0d 100644
--- a/meta/classes/kernel-fitimage.bbclass
+++ b/meta/classes/kernel-fitimage.bbclass
@@ -1,8 +1,8 @@
 inherit kernel-uboot
 
 python __anonymous () {
-kerneltype = d.getVar('KERNEL_IMAGETYPE', True)
-if kerneltype == 'fitImage':
+kerneltype = d.getVar('KERNEL_IMAGETYPES', True) or 
+if 'fitImage' in kerneltype.split():
 depends = d.getVar(DEPENDS, True)
 depends = %s u-boot-mkimage-native dtc-native % depends
 d.setVar(DEPENDS, depends)
@@ -10,7 +10,10 @@ python __anonymous () {
# Override KERNEL_IMAGETYPE_FOR_MAKE variable, which is internal
# to kernel.bbclass . We have to override it, since we pack zImage
# (at least for now) into the fitImage .
-d.setVar(KERNEL_IMAGETYPE_FOR_MAKE, zImage)
+typeformake = d.getVar(KERNEL_IMAGETYPE_FOR_MAKE, True) or 
+if 'fitImage' in typeformake.split():
+typeformake.replace('fitImage', 'zImage')
+d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake)
 
 image = d.getVar('INITRAMFS_IMAGE', True)
 if image:
@@ -154,7 +157,7 @@ EOF
 }
 
 do_assemble_fitimage() {
-   if test x${KERNEL_IMAGETYPE} = xfitImage ; then
+   if test x${KERNEL_IMAGETYPES} != x${KERNEL_IMAGETYPES//fitImage/} ; 
then
kernelcount=1
dtbcount=
rm -f fit-image.its
@@ -217,14 +220,14 @@ addtask assemble_fitimage before do_install after 
do_compile
 
 kernel_do_deploy_append() {
# Update deploy directory
-   if test x${KERNEL_IMAGETYPE} = xfitImage ; then
+   if test x${KERNEL_IMAGETYPES} != x${KERNEL_IMAGETYPES//fitImage/} ; 
then
cd ${B}
echo Copying fit-image.its source file...
-   
its_base_name=${KERNEL_IMAGETYPE}-its-${PV}-${PR}-${MACHINE}-${DATETIME}
-   its_symlink_name=${KERNEL_IMAGETYPE}-its-${MACHINE}
+   its_base_name=fitImage-its-${PV}-${PR}-${MACHINE}-${DATETIME}
+   its_symlink_name=fitImage-its-${MACHINE}
install -m 0644 fit-image.its ${DEPLOYDIR}/${its_base_name}.its
-   
linux_bin_base_name=${KERNEL_IMAGETYPE}-linux.bin-${PV}-${PR}-${MACHINE}-${DATETIME}
-   linux_bin_symlink_name=${KERNEL_IMAGETYPE}-linux.bin-${MACHINE}
+   
linux_bin_base_name=fitImage-linux.bin-${PV}-${PR}-${MACHINE}-${DATETIME}
+   linux_bin_symlink_name=fitImage-linux.bin-${MACHINE}
install -m 0644 linux.bin 
${DEPLOYDIR}/${linux_bin_base_name}.bin
 
cd ${DEPLOYDIR}
diff --git a/meta/classes/kernel-grub.bbclass b/meta/classes/kernel-grub.bbclass
index a63f482..5ffaeb7 100644
--- a/meta/classes/kernel-grub.bbclass
+++ b/meta/classes/kernel-grub.bbclass
@@ -10,41 +10,44 @@
 #   updates the new kernel as the boot priority.
 #
 
-pkg_preinst_kernel-image_append () {
+python __anonymous () {
+import re
+
+preinst = '''
# Parsing confliction
[ -f $D/boot/grub/menu.list ]  grubcfg=$D/boot/grub/menu.list
[ -f $D/boot/grub/grub.cfg ]  grubcfg=$D/boot/grub/grub.cfg
if [ -n $grubcfg ]; then
# Dereference symlink to avoid confliction with new kernel name.
-   if grep -q /${KERNEL_IMAGETYPE} \+root= $grubcfg; then
-   if [ -L $D/boot/${KERNEL_IMAGETYPE} ]; then
-   kimage=`realpath $D/boot/${KERNEL_IMAGETYPE} 
2/dev/null`
+   if grep -q /KERNEL_IMAGETYPE \+root= $grubcfg; then
+   if [ -L $D/boot/KERNEL_IMAGETYPE ]; then
+   kimage=`realpath $D/boot/KERNEL_IMAGETYPE 
2/dev/null`
if [ -f $D$kimage ]; then
-   sed -i s:${KERNEL_IMAGETYPE} 
\+root=:${kimage##*/} root=: $grubcfg
+   sed -i s:KERNEL_IMAGETYPE 
\+root=:${kimage##*/} root=: $grubcfg
fi
fi
fi
 
# Rename old kernel if it conflicts with new kernel name.
-   if grep -q /${KERNEL_IMAGETYPE}-${KERNEL_VERSION} \+root= 
$grubcfg; then
-   if