Hi, Denys: To install fw_env.config or not is also optional, attempt to say that "ALLOW_EMPTY_${PN}-dev = "1"" is needed.
Will send a V4 according to your other comments. //Ming Liu Denys Dmytriyenko <de...@denix.org> 於 2020年5月29日 週五 下午10:11寫道: > On Thu, May 28, 2020 at 02:41:29PM +0200, Ming Liu wrote: > > From: Ming Liu <ming....@toradex.com> > > > > It defaults to ${PN}-initial-env, no functional changes with current > > implementation, but this allows it to be changed in individual u-boot > > recipes. > > > > If UBOOT_INITIAL_ENV is empty, then no initial env would be compiled/ > > installed/deployed, set ALLOW_EMPTY_${PN}-env = "1". > > > > The major purpose for introducing this, is that the users might have > > some scripts on targets like: > > ``` > > /sbin/fw_setenv -f /etc/u-boot-initial-env > > ``` > > > > and it should be able to run against a identical path generated by > > different u-boot recipes. > > > > Signed-off-by: Ming Liu <ming....@toradex.com> > > --- > > meta/recipes-bsp/u-boot/u-boot.inc | 55 +++++++++++++++++++----------- > > 1 file changed, 36 insertions(+), 19 deletions(-) > > > > diff --git a/meta/recipes-bsp/u-boot/u-boot.inc > b/meta/recipes-bsp/u-boot/u-boot.inc > > index be15e1760f..8e60615e5c 100644 > > --- a/meta/recipes-bsp/u-boot/u-boot.inc > > +++ b/meta/recipes-bsp/u-boot/u-boot.inc > > @@ -60,6 +60,10 @@ UBOOT_ENV_BINARY ?= "${UBOOT_ENV}.${UBOOT_ENV_SUFFIX}" > > UBOOT_ENV_IMAGE ?= > "${UBOOT_ENV}-${MACHINE}-${PV}-${PR}.${UBOOT_ENV_SUFFIX}" > > UBOOT_ENV_SYMLINK ?= "${UBOOT_ENV}-${MACHINE}.${UBOOT_ENV_SUFFIX}" > > > > +# Default name of u-boot initial env, but enable individual recipes to > change > > +# this value. > > +UBOOT_INITIAL_ENV ?= "${PN}-initial-env" > > + > > # U-Boot EXTLINUX variables. U-Boot searches for > /boot/extlinux/extlinux.conf > > # to find EXTLINUX conf file. > > UBOOT_EXTLINUX_INSTALL_DIR ?= "/boot/extlinux" > > @@ -137,8 +141,10 @@ do_compile () { > > done > > > > # Generate the uboot-initial-env > > - oe_runmake -C ${S} O=${B}/${config} > u-boot-initial-env > > - cp ${B}/${config}/u-boot-initial-env > ${B}/${config}/u-boot-initial-env-${type} > > + if [ -n "${UBOOT_INITIAL_ENV}" ]; then > > + oe_runmake -C ${S} O=${B}/${config} > u-boot-initial-env > > + cp ${B}/${config}/u-boot-initial-env > ${B}/${config}/u-boot-initial-env-${type} > > + fi > > > > unset k > > fi > > @@ -150,7 +156,9 @@ do_compile () { > > oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_TARGET} > > > > # Generate the uboot-initial-env > > - oe_runmake -C ${S} O=${B} u-boot-initial-env > > + if [ -n "${UBOOT_INITIAL_ENV}" ]; then > > + oe_runmake -C ${S} O=${B} u-boot-initial-env > > + fi > > fi > > } > > > > @@ -168,10 +176,12 @@ do_install () { > > ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} > ${D}/boot/${UBOOT_BINARY} > > > > # Install the uboot-initial-env > > - install -D -m 644 > ${B}/${config}/u-boot-initial-env-${type} > ${D}/${sysconfdir}/${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR} > > - ln -sf > ${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR} > ${D}/${sysconfdir}/${PN}-initial-env-${MACHINE}-${type} > > - ln -sf > ${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR} > ${D}/${sysconfdir}/${PN}-initial-env-${type} > > - ln -sf > ${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR} > ${D}/${sysconfdir}/${PN}-initial-env > > + if [ -n "${UBOOT_INITIAL_ENV}" ]; then > > + install -D -m 644 > ${B}/${config}/u-boot-initial-env-${type} > ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} > > + ln -sf > ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} > ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type} > > + ln -sf > ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} > ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${type} > > + ln -sf > ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} > ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV} > > + fi > > fi > > done > > unset j > > @@ -182,9 +192,11 @@ do_install () { > > ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY} > > > > # Install the uboot-initial-env > > - install -D -m 644 ${B}/u-boot-initial-env > ${D}/${sysconfdir}/${PN}-initial-env-${MACHINE}-${PV}-${PR} > > - ln -sf ${PN}-initial-env-${MACHINE}-${PV}-${PR} > ${D}/${sysconfdir}/${PN}-initial-env-${MACHINE} > > - ln -sf ${PN}-initial-env-${MACHINE}-${PV}-${PR} > ${D}/${sysconfdir}/${PN}-initial-env > > + if [ -n "${UBOOT_INITIAL_ENV}" ]; then > > + install -D -m 644 ${B}/u-boot-initial-env > ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} > > + ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} > ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV}-${MACHINE} > > + ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} > ${D}/${sysconfdir}/${UBOOT_INITIAL_ENV} > > + fi > > fi > > > > if [ -n "${UBOOT_ELF}" ] > > @@ -255,8 +267,9 @@ do_install () { > > PACKAGE_BEFORE_PN += "${PN}-env" > > > > RPROVIDES_${PN}-env += "u-boot-default-env" > > +ALLOW_EMPTY_${PN}-env = "1" > > I don't think this ^ is required, as there are other files in ${PN}-env, > e.g. > fw_env.config: > > > FILES_${PN}-env = " \ > > - ${sysconfdir}/${PN}-initial-env* \ > > + ${sysconfdir}/${UBOOT_INITIAL_ENV}* \ > > ${sysconfdir}/fw_env.config \ > > " > > So, what happens whe UBOOT_INITIAL_ENV is empty? You get ${sysconfdir}/* > in > there. Mayve you need a better check here? > > > > @@ -280,10 +293,12 @@ do_deploy () { > > ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} > ${UBOOT_BINARY} > > > > # Deploy the uboot-initial-env > > - install -D -m 644 > ${B}/${config}/u-boot-initial-env-${type} > ${DEPLOYDIR}/${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR} > > - cd ${DEPLOYDIR} > > - ln -sf > ${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR} > ${PN}-initial-env-${MACHINE}-${type} > > - ln -sf > ${PN}-initial-env-${MACHINE}-${type}-${PV}-${PR} ${PN}-initial-env-${type} > > + if [ -n "${UBOOT_INITIAL_ENV}" ]; then > > + install -D -m 644 > ${B}/${config}/u-boot-initial-env-${type} > ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} > > + cd ${DEPLOYDIR} > > + ln -sf > ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} > ${UBOOT_INITIAL_ENV}-${MACHINE}-${type} > > + ln -sf > ${UBOOT_INITIAL_ENV}-${MACHINE}-${type}-${PV}-${PR} > ${UBOOT_INITIAL_ENV}-${type} > > + fi > > fi > > done > > unset j > > @@ -298,10 +313,12 @@ do_deploy () { > > ln -sf ${UBOOT_IMAGE} ${UBOOT_BINARY} > > > > # Deploy the uboot-initial-env > > - install -D -m 644 ${B}/u-boot-initial-env > ${DEPLOYDIR}/${PN}-initial-env-${MACHINE}-${PV}-${PR} > > - cd ${DEPLOYDIR} > > - ln -sf ${PN}-initial-env-${MACHINE}-${PV}-${PR} > ${PN}-initial-env-${MACHINE} > > - ln -sf ${PN}-initial-env-${MACHINE}-${PV}-${PR} > ${PN}-initial-env > > + if [ -n "${UBOOT_INITIAL_ENV}" ]; then > > + install -D -m 644 ${B}/u-boot-initial-env > ${DEPLOYDIR}/${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} > > + cd ${DEPLOYDIR} > > + ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} > ${UBOOT_INITIAL_ENV}-${MACHINE} > > + ln -sf ${UBOOT_INITIAL_ENV}-${MACHINE}-${PV}-${PR} > ${UBOOT_INITIAL_ENV} > > + fi > > fi > > > > if [ -e ${WORKDIR}/fw_env.config ] ; then > > -- > > 2.26.2 > > > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#139017): https://lists.openembedded.org/g/openembedded-core/message/139017 Mute This Topic: https://lists.openembedded.org/mt/74520509/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-