Message ID | 5ef50e52.1c69fb81.b6cbd.bd8e@mx.google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] kbuild: buildtar: add arm64 dtbs support | expand |
On Fri, Jun 26, 2020 at 5:51 AM Domenico Andreoli <domenico.andreoli@linux.com> wrote: > > From: Domenico Andreoli <domenico.andreoli@linux.com> > > Make 'make tar-pkg' install dtbs on arm64. > > Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com> > > v2: > - Destination path includes the kernel version, as expected > > --- > scripts/package/buildtar | 9 +++++++++ > 1 file changed, 9 insertions(+) > > Index: b/scripts/package/buildtar > =================================================================== > --- a/scripts/package/buildtar > +++ b/scripts/package/buildtar > @@ -125,6 +125,15 @@ case "${ARCH}" in > ;; > esac > > +# > +# Install dtbs > +# > +case "${ARCH}" in Instead of checking ${ARCH}, can you you do if grep -q '^CONFIG_OF_EARLY_FLATTREE=y' include/config/auto.conf; then ? This is what the deb package build does: https://github.com/masahir0y/linux/blob/v5.7/scripts/package/builddeb#L145 > + arm64) > + make ARCH="${ARCH}" -f ${srctree}/Makefile INSTALL_DTBS_PATH="${tmpdir}/boot/dtbs/${KERNELRELEASE}" dtbs_install > + ;; > +esac > + Or, you can use INSTALL_PATH="${tmpdir}/boot" to make it shorter. -- Best Regards Masahiro Yamada
On Fri, Jun 26, 2020 at 03:16:58PM +0900, Masahiro Yamada wrote: > On Fri, Jun 26, 2020 at 5:51 AM Domenico Andreoli > <domenico.andreoli@linux.com> wrote: > > > > From: Domenico Andreoli <domenico.andreoli@linux.com> > > > > Make 'make tar-pkg' install dtbs on arm64. > > > > Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com> > > > > v2: > > - Destination path includes the kernel version, as expected > > > > --- > > scripts/package/buildtar | 9 +++++++++ > > 1 file changed, 9 insertions(+) > > > > Index: b/scripts/package/buildtar > > =================================================================== > > --- a/scripts/package/buildtar > > +++ b/scripts/package/buildtar > > @@ -125,6 +125,15 @@ case "${ARCH}" in > > ;; > > esac > > > > +# > > +# Install dtbs > > +# > > +case "${ARCH}" in > > Instead of checking ${ARCH}, > can you you do > > if grep -q '^CONFIG_OF_EARLY_FLATTREE=y' include/config/auto.conf; then > > ? Done in v3. > > This is what the deb package build does: > https://github.com/masahir0y/linux/blob/v5.7/scripts/package/builddeb#L145 > > > > + arm64) > > + make ARCH="${ARCH}" -f ${srctree}/Makefile INSTALL_DTBS_PATH="${tmpdir}/boot/dtbs/${KERNELRELEASE}" dtbs_install > > + ;; > > +esac > > + > > > Or, you can use INSTALL_PATH="${tmpdir}/boot" > to make it shorter. This does not work, INSTALL_DTBS_PATH gets somehow defined along the twisted path to buildtar and therefore needs to be explicitly specified for the new destination. > -- > Best Regards > Masahiro Yamada Thank you for the review. Regards, Domenico
On Sat, Jun 27, 2020 at 6:40 AM Domenico Andreoli <domenico.andreoli@linux.com> wrote: > > On Fri, Jun 26, 2020 at 03:16:58PM +0900, Masahiro Yamada wrote: > > On Fri, Jun 26, 2020 at 5:51 AM Domenico Andreoli > > <domenico.andreoli@linux.com> wrote: > > > > > > From: Domenico Andreoli <domenico.andreoli@linux.com> > > > > > > Make 'make tar-pkg' install dtbs on arm64. > > > > > > Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com> > > > > > > v2: > > > - Destination path includes the kernel version, as expected > > > > > > --- > > > scripts/package/buildtar | 9 +++++++++ > > > 1 file changed, 9 insertions(+) > > > > > > Index: b/scripts/package/buildtar > > > =================================================================== > > > --- a/scripts/package/buildtar > > > +++ b/scripts/package/buildtar > > > @@ -125,6 +125,15 @@ case "${ARCH}" in > > > ;; > > > esac > > > > > > +# > > > +# Install dtbs > > > +# > > > +case "${ARCH}" in > > > > Instead of checking ${ARCH}, > > can you you do > > > > if grep -q '^CONFIG_OF_EARLY_FLATTREE=y' include/config/auto.conf; then > > > > ? > > Done in v3. > > > > > This is what the deb package build does: > > https://github.com/masahir0y/linux/blob/v5.7/scripts/package/builddeb#L145 > > > > > > > + arm64) > > > + make ARCH="${ARCH}" -f ${srctree}/Makefile INSTALL_DTBS_PATH="${tmpdir}/boot/dtbs/${KERNELRELEASE}" dtbs_install > > > + ;; > > > +esac > > > + > > > > > > Or, you can use INSTALL_PATH="${tmpdir}/boot" > > to make it shorter. > > This does not work, INSTALL_DTBS_PATH gets somehow defined along the > twisted path to buildtar and therefore needs to be explicitly specified > for the new destination. It works. See line 1002 of the top Makefile export INSTALL_DTBS_PATH ?= $(INSTALL_PATH)/dtbs/$(KERNELRELEASE) > > -- > > Best Regards > > Masahiro Yamada > > Thank you for the review. > > Regards, > Domenico > > -- > rsa4096: 3B10 0CA1 8674 ACBA B4FE FCD2 CE5B CF17 9960 DE13 > ed25519: FFB4 0CC3 7F2E 091D F7DA 356E CC79 2832 ED38 CB05
On Sat, Jun 27, 2020 at 09:02:52PM +0900, Masahiro Yamada wrote: > On Sat, Jun 27, 2020 at 6:40 AM Domenico Andreoli <domenico.andreoli@linux.com> wrote: > > On Fri, Jun 26, 2020 at 03:16:58PM +0900, Masahiro Yamada wrote: > > > On Fri, Jun 26, 2020 at 5:51 AM Domenico Andreoli <domenico.andreoli@linux.com> wrote: [...] > > > > > > > > + arm64) > > > > + make ARCH="${ARCH}" -f ${srctree}/Makefile INSTALL_DTBS_PATH="${tmpdir}/boot/dtbs/${KERNELRELEASE}" dtbs_install > > > > + ;; > > > > +esac > > > > + > > > > > > > > > Or, you can use INSTALL_PATH="${tmpdir}/boot" > > > to make it shorter. > > > > This does not work, INSTALL_DTBS_PATH gets somehow defined along the > > twisted path to buildtar and therefore needs to be explicitly specified > > for the new destination. > > It works. > > See line 1002 of the top Makefile > > export INSTALL_DTBS_PATH ?= $(INSTALL_PATH)/dtbs/$(KERNELRELEASE) Exactly. INSTALL_DTBS_PATH is _exported_ in the top Makefile. This is what it seems to happen, in the order: 1. outer 'make dir-pkg' INSTALL_DTBS_PATH is exported with some content 2. control arrives to buildtar INSTALL_DTBS_PATH is there as environment variable 3. inner 'make INSTALL_PATH=${tmpdir}/boot dtbs_install' INSTALL_DTBS_PATH is already set, therefore it is not modified To make the inner invocation work, I see these two options: 1. 'make INSTALL_DTBS_PATH= INSTALL_PATH=${tmpdir}/boot dtb_install' (untested) 2. 'make INSTALL_DTBS_PATH=${tmpdir}/boot/dtbs/${KERNELRELEASE} dtbs_install' I chose 2 but I can switch to 1, if you prefer. No problem. Regards, Domenico
On Sun, Jun 28, 2020 at 6:21 AM Domenico Andreoli <domenico.andreoli@linux.com> wrote: > > On Sat, Jun 27, 2020 at 09:02:52PM +0900, Masahiro Yamada wrote: > > On Sat, Jun 27, 2020 at 6:40 AM Domenico Andreoli <domenico.andreoli@linux.com> wrote: > > > On Fri, Jun 26, 2020 at 03:16:58PM +0900, Masahiro Yamada wrote: > > > > On Fri, Jun 26, 2020 at 5:51 AM Domenico Andreoli <domenico.andreoli@linux.com> wrote: > > [...] > > > > > > > > > > > + arm64) > > > > > + make ARCH="${ARCH}" -f ${srctree}/Makefile INSTALL_DTBS_PATH="${tmpdir}/boot/dtbs/${KERNELRELEASE}" dtbs_install > > > > > + ;; > > > > > +esac > > > > > + > > > > > > > > > > > > Or, you can use INSTALL_PATH="${tmpdir}/boot" > > > > to make it shorter. > > > > > > This does not work, INSTALL_DTBS_PATH gets somehow defined along the > > > twisted path to buildtar and therefore needs to be explicitly specified > > > for the new destination. > > > > It works. > > > > See line 1002 of the top Makefile > > > > export INSTALL_DTBS_PATH ?= $(INSTALL_PATH)/dtbs/$(KERNELRELEASE) > > Exactly. INSTALL_DTBS_PATH is _exported_ in the top Makefile. > > > This is what it seems to happen, in the order: > > 1. outer 'make dir-pkg' > INSTALL_DTBS_PATH is exported with some content > > 2. control arrives to buildtar > INSTALL_DTBS_PATH is there as environment variable > > 3. inner 'make INSTALL_PATH=${tmpdir}/boot dtbs_install' > INSTALL_DTBS_PATH is already set, therefore it is not modified Sorry, I was wrong. Your analysis is definitely right. I will apply v4. Thanks. > > To make the inner invocation work, I see these two options: > > 1. 'make INSTALL_DTBS_PATH= INSTALL_PATH=${tmpdir}/boot dtb_install' (untested) > > 2. 'make INSTALL_DTBS_PATH=${tmpdir}/boot/dtbs/${KERNELRELEASE} dtbs_install' > > I chose 2 but I can switch to 1, if you prefer. No problem. > > > Regards, > Domenico > > -- > rsa4096: 3B10 0CA1 8674 ACBA B4FE FCD2 CE5B CF17 9960 DE13 > ed25519: FFB4 0CC3 7F2E 091D F7DA 356E CC79 2832 ED38 CB05
On Sun, Jun 28, 2020 at 12:46:28PM +0900, Masahiro Yamada wrote: > On Sun, Jun 28, 2020 at 6:21 AM Domenico Andreoli > <domenico.andreoli@linux.com> wrote: > > > > On Sat, Jun 27, 2020 at 09:02:52PM +0900, Masahiro Yamada wrote: > > > On Sat, Jun 27, 2020 at 6:40 AM Domenico Andreoli <domenico.andreoli@linux.com> wrote: > > > > On Fri, Jun 26, 2020 at 03:16:58PM +0900, Masahiro Yamada wrote: > > > > > On Fri, Jun 26, 2020 at 5:51 AM Domenico Andreoli <domenico.andreoli@linux.com> wrote: > > > > [...] > > > > > > > > > > > > > > + arm64) > > > > > > + make ARCH="${ARCH}" -f ${srctree}/Makefile INSTALL_DTBS_PATH="${tmpdir}/boot/dtbs/${KERNELRELEASE}" dtbs_install > > > > > > + ;; > > > > > > +esac > > > > > > + > > > > > > > > > > > > > > > Or, you can use INSTALL_PATH="${tmpdir}/boot" > > > > > to make it shorter. > > > > > > > > This does not work, INSTALL_DTBS_PATH gets somehow defined along the > > > > twisted path to buildtar and therefore needs to be explicitly specified > > > > for the new destination. > > > > > > It works. > > > > > > See line 1002 of the top Makefile > > > > > > export INSTALL_DTBS_PATH ?= $(INSTALL_PATH)/dtbs/$(KERNELRELEASE) > > > > Exactly. INSTALL_DTBS_PATH is _exported_ in the top Makefile. > > > > > > This is what it seems to happen, in the order: > > > > 1. outer 'make dir-pkg' > > INSTALL_DTBS_PATH is exported with some content > > > > 2. control arrives to buildtar > > INSTALL_DTBS_PATH is there as environment variable > > > > 3. inner 'make INSTALL_PATH=${tmpdir}/boot dtbs_install' > > INSTALL_DTBS_PATH is already set, therefore it is not modified > > Sorry, I was wrong. > Your analysis is definitely right. > > > I will apply v4. > > Thanks. > Thanks to you! Domenico
Index: b/scripts/package/buildtar =================================================================== --- a/scripts/package/buildtar +++ b/scripts/package/buildtar @@ -125,6 +125,15 @@ case "${ARCH}" in ;; esac +# +# Install dtbs +# +case "${ARCH}" in + arm64) + make ARCH="${ARCH}" -f ${srctree}/Makefile INSTALL_DTBS_PATH="${tmpdir}/boot/dtbs/${KERNELRELEASE}" dtbs_install + ;; +esac + if [ "${1}" = dir-pkg ]; then echo "Kernel tree successfully created in $tmpdir" exit 0