
ਕੀ ਤੁਸੀਂ ਕਦੇ ਵੀ ਆਪਣੀ ਕਸਟਮ ਮੈਟਾ-ਲੇਅਰ ਵਿੱਚ ਵਿਅੰਜਨ ਵੇਰੀਏਬਲਾਂ ਦਾ ਓਵਰਰਾਈਡ ਬਣਾਉਂਦੇ ਹੋ ਅਤੇ ਕੁਝ ਵੀ ਨਹੀਂ ਹੁੰਦਾ?
ਆਪਣੇ ਆਪ 'ਤੇ ਸ਼ੱਕ ਨਾ ਕਰੋ ਅਤੇ ਵਰਤੀਆਂ ਗਈਆਂ ਮੈਟਾ-ਪਰਤਾਂ ਦੀ ਤਰਜੀਹ 'ਤੇ ਇੱਕ ਨਜ਼ਰ ਮਾਰੋ।
ਉਦਾਹਰਨ
ਅਸੀਂ ਰਸਬੇਰੀ ਪਾਈ ੪ ਲਈ ਇੱਕ ਯੋਕਟੋ ਲੀਨਕਸ ਡਿਸਟਰੋ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹਾਂ ਅਤੇ ਪੀਐਸਪਲੈਸ਼ ਪਕਵਾਨ-ਵਿਧੀ ਦੇ ਪਿਛੋਕੜ ਚਿੱਤਰ ਨੂੰ ਬਦਲਣਾ ਚਾਹੁੰਦੇ ਹਾਂ। ਅਜਿਹਾ ਕਰਨ ਲਈ, ਅਸੀਂ ਆਪਣੀ ਕਸਟਮ ਮੈਟਾ-ਲੇਅਰ 'ਮੈਟਾ-ਇੰਟਰਇਲੈਕਟ੍ਰੋਨਿਕਸ' ਵਿੱਚ ਇੱਕ ਫੋਲਡਰ 'psplash' ਬਣਾਉਂਦੇ ਹਾਂ ਅਤੇ 'SPLASH_IMAGES' ਦੇ ਵੇਰੀਏਬਲ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨ ਲਈ 'psplash_%.bbappend' ਫਾਈਲ ਜੋੜਦੇ ਹਾਂ।
SPLASH_IMAGES:rpi = "file://psplash-ixlogo-white-img.h;outsuffix=raspberrypi"
'bblayers.conf' ਵਿੱਚ 'ਮੈਟਾ-ਇੰਟਰ-ਇਲੈਕਟ੍ਰੋਨਿਕਸ' ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ ਲੀਨਕਸ ਡਿਸਟਰੋ ਨੂੰ ਬਿੱਟਬੈਕ ਕਰਦੇ ਹਾਂ, ਇਸਨੂੰ SD ਕਾਰਡ ਨਾਲ ਫਲੈਸ਼ ਕਰਦੇ ਹਾਂ ਅਤੇ ਇਸ ਦੇ ਨਾਲ ਰਸਬੇਰੀ ਪਾਈ 4 ਨੂੰ ਬੂਟ ਕਰਦੇ ਹਾਂ।
ਪਰ ਸਪਲੈਸ਼ ਸਕ੍ਰੀਨ ਲਈ ਕੋਈ ਕਸਟਮ ਬੈਕਗ੍ਰਾਉਂਡ ਚਿੱਤਰ ਨਹੀਂ ਵਰਤਿਆ ਗਿਆ ਸੀ - ਅਜਿਹਾ ਕਿਉਂ?
ਇਸ ਵਿਵਹਾਰ ਦਾ ਕਾਰਨ ਕੀ ਹੈ?
'ਤਰੁੱਟੀ' ਦੀ ਖੋਜ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ ਮੈਟਾ-ਪਰਤਾਂ ਦੇ ਤਰਜੀਹੀ ਵੇਰੀਏਬਲ 'ਤੇ ਇੱਕ ਨਜ਼ਰ ਮਾਰਦੇ ਹਾਂ। ਮੈਟਾ-ਲੇਅਰਾਂ ਵਿੱਚ ਤਰਜੀਹ ਲਈ ਇੱਕ ਵੇਰੀਏਬਲ ਹੁੰਦਾ ਹੈ ਤਾਂ ਜੋ ਇਹ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਜਾ ਸਕੇ ਕਿ ਲੀਨਕਸ ਡਿਸਟਰੋ ਨੂੰ ਬਿੱਟਬੈਕ ਕਰਦੇ ਸਮੇਂ ਮੈਟਾ-ਲੇਅਰ ਦੀ ਵਰਤੋਂ ਕਿਸ ਰੈਂਕ ਵਿੱਚ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ਵੇਰੀਏਬਲ ਨੂੰ ਫਾਇਲ 'meta- interelectronix/conf/layer.conf' ਵਿੱਚ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ:
BBFILE_PRIORITY_meta-interelectronix = "6"
ਸਾਡੇ ਮਾਮਲੇ ਵਿੱਚ, 'ਮੈਟਾ-ਇੰਟਰ-ਇਲੈਕਟਰੋਨਿਕਸ' ਦੀ ਤਰਜੀਹ '6' 'ਤੇ ਸੈੱਟ ਕੀਤੀ ਗਈ ਸੀ ਅਤੇ 'ਮੈਟਾ-ਰਸਬੇਰੀਪੀ' ਦੀ ਤਰਜੀਹ '9' 'ਤੇ ਸੈੱਟ ਕੀਤੀ ਗਈ ਹੈ।ਜਿੰਨੀ ਵੱਧ ਤਰਜੀਹ ਹੁੰਦੀ ਹੈ, ਓਨਾ ਹੀ ਬਾਅਦ ਵਿੱਚ ਬਿੱਟਬੇਕ 'ਤੇ ਲਾਗੂ ਕੀਤੀਆਂ ਗਈਆਂ bbappend ਫਾਈਲਾਂ ਦੇ ਵੇਰੀਏਬਲ ਹੁੰਦੇ ਸਨ। ਜਿਵੇਂ ਕਿ 'ਮੈਟਾ-ਰਸਬੇਰੀਪੀ' ਵਿੱਚ ਵੀ ਇੱਕ 'psplash_%.bbappend' ਫਾਇਲ ਹੈ, ਇਸ ਫਾਇਲ ਦੇ ਵੇਰੀਏਬਲ ਸਾਡੀ 'meta-interelectronix' ਪਰਤ ਵਿੱਚ ਓਵਰਰਾਈਡਾਂ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰ ਦਿੰਦੇ ਹਨ, ਕੁਝ ਵੀ ਨਹੀਂ ਬਦਲਦਾ।
ਨੋਟ
ਆਪਣੀ ਕਸਟਮ ਮੈਟਾ-ਲੇਅਰ ਦੀ ਤਰਜੀਹ ਨੂੰ ਇੱਕ ਉੱਚ ਸੰਖਿਆ ਵਿੱਚ ਬਦਲੋ, ਉਦਾਹਰਨ ਲਈ 50, ਤਾਂ ਜੋ ਬਾਅਦ ਵਿੱਚ ਆਪਣੀਆਂ ਤਬਦੀਲੀਆਂ ਨੂੰ ਲਾਗੂ ਕੀਤਾ ਜਾ ਸਕੇ ਕਿਉਂਕਿ ਵਿਦੇਸ਼ੀ ਮੈਟਾ-ਲੇਅਰਾਂ ਦੇ ਸਾਰੇ ਓਵਰਰਾਈਡ ਹੁੰਦੇ ਹਨ।
ਸਾਰੀਆਂ ਮੈਟਾ-ਪਰਤਾਂ ਉੱਤੇ ਇੱਕ ਵੇਰੀਏਬਲ ਦੀ ਰੈਂਕਿੰਗ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਇੱਕ ਆਸਾਨ ਕਮਾਂਡ ਹੁੰਦੀ ਹੈ:
bitbake-getvar -r recipe VARIABLE
ਸਾਡੇ ਮਾਮਲੇ ਵਿੱਚ, ਕਮਾਂਡ ਇਹ ਸੀ:
bitbake-getvar -r psplash SPLASH_IMAGES
'ਮੈਟਾ-ਇੰਟਰ-ਇਲੈਕਟਰੋਨਿਕਸ' ਪਰਤ ਦੀ ਤਰਜੀਹ ਨੂੰ '50' ਵਿੱਚ ਬਦਲਣ ਤੋਂ ਬਾਅਦ ਨਤੀਜਾ ਇਸ ਤਰ੍ਹਾਂ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ:
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"
ਤੁਸੀਂ ਹੇਠ ਦਿੱਤੀ ਕਮਾਂਡ ਨਾਲ ਵਰਤੀਆਂ ਗਈਆਂ ਪਰਤਾਂ ਦੀ ਤਰਜੀਹ ਵੀ ਵੇਖ ਸਕਦੇ ਹੋ:
bitbake-layers show-layers
ਕਾਪੀਰਾਈਟ ਲਾਈਸੈਂਸ
ਕਾਪੀਰਾਈਟ © 2022 Interelectronix e.K.
ਇਸ ਪ੍ਰੋਜੈਕਟ ਸਰੋਤ ਕੋਡ ਨੂੰ GPL-3.0 ਲਾਇਸੰਸ ਤਹਿਤ ਲਾਇਸੰਸਸ਼ੁਦਾ ਕੀਤਾ ਗਿਆ ਹੈ।