[v2] kbuild: buildtar: add arm64 dtbs support
diff mbox series

Message ID 5ef50e52.1c69fb81.b6cbd.bd8e@mx.google.com
State New
Headers show
Series
  • [v2] kbuild: buildtar: add arm64 dtbs support
Related show

Commit Message

Domenico Andreoli June 25, 2020, 8:51 p.m. UTC
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(+)

Comments

Masahiro Yamada June 26, 2020, 6:16 a.m. UTC | #1
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
Domenico Andreoli June 26, 2020, 9:40 p.m. UTC | #2
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
Masahiro Yamada June 27, 2020, 12:02 p.m. UTC | #3
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
Domenico Andreoli June 27, 2020, 9:21 p.m. UTC | #4
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
Masahiro Yamada June 28, 2020, 3:46 a.m. UTC | #5
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
Domenico Andreoli June 28, 2020, 5:46 p.m. UTC | #6
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

Patch
diff mbox series

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