Software embebido - Dependencia de recetas de Yocto una captura de pantalla de un ordenador

Dependencias de recetas de Yocto

Cómo obtener dependencias entre las variables de la receta

¿Ha creado ya una invalidación de las variables de la receta en su metacapa personalizada pero no pasa nada?

No dude de usted y eche un vistazo a la prioridad de las metacapas utilizadas.

Ejemplo

Queremos crear una distribución Yocto Linux para Raspberry Pi 4 y cambiar la imagen de fondo de la receta psplash. Para ello, creamos una carpeta «psplash» en nuestra metacapa personalizada «meta-interelectronix» y añadimos el archivo «psplash_% .bbappend» para anular las variables de «SPLASH_IMAGES».

SPLASH_IMAGES:rpi = "file://psplash-ixlogo-white-img.h;outsuffix=raspberrypi"

Después de añadir «meta-interelectronix» a «bblayers.conf», ejecutamos un bitbake de la distribución de Linux, la mostramos en una tarjeta SD y arrancamos la Raspberry Pi 4 con ella.

Pero no se utilizó ninguna imagen de fondo personalizada para la pantalla de bienvenida. ¿Por qué?

¿A qué se debe este comportamiento?

Después de buscar el «error», echamos un vistazo a la variable de prioridad de las metacapas. Las metacapas tienen una variable para que la prioridad defina en qué rango se utiliza la metacapa al ejecutar un bitbaking de la distribución de Linux.

La variable se establece en el archivo 'meta-interelectronix/conf/layer.conf':

BBFILE_PRIORITY_meta-interelectronix = "6"

En nuestro caso, la prioridad de 'meta-interelectronix' se estableció en '6' y la prioridad de 'meta-raspberrypi' se establece en '9'.

Cuanto mayor sea la prioridad, más recientes serán las variables de los archivos bbappend aplicadas a bitbake. Como en 'meta-raspberrypi' también es un archivo 'psplash_%.bbappend', las variables de este archivo reemplazan las anulaciones en nuestra capa 'meta-interelectronix' de nuevo, y nada cambia.

Nota

Cambie la prioridad de su metacapa personalizada a un número elevado, por ejemplo, 50, para aplicar sus cambios más tarde que todas las anulaciones de metacapas extranjeras.

¿Cómo facilitar la clasificación de variables?

Hay un comando fácil para obtener la clasificación de una variable en todas las metacapas:

bitbake-getvar -r recipe VARIABLE

En nuestro caso, el comando era:

bitbake-getvar -r psplash SPLASH_IMAGES

El resultado después de cambiar la prioridad de la capa 'meta-interelectronix' a '50' se ve así:

bitbake-getvar -r psplash SPLASH_IMAGES
#
# $SPLASH_IMAGES [4 operations]
#   set /workdir/poky-kirkstone/meta/recipes-core/psplash/psplash_git.bb:19
#     "file://psplash-poky-img.h;outsuffix=default"
#   set /workdir/poky-kirkstone/meta-interelectronix/recipes-core/psplash/psplash_%.bbappend:10
#     "file://psplash-ixlogo-white-img.h;outsuffix=interelectronix"
#   override[rpi]:set /workdir/poky-kirkstone/meta-raspberrypi/recipes-core/psplash/psplash_%.bbappend:2
#     "file://psplash-raspberrypi-img.h;outsuffix=raspberrypi"
#   override[rpi]:set /workdir/poky-kirkstone/meta-interelectronix/recipes-core/psplash/psplash_%.bbappend:9
#     "file://psplash-ixlogo-white-img.h;outsuffix=raspberrypi"
# pre-expansion value:
#   "file://psplash-ixlogo-white-img.h;outsuffix=raspberrypi"
SPLASH_IMAGES="file://psplash-ixlogo-white-img.h;outsuffix=raspberrypi"

También puede mostrar la prioridad de las capas utilizadas con el siguiente comando:

bitbake-layers show-layers

Licencia de copyright

Copyright© 2022 Interelectronix e.K.
El código fuente de este Proyecto está autorizado en virtud de la licencia GPL-3.0.