[v2] u-boot-custom: Add a config package for Linux user-space

Message ID 20200918084907.1160151-1-hws@denx.de
State Accepted, archived
Headers show
Series [v2] u-boot-custom: Add a config package for Linux user-space | expand

Commit Message

Harald Seiler Sept. 18, 2020, 12:49 a.m. UTC
Add a new (optional) u-boot-${MACHINE}-config package (which also
provides u-boot-config) that contains configuration files for Linux
user-space.  Namely, the default environment as /etc/u-boot-initial-env
and a config for envtools as /etc/fw_env.config.

This new package can be enabled by setting

    U_BOOT_CONFIG_PACKAGE = "1"

in a concrete U-Boot recipe.  The recipe then also needs to provide
a fw_env.config file in its SRC_URI / in ${WORKDIR}.

Signed-off-by: Harald Seiler <hws@denx.de>
---

Notes:
    Changes in v2:
    
    - Rebased on latest upstream

 meta/recipes-bsp/u-boot/files/debian/rules |  1 +
 meta/recipes-bsp/u-boot/u-boot-custom.inc  | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+)

Comments

Jan Kiszka Oct. 13, 2020, 1:19 a.m. UTC | #1
On 18.09.20 10:49, Harald Seiler wrote:
> Add a new (optional) u-boot-${MACHINE}-config package (which also
> provides u-boot-config) that contains configuration files for Linux
> user-space.  Namely, the default environment as /etc/u-boot-initial-env
> and a config for envtools as /etc/fw_env.config.
> 
> This new package can be enabled by setting
> 
>     U_BOOT_CONFIG_PACKAGE = "1"
> 
> in a concrete U-Boot recipe.  The recipe then also needs to provide
> a fw_env.config file in its SRC_URI / in ${WORKDIR}.
> 
> Signed-off-by: Harald Seiler <hws@denx.de>
> ---
> 
> Notes:
>     Changes in v2:
>     
>     - Rebased on latest upstream
> 
>  meta/recipes-bsp/u-boot/files/debian/rules |  1 +
>  meta/recipes-bsp/u-boot/u-boot-custom.inc  | 21 +++++++++++++++++++++
>  2 files changed, 22 insertions(+)
> 
> diff --git a/meta/recipes-bsp/u-boot/files/debian/rules b/meta/recipes-bsp/u-boot/files/debian/rules
> index 92c07b170700..85bda913ca3a 100755
> --- a/meta/recipes-bsp/u-boot/files/debian/rules
> +++ b/meta/recipes-bsp/u-boot/files/debian/rules
> @@ -15,6 +15,7 @@ endif
>  override_dh_auto_build:
>  	$(MAKE) $(PARALLEL_MAKE) $(U_BOOT_CONFIG)
>  	$(MAKE) $(PARALLEL_MAKE) ${U_BOOT_BIN}
> +	./scripts/get_default_envs.sh >u-boot-initial-env
>  	$(MAKE) $(PARALLEL_MAKE) $(SET_CROSS_BUILD_TOOLS) NO_SDL=1 tools-only envtools
>  
>  override_dh_auto_install:
> diff --git a/meta/recipes-bsp/u-boot/u-boot-custom.inc b/meta/recipes-bsp/u-boot/u-boot-custom.inc
> index 41124fc359e8..3e4fc1b6ec3c 100644
> --- a/meta/recipes-bsp/u-boot/u-boot-custom.inc
> +++ b/meta/recipes-bsp/u-boot/u-boot-custom.inc
> @@ -11,6 +11,8 @@ DESCRIPTION ?= "Custom U-Boot"
>  
>  PROVIDES += "u-boot-${MACHINE} u-boot-${MACHINE}-dev"
>  PROVIDES += "${@'u-boot-tools' if d.getVar('U_BOOT_TOOLS_PACKAGE') == '1' else ''}"
> +PROVIDES += "${@('u-boot-config u-boot-' + d.getVar('MACHINE') + '-config') \
> +    if d.getVar('U_BOOT_CONFIG_PACKAGE') == '1' else ''}"
>  
>  inherit dpkg
>  
> @@ -22,6 +24,7 @@ TEMPLATE_FILES = "debian/control.tmpl"
>  TEMPLATE_VARS += "MACHINE BUILD_DEPENDS"
>  
>  U_BOOT_TOOLS_PACKAGE ?= "0"
> +U_BOOT_CONFIG_PACKAGE ?= "0"
>  
>  do_prepare_build() {
>      cp -r ${WORKDIR}/debian ${S}/
> @@ -41,6 +44,24 @@ Package: u-boot-tools
>  Architecture: linux-any
>  Depends: \${shlibs:Depends}, \${misc:Depends}
>  Description: ${DESCRIPTION}, companion tools
> +EOF
> +    fi
> +
> +    if [ "${U_BOOT_CONFIG_PACKAGE}" = "1" ]; then
> +        cp ${WORKDIR}/fw_env.config ${S}/ || \
> +            die "U_BOOT_CONFIG_PACKAGE requires a fw_env.config in SRC_URI"
> +
> +        cat <<EOF >>${S}/debian/control
> +
> +Package: u-boot-${MACHINE}-config
> +Provides: u-boot-config
> +Architecture: ${DISTRO_ARCH}
> +Description: ${DESCRIPTION}, environment configuration
> +EOF
> +
> +        cat <<EOF >>${S}/debian/u-boot-${MACHINE}-config.install
> +u-boot-initial-env /etc
> +fw_env.config      /etc
>  EOF
>      fi
>  }
> 

