* Yocto on AMD Zen target ?
@ 2025-04-04 8:15 Joel GUITTET
2025-04-04 9:17 ` [yocto] " Khem Raj
[not found] ` <E63C2FBD-D303-4686-B29D-D8306CB27A80.1@smtp-inbound1.duck.com>
0 siblings, 2 replies; 14+ messages in thread
From: Joel GUITTET @ 2025-04-04 8:15 UTC (permalink / raw)
To: yocto
[-- Attachment #1: Type: text/plain, Size: 353 bytes --]
Hello,
A customer ask us if it is possible to build a Yocto distro for an AMD EPYC 7502P CPU.
Seems to be a Ryzen Zen architecture according to Wikipedia.
Has Yocto any support for this kind of targets ? I don't find any relevant information.
Is it just supposed to work with the "genericx86-64.conf" machine provided in poky ?
Thanks
Joel
[-- Attachment #2: Type: text/html, Size: 481 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: [yocto] Yocto on AMD Zen target ? 2025-04-04 8:15 Yocto on AMD Zen target ? Joel GUITTET @ 2025-04-04 9:17 ` Khem Raj 2025-04-04 9:34 ` Alexander Kanavin [not found] ` <E63C2FBD-D303-4686-B29D-D8306CB27A80.1@smtp-inbound1.duck.com> 1 sibling, 1 reply; 14+ messages in thread From: Khem Raj @ 2025-04-04 9:17 UTC (permalink / raw) To: yocto, jguittet.opensource On Fri, Apr 4, 2025 at 1:15 AM Joel GUITTET via lists.yoctoproject.org <jguittet.opensource=witekio.com@lists.yoctoproject.org> wrote: > > Hello, > > A customer ask us if it is possible to build a Yocto distro for an AMD EPYC 7502P CPU. > Seems to be a Ryzen Zen architecture according to Wikipedia. > > Has Yocto any support for this kind of targets ? I don't find any relevant information. > Is it just supposed to work with the "genericx86-64.conf" machine provided in poky ? Generally yes, if you want specific machine maybe use meta-amd see https://web.git.yoctoproject.org/meta-amd/tree/meta-amd-bsp/conf/machine I think milan is the one that you will use for this machine. > > Thanks > Joel > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > You automatically follow any topics you start or reply to. > View/Reply Online (#65097): https://lists.yoctoproject.org/g/yocto/message/65097 > Mute This Topic: https://lists.yoctoproject.org/mt/112080706/1997914 > Group Owner: yocto+owner@lists.yoctoproject.org > Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [yocto] Yocto on AMD Zen target ? 2025-04-04 9:17 ` [yocto] " Khem Raj @ 2025-04-04 9:34 ` Alexander Kanavin 2025-04-04 9:36 ` Joel GUITTET 0 siblings, 1 reply; 14+ messages in thread From: Alexander Kanavin @ 2025-04-04 9:34 UTC (permalink / raw) To: yocto, raj.khem; +Cc: jguittet.opensource On Fri, 4 Apr 2025 at 11:17, Khem Raj via lists.yoctoproject.org <raj.khem=gmail.com@lists.yoctoproject.org> wrote: > > A customer ask us if it is possible to build a Yocto distro for an AMD EPYC 7502P CPU. > > Seems to be a Ryzen Zen architecture according to Wikipedia. > > > > Has Yocto any support for this kind of targets ? I don't find any relevant information. > > Is it just supposed to work with the "genericx86-64.conf" machine provided in poky ? > > Generally yes, if you want specific machine maybe use meta-amd see > https://web.git.yoctoproject.org/meta-amd/tree/meta-amd-bsp/conf/machine > I think milan is the one that you will use for this machine. Also, generix86-64 isn't tested on any actual x86 hardware, and lacks many important tweaks that make a useful image. If meta-amd doesn't work, there's also meta-intel. X86 builds are broadly compatible between them. Alex ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [yocto] Yocto on AMD Zen target ? 2025-04-04 9:34 ` Alexander Kanavin @ 2025-04-04 9:36 ` Joel GUITTET 0 siblings, 0 replies; 14+ messages in thread From: Joel GUITTET @ 2025-04-04 9:36 UTC (permalink / raw) To: Alexander Kanavin, yocto [-- Attachment #1: Type: text/plain, Size: 138 bytes --] Hello Khem and Alex, Thanks for these answers and pointing the meta-amd, I have found the tune-zen include files, seems fine. Joel [-- Attachment #2: Type: text/html, Size: 205 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <E63C2FBD-D303-4686-B29D-D8306CB27A80.1@smtp-inbound1.duck.com>]
* warn if a variable is not used [not found] ` <E63C2FBD-D303-4686-B29D-D8306CB27A80.1@smtp-inbound1.duck.com> @ 2025-04-08 8:23 ` proffesionaladdress2 2025-04-08 8:58 ` proffesionaladdress2 2025-04-08 8:59 ` proffesionaladdress2 2 siblings, 0 replies; 14+ messages in thread From: proffesionaladdress2 @ 2025-04-08 8:23 UTC (permalink / raw) To: yocto at lists yoctoproject org proffesionaladdress2 [-- Attachment #1: Type: text/plain, Size: 1012 bytes --] Hello, In a .bbappend file, I want to send a warning if a variable is not set/exist and set it to a default value. I use BitBake Build Tool Core version 2.0.0. If I try to test it like: if [[ -z "${MY_VARIABLE}" ]] I get an error like: Log data follows: | DEBUG: Executing shell function do_compile | /<path>/run.do_compile.352486: 153: MY_VARIABLE: not found | WARNING: exit code 127 from a shell command. ERROR: Task (/<path>/rpi-u-boot-scr.bb:do_compile) failed with exit code '1' When I use: isempty="${@bb.utils.contains('MY_VARIABLE', '', 'false', 'true', d)}" bbwarn "isempty=$isempty" if [[ $isempty == true ]]; then MY_VARIABLE = "value" bbwarn "MY_VARIABLE is not defined, used default: ${MY_VARIABLE}" else bbwarn "?????" fi it print: WARNING: rpi-u-boot-scr-1.0-r0 do_compile: isempty=true WARNING: rpi-u-boot-scr-1.0-r0 do_compile: ????? I already try with quote or not, but when I test it in a shell by setting the isempty variable it work properly. Best regards. [-- Attachment #2: Type: text/html, Size: 1793 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* warn if a variable is not used [not found] ` <E63C2FBD-D303-4686-B29D-D8306CB27A80.1@smtp-inbound1.duck.com> 2025-04-08 8:23 ` warn if a variable is not used proffesionaladdress2 @ 2025-04-08 8:58 ` proffesionaladdress2 2025-04-08 8:59 ` proffesionaladdress2 2 siblings, 0 replies; 14+ messages in thread From: proffesionaladdress2 @ 2025-04-08 8:58 UTC (permalink / raw) To: yocto at lists yoctoproject org proffesionaladdress2 [-- Attachment #1: Type: text/plain, Size: 1012 bytes --] Hello, In a .bbappend file, I want to send a warning if a variable is not set/exist and set it to a default value. I use BitBake Build Tool Core version 2.0.0. If I try to test it like: if [[ -z "${MY_VARIABLE}" ]] I get an error like: Log data follows: | DEBUG: Executing shell function do_compile | /<path>/run.do_compile.352486: 153: MY_VARIABLE: not found | WARNING: exit code 127 from a shell command. ERROR: Task (/<path>/rpi-u-boot-scr.bb:do_compile) failed with exit code '1' When I use: isempty="${@bb.utils.contains('MY_VARIABLE', '', 'false', 'true', d)}" bbwarn "isempty=$isempty" if [[ $isempty == true ]]; then MY_VARIABLE = "value" bbwarn "MY_VARIABLE is not defined, used default: ${MY_VARIABLE}" else bbwarn "?????" fi it print: WARNING: rpi-u-boot-scr-1.0-r0 do_compile: isempty=true WARNING: rpi-u-boot-scr-1.0-r0 do_compile: ????? I already try with quote or not, but when I test it in a shell by setting the isempty variable it work properly. Best regards. [-- Attachment #2: Type: text/html, Size: 1793 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* warn if a variable is not used [not found] ` <E63C2FBD-D303-4686-B29D-D8306CB27A80.1@smtp-inbound1.duck.com> 2025-04-08 8:23 ` warn if a variable is not used proffesionaladdress2 2025-04-08 8:58 ` proffesionaladdress2 @ 2025-04-08 8:59 ` proffesionaladdress2 2025-04-08 12:56 ` [yocto] " Gyorgy Sarvari 2025-04-08 13:18 ` Clayton Casciato 2 siblings, 2 replies; 14+ messages in thread From: proffesionaladdress2 @ 2025-04-08 8:59 UTC (permalink / raw) To: yocto at lists yoctoproject org proffesionaladdress2 [-- Attachment #1: Type: text/plain, Size: 1012 bytes --] Hello, In a .bbappend file, I want to send a warning if a variable is not set/exist and set it to a default value. I use BitBake Build Tool Core version 2.0.0. If I try to test it like: if [[ -z "${MY_VARIABLE}" ]] I get an error like: Log data follows: | DEBUG: Executing shell function do_compile | /<path>/run.do_compile.352486: 153: MY_VARIABLE: not found | WARNING: exit code 127 from a shell command. ERROR: Task (/<path>/rpi-u-boot-scr.bb:do_compile) failed with exit code '1' When I use: isempty="${@bb.utils.contains('MY_VARIABLE', '', 'false', 'true', d)}" bbwarn "isempty=$isempty" if [[ $isempty == true ]]; then MY_VARIABLE = "value" bbwarn "MY_VARIABLE is not defined, used default: ${MY_VARIABLE}" else bbwarn "?????" fi it print: WARNING: rpi-u-boot-scr-1.0-r0 do_compile: isempty=true WARNING: rpi-u-boot-scr-1.0-r0 do_compile: ????? I already try with quote or not, but when I test it in a shell by setting the isempty variable it work properly. Best regards. [-- Attachment #2: Type: text/html, Size: 1793 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [yocto] warn if a variable is not used 2025-04-08 8:59 ` proffesionaladdress2 @ 2025-04-08 12:56 ` Gyorgy Sarvari [not found] ` <7A2D6367-3CD1-460F-9655-69A8B0D980A7.1@smtp-inbound1.duck.com> 2025-04-08 13:18 ` Clayton Casciato 1 sibling, 1 reply; 14+ messages in thread From: Gyorgy Sarvari @ 2025-04-08 12:56 UTC (permalink / raw) To: yocto, proffesionaladdress2 > > | /<path>/run.do_compile.352486: 153: MY_VARIABLE: not found <snip> > MY_VARIABLE = "value" Note that when you are in do_compile, that's a shell script. You shouldn't put space around the equal sign here, because that's not a valid syntax to assign a value to a variable in shell. ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <7A2D6367-3CD1-460F-9655-69A8B0D980A7.1@smtp-inbound1.duck.com>]
[parent not found: <05B9C867-74DD-4A91-9A1B-1BD33302248A.1@smtp-inbound1.duck.com>]
* Re: [yocto] warn if a variable is not used [not found] ` <05B9C867-74DD-4A91-9A1B-1BD33302248A.1@smtp-inbound1.duck.com> @ 2025-04-08 13:09 ` Gyorgy Sarvari 0 siblings, 0 replies; 14+ messages in thread From: Gyorgy Sarvari @ 2025-04-08 13:09 UTC (permalink / raw) To: proffesionaladdress2; +Cc: yocto at lists yoctoproject org proffesionaladdress2 You can check what is actually executed by bitbake. Open the run.do_compile file to see the actual script after a failure, and see how it is parsed and where it goes astray. On 4/8/25 15:06, proffesionaladdress2@duck.com wrote: > Thank you, but branch is never reached because the previous condition is never true in this code (and I don't know why). > Even if bbwarn print 'WARNING: rpi-u-boot-scr-1.0-r0 do_compile: isempty=true'. > > isempty="${@bb.utils.contains('MY_VARIABLE', '', 'false', 'true', d)}" > bbwarn "isempty=$isempty" > if [[ $isempty == true ]]; then > MY_VARIABLE = "value" > bbwarn "MY_VARIABLE is not defined, used default: ${MY_VARIABLE}" > else > bbwarn "?????" > fi > > But maybe bitbake provide some syntax to print a warning when a variable is not set outside bash code. > Or it is easier to use some python code. > > ----- Mail original ----- > De: "Gyorgy Sarvari" <skandigraun_at_gmail.com_proffesionaladdress2@duck.com> > À: "yocto at lists yoctoproject org proffesionaladdress2" <yocto_at_lists.yoctoproject.org_proffesionaladdress2@duck.com>, proffesionaladdress2@duck.com > Envoyé: Mardi 8 Avril 2025 14:56:24 > Objet: Re: [yocto] warn if a variable is not used > >> | /<path>/run.do_compile.352486: 153: MY_VARIABLE: not found > <snip> >> MY_VARIABLE = "value" > Note that when you are in do_compile, that's a shell script. You > shouldn't put space around the equal sign here, because that's not a > valid syntax to assign a value to a variable in shell. > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [yocto] warn if a variable is not used [not found] ` <7A2D6367-3CD1-460F-9655-69A8B0D980A7.1@smtp-inbound1.duck.com> [not found] ` <05B9C867-74DD-4A91-9A1B-1BD33302248A.1@smtp-inbound1.duck.com> @ 2025-04-08 13:12 ` proffesionaladdress2 2025-04-14 10:58 ` Quentin Schulz 1 sibling, 1 reply; 14+ messages in thread From: proffesionaladdress2 @ 2025-04-08 13:12 UTC (permalink / raw) To: Gyorgy Sarvari Cc: yocto at lists yoctoproject org proffesionaladdress2, proffesionaladdress2 Thank you, but branch is never reached because the previous condition is never true in this code (and I don't know why). Even if bbwarn print 'WARNING: rpi-u-boot-scr-1.0-r0 do_compile: isempty=true'. isempty="${@bb.utils.contains('MY_VARIABLE', '', 'false', 'true', d)}" bbwarn "isempty=$isempty" if [[ $isempty == true ]]; then MY_VARIABLE = "value" bbwarn "MY_VARIABLE is not defined, used default: ${MY_VARIABLE}" else bbwarn "?????" fi But maybe bitbake provide some syntax to print a warning when a variable is not set outside bash code. Or it is easier to use some python code. ----- Mail original ----- De: "Gyorgy Sarvari" <skandigraun_at_gmail.com_proffesionaladdress2@duck.com> À: "yocto at lists yoctoproject org proffesionaladdress2" <yocto_at_lists.yoctoproject.org_proffesionaladdress2@duck.com>, proffesionaladdress2@duck.com Envoyé: Mardi 8 Avril 2025 14:56:24 Objet: Re: [yocto] warn if a variable is not used > > | /<path>/run.do_compile.352486: 153: MY_VARIABLE: not found <snip> > MY_VARIABLE = "value" Note that when you are in do_compile, that's a shell script. You shouldn't put space around the equal sign here, because that's not a valid syntax to assign a value to a variable in shell. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [yocto] warn if a variable is not used 2025-04-08 13:12 ` proffesionaladdress2 @ 2025-04-14 10:58 ` Quentin Schulz [not found] ` <8417B008-2B4E-42D4-B5A6-E7D31B7D6D3D.1@smtp-inbound1.duck.com> 0 siblings, 1 reply; 14+ messages in thread From: Quentin Schulz @ 2025-04-14 10:58 UTC (permalink / raw) To: yocto, proffesionaladdress2, Gyorgy Sarvari Hi, On 4/8/25 3:12 PM, proffesionaladdress2 via lists.yoctoproject.org wrote: > Thank you, but branch is never reached because the previous condition is never true in this code (and I don't know why). > Even if bbwarn print 'WARNING: rpi-u-boot-scr-1.0-r0 do_compile: isempty=true'. > > isempty="${@bb.utils.contains('MY_VARIABLE', '', 'false', 'true', d)}" > bbwarn "isempty=$isempty" > if [[ $isempty == true ]]; then This syntax is not supported by BitBake, please use POSIX condition here instead. (i.e. not the [[ ]], but [ ]). Cheers, Quentin ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <8417B008-2B4E-42D4-B5A6-E7D31B7D6D3D.1@smtp-inbound1.duck.com>]
* Re: [yocto] warn if a variable is not used [not found] ` <8417B008-2B4E-42D4-B5A6-E7D31B7D6D3D.1@smtp-inbound1.duck.com> @ 2025-04-14 13:57 ` proffesionaladdress2 0 siblings, 0 replies; 14+ messages in thread From: proffesionaladdress2 @ 2025-04-14 13:57 UTC (permalink / raw) To: Quentin Schulz Cc: yocto at lists yoctoproject org proffesionaladdress2, proffesionaladdress2, Gyorgy Sarvari Thank you for reply, I also tried the [ ] syntax without success. I made it like following, but it print a lot of warning with BitBake Build Tool Core version 2.0.0 (the ":=" doesn't expand once in .bb file?). In a check_variable.bbclass: # warn_and_set_variable_default function take as parameters, the BitBake datastore "d", the variable to check "var" and the value to set if the variable "var" is empty. # It shall be set to a variable like: MY_VAR := "${@warn_and_set_variable_default(d, 'MY_VAR', "default")}" # to avoid multiple variable expansion according to bitbake documentation: # https://docs.yoctoproject.org/bitbake/bitbake-user-manual/bitbake-user-manual-metadata.html#inline-python-variable-expansion def warn_and_set_variable_default(d, var, defaultvalue): variable_value = d.getVar(var) if not variable_value: bb.warn('The variable %s is empty or not defined, it will be set to "%s"' % (var, defaultvalue)) return defaultvalue else: return variable_value # fail_if_variable_empty function take as parameters, the BitBake datastore "d", the variable to check "var". # It shall be set to a variable like warn_and_set_variable_default function. def fail_if_variable_empty(d, var): variable_value = d.getVar(var) if not variable_value: bb.fatal('The variable %s is empty and shall be set' %var) return None else: return variable_value Then in recipe: include classes/check_variable.bbclass # Parse mandatory variables MY_VAR_MANDATORY_PARSED := "${@fail_if_variable_empty(d, 'MY_VAR_MANDATORY')}" # Parse optional variables MY_VAR_OPTIONAL_PARSED := "${@warn_and_set_variable_default(d, 'MY_VAR_OPTIONAL', 'default')}" #usage do_install:append() { sed -i "s#@MY_VAR_MANDATORY@#\"${MY_VAR_MANDATORY_PARSED}\"#g" ${D}${bindir}/myfile.file sed -i "s#@MY_VAR_OPTIONAL@#\"${MY_VAR_OPTIONAL_PARSED}\"#g" ${D}${bindir}/myfile.file } And in local.conf (to avoid error from bbfatal): MY_VAR_MANDATORY="deadbeef" it will print 14 times for my recipe, like: WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" ----- Mail original ----- De: "Quentin Schulz" <quentin.schulz_at_cherry.de_proffesionaladdress2@duck.com> À: "yocto at lists yoctoproject org proffesionaladdress2" <yocto_at_lists.yoctoproject.org_proffesionaladdress2@duck.com>, "proffesionaladdress2" <proffesionaladdress2@duck.com>, "Gyorgy Sarvari" <skandigraun_at_gmail.com_proffesionaladdress2@duck.com> Envoyé: Lundi 14 Avril 2025 12:58:57 Objet: Re: [yocto] warn if a variable is not used Hi, On 4/8/25 3:12 PM, proffesionaladdress2 via lists.yoctoproject.org wrote: > Thank you, but branch is never reached because the previous condition is never true in this code (and I don't know why). > Even if bbwarn print 'WARNING: rpi-u-boot-scr-1.0-r0 do_compile: isempty=true'. > > isempty="${@bb.utils.contains('MY_VARIABLE', '', 'false', 'true', d)}" > bbwarn "isempty=$isempty" > if [[ $isempty == true ]]; then This syntax is not supported by BitBake, please use POSIX condition here instead. (i.e. not the [[ ]], but [ ]). Cheers, Quentin ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [yocto] warn if a variable is not used 2025-04-08 8:59 ` proffesionaladdress2 2025-04-08 12:56 ` [yocto] " Gyorgy Sarvari @ 2025-04-08 13:18 ` Clayton Casciato [not found] ` <4C0F3047-0C25-4038-BA0C-FE81491D89E5.1@smtp-inbound1.duck.com> 1 sibling, 1 reply; 14+ messages in thread From: Clayton Casciato @ 2025-04-08 13:18 UTC (permalink / raw) To: proffesionaladdress2, yocto [-- Attachment #1: Type: text/plain, Size: 582 bytes --] In case you weren't aware, you can explicitly set default values: W ??= "x" A ?= "aval" https://docs.yoctoproject.org/bitbake/2.0/bitbake-user-manual/bitbake-user-manual-metadata.html#setting-a-default-value -- Variables can be queried as to how they are set: $ bitbake-getvar --recipe rpi-u-boot-scr MY_VARIABLE -- Also note: > > The scripts are executed by /bin/sh , which may not be a bash shell but > might be something such as dash. > https://docs.yoctoproject.org/bitbake/2.0/bitbake-user-manual/bitbake-user-manual-metadata.html#shell-functions [-- Attachment #2: Type: text/html, Size: 5086 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <4C0F3047-0C25-4038-BA0C-FE81491D89E5.1@smtp-inbound1.duck.com>]
* Re: [yocto] warn if a variable is not used [not found] ` <4C0F3047-0C25-4038-BA0C-FE81491D89E5.1@smtp-inbound1.duck.com> @ 2025-04-09 15:32 ` proffesionaladdress2 0 siblings, 0 replies; 14+ messages in thread From: proffesionaladdress2 @ 2025-04-09 15:32 UTC (permalink / raw) To: Clayton Casciato Cc: proffesionaladdress2, yocto at lists yoctoproject org proffesionaladdress2 [-- Attachment #1: Type: text/plain, Size: 5145 bytes --] Thank you, I wasn't aware about the --recipe option of bitbake-getvar. The goal here is not to silently set to a value but to also send a warning. I made it like but it print a lot of warning with BitBake Build Tool Core version 2.0.0 (the ":=" doesn't expand once in .bb file?), in a check_variable.bbclass: # warn_and_set_variable_default function take as parameters, the BitBake datastore "d", the variable to check "var" and the value to set if the variable "var" is empty. # It shall be set to a variable like: MY_VAR := "${@warn_and_set_variable_default(d, 'MY_VAR', "default")}" # to avoid multiple variable expansion according to bitbake documentation: # https://docs.yoctoproject.org/bitbake/bitbake-user-manual/bitbake-user-manual-metadata.html#inline-python-variable-expansion def warn_and_set_variable_default(d, var, defaultvalue): variable_value = d.getVar(var) if not variable_value: bb.warn('The variable %s is empty or not defined, it will be set to "%s"' % (var, defaultvalue)) return defaultvalue else: return variable_value # fail_if_variable_empty function take as parameters, the BitBake datastore "d", the variable to check "var". # It shall be set to a variable like warn_and_set_variable_default function. def fail_if_variable_empty(d, var): variable_value = d.getVar(var) if not variable_value: bb.fatal('The variable %s is empty and shall be set' %var) return None else: return variable_value Then in recipe: include classes/check_variable.bbclass # Parse mandatory variables MY_VAR_MANDATORY_PARSED := "${@fail_if_variable_empty(d, 'MY_VAR_MANDATORY')}" # Parse optional variables MY_VAR_OPTIONAL_PARSED := "${@warn_and_set_variable_default(d, 'MY_VAR_OPTIONAL', 'default')}" #usage do_install:append() { sed -i "s#@MY_VAR_MANDATORY@#\"${MY_VAR_MANDATORY_PARSED}\"#g" ${D}${bindir}/myfile.file sed -i "s#@MY_VAR_OPTIONAL@#\"${MY_VAR_OPTIONAL_PARSED}\"#g" ${D}${bindir}/myfile.file } And in local.conf (to avoid error from bbfatal): MY_VAR_MANDATORY="deadbeef" it will print 14 times for my recipe, like: WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" WARNING: The variable MY_VAR_OPTIONAL is empty or not defined, it will be set to "default" De: "Clayton Casciato" <ccasciato_at_21sw.us_proffesionaladdress2@duck.com> À: "proffesionaladdress2" <proffesionaladdress2@duck.com>, "yocto at lists yoctoproject org proffesionaladdress2" <yocto_at_lists.yoctoproject.org_proffesionaladdress2@duck.com> Envoyé: Mardi 8 Avril 2025 15:18:54 Objet: Re: [yocto] warn if a variable is not used In case you weren't aware, you can explicitly set default values: W ??= "x" A ?= "aval" https://docs.yoctoproject.org/bitbake/2.0/bitbake-user-manual/bitbake-user-manual-metadata.html#setting-a-defaul DuckDuckGo did not detect any trackers. [ https://duckduckgo.com/-IAIIzTFfMjhHUPJJpT-egROjaq5duXecWi8_QYYw2KgrYCq8CyKIfbd8C7jYEzviBm9jtTq-ynKiLi1BI6Tf447Ot-09ZA70WKKvc8VYd55iREHlhxCWcbhJWnqmrOf8TAqLpw0gSCM-b1qX2Qi9wurrhws1ngng9H9-BcqIg3svdO4t7VgT-SadQMtGCo6ptJNRY_imO7Pw | More ] [ https://duckduckgo.com/-IAIIzTFfMjhHUPJJpT-egROjaq5duXecWi8_QYYw2KgrYCq8CyKIfbd8C7jYEzviBm9jtTq-ynKiLi1BI6Tf447Ot-09ZA70WKKvc8VYd55iREHlhxCWcbhJWnqmrOf8TAqLpw0gSCM-b1qX2Qi9wurrhws1ngng9H9-BcqIg3svdO4t7VgT-SadQMtGCo6ptJNRY_imO7Pw | Report Spam ] In case you weren't aware, you can explicitly set default values: W ??= "x" A ?= "aval" https://docs.yoctoproject.org/bitbake/2.0/bitbake-user-manual/bitbake-user-manual-metadata.html#setting-a-default-value -- Variables can be queried as to how they are set: $ bitbake-getvar --recipe rpi-u-boot-scr MY_VARIABLE -- Also note: The scripts are executed by /bin/sh , which may not be a bash shell but might be something such as dash . https://docs.yoctoproject.org/bitbake/2.0/bitbake-user-manual/bitbake-user-manual-metadata.html#shell-functions [-- Attachment #2: Type: text/html, Size: 11492 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2025-04-14 14:11 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-04 8:15 Yocto on AMD Zen target ? Joel GUITTET
2025-04-04 9:17 ` [yocto] " Khem Raj
2025-04-04 9:34 ` Alexander Kanavin
2025-04-04 9:36 ` Joel GUITTET
[not found] ` <E63C2FBD-D303-4686-B29D-D8306CB27A80.1@smtp-inbound1.duck.com>
2025-04-08 8:23 ` warn if a variable is not used proffesionaladdress2
2025-04-08 8:58 ` proffesionaladdress2
2025-04-08 8:59 ` proffesionaladdress2
2025-04-08 12:56 ` [yocto] " Gyorgy Sarvari
[not found] ` <7A2D6367-3CD1-460F-9655-69A8B0D980A7.1@smtp-inbound1.duck.com>
[not found] ` <05B9C867-74DD-4A91-9A1B-1BD33302248A.1@smtp-inbound1.duck.com>
2025-04-08 13:09 ` Gyorgy Sarvari
2025-04-08 13:12 ` proffesionaladdress2
2025-04-14 10:58 ` Quentin Schulz
[not found] ` <8417B008-2B4E-42D4-B5A6-E7D31B7D6D3D.1@smtp-inbound1.duck.com>
2025-04-14 13:57 ` proffesionaladdress2
2025-04-08 13:18 ` Clayton Casciato
[not found] ` <4C0F3047-0C25-4038-BA0C-FE81491D89E5.1@smtp-inbound1.duck.com>
2025-04-09 15:32 ` proffesionaladdress2
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.