summaryrefslogtreecommitdiffstats
path: root/scripts/lib
Commit message (Collapse)AuthorAgeFilesLines
* bitbake.conf/pseudo: Switch from exclusion list to inclusion listRichard Purdie20 hours1-4/+4
| | | | | | | | | | | | | | | | | Currently, pseudo tracks all files referenced within its presence unless they're listed in an exclusion list. The exclusion list has grown to be fairly unwieldy. This patch swaps PSEUDO_IGNORE_PATHS for PSEUDO_INCLUDE_PATHS which in theory should be easier and more explicit to maintain. This change does drop many directories from pseudo coverage including /home and /tmp. There may be adapatations needed for recipes/classes using pseudo in specific ways. (From OE-Core rev: 2502da81709f25de499277b28d33c915638c45f6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* efi-uki-bootdisk.wks.in: reduce ESP boot partition sizeMikko Rapeli2025-04-291-1/+1
| | | | | | | | | | | | | | | This sample ESP partition is used mostly for testing purposes. It's not expected to host multiple UKI binaries for example. Thus reduce size from 500 Mb to size of needed boot binaries 72 Mb plus around 20% free space 88Mb. This is enough for all test cases and fits to RAM when using PMEM memory based block device on real target boards with just a few Gb of RAM. (From OE-Core rev: 7a4b90ef3815aa227236ec9b95540233db8ac3b3) Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: do not ignore ROOTFS_SIZE if the rootfs is modifiedTrevor Woerner2025-04-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the *.wks file contains a "--source rootfs" then lib/wic/plugins/source/rootfs.py will be invoked to generate (what is assumed to be) the rootfs partition. If the rootfs partition needs to be tweaked or modified, the "rootfs.py" plugin will make a copy of the filesystem and then perform the changes on that copy. In other words, if the "--source rootfs" line of the *.wks file also contains any of: --exclude-path --include-path --change-directory --use-label (i.e. modify etc/fstab) then the rootfs will be copied first, then the copy is modified. If, for example, the unmodified IMAGE_ROOTFS is: .../tmp/work/qemuarm64_secureboot-oe-linux/core-image-base/1.0/rootfs then the copy would be made at: .../tmp/work/qemuarm64_secureboot-oe-linux/core-image-base/1.0/tmp-wic/rootfs${LINENO} where ${LINENO} is the line number where this "--source rootfs" line appears in the *wks file. When it comes time to make an actual partition of a specific filesystem type, lib/wic/partition.py::prepare_rootfs() is called. It is in this function that wic figures out if any extra size needs to be added. The bitbake variable used to specify the ultimate rootfs size is ROOTFS_SIZE, and since this variable is only valid for the rootfs (and not any other partitions), the code also verifies that the partition being created is ${IMAGE_ROOTFS}: rsize_bb = get_bitbake_var('ROOTFS_SIZE') rdir = get_bitbake_var('IMAGE_ROOTFS') if rsize_bb and rdir == rootfs_dir: <use rsize_bb> else: <calculate the partition size using "du -ks $p"> As noted above, if lib/wic/plugins/source/rootfs.py has made a copy, then the "rdir == rootfs_dir" clause will fail and the code will assume this partition is not a rootfs since the strings do not compare equal. Therefore, in order to determine if this is a rootfs, retain the existing "rdir == rootfs_dir" comparison, but also add another one to check whether or not this is a wic-generated copy of the rootfs. STEPS TO REPRODUCE: - start with the following *wks file: bootloader --ptable gpt part /boot --size=100M --active --fstype=ext4 --label boot part / --source rootfs --fstype=ext4 --label root - and the following extra variable in conf/local.conf: IMAGE_ROOTFS_EXTRA_SPACE = "500000" - build an image - run it in qemu $ runqemu slirp nographic serial - verify the root partition has extra space: root@qemuarm64-secureboot:~# df -h Filesystem Size Used Available Use% Mounted on /dev/root 721.5M 67.4M 600.6M 10% / devtmpfs 477.7M 0 477.7M 0% /dev tmpfs 40.0K 0 40.0K 0% /mnt tmpfs 489.3M 92.0K 489.2M 0% /run tmpfs 489.3M 68.0K 489.2M 0% /var/volatile /dev/vda1 120.4M 19.9M 91.4M 18% /boot - modify the "/" line of the *wks file to be: part / --source rootfs --fstype=ext4 --label root --exclude-path boot/ - build image when it fails: root@qemuarm64-secureboot:~# df -h Filesystem Size Used Available Use% Mounted on /dev/root 73.4M 41.9M 25.8M 62% / devtmpfs 477.7M 0 477.7M 0% /dev tmpfs 40.0K 0 40.0K 0% /mnt tmpfs 489.3M 92.0K 489.2M 0% /run tmpfs 489.3M 68.0K 489.2M 0% /var/volatile /dev/vda1 120.4M 19.9M 91.4M 18% /boot after this fix: root@qemuarm64-secureboot:~# df -h Filesystem Size Used Available Use% Mounted on /dev/root 721.5M 47.4M 620.6M 7% / devtmpfs 477.7M 0 477.7M 0% /dev tmpfs 40.0K 0 40.0K 0% /mnt tmpfs 489.3M 92.0K 489.2M 0% /run tmpfs 489.3M 68.0K 489.2M 0% /var/volatile /dev/vda1 120.4M 19.9M 91.4M 18% /boot Doing the math we see that the /boot partition is ~20MB and in the first image the / partition contains this ~20MB in addition to the rest of the rootfs. This ~20MB is completely wasted since it is used in the / partition, but then the /boot partition is mounted on top of it, making the /boot directory of / inaccessible. After the fix the / partition has an additional ~20MB since the /boot portion is excluded. Fixes [YOCTO #15555] (From OE-Core rev: 1c690aa046ebca13d7b29de50d42b5d8a4a8486c) Signed-off-by: Trevor Woerner <twoerner@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* yocto-check-layer: expect success for test_patches_upstream_statusGyorgy Sarvari2025-04-101-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | When the Upstream-Status tag for patches became mandatory, the test verifying the presence of this tag was made to not fail the layer compatibility tests, in order to allow time for the maintainers to adapt to this change. This was two years before this commit. Since then the layer compatibility script shows a cryptic "unexpected success" result for this test, which of course becomes clear once one checks the code and commit history, but it is a nuisance still, which shouldn't be needed to understand the result. This commit removes the the related annotation so the compatibility check will pass or fail with a clear message - in hope that 2 years was enough for active maintainers to adjust their patches. (From OE-Core rev: 64175a41f48fce69a5205000865cc3b8648476f7) Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* buildperf: Tweak tooltip positioning for usabilityRichard Purdie2025-03-281-2/+2
| | | | | | | | | | The tooltop contains a key hyperlink to make the graphs usable. Make it easier to click on the link by removing the space between the data point and the tooltip. (From OE-Core rev: a090076e42eb9b41da55fc01ccbbb68f9b8a8cb8) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* buildperf: Avoid step usage in performance line graphsRichard Purdie2025-03-281-2/+0
| | | | | | | | | | | | | When using steps in the line chart, you have to look long and hard to understand if the data is the lower or upper point on the step. Whilst not as pretty, the sloped line charts are more accurate so switch to those as the transition points are important and the main reason for the charts. (From OE-Core rev: 60cc8cf421c0b04f774fd42a415f275ad457bcdf) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* scripts/devtool: sort the recipes that need to be upgraded togetherRoss Burton2025-03-281-1/+1
| | | | | | | | | | Sort the list of recipes for a more visually pleasing display, and to make it easier to compare output from multiple runs. (From OE-Core rev: 561e1996d655147199dc1601b5cba0512042de6b) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: reset: Escape command line input used in regular expressionPeter Kjellerstedt2025-03-201-1/+1
| | | | | | | | | | | | | | | | | | | Running, e.g., `devtool reset sdbus-c++` would result in the following error: re.error: multiple repeat at position 35 This was due to the ++ in the recipe name, which would be treated as an incorrect regular expression in _reset(). Use re.escape() to make sure all characters in the recipe name are treated literally. (From OE-Core rev: 6e73bd9b3e6d529752db93879f2c0ed53873dd1a) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: Do not create annotated tags if tag.gpgSign is setPeter Kjellerstedt2025-03-192-5/+5
| | | | | | | | | | | | | If tag.gpgSign is configured in Git's configuration, then creating the devtool-base tag will fail (if Git's core.editor is not configured) or it will hang (when trying to open the editor). This is beacause tag.gpgSign causes git tag to create annotated tags. To avoid this, specify --no-sign as argument to git tag. (From OE-Core rev: f96e955b29aad6a9e0b20f8e9a4987ace3808c91) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: bootimg-efi: Support + symbol in filenamesIgor Opaniuk2025-02-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Allow the '+' symbol as a valid character in filenames listed in the IMAGE_EFI_BOOT_FILES variable. The '+' symbol might be used to support boot counting for boot entries, as described in the UAPI Boot Loader Specification [1]: The boot counting data is stored in the name of the boot loader entry. A boot loader entry file name may contain a plus (+) followed by a number. This may optionally be followed by a minus (-) followed by a second number. The dot (.) and file name suffix (conf or efi) must immediately follow. Boot counting is enabled for entries which match this pattern. Example: IMAGE_EFI_BOOT_FILES:append = " entry.conf;loader/entries/entry+3.conf" [1] https://uapi-group.org/specifications/specs/boot_loader_specification/#boot-counting (From OE-Core rev: 3f25822281eb9423ff86105eaebb0bed48663648) Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* scripts/buildperf: Add chart tabs for commit count/timeNinette Adhikari2025-02-092-23/+156
| | | | | | | | | | | | | | | | | We triggered a test of an older revision to narrow down when performance changed. The issue is that git's timestamps are granular to 1s. We'll usually merge a set of commits at the same time so they will all have the same timestamp for a block of them. This means that even if we use the commit date, all the points can't be distinguished on the graph. The author date doesn't work either as the commits are not merged in author date order. To solve this this patch adds the commit_count chart as a separate tab next to the start_time chart (From OE-Core rev: b263edd33f6c895238d81ef148c0445fcd0aa268) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: standard: simplify get_staging_kverChris Laplante2025-02-011-8/+6
| | | | | | | | | | | The goal is to make this more Pythonic, as it was a little cryptic the first time I looked at it. (From OE-Core rev: 80285b0f9b716ebad87a2feb08f12f87d70c27e3) Signed-off-by: Chris Laplante <chris.laplante@agilent.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: standard: fix unbound variable usageChris Laplante2025-02-011-2/+7
| | | | | | | | (From OE-Core rev: 90efa31f36eaea910b979c128da719e1ae61e00d) Signed-off-by: Chris Laplante <chris.laplante@agilent.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: standard: fix typo in variableChris Laplante2025-02-011-1/+1
| | | | | | | | (From OE-Core rev: 9b24dae60573c5e798f1a2f49338f3e4ecbe8859) Signed-off-by: Chris Laplante <chris.laplante@agilent.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: standard: cleanup imports; stop relying on transitive bb importsChris Laplante2025-02-012-18/+24
| | | | | | | | (From OE-Core rev: 8457e24f60a9a84e0f1cfc4a28a39989534fa7de) Signed-off-by: Chris Laplante <chris.laplante@agilent.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: ide-sdk remove the plugin from eSDK installerAdrian Freihofer2025-01-201-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ide-sdk command bootstraps the SDK from the bitbake environment before the IDE configuration is generated. In the case of the eSDK installer, the bootstrapping is performed during the installation of the eSDK installer. Running the ide-sdk plugin from an eSDK installer based setup would require skipping the bootstrapping and probably taking some other differences into account when generating the IDE configurations. This would be possible. But it will probably never be implemented, as running devtool ide-sdk directly from the bitbake environment is much more flexible. Also, some of the recent improvements that have made it into the core have the potential to make the eSDK installer obsolete at some point in the future: - bitbake-layers create-layers-setup replicates the layers - bitbake-config-build replicates the build configuration - The new sstate mirror features replicate the sstate - bblock locks the sstate more flexible than the eSDK installer - devtool ide-sdk bootstraps the SDK directly from the bitbake environment. The same environment-setup... file is provided with --mode=shared. The devtool modify based workflow is supported since always by devtool and also the default --mode of devtool ide-sdk. These functions essentially cover what the eSDK installer does without a need for the current implementation of the eSDK installer and the populate_sdk_ext, which is hard to maintain and takes a lot of time to build. This means that instead of making the ide-sdk plugin compatible with the eSDK installer, we should rather replace the current implementation of the eSDK installer and populate_sdk_ext with an implementation that can replicate a normal bitbake environment in a convenient way where the ide-sdk plugin also just works without additional complexity. (From OE-Core rev: 177aa72b37f2061ff3311ec5dbb33aa56a5ba006) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: build-sdk remove unused importsAdrian Freihofer2025-01-201-7/+0
| | | | | | | | | | These imports are not needed. (From OE-Core rev: c0e9e35843004aaac5bdcc12fa1f6bf8d2da0abb) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: add documentation for existing options to help.pyStefan Gloor2024-12-281-0/+32
| | | | | | | | | | | Add wic kickstart help for undocumented options for part/partition and bootloader command. (From OE-Core rev: 59786183c41b93b49fe97926dd77904c8d66b356) Signed-off-by: Stefan Gloor <code@stefan-gloor.ch> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: ide-sdk: check 'tools-debug' for gdbserverGeorgi, Tom2024-12-201-1/+1
| | | | | | | | | | Also check that 'tools-debug' is not set in IMAGE_FEATURES to determine if gdbserver is missing. (From OE-Core rev: 28a8b35826302a40e7bb49f4bd3213fe7026f480) Signed-off-by: Georgi, Tom <tom.georgi@karlstorz.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: ide-sdk recommend DEBUG_BUILDAdrian Freihofer2024-12-171-41/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | The debug_build_config function was never called. Compiling with debug optimized compiler flags was not working. Even with the --debug-build-config flag set, the build configuration from the recipe was used. The devtool ide-sdk --debug-build-config approach didn't work very well anyway. The problem is that changing the bbappend file doesn't work while bitbake uses the bbappend file. As a workaround, it would be possible to parse the recipe, get DEBUG_BUILD and the path to the append file, exit tinfoil, change the bbappend file, reopen tinfoil and do what ide-sdk is supposed to do. Such an implementation would be complicated and slow. Therefore, the code that was originally supposed to implement this is removed from ide-sdk and the new --debug-build function of devtool modify is used instead. Additionally, a hint should be given on how to manually add DEBUG_BUILD = '1' to bbappend. This is compatible with the VSCode Bitbake plug-in, which does not support this parameter anyway. (From OE-Core rev: 65950eb601c6c8aac0e4bc8683e544305346229d) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: ide-sdk sort cmake presetAdrian Freihofer2024-12-171-2/+2
| | | | | | | | | | Sort the keys of the generated CMakeUserPreset.json file to make it easier to search and compare. (From OE-Core rev: b886c26bf893878ba8eb6bee80dd0507e5cb0d2d) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: modify support debug-buildsAdrian Freihofer2024-12-171-0/+3
| | | | | | | | | | | | Add a new option --debug-builds to automatically add DEBUG_BUILD = “1” to the bbappend file of this recipe. This is especially useful when invoking devtool modify before invoking devtool ide-sdk to perform a remote debugging session. (From OE-Core rev: fc17808799d2b667afbe4ea9837b66af70d47007) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* scripts/devtool: use bb.util.listtasks instead of __BBTASKSRoss Burton2024-12-122-2/+2
| | | | | | | | | | | Don't access private variables, instead use the new bb.build.listtasks() function (from bitbake 185c4b) (From OE-Core rev: d31a7718c16bd26efd6e174cb5e97fb088aad4bd) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* resulttool/store: Fix permissions of logarchiveRichard Purdie2024-11-261-0/+1
| | | | | | | | | We want the results directory to be visable to other users, tweak the permissions of the created directory to ensure this is the case. (From OE-Core rev: ed9d887e8d71a800db19826264de552f7736dc6a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* resulttool: Improve repo layout for oeselftest resultsRichard Purdie2024-11-231-1/+1
| | | | | | | | | | | | Having all oe-selftest results on top of each other results in a large 640MB json file which is hard to use. Split the results out per machine and test type. This also stops the toolchain raw logs from overwriting each other meaning more than one MACHINE is preserved. (From OE-Core rev: 4b890f04bc7d147b4a11b824a84f3d2abd75ac54) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* resulttool: Trim the precision of duration informationRichard Purdie2024-11-231-0/+17
| | | | | | | | | The duration values have pointless amounts of precision. Removing some of the least significant digits reduces result size and makes the results easier to read. (From OE-Core rev: a789a2e6d97bb8efd663226a17db8d1ca6c1e40f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* resulttool: Clean up repoducible build logsRichard Purdie2024-11-231-0/+22
| | | | | | | | | | We've improved the data stored for reproduicible builds. Teach resulttool how to apply those cleanups when reprocessing data so we can reduce results file sizes and make the data easier to process. (From OE-Core rev: b799c57ae6d61c1b1c7035c8a2c4ba6ee08d1a81) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* resulttool: Handle ltp rawlogs as well as ptestRichard Purdie2024-11-231-13/+20
| | | | | | | | | Improve the rawlogs handling to include ltp logs as well as the ptest ones to reduce the size of the results git repos. (From OE-Core rev: a0a1954d559609c2c1ca16936d0d68eb3c4c6b45) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* resulttool: Add --logfile-archive option to store modeRichard Purdie2024-11-231-2/+17
| | | | | | | | | | Storing the log files inside the testresults git repo isn't scaling and isn't really appropriate use of a git repository. Allow these to be optionally stored in a separate filesystem location so the git repo can remain managable. (From OE-Core rev: 1afc0f3d7e93fa8496be241e9622d3b9a6904bd5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* resulttool: Fix passthrough of --all files in store modeRichard Purdie2024-11-231-1/+1
| | | | | | | | | When using store mode, --all was broken as not all files were being preserved. Fix this by limiting the scope of the git rm command. (From OE-Core rev: 9604561d2022b6c76b1cb4186d40800d1affdd2b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* resulttool: Use single space indentation in json outputRichard Purdie2024-11-233-3/+3
| | | | | | | | | | | Using 4 space indentation in resulted in hundreds of megabytes of extra file size in general use. Reduce this to make filesizes more managable and reduce the processing cost. Some level of indentation and spacing does make the files more readable and allows use of git diff so we need to retain some of it. (From OE-Core rev: a274cdcaf852cca9497f0358f44dda99c06aacbe) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* scripts/checklayer: check for SECURITY.mdRoss Burton2024-11-222-1/+45
| | | | | | | | | | | Add a check for a SECURITY.md file (or similar) to yocto-check-layer, as knowing where to report security issues is important. (From OE-Core rev: c7cb22ac4ceed60f88452e83c907a4c4f33660e4) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* resulttool: Allow store to filter to specific revisionsRichard Purdie2024-11-141-0/+5
| | | | | | | | | | | We have a challenge on the autobuilder where test results from both OE-Core and poky are being mixed together during result storage which is confusing the data. Add a way to filter to specific revisions as the least worst way to fix the various issues this is causing. (From OE-Core rev: 3f276a0dc65341668788853be2cf27ab6aa12b13) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: add WIC_SECTOR_SIZE variableVince Chang2024-10-292-24/+50
| | | | | | | | | | | | | | Currently WIC is unable to generate images that requires a sector size different of 512. Add WIC_SECTOR_SIZE variable to handle the sector size of 4096 for UFS. For "wic ls" command modify get_partitions() to support WIC_SECTOR_SIZE. (From OE-Core rev: 2255f28b579bc5db4138bcacbb829661ae0ee721) Signed-off-by: Vince Chang <vince_chang@aspeedtech.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa selftest uki.py: add tests for uki.bbclassMikko Rapeli2024-10-251-0/+3
| | | | | | | | | | | | | Tests builds and boots qemu into uki binary with systemd and sysvinit. Due to depedency to x86 specific ovmf UEFI firmware, tests are specific to x86 curently. UEFI firmware for ARM can be generated via qemuarm64-secureboot machine in meta-arm and similar tests on qemu will pass. (From OE-Core rev: 8a3cb17876dbcaf07696a4bcd454e2f9a444fb1b) Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic bootimg-efi.py: change UKI support from wic plugin to uki.bbclassMikko Rapeli2024-10-251-115/+25
| | | | | | | | | | | | | | | | | | | Remove custom wic plugin implementation and use systemd ukify reference implementation when generating UKI images. Fail if users still have create-unified-kernel-image in wic image config. uki.bbclass use is detected from IMAGE_CLASSES variable ("inherit uki" in image recipe) so export that to wic plugins. If UKI is used, then only generate a minimal loader config for systemd-boot which basically just sets a timeout. Also set 5 second timeout by default instead of failing if wic bootloader config is missing. Boot menu is generated at runtime based on UKI binaries found from ESP partition. (From OE-Core rev: 725fed6ea40c7443b5e0e69dc1dd9c38ac814c56) Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic bootimg-efi.py: keep timestamps and add debug printsMikko Rapeli2024-10-251-19/+30
| | | | | | | | | | | Keep timestamps etc to help build reproducibility. Add prints to see what is being copied to ESP partition. (From OE-Core rev: cedcd25c5e3cd002dd34651c182193731d7c964b) Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: ide-sdk: fix help typoAntonin Godard2024-10-221-1/+1
| | | | | | | | | | Change "paramter" -> "parameter". (From OE-Core rev: e6e548170a5dee957b34d2a25161632fa37bb567) Signed-off-by: Antonin Godard <antonin.godard@bootlin.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* resulttool/regression.py: skip checking status for ↵Changqing Li2024-10-111-0/+2
| | | | | | | | | | | | | | | | ptestresult.rawlogs/ptestresult.sections ptestresult.rawlogs/ptestresult.sections don't have status is expected, so skip them to avoid following error when running "resulttool regression base target": ERROR: Failed to retrieved base test case status: ptestresult.rawlogs ERROR: Failed to retrieved base test case status: ptestresult.sections (From OE-Core rev: c83a535d1b32f7fd292cd9caea1ec962bc3c735b) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* resulttool/regression.py: fix AttributeErrorChangqing Li2024-10-111-0/+1
| | | | | | | | | | | | Fix following AttributeError when running "resulttool regression base target": File "/yocto/poky/scripts/lib/resulttool/regression.py", line 322, in regression_common res, resstr = compare_result(logger, c, b, base_results[a][c], target_results[a][b], args.limit) AttributeError: 'Namespace' object has no attribute 'limit' (From OE-Core rev: d773edde8db2019550916d2552171c45fe31ac2a) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic/rootfs.py: allow --exclude-path option to exclude symlinksYi Zhao2024-10-111-1/+1
| | | | | | | | | | | | | | | Currently, if we specify a symbolic link in --exclude-path option, we will get the following error in do_image_wic: ERROR: --exclude-path: Must point inside the rootfs: usr/bin/hello.link This is because it uses os.path.realpath to eliminate symbolic links. To exclude symbolic links, use os.path.abspath instead of os.path.realpath. (From OE-Core rev: 42e829ac1e9d74646b6dfb327b18b15f6b0df60b) Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* efi-bootdisk.wks: Increase overhead-factor to avoid test failuresRichard Purdie2024-10-101-1/+1
| | | | | | | | | | | | | | After commit d74bfb2d5c9e6247e4c0a3c2fdba0cc4a7585395: "linux-yocto: Enable l2tp drivers when ptest featuee is on" was merged, oe-selftest efibootpartition.GenericEFITest.test_boot_efi breaks due to space issues. Increase the disk space available to avoid this and allow functional automated testing again. (From OE-Core rev: eb76c15de881a56ead0a18f6428c5564291249c9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* default-distrovars: Have KERNEL_CONSOLE reference SERIAL_CONSOLESJon Mason2024-10-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Currently, KERNEL_CONSOLE has a default value of "ttyS0". However, Arm machines and those using virtio serial prefer to use "ttyAMA0" or "hvc0" (or something else). These are usually defined by the machine config file as SERIAL_CONSOLES, which has one or more entries. Take the first one of those instead of ttyS0, but default back to ttyS0 if nothing is set. Also, use this variable in the efi wic file instead of "ttyS0". Of note, this changes the default speed of the default kernel console from undefined (9600) to 115200. This allows for users of the mkefidisk.wks to work as before but any users of this variable could see changed behavior and would now need to define this as: KERNEL_CONSOLE ?= "ttyS0,9600" This includes revisions suggested by Quentin Schulz and Ross Burton. (From OE-Core rev: da42fc9ad55d1d60a04e38ff94c965f711f60cd6) Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: drop useless variablesAdrian Freihofer2024-09-301-3/+0
| | | | | | | | | | | | | | Drop some unused code. The actual intention was to look for remnants of S = WORKDIR, which required the extra complicated oe-local-files directory. The remaining code dealing with oe-local-files still seems to be useful. (From OE-Core rev: 02b52a2de3bf5766bc05531138a2e23acb00a276) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: menuconfig remove useless codeAdrian Freihofer2024-09-301-6/+1
| | | | | | | | | | When I tried to understand whether oe-local-files is actually still needed here, I found some useless lines that can be dropped. (From OE-Core rev: 43f0c6beaa2a99301a565837944250bb2e56c98a) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: drop S = WORKDIR workaroundAdrian Freihofer2024-09-301-38/+0
| | | | | | | | | | | | | | Dropping support for S = WORKDIR allows to drop this ugly workaround. With S = WORKDIR it was possible to refer to a file via oe-local-files symlink or via direct file path. Ensuring the pseudo database is consistent for both paths was extra complicated and required this bad function. Really nice to drop it now! (From OE-Core rev: 2b799fdf267f44c26797593984d9828c4fd0fd31) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: remove obsolete SRCTREECOVEREDTASKS handlingAdrian Freihofer2024-09-041-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | devtool modify generates a bbappend for kernel recipes which contains: SRCTREECOVEREDTASKS="\ do_fetch \ do_kernel_checkout \ do_kernel_configcheck \ do_unpack \ do_validate_branches \ " do_patch[noexec] = "1" If the linux-yocto kernel is used, this is redundant. The linux-yocto.bbclass already does the same: linux-yocto sets SRCTREECOVEREDTASKS to SRCTREECOVEREDTASKS="\ do_fetch \ do_kernel_checkout \ do_kernel_configcheck \ do_patch \ do_unpack \ do_validate_branches \ " Also the do_patch[noexec] is redundant because the purpose of SRCTREECOVEREDTASKS is to delete these tasks if the externalsrc.bbclass is used. The default value of SRCTREECOVEREDTASKS initialized in externalsrc.bbclass is: SRCTREECOVEREDTASKS ?= "do_patch do_unpack do_fetch" This is fine for kernels which do not inherit the linux-yocto.bbclass. The code in devtool modify is redundant and therefore removed. (From OE-Core rev: 94ff1be36a1eeef7ddceb4fcf20425a03cd052de) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: modify kernel adds append twiceAdrian Freihofer2024-09-041-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Drop the redundant generation of the do_configure:append section for the kernel. The same append is generated twice: if bb.data.inherits_class('kernel', rd): f.write('\ndo_configure:append() {\n' ' cp ${B}/.config ${S}/.config.baseline\n' ' ln -sfT ${B}/.config ${S}/.config.new\n' '}\n') KCONFIG_CONFIG_ENABLE_MENUCONFIG ??= "true" KCONFIG_CONFIG_ROOTDIR ??= "${B}" if rd.getVarFlag('do_menuconfig', 'task'): f.write('\ndo_configure:append() {\n' ' if [ ${@oe.types.boolean(d.getVar("KCONFIG_CONFIG_ENABLE_MENUCONFIG"))} = True ]; then\n' ' cp ${KCONFIG_CONFIG_ROOTDIR}/.config ${S}/.config.baseline\n' ' ln -sfT ${KCONFIG_CONFIG_ROOTDIR}/.config ${S}/.config.new\n' ' fi\n' '}\n') In contradiction to the first code block the second code block considers the variables which is correct. (From OE-Core rev: b0733c440e861ed7bf70efdd9b7a73afb4701218) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* resulttool: Add support to create test report in JUnit XML formatClara Kowalsky2024-08-291-0/+77
| | | | | | | | | | | | | | | | | | | | | | This adds the functionality to convert the results of the testresults.json file to a unit test report in JUnit XML format. The unit test report can be used in the CI/CD pipeline to display the test results. To use the resulttool scripts, first source oe environment, then run the entry point script to look for help. $ resulttool To generate the unit test report, execute the below $ resulttool junit <json_file> By default the unit test report is stored as <build_dir>/tmp/log/oeqa/junit.xml. (From OE-Core rev: 3f9be03946243feaa09b908d7010899769091fe6) Signed-off-by: Clara Kowalsky <clara.kowalsky@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipetool: create_npm: reuse license utilsEnguerrand de Ribaucourt2024-08-232-64/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | create_npm.py duplicated the logic for matching licenses from files and also finding them. This patch refactors the code to reuse the license utils. This will make the code more maintainable and also align both behaviors. For instance, some licenses weren't matched properly because the duplicate logic did not support the difference in format in the md5 tables for COMMON_LICENSE_DIR and licenses.csv. This is also faster since the license files were being read twice. The result is slightly more accurate since the utils have better implementations, and I was able to reuse the logic for the root PN package, as well as the base LICENSE variable. I chose to extract generate_common_licenses_chksums into create.py since it can be considered a general utility function to allow other recipetool creators to refer to COMMON_LICENSE_DIR files. I updated the wording in the code when appropriate. v3: - added commit - this replaces the commit that added all the COMMON_LICENSE_DIR md5 to licenses.csv (From OE-Core rev: 7bc18bed63b94689890bcde63402d7cc1cedffa9) Signed-off-by: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>