This is also overdue.

Jan
Baurzhan Ismagulov Oct. 22, 2020, 8:14 a.m. UTC | #2
Hello Harald,

On Fri, Sep 18, 2020 at 10:49:07AM +0200, Harald Seiler wrote:
> Add a new (optional) u-boot-${MACHINE}-config package (which also
> provides u-boot-config) that contains configuration files for Linux
> user-space.  Namely, the default environment as /etc/u-boot-initial-env
> and a config for envtools as /etc/fw_env.config.
> 
> This new package can be enabled by setting
> 
>     U_BOOT_CONFIG_PACKAGE = "1"
> 
> in a concrete U-Boot recipe.  The recipe then also needs to provide
> a fw_env.config file in its SRC_URI / in ${WORKDIR}.

Applied to next, thanks for your patience.

With kind regards,
Baurzhan.

Patch

diff --git a/meta/recipes-bsp/u-boot/files/debian/rules b/meta/recipes-bsp/u-boot/files/debian/rules
index 92c07b170700..85bda913ca3a 100755
--- a/meta/recipes-bsp/u-boot/files/debian/rules
+++ b/meta/recipes-bsp/u-boot/files/debian/rules
@@ -15,6 +15,7 @@  endif
 override_dh_auto_build:
 	$(MAKE) $(PARALLEL_MAKE) $(U_BOOT_CONFIG)
 	$(MAKE) $(PARALLEL_MAKE) ${U_BOOT_BIN}
+	./scripts/get_default_envs.sh >u-boot-initial-env
 	$(MAKE) $(PARALLEL_MAKE) $(SET_CROSS_BUILD_TOOLS) NO_SDL=1 tools-only envtools
 
 override_dh_auto_install:
diff --git a/meta/recipes-bsp/u-boot/u-boot-custom.inc b/meta/recipes-bsp/u-boot/u-boot-custom.inc
index 41124fc359e8..3e4fc1b6ec3c 100644
--- a/meta/recipes-bsp/u-boot/u-boot-custom.inc
+++ b/meta/recipes-bsp/u-boot/u-boot-custom.inc
@@ -11,6 +11,8 @@  DESCRIPTION ?= "Custom U-Boot"
 
 PROVIDES += "u-boot-${MACHINE} u-boot-${MACHINE}-dev"
 PROVIDES += "${@'u-boot-tools' if d.getVar('U_BOOT_TOOLS_PACKAGE') == '1' else ''}"
+PROVIDES += "${@('u-boot-config u-boot-' + d.getVar('MACHINE') + '-config') \
+    if d.getVar('U_BOOT_CONFIG_PACKAGE') == '1' else ''}"
 
 inherit dpkg
 
@@ -22,6 +24,7 @@  TEMPLATE_FILES = "debian/control.tmpl"
 TEMPLATE_VARS += "MACHINE BUILD_DEPENDS"
 
 U_BOOT_TOOLS_PACKAGE ?= "0"
+U_BOOT_CONFIG_PACKAGE ?= "0"
 
 do_prepare_build() {
     cp -r ${WORKDIR}/debian ${S}/
@@ -41,6 +44,24 @@  Package: u-boot-tools
 Architecture: linux-any
 Depends: \${shlibs:Depends}, \${misc:Depends}
 Description: ${DESCRIPTION}, companion tools
+EOF
+    fi
+
+    if [ "${U_BOOT_CONFIG_PACKAGE}" = "1" ]; then
+        cp ${WORKDIR}/fw_env.config ${S}/ || \
+            die "U_BOOT_CONFIG_PACKAGE requires a fw_env.config in SRC_URI"
+
+        cat <<EOF >>${S}/debian/control
+
+Package: u-boot-${MACHINE}-config
+Provides: u-boot-config
+Architecture: ${DISTRO_ARCH}
+Description: ${DESCRIPTION}, environment configuration
+EOF
+
+        cat <<EOF >>${S}/debian/u-boot-${MACHINE}-config.install
+u-boot-initial-env /etc
+fw_env.config      /etc
 EOF
     fi
 }