2020-06-25 23:35:31

by Domenico Andreoli

[permalink] [raw]
Subject: [PATCH v2] kbuild: buildtar: add arm64 dtbs support

From: Domenico Andreoli <[email protected]>

Make 'make tar-pkg' install dtbs on arm64.

Signed-off-by: Domenico Andreoli <[email protected]>

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
+ 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

--
rsa4096: 3B10 0CA1 8674 ACBA B4FE FCD2 CE5B CF17 9960 DE13
ed25519: FFB4 0CC3 7F2E 091D F7DA 356E CC79 2832 ED38 CB05


2020-06-26 07:05:36

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH v2] kbuild: buildtar: add arm64 dtbs support

On Fri, Jun 26, 2020 at 5:51 AM Domenico Andreoli
<[email protected]> wrote:
>
> From: Domenico Andreoli <[email protected]>
>
> Make 'make tar-pkg' install dtbs on arm64.
>
> Signed-off-by: Domenico Andreoli <[email protected]>
>
> 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

2020-06-26 21:41:02

by Domenico Andreoli

[permalink] [raw]
Subject: Re: [PATCH v2] kbuild: buildtar: add arm64 dtbs support

On Fri, Jun 26, 2020 at 03:16:58PM +0900, Masahiro Yamada wrote:
> On Fri, Jun 26, 2020 at 5:51 AM Domenico Andreoli
> <[email protected]> wrote:
> >
> > From: Domenico Andreoli <[email protected]>
> >
> > Make 'make tar-pkg' install dtbs on arm64.
> >
> > Signed-off-by: Domenico Andreoli <[email protected]>
> >
> > 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

--
rsa4096: 3B10 0CA1 8674 ACBA B4FE FCD2 CE5B CF17 9960 DE13
ed25519: FFB4 0CC3 7F2E 091D F7DA 356E CC79 2832 ED38 CB05

2020-06-27 12:04:53

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH v2] kbuild: buildtar: add arm64 dtbs support

On Sat, Jun 27, 2020 at 6:40 AM Domenico Andreoli
<[email protected]> 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
> > <[email protected]> wrote:
> > >
> > > From: Domenico Andreoli <[email protected]>
> > >
> > > Make 'make tar-pkg' install dtbs on arm64.
> > >
> > > Signed-off-by: Domenico Andreoli <[email protected]>
> > >
> > > 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



--
Best Regards
Masahiro Yamada

2020-06-27 21:22:18

by Domenico Andreoli

[permalink] [raw]
Subject: Re: [PATCH v2] kbuild: buildtar: add arm64 dtbs support

On Sat, Jun 27, 2020 at 09:02:52PM +0900, Masahiro Yamada wrote:
> On Sat, Jun 27, 2020 at 6:40 AM Domenico Andreoli <[email protected]> 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 <[email protected]> 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

--
rsa4096: 3B10 0CA1 8674 ACBA B4FE FCD2 CE5B CF17 9960 DE13
ed25519: FFB4 0CC3 7F2E 091D F7DA 356E CC79 2832 ED38 CB05

2020-06-28 03:48:08

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH v2] kbuild: buildtar: add arm64 dtbs support

On Sun, Jun 28, 2020 at 6:21 AM Domenico Andreoli
<[email protected]> 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 <[email protected]> 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 <[email protected]> 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



--
Best Regards
Masahiro Yamada

2020-06-28 17:46:38

by Domenico Andreoli

[permalink] [raw]
Subject: Re: [PATCH v2] kbuild: buildtar: add arm64 dtbs support

On Sun, Jun 28, 2020 at 12:46:28PM +0900, Masahiro Yamada wrote:
> On Sun, Jun 28, 2020 at 6:21 AM Domenico Andreoli
> <[email protected]> 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 <[email protected]> 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 <[email protected]> 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

--
rsa4096: 3B10 0CA1 8674 ACBA B4FE FCD2 CE5B CF17 9960 DE13
ed25519: FFB4 0CC3 7F2E 091D F7DA 356E CC79 2832 ED38 CB05