From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6751292434813026304 X-Received: by 2002:a17:906:418:: with SMTP id d24mr39447690eja.305.1571941783702; Thu, 24 Oct 2019 11:29:43 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:907:20b2:: with SMTP id pw18ls1525842ejb.11.gmail; Thu, 24 Oct 2019 11:29:43 -0700 (PDT) X-Google-Smtp-Source: APXvYqx1a5SOqRAlMOztuWhwiEn9odUDtemPjW9Ge+cAS4QXV0Jc+Yop7AmuzKsVkB5/V50m5Y1I X-Received: by 2002:a17:906:f2d4:: with SMTP id gz20mr5124848ejb.215.1571941783176; Thu, 24 Oct 2019 11:29:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571941783; cv=none; d=google.com; s=arc-20160816; b=xE/SLpzFaZpnk2cvZFffgzJ36EQ5eAN5/Sbu7d9+3YBz0aIUye/zCMnWAtPx6rK2N6 LQBiiSyIMTpHevLQi/G5Ahj+c1ebTizZadQkXyZajltPwhX0DPkGQN0OAIdTR9kbAUd/ jnDXt/JBYtWqOEBu1wLMRLWCvAgyzhOCPmZmPVsktlrpxAjtffOMAg6URMZYtW9rvYrC xQZxuRfQu1VmAgOuK4bm3FvDWfhSxFCNsIa5/bByKUO0IseJ1sPpMhXS6N8edAAdPE/s PWDqxH7H3dne+ahNgdsesKCKpsgIe+Q2VKMQchiR9NlG/vQ7BHNnM5gcZvQDa1UZ8fMN u1uA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date; bh=BhRBdbFu386gMNmh2KTFyFFCCI7Xf+Fjz+haxkFITdg=; b=tnpu68F070O2SjvjLBUi75/2tDpSaq4eiMrXBh6MZxFAfBmSNVBW5Fa73H9C1Vz61y hRLIkMJqLMg163dxm1/peSigHZAqOVrc8yGXXxXZo+fYLMku0+KQYWS7Lg/f0yPo132G 9H0ZuLPJruZZ+BGpHfle1ikD2eofnw154YfrqCVLDlkRRVrN5OUQZTHyEJBkiwXXlkMP +dLteSaTwFj8+OxRVtqaBrYPWdVezVBfxJdFKwdZPQNqmaEkWME2T2fcRDp25U37be/3 vtQ8w4A55KhYCOGiJRwsWZzg5fU/GD9bo1ynuWJNHWW3NmpHams5ygbV7hriLVYYTLWy nKjQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from gecko.sbs.de (gecko.sbs.de. [194.138.37.40]) by gmr-mx.google.com with ESMTPS id c28si1277723eda.4.2019.10.24.11.29.43 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Oct 2019 11:29:43 -0700 (PDT) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.40 as permitted sender) client-ip=194.138.37.40; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail1.sbs.de (mail1.sbs.de [192.129.41.35]) by gecko.sbs.de (8.15.2/8.15.2) with ESMTPS id x9OITgF9005413 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Oct 2019 20:29:42 +0200 Received: from md1za8fc.ad001.siemens.net ([139.25.0.8]) by mail1.sbs.de (8.15.2/8.15.2) with ESMTP id x9OITg1T008763; Thu, 24 Oct 2019 20:29:42 +0200 Date: Thu, 24 Oct 2019 20:29:42 +0200 From: Henning Schild To: Cedric Hombourger Cc: Subject: Re: [PATCH 08/10] linux-custom: add support for kernel config fragments Message-ID: <20191024202942.28a2eb4d@md1za8fc.ad001.siemens.net> In-Reply-To: <18939701-bb6f-5790-608c-8b2fd498c666@mentor.com> References: <1571907744-1121-1-git-send-email-Cedric_Hombourger@mentor.com> <1571907744-1121-9-git-send-email-Cedric_Hombourger@mentor.com> <20191024202102.6b7566ea@md1za8fc.ad001.siemens.net> <18939701-bb6f-5790-608c-8b2fd498c666@mentor.com> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TUID: AQFfwRC/SZCT Am Thu, 24 Oct 2019 20:25:15 +0200 schrieb Cedric Hombourger : > Hi Henning, > > On 10/24/2019 8:21 PM, Henning Schild wrote: > > Is that taken from or inspired by OE? I have seen patterns like that > > for isar: > It is inspired. they use their scc tool but eventually use the kernel > merge_config tool > > do_prepare_build_prepend() { > > cat ${WORKDIR}/preempt-rt.cfg >> ${WORKDIR}/${KERNEL_DEFCONFIG} > > } > I have used this kludge myself :) but the kernel provides a tool to > facilitate merging of config fragments so let's use it so that we do > not come up with different mechanisms > > In a recipe that extends a generic kernel recipe with some config > > switches. > > > > I am personally not a big fan of magic, and it seems the extension > > ".cfg" makes magic happen. We will need an apply=no like for > > patches. > OE does not but I see no harm in taking inspiration from OE and > tweaking it to our liking I think it would be clean to have a way to disable the magic. Even if SRC_URI entries ending on .cfg in a kernel recipe are not likely to be required for something else. Henning > > > > Henning > > > > > > Am Thu, 24 Oct 2019 11:02:22 +0200 > > schrieb Cedric Hombourger : > > > >> Check for .cfg files listed in SRC_URI and merge them with the > >> main defconfig using the kernel merge_config script. > >> > >> Signed-off-by: Cedric Hombourger > >> --- > >> .../linux/files/build-kernel.sh | 5 ++++- > >> meta/recipes-kernel/linux/linux-custom.inc | 20 > >> +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 > >> deletion(-) > >> > >> diff --git a/meta/recipes-kernel/linux/files/build-kernel.sh > >> b/meta/recipes-kernel/linux/files/build-kernel.sh index > >> cb310f7..9faa6bb 100644 --- > >> a/meta/recipes-kernel/linux/files/build-kernel.sh +++ > >> b/meta/recipes-kernel/linux/files/build-kernel.sh @@ -36,7 +36,10 > >> @@ REPACK_DIR="$1/../repack" > >> REPACK_LINUX_IMAGE_DIR="${REPACK_DIR}/linux-image" > >> REPACK_LINUX_HEADERS_DIR="${REPACK_DIR}/linux-headers" > >> -make ${KERNEL_DEFCONFIG} > >> +make ${KERNEL_DEFCONFIG} || exit ${?} > >> +if [ -n "${KERNEL_FRAGMENTS}" ]; then > >> + scripts/kconfig/merge_config.sh -m .config ${KERNEL_FRAGMENTS} > >> +fi > >> > >> KV=$( make -s kernelrelease ) > >> if [ "${KV}" != "${PV}" ]; then > >> diff --git a/meta/recipes-kernel/linux/linux-custom.inc > >> b/meta/recipes-kernel/linux/linux-custom.inc index c53cd90..b06529f > >> 100644 --- a/meta/recipes-kernel/linux/linux-custom.inc > >> +++ b/meta/recipes-kernel/linux/linux-custom.inc > >> @@ -18,6 +18,16 @@ python() { > >> 'linux-headers-' + kernel_name) > >> } > >> > >> +def config_fragments(d): > >> + fragments = [] > >> + sources = d.getVar("SRC_URI").split() > >> + for s in sources: > >> + _, _, local, _, _, parm = bb.fetch.decodeurl(s) > >> + base, ext = os.path.splitext(os.path.basename(local)) > >> + if ext and ext in (".cfg"): > >> + fragments.append(local) > >> + return fragments > >> + > >> inherit dpkg-base > >> > >> SRC_URI += "file://build-kernel.sh" > >> @@ -71,6 +81,16 @@ dpkg_runbuild() { > >> defconfig="defconfig" > >> fi > >> > >> + # copy config fragments over to the kernel tree > >> + src_frags="${@ " ".join(config_fragments(d)) }" > >> + out_frags="${@ " ".join(map(lambda frag: > >> 'debian/fragments/' > >> + frag, config_fragments(d))) }" > >> + rm -rf ${S}/debian/fragments > >> + if [ -n "${src_frags}" ]; then > >> + mkdir -p ${S}/debian/fragments > >> + (cd ${WORKDIR} && cp ${src_frags} > >> ${S}/debian/fragments/) > >> + fi > >> + export KERNEL_FRAGMENTS="${out_frags}" > >> + > >> E="${@ bb.utils.export_proxies(d)}" > >> > >> export PV=${PV}