summaryrefslogtreecommitdiffstats
path: root/scripts/lib/wic/utils
Commit message (Collapse)AuthorAgeFilesLines
* wic: Report recipe name for native commandsEd Bartosh2015-08-091-3/+26
| | | | | | | | | | | | | | | exec_native_cmd was modified to report recipe to build native programs. Pairs executable->recipe are hardcoded as it's not possible to obtain this information automatically. [YOCTO #7631] (From OE-Core rev: 1274379c91ee8e2fb9fbb34a6445cd5767eb4a35) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Set default set of bitbake variablesEd Bartosh2015-07-101-0/+5
| | | | | | | | | | | | | | Set default set of bitbake variables to the set of variables for the first parsed image. This allows wic to find proper bitbake varibale values if it's called with '-e <image>' even without specifying image in the call of get_bitbake_var. (From OE-Core rev: 18cc6d2ec4dc289bb0333dddc96df5a645ea53d0) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Code cleanup: unused importsEd Bartosh2015-07-021-1/+0
| | | | | | | | | Fixed pylint warning unused-import (From OE-Core rev: e77fda5fb6cb0a35308e4620ca4602715a471fbe) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Code cleanup: long lines, identation and whitespacesEd Bartosh2015-07-022-4/+3
| | | | | | | | | | Fixed pylint warnings bad-continuation, bad-continuation and line-too-long. (From OE-Core rev: db43e59f41b6bc19152cd4743585a3217015e272) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Remove __write_partition methodEd Bartosh2015-07-021-21/+15
| | | | | | | | | | Moved code of __write_partition to 'assemble' method. This way it should be more readable. (From OE-Core rev: f7059362053c87f96ce68d1ab850962defb76540) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Rename partition imagesEd Bartosh2015-07-021-0/+2
| | | | | | | | | | | Renamed partition images into <final image>.p<partition number> This should make output directory look more organized and easier to understand. (From OE-Core rev: c826939e4eeed034f39207089ec1a7ed87c1c493) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Turn off debug output for 'bitbake -e'Ed Bartosh2015-07-021-0/+5
| | | | | | | | | | | Switched debug level to 'normal' to prevent huge 'bitbake -e' output to go into wic debug output. This should help to make wic debug info much more clean and easier to read. (From OE-Core rev: 71510c32d78ba24bf1172548f8eb4adfe621d2de) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Refactor getting bitbake variablesEd Bartosh2015-07-021-52/+30
| | | | | | | | | | | | | | | | | | Wic gets bitbake variables by parsing output of 'bitbake -e' command. This implementation improves this procedure as it runs 'bitbake -e' only when API is called and does it only once, i.e. in a "lazy" way. As parsing results are cached 'bitbake -e' is run only once and results are parsed only once per requested set of variables. get_bitbake_var became the only API call. It replaces find_artifacts, find_artifact, find_bitbake_env_lines, get_bitbake_env_lines, set_bitbake_env_lines and get_line_val calls making API much more clear. (From OE-Core rev: 3abe23bd217315246ec2d98dc9c390b85cfe6a92) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: code cleanup: superfluous-parensEd Bartosh2015-06-231-3/+3
| | | | | | | | | | Removed unncecessary parents after 'if' 'del' and 'print' keywords. Fixed pyling warning: Unnecessary parens after 'xxx' keyword (From OE-Core rev: a64604d11f75973b4c2347fa2669da9889e44013) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Move validation of --ptable option to wks parserEd Bartosh2015-06-111-4/+0
| | | | | | | | | | | | | bootloader --ptable option has two valid choices: gpt and msdos Moved this check to wks parser by changing option type to 'choice'. Removed similar checks from 5 other places. (From OE-Core rev: b812d0f40423bc56394cc8b6fc92eb1f477dba1b) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Set type GUID and UUID for partitionEd Bartosh2015-06-111-0/+15
| | | | | | | | | | | | | | | | | | Set type GUID and UUID for partition using sgdisk utility. Type GUID can be specified for partition in .wks with --part-type option. UUID is generated when --use-uuid option is specified for partition. [YOCTO #7716] (From OE-Core rev: c3cb9eb31570b2a92c8081a6b3716cb7443b1506) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add parameter 'uuid' to Image.add_partition methodEd Bartosh2015-06-111-2/+3
| | | | | | | | | | | With this parameter it's possible to pass generated UUID into Image class to set it for partition when it's created. (From OE-Core rev: e4bc71fa78b0d7a60aa85b8eb09a053545b61b84) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: pylinted partitionedfs.pyEd Bartosh2015-06-111-33/+30
| | | | | | | | | | Fixed some pylint findings in partitionedfs.py (From OE-Core rev: fcb891a391a34fad15d99edfea6b0f022fc0d1c9) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: replaced __run_parted with exec_native_cmdEd Bartosh2015-06-111-19/+13
| | | | | | | | | | There is no need for yet another wrapper around exec_native_cmd. (From OE-Core rev: f0f163e55865dc10d2a4188b5f2d759836c13f68) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: move checks to exec_native_cmdEd Bartosh2015-06-112-11/+7
| | | | | | | | | | | | | | Checked for return code and output of native commands inside exec_native_cmd. Removed similar code from a lot of places where exec_native_cmd is called. (From OE-Core rev: 9e3e933321d58c04619a585326fb291dbf2748f5) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: removed exec_cmd_quiet and exec_native_cmd_quietEd Bartosh2015-06-111-21/+0
| | | | | | | | | | These functions are not used anywhere. (From OE-Core rev: 7467fd446d08704881325577b7035b6128db6151) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: check if part_type is set only for msdos partition tableEd Bartosh2015-06-111-1/+1
| | | | | | | | | | | | | Specifying partition type(GUID) makes sense for gpt partition table. Current code checks if part-type is specified and throws exception if it is. This makes sense to do only for msdos partition table. (From OE-Core rev: 52dcccbead0c57d1a3f4afd2f9c7a38a985301ec) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: set legacy_boot flag for gpt partitionsEd Bartosh2015-06-111-1/+1
| | | | | | | | | | | This flag is used to tell special purpose software that the GPT partition may be bootable. (From OE-Core rev: 3ec5e2892c5ee312c44f4425096450a1914ce44a) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: refactored processing of wic exceptionsEd Bartosh2015-05-291-26/+8
| | | | | | | | | | | | | | | All wic exceptions are now inherited from new base exception class WicError. It makes them easy to maintain and catch. Processing of exceptions is done this way: Known wic exceptions cause wic to print error message to stdout. Unknown exceptions are not catched anymore and produce standard python traceback. (From OE-Core rev: e5e2c18ce4344c14d9e52ece916333bd0a619281) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add plugin for single partition diskAdrian Freihofer2015-05-031-0/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The wic plugin creates a disk image containig one ext2/3/4 partition. No additional boot partition is required. Syslinux is installed into the image. The target device is a legacy BIOS PC. Purpose of this plugin: Other avaliable plugins create a fat partition for /boot and an ext partition for rootfs. Current linux-yocto kernel packages are not compatible with this disk layout. The boot partition is not mounted by default, hence the kernel is installed into rootfs and not into boot partition. A kernel update ends up in a bricked device. The old kernel which is still in boot likely does not even boot with updated kernel modules from /. Even if the boot partition is mounted during the kernel update the update will fail. The kernel package installs a symbolic link which is not supported by the fat partition. Creating just one ext partition for boot and rootfs solves all issues related to package based kernel updates on the device. The plugin depends on syslinux-nomtools a user space installer for syslinux on ext filesystems. Thanks to Robert Yang who implemented syslinux-nomtools and supported the implementation of this plugin. (From OE-Core rev: 4a7bd79b5100a496c9b1597b57d6dc18ba2b9c83) Signed-off-by: Adrian Freihofer <adrian.freihofer@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: code cleanup: wildcard importsEd Bartosh2015-04-242-7/+2
| | | | | | | | | | | | | Here is what PEP8(Style Guide for Python Code) says about this: Wildcard imports (from <module> import *) should be avoided, as they make it unclear which names are present in the namespace, confusing both readers and many automated tools. (From OE-Core rev: 13416c1941f5dc8abcdb0073f2104a89eae2d6f1) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Print bitbake error outputEd Bartosh2015-04-141-0/+1
| | | | | | | | | | | | Added bitbake error output to wic error message to make it more descriptive. [YOCTO #6911] (From OE-Core rev: f68576d4c9cecbe7122325d7fc78c9b27ff07a8e) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: use native partedEd Bartosh2015-04-142-23/+6
| | | | | | | | | | | | | | | | | Used exec_native_cmd instead of find_binary_path to run parted. Got rid of find_binary_path as it's not used anywhere else. There are several tools wic is trying to find not only in sysroot, but also in host root. Parted is a special as on some distros it's installed in /usr/sbin, which is not in the user's PATH. This makes wic to fail with error "External command 'parted' not found, exiting." [YOCTO #7122] (From OE-Core rev: 76adf38c0d8e0faf04a5ecb3fcfbe831c85bb81f) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic:code cleanup: No space allowedEd Bartosh2015-04-134-10/+10
| | | | | | | | | | Fixed pylint warning 'No space allowed around keyword argument assignment' (From OE-Core rev: e07dd9b9c71960fbeded162ed52fbce06de620e9) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: make error message more informativeEd Bartosh2015-04-101-2/+2
| | | | | | | | | | | | | Included name of the missing program into the error message produced by exec_native_cmd when program is not found. Removed mentioning of the host programs as this API is not running them anymore. (From OE-Core rev: 7d1599cf6a55d3624d2b90c1f55e14c4df73e570) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: don't use host paths when looking for native toolsEd Bartosh2015-04-101-1/+1
| | | | | | | | | | | | exec_native_cmd should not use host paths in $PATH to avoid finding and using host tools. [YOCTO: #6204] (From OE-Core rev: fa263f238bbddb00c9953994fb69cc358170e2ec) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: support ontrackdm6aux3 partitionsAlexandre Belloni2015-04-091-0/+2
| | | | | | | | | | ontrack dm6 aux3 is a type of partition required to be able to boot a Freescale mxs based platform. (From OE-Core rev: aa2d05c58992810a5f816eef8078facf03a07e3c) Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: code cleanup: unused importsEd Bartosh2015-04-093-9/+0
| | | | | | | | | Fixed pylint warning 'Unused import' (From OE-Core rev: dfde8bdae3ae151ffed5777b920d24c774e5da2c) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: add GPT supportAlexandre Belloni2015-02-141-1/+8
| | | | | | | | | | Add GPT partition table support. (From OE-Core rev: a3479ab45d89273b4474ca54517554fc5346da32) Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: allow to configure overhead factor per partitionAlexandre Belloni2015-02-141-1/+0
| | | | | | | | | | | Introduce a new option --overhead-factor to replace IMAGE_OVERHEAD_FACTOR. (From OE-Core rev: 20fe0c7202724187dbe80eb2101d8ef69e86b94e) Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: allow to configure extra space per partitionAlexandre Belloni2015-02-141-1/+0
| | | | | | | | | | | | Introduce a new option --extra-space instead of using IMAGE_EXTRA_SPACE. This is useful for boot partitions where the extra space is often useless or for huge partition where 10MiB may not be enough. (From OE-Core rev: 9f7fe71a10bcdd1864d2f838f3510e96810ef42e) Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: allow creation of partitions not in tableAlexandre Belloni2015-02-141-5/+15
| | | | | | | | | | | | | | | | For some architectures it is necessary to reserve space on disk without it being present in the partition table. For example, u-boot on i.mx is placed at an offset of 1kB on the sdcard. While it would be possible to create a partition at that offset and place u-boot there, it would then be necessary to update the default u-boot environment to use partition 2 on the mmc instead of partition 1. (From OE-Core rev: 233b631ece5ee14d057932c146327065064b5196) Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: use kB for the partitions sizeAlexandre Belloni2015-02-081-2/+2
| | | | | | | | | | | | | | | | | | Use kB instead of MB for the partition size to get a better granularity. This is needed on some SoC (i.mx, omap) where it is necessary to create partitions as small as 64kB. Keep the backward compatibility by assuming MB when no unit is provided. (From OE-Core rev: 3d4da9186016d54b76ad2fa710646de253f0f063) Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Tested-by: Maciej Borzecki <maciej.borzecki@open-rnd.pl> Acked-by: Tom Zanussi <tom.zanussi@linux.intel.com> Tested-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: fix extended/logical partition layoutMaciej Borzecki2015-02-081-21/+19
| | | | | | | | | | | | | | | | | | | The patch fixes an issue in laying out extended and logical partitions by wic. The original code produced disk images in which the size 3rd partition as described in MBR was incorrect. Depending on the type of file system used for that partition and size of the partition, it would be impossible to mount the partition correctly. For instance, kickstart file in which the 3rd partition had size of 1GB and used ext4 fs, would result in an image with an umountable partition. The root cause is reservation of sectors for EBR through stealing of last sector from the last primary partition. (From OE-Core rev: a8b85f7878726503dbfa2e9ea86bd6fd961bf03b) Signed-off-by: Maciej Borzecki <maciej.borzecki@open-rnd.pl> Signed-off-by: Maciek Borzecki <maciek.borzecki@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* scripts: use '/usr/bin/env' in shebangs with pythonMartin Hundebøll2014-11-125-5/+5
| | | | | | | | | | | | | | | | | | To support yocto on systems with python3 as default version, scripts should use /usr/bin/env python in the shebang, as this allows the use of a fake env to mimic python2 as default version. This patch simply replaces occurrences of #!/usr/bin/python with #!/usr/bin/env python and was done with this oneliner: git grep -lE '^#!/usr/bin/python' | xargs \ sed -i 's|/usr/bin/python|/usr/bin/env python|' (From OE-Core rev: 6d3de22a19657a413e01d7bb5fd74d16c00dc696) Signed-off-by: Martin Hundebøll <martin@hundeboll.net> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Use overhead factor when creating partitions from rootfs directoriesTom Zanussi2014-10-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | When creating partitions sized to given rootfs directories, filesystem creation could fail in cases where the calculated target partition size was too small to contain the filesystem created using mkfs. This occurred in particular when creating partitions to contain very large filesystems such as those containing sdk image artifacts. This same limition is present in the oe-core image creation classes, which can be readily see by changing IMAGE_OVERHEAD_FACTOR from the default 1.3 to 1.0 and building a sato-sdk image. It should be possible to calculate required sizes exactly given the source rootfs and target filesystem types, but for now, to address the specific problem users are hitting in such situations, we'll just do exactly what oe-core does and define and use an IMAGE_OVERHEAD_FACTOR or 1.3 in those cases. Fixes [YOCTO #6863]. (From OE-Core rev: bbaef3ff5833fc1d97b7b028d7770834f62789da) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: do not realign aligned partitionsMaciej Borzecki2014-08-231-8/+11
| | | | | | | | | | | | The change prevents additional realignment of already aligned partition. Previously, even already aligned partitions would be pushed forward by the amount of --align. (From OE-Core rev: 92a1b83d928173a58280ca019ca81fdeb5ba72b5) Signed-off-by: Maciej Borzecki <maciej.borzecki@open-rnd.pl> Signed-off-by: Maciek Borzecki <maciek.borzecki@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: do not steal sectors from the first partitionMaciej Borzecki2014-08-231-3/+0
| | | | | | | | | | | | | | | | | | | | | | | In order to make up for space loss due to overhead located before the first partition, same amount of bytes was extracted from the first partition's size. This leads to unexpected change of first partition's size, and is not matched by similar adjustment at the time the partition image is generated. Thus it is possible that the first partition may partially overwrite contents of the following partition, as the partition image is larger than the allocated space. This is also problematic on certain platforms such as OMAP, where the first partition is required for have an even number of sectors (typically already expressed by --size in kickstart file). Subtracting an odd number of sectors lost for overhead, leads to an odd number of sectors assigned for partition, preventing the board, such as beaglebone, from booting correctly. (From OE-Core rev: c3251d4191fb0b7c3477a3579e542729598f6aad) Signed-off-by: Maciej Borzecki <maciej.borzecki@open-rnd.pl> Signed-off-by: Maciek Borzecki <maciek.borzecki@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add utility function for parsing sourceparamsTom Zanussi2014-08-151-0/+23
| | | | | | | | | | Parses strings of the form key1=val1[,key2=val2,...] and returns a dict. Also accepts valueless keys i.e. without =. (From OE-Core rev: 36f258ee6e60c26fd44b9bc71c318363cec71f42) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Rename /mic to /wicTom Zanussi2014-08-119-0/+2475
As well as any other stray instances of mic in the codebase that can be removed. We don't really need to carry around legacy naming, and the history is in git. (From OE-Core rev: 598b120406dc1d2b7e377bd1ab6f0acbef034b22) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>