[yocto] [meta-raspberrypi][PATCH 1/2] linux-raspberrypi: support configuration fragments

Alex J Lennon ajlennon at gmail.com
Wed Aug 12 01:28:31 PDT 2015


On 12/08/2015 09:08, Petter Mabäcker wrote:
> 2015-08-11 21:20 skrev Alex J Lennon:
> 
>> On 11/08/2015 19:54, Petter Mabäcker wrote:
>>> 2015-08-11 19:04 skrev Alex J Lennon:
>>>> - remove placeholder defconfig and custom copying logic - use
>>>> KBUILD_DEFCONFIG for default in-tree configurations instead - do not
>>>> replace all Yocto configured settings in do_configure_prepen see:
>>>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=7474
>>>> Signed-off-by: Alex J Lennon <ajlennon at dynamicdevices.co.uk
>>>> <mailto:ajlennon at dynamicdevices.co.uk>
>>>> <mailto:ajlennon at dynamicdevices.co.uk
>>>> <mailto:ajlennon at dynamicdevices.co.uk>>> ---
>>>> recipes-kernel/linux/linux-raspberrypi.inc | 15 ++++-----------
>>>> recipes-kernel/linux/linux-raspberrypi/defconfig | 1 -
>>>> recipes-kernel/linux/linux.inc | 6 +++--- 3 files changed, 7
>>>> insertions(+), 15 deletions(-) delete mode 100644
>>>> recipes-kernel/linux/linux-raspberrypi/defconfig diff --git
>>>> a/recipes-kernel/linux/linux-raspberrypi.inc
>>>> b/recipes-kernel/linux/linux-raspberrypi.inc index 7e36408..e38d905
>>>> 100644 --- a/recipes-kernel/linux/linux-raspberrypi.inc +++
>>>> b/recipes-kernel/linux/linux-raspberrypi.inc @@ -6,17 +6,14 @@
>>>> SECTION = "kernel" LICENSE = "GPLv2" LIC_FILES_CHKSUM =
>>>> "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" -SRC_URI += "
>>>> \ - file://defconfig \ - " - COMPATIBLE_MACHINE = "raspberrypi" PV =
>>>> "${LINUX_VERSION}+git${SRCREV}" -# NOTE: For now we pull in the
>>>> default config from the RPi kernel GIT tree.
>>>> -KERNEL_DEFCONFIG_raspberrypi ?= "bcmrpi_defconfig"
>>>> -KERNEL_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig" +KMACHINE ?=
>>>> "${MACHINE}" +KCONFIG_MODE = "--alldefconfig"
>>>> +KBUILD_DEFCONFIG_raspberrypi ?= "bcmrpi_defconfig"
>>>> +KBUILD_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig" # CMDLINE for
>>>> raspberrypi CMDLINE = "dwc_otg.lpm_enable=0 console=ttyAMA0,115200
>>>> kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
>>>> @@ -38,10 +35,6 @@ python __anonymous () { d.setVar("DEPENDS",
>>>> depends) } -do_kernel_configme_prepend() { - install -m 0644
>>>> ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig
>>>> || die "No default configuration for ${MACHINE} /
>>>> ${KERNEL_DEFCONFIG} available." -} - do_install_prepend() { install
>>>> -d ${D}/lib/firmware } diff --git
>>>> a/recipes-kernel/linux/linux-raspberrypi/defconfig
>>>> b/recipes-kernel/linux/linux-raspberrypi/defconfig deleted file mode
>>>> 100644 index ecbf32c..0000000 ---
>>>> a/recipes-kernel/linux/linux-raspberrypi/defconfig +++ /dev/null @@
>>>> -1 +0,0 @@ -# Dummy file to get through do_kernel_configme. diff
>>>> --git a/recipes-kernel/linux/linux.inc
>>>> b/recipes-kernel/linux/linux.inc index fae78b7..103512b 100644 ---
>>>> a/recipes-kernel/linux/linux.inc +++
>>>> b/recipes-kernel/linux/linux.inc @@ -33,8 +33,7 @@
>>>> kernel_configure_variable() { } do_configure_prepend() { - # Clean
>>>> .config - echo "" > ${B}/.config + mv -f ${B}/.config
>>>> ${B}/.config.patched CONF_SED_SCRIPT="" # oabi / eabi support @@
>>>> -109,7 +108,8 @@ do_configure_prepend() { # Keep this the last line
>>>> # Remove all modified configs and add the rest to .config - sed -e
>>>> "${CONF_SED_SCRIPT}" < '${WORKDIR}/defconfig' >> '${B}/.config' +
>>>> sed -e "${CONF_SED_SCRIPT}" < '${B}/.config.patched' >>
>>>> '${B}/.config' + rm -f ${B}/.config.patched yes '' | oe_runmake
>>>> oldconfig } -- 1.9.1
>>> Nice, some small comments only. Please write a short summary of the
>>> feature (kernel-yocto: allow in-tree defconfig) but keep the bugzilla
>>> as a reference for further info. Always good to have some background
>>> found
>> This is seems a significant core change so I wanted to make sure these
>> individual changes were as easily searchable as possible in case any
>> problems arise in future. Can you provide an example of what you are
>> suggesting for the commit msg?
> Perhaps something like:
> 
> Start using the "in-tree defconfig" solution provided in poky[0]. To specify an "in-tree" defconfig file, edit the recipe that builds your kernel so that it has the following command form:
> 
>      KBUILD_DEFCONFIG_KMACHINE ?= defconfig_file
>                 
> 
> You need to append the variable with KMACHINE and then supply the path to your "in-tree" defconfig file. 
> 
> In order to achieve this in meta-raspberrypi will need to:
> 
> - start using KBUILD_DEFCONFIG_KMACHINE
> - Remove placeholder defconfig and custom copying logic.
> - Avoid replacing all Yocto project configured settings in do_configure_prepend.
> 
> For more background regarding this migration read the bugzilla bug info[1].
> 
> [0] - http://www.yoctoproject.org/docs/1.8/kernel-dev/kernel-dev.html#using-an-in-tree-defconfig-file
> [1] - https://bugzilla.yoctoproject.org/show_bug.cgi?id=7474
> 

Very comprehensive. Many thanks.

>>> directly in the commit msg itself. Have you tested it using both
>>> poky:master and poky:fido?
>> Rpi2 fido 3.18.16 with/without sound patch, 4.1.3 with/without sound patch.
>>
>> BR,
>>
>> Alex
> 
> Ok, since there has been some changes (not only the early DT change) in
> poky:master it would be good to do the same tests there. Andrei have to
> correct me if wrong, but since we have a fido branch in meta-raspberrypi
> that's the branch that is recommended to use against poky:fido, 'master'
> is in first place verified against poky:master (latest and greatest).
>

Four test builds was enough yesterday. I will look at master when I get
a chance. As we pursue the conversation on a review process a related
conversation is getting an automated build system going again as I think
it would be very useful in this context.

DynamicDevices may be able to help here. I had a very positive
experience with AppVeyor when I was putting the Mono Win32 automated
build system together and am wondering what's currently best for Linux
automated building (Jenkins?). Maybe that conversation is best broken
out in the Github vs Gerrit vs A.N.Other thread.

BR, Alex



More information about the yocto mailing list