Re: [OE-core] [PATCH 1/2 v4] kernel: Add KERNEL_IMAGETYPES to build multi types kernel at one time
Hi, OK, it seems I've found a patch for meta-raspberrypi. I'll be submitting it to the Yocto mailing list. Sorry for the noise. Herve -Original Message- From: Herve Jourdain [mailto:herve.jourd...@neuf.fr] Sent: mardi 31 mai 2016 13:37 To: 'zhe...@windriver.com' <zhe...@windriver.com>; 'richard.pur...@linuxfoundation.org' <richard.pur...@linuxfoundation.org>; 'openembedded-core@lists.openembedded.org' <openembedded-core@lists.openembedded.org> Subject: RE: [OE-core] [PATCH 1/2 v4] kernel: Add KERNEL_IMAGETYPES to build multi types kernel at one time Hi, I've just found out that this breaks the kernel builds on raspberrypi, because do_rpiboot_mkimage() uses ${KERNEL_OUTPUT}, and this patch removes it... (sorry to find that only now, but I only today switched to a new environment for some tests) I'm trying to find a patch to that one, but in the meantime, people might need to revert it if they meet that kind of problems. Herve -Original Message- From: openembedded-core-boun...@lists.openembedded.org [mailto:openembedded-core-boun...@lists.openembedded.org] On Behalf Of zhe...@windriver.com Sent: mercredi 25 mai 2016 10:47 To: richard.pur...@linuxfoundation.org; openembedded-core@lists.openembedded.org Subject: [OE-core] [PATCH 1/2 v4] kernel: Add KERNEL_IMAGETYPES to build multi types kernel at one time 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 and KERNEL_ALT_IMAGETYPE work as before. Signed-off-by: He Zhe <zhe...@windriver.com> --- meta/classes/kernel-fitimage.bbclass| 20 ++-- meta/classes/kernel-grub.bbclass| 44 +--- meta/classes/kernel-uimage.bbclass | 10 +- meta/classes/kernel.bbclass | 174 +++- meta/conf/documentation.conf| 1 + meta/recipes-kernel/linux/linux-dtb.inc | 49 + 6 files changed, 202 insertions(+), 96 deletions(-) diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass index 298eda2..9a3caf5 100644 --- a/meta/classes/kernel-fitimage.bbclass +++ b/meta/classes/kernel-fitimage.bbclass @@ -1,8 +1,8 @@ inherit kernel-uboot uboot-sign python __anonymous () { -kerneltype = d.getVar('KERNEL_IMAGETYPE', True) -if kerneltype == 'fitImage': +kerneltypes = d.getVar('KERNEL_IMAGETYPES', True) or "" +if 'fitImage' in kerneltypes.split(): depends = d.getVar("DEPENDS", True) depends = "%s u-boot-mkimage-native dtc-native" % depends d.setVar("DEPENDS", depends) @@ -10,7 +10,9 @@ 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(): +d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', + typeformake.replace('fitImage', 'zImage')) image = d.getVar('INITRAMFS_IMAGE', True) if image: @@ -187,7 +189,7 @@ EOF } do_assemble_fitimage() { - if test "x${KERNEL_IMAGETYPE}" = "xfitImage" ; then + if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage"; then kernelcount=1 dtbcount="" rm -f fit-image.its arch/${ARCH}/boot/fitImage @@ -265,14 +267,14 @@ addtask assemble_fitimage before do_install after do_compile kernel_do_deploy[vardepsexclude] = "DATETIME" kernel_do_deploy_append() { # Update deploy directory - if test "x${KERNEL_IMAGETYPE}" = "xfitImage" ; then + if echo ${KERNEL_IMAGETYPES} | grep -wq "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/cla
Re: [OE-core] [PATCH 1/2 v4] kernel: Add KERNEL_IMAGETYPES to build multi types kernel at one time
Hi, I've just found out that this breaks the kernel builds on raspberrypi, because do_rpiboot_mkimage() uses ${KERNEL_OUTPUT}, and this patch removes it... (sorry to find that only now, but I only today switched to a new environment for some tests) I'm trying to find a patch to that one, but in the meantime, people might need to revert it if they meet that kind of problems. Herve -Original Message- From: openembedded-core-boun...@lists.openembedded.org [mailto:openembedded-core-boun...@lists.openembedded.org] On Behalf Of zhe...@windriver.com Sent: mercredi 25 mai 2016 10:47 To: richard.pur...@linuxfoundation.org; openembedded-core@lists.openembedded.org Subject: [OE-core] [PATCH 1/2 v4] kernel: Add KERNEL_IMAGETYPES to build multi types kernel at one time 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 and KERNEL_ALT_IMAGETYPE work as before. Signed-off-by: He Zhe <zhe...@windriver.com> --- meta/classes/kernel-fitimage.bbclass| 20 ++-- meta/classes/kernel-grub.bbclass| 44 +--- meta/classes/kernel-uimage.bbclass | 10 +- meta/classes/kernel.bbclass | 174 +++- meta/conf/documentation.conf| 1 + meta/recipes-kernel/linux/linux-dtb.inc | 49 + 6 files changed, 202 insertions(+), 96 deletions(-) diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass index 298eda2..9a3caf5 100644 --- a/meta/classes/kernel-fitimage.bbclass +++ b/meta/classes/kernel-fitimage.bbclass @@ -1,8 +1,8 @@ inherit kernel-uboot uboot-sign python __anonymous () { -kerneltype = d.getVar('KERNEL_IMAGETYPE', True) -if kerneltype == 'fitImage': +kerneltypes = d.getVar('KERNEL_IMAGETYPES', True) or "" +if 'fitImage' in kerneltypes.split(): depends = d.getVar("DEPENDS", True) depends = "%s u-boot-mkimage-native dtc-native" % depends d.setVar("DEPENDS", depends) @@ -10,7 +10,9 @@ 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(): +d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', + typeformake.replace('fitImage', 'zImage')) image = d.getVar('INITRAMFS_IMAGE', True) if image: @@ -187,7 +189,7 @@ EOF } do_assemble_fitimage() { - if test "x${KERNEL_IMAGETYPE}" = "xfitImage" ; then + if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage"; then kernelcount=1 dtbcount="" rm -f fit-image.its arch/${ARCH}/boot/fitImage @@ -265,14 +267,14 @@ addtask assemble_fitimage before do_install after do_compile kernel_do_deploy[vardepsexclude] = "DATETIME" kernel_do_deploy_append() { # Update deploy directory - if test "x${KERNEL_IMAGETYPE}" = "xfitImage" ; then + if echo ${KERNEL_IMAGETYPES} | grep -wq "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..f7dcc07 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"
[OE-core] [PATCH 1/2 v4] kernel: Add KERNEL_IMAGETYPES to build multi types kernel at one time
From: He ZheAdd KERNEL_IMAGETYPES to support building packaging and installing multi types of kernel images, such as zImage uImage, at one time. KERNEL_IMAGETYPE and KERNEL_ALT_IMAGETYPE work as before. Signed-off-by: He Zhe --- meta/classes/kernel-fitimage.bbclass| 20 ++-- meta/classes/kernel-grub.bbclass| 44 +--- meta/classes/kernel-uimage.bbclass | 10 +- meta/classes/kernel.bbclass | 174 +++- meta/conf/documentation.conf| 1 + meta/recipes-kernel/linux/linux-dtb.inc | 49 + 6 files changed, 202 insertions(+), 96 deletions(-) diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass index 298eda2..9a3caf5 100644 --- a/meta/classes/kernel-fitimage.bbclass +++ b/meta/classes/kernel-fitimage.bbclass @@ -1,8 +1,8 @@ inherit kernel-uboot uboot-sign python __anonymous () { -kerneltype = d.getVar('KERNEL_IMAGETYPE', True) -if kerneltype == 'fitImage': +kerneltypes = d.getVar('KERNEL_IMAGETYPES', True) or "" +if 'fitImage' in kerneltypes.split(): depends = d.getVar("DEPENDS", True) depends = "%s u-boot-mkimage-native dtc-native" % depends d.setVar("DEPENDS", depends) @@ -10,7 +10,9 @@ 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(): +d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake.replace('fitImage', 'zImage')) image = d.getVar('INITRAMFS_IMAGE', True) if image: @@ -187,7 +189,7 @@ EOF } do_assemble_fitimage() { - if test "x${KERNEL_IMAGETYPE}" = "xfitImage" ; then + if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage"; then kernelcount=1 dtbcount="" rm -f fit-image.its arch/${ARCH}/boot/fitImage @@ -265,14 +267,14 @@ addtask assemble_fitimage before do_install after do_compile kernel_do_deploy[vardepsexclude] = "DATETIME" kernel_do_deploy_append() { # Update deploy directory - if test "x${KERNEL_IMAGETYPE}" = "xfitImage" ; then + if echo ${KERNEL_IMAGETYPES} | grep -wq "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..f7dcc07 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