Operating systems that can't handle filenames containing anything but
uppercase letters don't like to see 'strange' characters in filenames
such as the file and directory names yocto-bsp uses as part of its
templating mechanism. To fix this, we essentially add another level
of metadata into the template files themselves rather than into their
names, and add a processing pass that internally gives us what we had
before. Specifically:
- strange characters in filenames are moved inside the files they
apply to, to the first line of the file prepended with '#
yocto-bsp-filename {{...}} filename | this'
- strange characters in directory names are moved inside a new file
of the same name but ending in .noinstall and with the first (and
only) line of the file prepended with '# yocto-bsp-dirname {{...}}
dirname'
If the new filename contained in the yocto-bsp-* tag is 'this', the
filename is the existing name of the file. For a dirname, this would
be the filename with .noinstall removed.
"Fixes" [YOCTO #5312].
(From meta-yocto rev: 3dad2decbd682713f717950fc39fa0f63f1b8c98)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
mips64 support was recently added to the core BSPs; we should also
support it in yocto-bsp. [YOCTO #5314]
(From meta-yocto rev: 3f3d29e2df6462c915d0763ab07f3be3c739ca4d)
Signed-off-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>
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>
Update bootimg-partition to use bootimg_dir instead of img_deploy_dir,
to match similar usage in other plugins.
As mentioned elsewhere, plugins should use the passed-in value for
bootimg_dir directly if non-null, which corresponds to a user-assigned
value specified via a -b command-line param, and only fetch the value
from bitbake if that value is null.
(From OE-Core rev: 3822f8a7b33da56ecd9144b4bcae50734fb1af81)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The first iterations of wic very shortsightedly catered to two
specific use-cases and added special-purpose params for those cases so
that they could be directly given their corresponding boot artifacts.
(hdddir and staging_data_dir).
As more use-cases are added, it becomes rather obvious that such a
scheme doens't scale, and additionally causes confusion for plugin
writers.
This removes those special cases and states explicitly in the help
text that plugins are responsible for locating their own boot
artifacts.
(From OE-Core rev: 6ba3eb5ff7c47aee6b3419fb3a348a634fe74ac9)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This reverts commit 7ce1dc13f9.
This patch broke the assumption that a non-null boot_dir means a
user-assigned (-b command-line param) value.
Reverting doesn't break anything, since the case it was added for
doesn't use the boot_dir for anything except debugging anyhow.
Fixes [YOCTO #6290]
(From OE-Core rev: db90f10bf31dec8d7d7bb2d3680d50e133662850)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The --debug option is missing from the wic help text; this adds it and
at the same time rearranges the usage into a more logical arrangement.
(From OE-Core rev: cf5144ef241d8f4ccaa3461ae5c9f89c2cf2f8d1)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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>
The return code from the mkfs command used by the partition creation
command was being ignored, allowing it to silently fail and leaving
users mystified as to why the resulting filesystem was corrupted.
This became obvious when failures occurred when creating large
e.g. sdk filesystems [YOCTO #6863].
(From OE-Core rev: 8cef3b06f7e9f9d922673f430ddb3170d2fac000)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
While syslinux not existed in $bootimg_dir, there was a error:
$ wic create directdisk -e core-image-minimal
...
|Creating image(s)...
|Error: exec_cmd: install -m 444 /home/jiahongxu/yocto/
build-20141010-yocto/tmp/deploy/images/qemux86-64/syslinux/
ldlinux.sys /var/tmp/wic/build/hdd/boot/ldlinux.sys
returned '1' instead of 0
...
Add checking for the existance of syslinux to fix this issue.
If syslinux didn't exist in anywhere, prompt user to build it.
[YOCTO #6826]
(From OE-Core rev: c2d4364d9fbbda64598f0a3eb0b0890932bb7742)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add kickstart for generating a SD card image that should cover most use
case scenarios. The layout is as follows:
- 16MB vfat partition that IMAGE_BOOT_FILES will be copied to, 4k
alignment
- ext4 rootfs, 4k alignment
(From OE-Core rev: bb01a6be7b32aa675f5003a6012a60a081212e8c)
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>
This patch implements 'bootimg-partition source plugin class for 'wic'. The
plugin creates an image of boot partition, copying over files listed in
IMAGE_BOOT_FILES bitbake variable.
(From OE-Core rev: 4a3200d710d953956064c28188577fbd461d093d)
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>
Running wic with -e to use artifacts from a named image, bootimg_dir was
always passed as empty string to partition source plugins. The patch
sets bootimg_dir to current value of DEPLOY_DIR_IMAGE, as bootloader
artifacts end up in that location as well.
(From OE-Core rev: d7f69e6f0932a927b6ce289fb47ba575d7aaa1c8)
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>
VFAT rootfs partitions sector count would get updated always even if
there is no need. Since parition size in wic is expressed in MB, any
sub MB change will cause the generated partition image to be larger
than allocated space within the disk image. Fortunately, partitions
sized in MB will most of the time have a proper sector count.
(From OE-Core rev: 99bee4cb489800d74dea4d2158ff834413685f04)
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>
Functions for generating rootfs use IMAGE_EXTRA_SPACE rather than
BOOTDD_EXTRA_SPACE. The latter is used in boot image source plugins.
(From OE-Core rev: 44abf447f8e4ed11cbbe53a4fb0ecf10a20f0f9e)
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>
The previous commit, 'wic: Remove 3rdparty/urlgrabber' didn't actually
remove all references to urlgrabber - this does however.
(From OE-Core rev: b4367af770611174d9de82c63c697d4347e30dcf)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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>
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>
Not including the label image but having multiple partitions of the same
type, the image file of one partition would overwrite the other.
(From OE-Core rev: acf2fb7c6dfa3217ffcbf9483c190057d9f41bbf)
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>
This is the same as mkefidisk but uses gummiboot instead of grub-efi.
(From OE-Core rev: 5979409ebfab0bb07b3c2b2fcf14a722c441f07b)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The bootimg-efi plugin now requires a loader param, so supply it to
retain existing behavior.
(From OE-Core rev: ccef1385cb51ce2b9b75493b314e38599a8ae10e)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add gummiboot support to bootimg-efi, which retains the existing
grub-efi support (though requires an update to the .wks file).
(From OE-Core rev: f1a81fcefa493540a9faac549fdd513b86f8f497)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add code to parse the sourceparams and pass them to the partition
plugin methods.
(From OE-Core rev: 769a6f920fb672c50d76bd4bdea4a65fdc18a7b3)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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>
To go along with '--source' as a way to parameterize source plugins.
(From OE-Core rev: f5b9ef65453b3f66282c49f5e2584ad33ac6d2d7)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This represents a complete rework, and if we assume the previous
version should have been 1.0 (instead of a silly .1x version), then
this should be 2.0.
(From OE-Core rev: d263cb055333e6432454a13403eda471c514a3e6)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
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>
wic doesn't mount anything, so can't have a mount error; rename it to
something more appropriate.
(From OE-Core rev: e1edee656fc9c0a791c0eb62796d1afa483be34e)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It's actually a container for disks and partitions, and wic doesn't
mount anything, so rename it to match what it really is.
(From OE-Core rev: 28c5249b4df46ba3ac227d0c4dc6e545b40dbaf3)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The wic code inherited a basic image-creation flow based on
image-configuration, but wic doesn't actually configure anything, so
rename parts of the code dealing with configuration to something more
appropriate.
(From OE-Core rev: 58dc8879bba31542e2386aaaa70034621b2b1e4e)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The wic code inherited a basic image-creation flow based on installing
packages, but wic doesn't actually install anything, so rename parts
of the code dealing with installing to something more appropriate.
(From OE-Core rev: b4232041534a79236eb8d8ab5c0024a0ef4da649)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The wic code inherited a basic image-creation flow based on mounting
loop devices, but wic doesn't actually mount or unmount anything, so
get rid of unmount() and consolidate whatever it did do with
cleanup().
(From OE-Core rev: 1b103bf4a7c7527d4fc57bad1bbd1d5a5bbddb4a)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The wic code inherited a basic image-creation flow based on mounting
loop devices, but wic doesn't actually mount anything, so rename parts
of the code dealing with mounting to something more appropriate, and
remove related unused code.
(From OE-Core rev: 94e15c18c011b0d7d71276cd4566be2417c2c6be)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It doesn't do anything we need, so remove it and fix up callers/base
classes.
(From OE-Core rev: fb2a162d8756ab69c9c29a0715b033f18620341d)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Also fix up users such as imager functions.
(From OE-Core rev: eb77b9c11bd9b8dc90aacfbd5b5bc5568a233525)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Remove help text regarding the source and future intentions of the wic
codebase, since the code prompting those comments has now been mostly
removed.
(From OE-Core rev: dfa8626700269141f8d2f5be12c8758db7ca6473)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The default is F16 and there's no reason to change that, so remove
everything else.
(From OE-Core rev: e0ec12d012e568c9943614fc1190c143912180b3)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't use a lot of Creator, so remove it.
(From OE-Core rev: ef6bc7a3b58ba8b9c94f4c1e41c0f6d7d51c0bf5)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't use a lot of ParitionedMount, so remove it.
(From OE-Core rev: 0f793ff0767b0cce032c20b677974806c65610d6)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Remove what wic doesn't use from DirectImageCreator.
(From OE-Core rev: dbbe6d04f6c606c94ff17151aee1214e4e24ce7d)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't use a lot of BaseImageCreator, so remove it.
(From OE-Core rev: 6bd95c24b44fa80ac9d5950bf2d925f18f671290)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't use it, so remove it.
(From OE-Core rev: b818e5a1ed047940fda533da73fc50a099e1aa3f)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't currently use it, so remove.
(From OE-Core rev: d3a490d5421405bf9e002c6c65ffb831ea6b767e)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't use anything but partition and bootloader, so remove the
rest.
(From OE-Core rev: b6ae106b5d28180a5890e837c87f3e91e5917638)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't use it, so remove it.
(From OE-Core rev: 00dcdb29c89634ab267d328eb00f8eb70c696655)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't use it, so remove it.
(From OE-Core rev: 84e1e13ce3af216e304f61c7ea6e5e9338f94bc6)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't use it, so remove it.
(From OE-Core rev: e18d5393a556e1ff4826c1e5b1a75f4ac998b10e)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't use it, so remove it.
(From OE-Core rev: a49b39ddf18b1b058c0a892e1a7450239eea66ce)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't use proxy support, so remove it.
Also remove anything related to proxies in misc and conf, and while
we're at it, remove all the obviously unneeded code from those files -
it's easier to just remove it than to figure out the callchain to the
proxy code usages.
Basically the extra stuff relates to packaging, images, and config
files we don't use.
(From OE-Core rev: 041f9e2ca52681cd6f5c2fb804dd45f05358c9f9)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't need to grab any urls, so remove it.
(From OE-Core rev: 55f8df07d82724b6d7ed694158ca6e9a5266cbc4)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't use it, so remove it.
(From OE-Core rev: b732ad616ca20dfc4adb845b68ae3378624a0a4d)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't use it, so remove it.
(From OE-Core rev: 69f16c7582660a3bcf4106668e548b4c789ae251)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic doesn't use the yum or zypp package managers, remove them.
(From OE-Core rev: ef70b961b6b8f3a004036f84b608665db2085215)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
More package-related stuff we don't need.
(From OE-Core rev: 167cb99af427510bb6d72e89478c62a804db125c)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
mic chroot allows users to chroot into an existing mic image and isn't
used by wic, so remove it.
Removing chroot.py leads in turn to various plugin-loading failures
for a number of plugins that wic doesn't use either, so remove those
as well.
The existing source plugins refer to chroot but don't use it, so fix
those up.
(From OE-Core rev: d73230306b827972cdc99f21d247c54d5d7c0b6d)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Remove commands related to repos, packaging, configuration
(From OE-Core rev: 2b002ab75473578f06f161be0b48670fba26994e)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The reason exec_cmd() warns but doesn't error out (broken parted)
doesn't really make sense, since the parted invocations don't even use
exec_cmd(). It really should just fail since by not doing so it's
actually enabling invalid images in some cases.
Also, since the return code is now always zero, there's no point in
having a return code, so remove it. This represents a change in the
API, so we also need to update all callers.
(From OE-Core rev: a10bbd39eee29cc49d258bf08aaec279c3115c66)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is a set of miscellaneous help text updates noticed while
transcribing wic help for the dev manual.
(From OE-Core rev: d4b350fcdedf29692673e09a0c1850cdbbe29739)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
squashfs support was recently added to wic, so document it.
(From OE-Core rev: c04043e143932fe2ea38f87d2faa8beed007671b)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
--fsoptions support was recently added to wic, so document it.
(From OE-Core rev: e2d87ad57f8aa74e748ba95f6a801a2ca665ecc4)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix various typoes and grammar problems noticed while transcribing for
the dev manual.
(From OE-Core rev: 79fb7d9b5a28810e3adfaf5cba0c2298810253e9)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
DirectImageCreator.__write_fstab() generates new /etc/fstab in sysroot
with rootfs contents. The fstab entries are generated base on the
initialn contents of /etc/fstab, plus any extra (other than / or
/boot) partitions listed in *.wks. A backup of original /etc/fstab is
done in a temp location. Subsequent call to __restore_fstab() restores
the backup copy, replacing the autogenerated one.
Calling __restore_fstab() before Wic_PartData.prepare() brings back the
original fstab before the partition image file actually is created. As
such, the autogenerated /etc/fstab will not make it to the partition.
(From OE-Core rev: a9e59d7b1fa1ed33ce9678fb77a367800d7a8f87)
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>
It is possible to instruct wic to create a squashfs partition by setting
--fstype=squashfs in *.wks. For now this is only useable for rootfs
partitions (note that you must have squashfs support in the kernel). An
attempt to create an empty partition will produce a warning.
(From OE-Core rev: 30266a0be946bd0ce76d6920e7afe840c6c3bf80)
Signed-off-by: Maciej Borzecki <maciej.borzecki@open-rnd.pl>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add handling of --fsoptions in parition definition. If no options are
specified, 'defaults' is used.
(From OE-Core rev: e91c0db15db74237606fae96c9b7d21936519a86)
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>
The bootimg-efi plugin specifies the fstype internally, so remove it
from the partition definition.
(From OE-Core rev: e9365e9d9e8a8696849fda182ec260398059089a)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Previous patches added help for 'wic kickstart' but forgot to add an
entry in the main help page showing its availability. Add an entry
for it.
(From OE-Core rev: 5aa212f990c3d9b90a4f06cea346b82fc5d376ba)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The original move of the mkefidisk code to the bootimg-efi plugin
resulted in a bad hdddir - fix it.
(From OE-Core rev: ab337705521d8734f12be612709e70a163111fe3)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It doesn't make sense to create zero-sized partitions so assume user
error and notify the user they should be using a non-zero --size for
partitions that don't specify a --source.
(From OE-Core rev: 3231562c3c9f8173ddcc0812001aadf0988c8892)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a 'wic kickstart' help section to make it easy for users to access
the kickstart reference without having to go to an external website.
(From OE-Core rev: 136137ec1c124aee89d2120abded60a5cf0562b0)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a general overview of wic to the help system as 'wic overview',
along with some introductory examples.
(From OE-Core rev: fa108caaa53878152e4856d32ce1ab7fe3802287)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add vfat as a supported rootfs type (in addition to the current
ext2/3/4 and btrfs support).
vfat partitions can now be created using --source rootfs along with
--fstype=vfat, or without --source but specifying a --size.
(From OE-Core rev: d9efc110fd73822629b2a3326761f2256b9f23b0)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The current code uses msger.debug() to note errors, effectively
squelching them if --debug isn't used. Apparently this is because it
can return non-zero for some loop device failures. We don't care
about loop devices, and not paying attention to the error code
actually results in invalid images, so error out on parted failures as
we should be.
(From OE-Core rev: b1c68e5446080f0743f7f8a530f3b00f90c8717d)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a category for help topics with an initial help topic discussing
source plugins.
(From OE-Core rev: a3dbe46dd28a6fd9e6c21f6bbb6a12578df9dff3)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If a partition specified in a .wks file specifies a nonexistent
--source, print an error to that effect and exit. The error text also
points the user to a command listing valid sources, and help on adding
a new source plugin.
(From OE-Core rev: 4dff6945d2606cebc0ab26e877c5d8c7b457e179)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add both short and long text for the new 'wic list source-plugins'
command.
(From OE-Core rev: 4f20acc10b18c7353bd73f253943372dacd957ca)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a 'wic list source-plugins' command enabling users to get a list
of valid partition --sources. This is useful not only for determining
sources to use in .wks partition statements, but also for making sense
of errors in .wks partition processing.
(From OE-Core rev: 37db9423e7872012fabde67e8858db5b512832f6)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This has been copied and pasted around and is not needed, simply drop it.
The defaults in the recipe work just fine.
(From meta-yocto rev: 037bce9a5f196df3cded9dfe6200188c1dd1d84a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Update qemu tune definitions to match changes in main qemu machines.
[YOCTO #6482]
(From meta-yocto rev: 0d78ffd509c6caba6c74c6e75c485fb8d923cd31)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a '\n' to the last line of the file to fix:
No newline at end of file
(From meta-yocto rev: 58cc5c502bd0309feed65ab7836ed8fbaab6ced9)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Several of these scripts were using duplicated code (and slightly
different methods) to find the path to bitbake and add its lib
subdirectory to the Python import path. Add some common code to do this
and change the scripts to use it.
Fixes [YOCTO #5076].
(From OE-Core rev: 0b5e94e168819134dcda0433c8ae893df4ab13ce)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If wic is running as raw mode, it's better to check if BBLAYERS
is valid before inspect it.
No functional changes.
(From OE-Core rev: a3ee9cc7aebaecfa2223552a2c1865a9337de664)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix 'for' statement identention so plugin type directory will be
added only once in layers_dirs list.
No functional changes.
(From OE-Core rev: ba88329115a3d6f964febcbf554af8391e1b84a1)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Plugins are looked in 'scripts/lib/mic/plugins/[type]/' directory on all
BBLAYERS variable returned by bitbake environment. If found, it will
be load at runtime.
The user could create your own plugin and keep it inside its layers. For
now the path must be <layer-dir>/scripts/lib/mic/plugins/[type]/. Where
'type' could be 'imager' or 'source'.
(From OE-Core rev: bb6f5d7de1c7ce2680874a74949903db0f5bb91a)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
.wks file are looked in 'scripts/lib/image/canned-wks' directory on all
BBLAYERS variable returned by bitbake environment. If found, it will
be used.
The user could create your own .wks and keep it inside its layers. For
now the path must be <layer-dir>/scripts/lib/image/canned-wks.
(From OE-Core rev: 1f3e312211f277a1befd707a59a0c0a9bf6cbcbc)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The wic command-line param --rootfs-dir gets extended to support
multiple directories and image names. Each '--rootfs-dir' could be
connected using a special string. This special string is a image
name which gets expanded by bitbake to get 'IMAGE_ROOTFS' or
a rootfs-dir path pointing to rootfs directory. Like this:
wic create ... --rootfs-dir rootfs1=core-image-minimal \
--rootfs-dir rootfs2=core-image-minimal-dev
.wks:
part / --source rootfs --rootfs-dir="rootfs1" --ondisk sda --fstype=ext3 \
--label primary --align 1024
part /standby --source rootfs --rootfs-dir="rootfs2" \
--ondisk sda --fstype=ext3 --label secondary --align 1024
(From OE-Core rev: 58417093d7ce83c8a2f683a356fddc23aaee5e8e)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This helper is used by source plugins to get specific bitbake
variable.
(From OE-Core rev: b8e51f73bc8e67ca60b7dd8d67091257aad62efd)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Move find_bitbake_env_line() since they're going to need to be
accessible from source plugins.
(From OE-Core rev: d881ec6136255fd0f4a8cf36f9ce148ade02c103)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The base_contains is kept as a compatibility method and we ought to
not use it in OE-Core so we can remove it from base metadata in
future.
(From meta-yocto rev: 5021839af713cb34bea5888981f2184104b6d35e)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add 3.14 kernel support, and remove support for 3.4.
(From meta-yocto rev: 342dce5873a9f1844fd7ce52a1c2656dcfb43053)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The wic command-line param --rootfs-dir gets generalized to support
multiple directories. Each '--rootfs-dir' could be connected using a
special string, that should be present in .wks. I.e:
wic create ... --rootfs-dir rootfs1=/some/rootfs/dir \
--rootfs-dir rootfs2=/some/other/rootfs/dir
part / --source rootfs --rootfs-dir="rootfs1" --ondisk sda --fstype=ext3 \
--label primary --align 1024
part /standby --source rootfs --rootfs-dir="rootfs2" \
--ondisk sda --fstype=ext3 --label secondary --align 1024
The user could use harded-code directory instead of connectors. Like this:
wic create ... hard-coded-path.wks -r /some/rootfs/dir
part / --source rootfs --ondisk sda --fstype=ext3 --label primary --align 1024
part /standby --source rootfs --rootfs-dir=/some/rootfs/dir \
--ondisk sda --fstype=ext3 --label secondary --align 1024
(From OE-Core rev: 719d093c40e4c259a4c97d6c8a5efb5aeef5fd38)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When a .wks has more than one ROOTFS_DIR it's better to report
all ROOTFS_DIR that was used to create the image.
(From OE-Core rev: a8762f3be215678a6806cabe49647083f42323a8)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The '--rootfs-dir' option is optional and only takes efect is a
partition is set up like this:
part /standby --source rootfs --rootfs-dir=<special rootfs> ...
So '--rootfs-dir' is used instead of bitbake ROOTFS_DIR variable or
'-r' param.
(From OE-Core rev: d486db593e6643bd10b8fe90257d547a9f341043)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When a partition from .wks file is set up like this:
part /standby --source rootfs --rootfs-dir=<special rootfs> ... --label \
--label secondary
This means that 'rootfs' must use '<special rootfs>' as rootfs and
the default partition filename in /var/tmp/wic/build/ will be create
using the '--label' as part of the name. E.g:
/var/tmp/wic/build/rootfs_secondary.ext3
(From OE-Core rev: c7efb3a21618ce3069811042279a0d898237ac0f)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The do_prepare_partition() method from RootfsPlugin class need
to know what will be the rootfs_dir. This makes sense when .wks
file has a partition set up like this:
part /standby --source rootfs --rootfs-dir=<special rootfs> ...
then do_prepare_partition() will work with the correct rootfs.
(From OE-Core rev: 6042b097a8fc24f2b85eb9848fb007a3c6c090a9)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Remove the 'rootfs' case when internal call code is used and
replace to call the general-purpose plugin.
For now RootfsPluing class continues to invoke prepare_rootfs()
method from Wic_PartData. However RootfsPlugin could implement them.
(From OE-Core rev: 26cd93b79318cbfaebb971d1e728041904e015f1)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Implement RootfsPlugin class. The do_prepare_partition() method
is implemented using code in Wic_PartData class.
This class have 'rootfs' name, which is the name that should
be used in the --source parameters of the .wks partition commands.
(From OE-Core rev: 68dd66849bbaca6e3a0cf00beec0dba1c08e9070)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake_env_command will choke if it isn't given an image, make sure
it does the right thing in that case.
(From OE-Core rev: a17f879cd5bc7401597ccee908801f8e3efa34c0)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The special case when wic is set up to use SD/MMC-Cards in place
of sdX disks is not handled properly.
Append 'p' to the rootdev when disk is SD/MMC-Cards fix this situation.
(From OE-Core rev: 3a95c4549f743aa47456c76e687a863c64c7a7f4)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The switchover from populate-exfs.sh to mke2fs forgot to preserve
pseudo, add it back.
(From OE-Core rev: 032309928f931b32cf63a0ebf174de029ba17401)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
OE-core commit f3a95ca6886b55e5819b068bdbd2cceb882d91a6 removed the
populate-extfs.sh. So mke2fs should be used to create ext2/3/4 image.
(From OE-Core rev: 4dea928eef325364922b1e0cbabc2a581356e804)
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Because exec_cmd() return values can in certain cases be non-zero yet
non-fatal, we don't want to automatically make them fatal (though
there should at least be a warning in such cases, which this patch
also does); non-zero return values are definitely fatal however if
they mean that a native command wasn't found, so have
exec_native_cmd() check the return value of exec_cmd() for that case,
and bail out if so.
[YOCTO #5835]
(From OE-Core rev: 43ac6e3216c5d985d6f90a28e727e397df616267)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The path exported in exec_native_cmd() includes bogus 'PATH=' which
means the native paths for all but the first will be ignored.
(From OE-Core rev: e10c1102d958ffc6b521fb36c6bc51d896503218)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Instead of simply creating partitions large enough to contain the
contents of a --source partition (and adding a pre-specified amount of
padding), use the --size used in the partition .wks statement.
If --size isn't used, or is smaller than the actual --source size,
retain the current behavior.
(From OE-Core rev: 23b6c5ea4d48cdf731e5202991961a0e4b10ff29)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Hook up the existing --debug option to toggle the wic debug loglevel,
which is indispensible when things go wrong, and make it easy to use
from the command-line.
(From OE-Core rev: a5ece6f37656fa56b97fd8faf52917345238d015)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Remove all the Wic_PartData and DirectImageCreator code now
implemented by the BootimgEFIPlugin and BootimgPcbiosPlugin plugins,
as well as all the special-cased boot_type code, significantly
cleaning up the code.
Replace the calling code with general-purpose plugin invocations, in
essence calling the appropriate implementations at run-time based on
the --source value in effect.
Change the directdisk.wks and mkefidisk.wks scripts to make use of the
new plugins.
(From OE-Core rev: 43558610a5793888ff2b18bd3a27c7ab558e5ad0)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Implement the BootimgPcbiosPlugin and BootimgEFIPlugin SourcePlugin
classes. The configure/prepare_partition() methods are implemented
using code derived from similar code in the Wic_PartData class.
These classes have the corresponding names 'bootimg-pcbios' and
'bootimg-efi', which are the names that should be used in the --source
parameters of the .wks partition commands.
(From OE-Core rev: 6e147488b40f730e07f1e0f232083ed75388daa0)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Define the SourcePlugin class, which is the class that should be
subclassed to create a 'source' plugin.
'Source' plugins provide a mechanism to customize various aspects of
the image generation process in wic, mainly the contents of
partitions.
The initial version of wic defined a --source param for partitions,
which was in the first revision hard-coded to two possible values:
rootfs and bootimg.
This patch essentially removes the hard-coded --bootimg param and
replaces it with a plugin system that maps the value specified as
--source to a particular 'source' plugin instead.
A 'source' plugin is created as a subclass of SourcePlugin and the
plugin file containing it is added to scriptsl/lib/mic/plugins/source/
to make the plugin implementation available to the wic implementation.
When the wic implementation needs to invoke a partition-specific
implementation, it looks for the plugin that has the same name as the
--source param given to that partition. For example, if the partition
is set up like this:
part /boot --source bootimg-pcbios ...
then the methods defined as class members of the plugin having the
matching .name class member would be used.
To be more concrete, here's the plugin definition that would match a
'--source bootimg-pcbios' usage, along with an example method that
would be called by the wic implementation when it needed to invoke an
implementation-specific partition-preparation function:
class BootimgPcbiosPlugin(SourcePlugin):
name = 'bootimg-pcbios'
@classmethod
def do_prepare_partition(self, part, ...)
If the subclass itself doesn't implement a function, a 'default'
version in a superclass will be located and used, which is why all
plugins must be derived from SourcePlugin.
This scheme is extensible - adding more hooks is a simple matter of
adding more plugin methods to SourcePlugin and derived classes. The
code that then needs to call the plugin methods the uses
plugin.get_source_plugin_methods() to find the method(s) needed by the
call; this is done by filling up a dict with keys containing the
methon names of interest - on success, these will be filled in with
the actual methods. fPlease see the implementation for examples and
details.
Note that a source plugin need not restrict itself to methods that
apply directly to partitions - methods can also be defined for higher
level processing such as at the 'disk' level. The
get_default_source_plugin() of DirectImageCreator allows the default
source plugin to be retrieved; by default this is set to be the same
plugin used for the /boot partition, but that can be overridden by
specifying a different --source and therefore different plugin on the
'bootloader' line. This isn't ideal, but it avoids forcing a new
high-level object to be defined for that purpose.
Note that the '--source rootfs' param remains as its current
hard-coded value, which is just the rootfs to be used to populate the
partition - by default, that's just the value of the bitbake
ROOTFS_DIR variable (or whatever was passed in using the -r param).
Note that this also could also be overridden by creating a source
plugin using a different name; at this point, unlike with bootimg,
there's been no need to do so.
(From OE-Core rev: 663833d8ecccb36ab42150bc5c9c00be79fa5b93)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a new wic-specific bootloader subclass so we can add a --source
param to hang non-partition plugin off of.
By default, the bootloader gets the /boot partition source plugin, but
this can be overridden by the --source bootloader param if needed.
(From OE-Core rev: f90e4097c4e69d4f61c69923cb5d1ebb6b74d2ff)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add get_bitbake_var() and bitbake_env_lines() functions for use by
plugins, which will need access to them for customization.
(From OE-Core rev: f0bb47b0d7ab6520c105ce131844269172de3efd)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Move a couple items into a more common location since they're going to
need to be accessible from source plugins.
(From OE-Core rev: 95ca523949e838850b5afa090ba16f91b8557c12)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Update the x86_64 architecture bsp creator to include choices for core2
and corei7 tune files.
(From meta-yocto rev: 06a16db32eae5b2280642643009fa653dc6f7839)
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: Paul Eggleton <paul.eggleton@intel.com>
Cc: Tom Zanussi <tom.zanussi@intel.com>
Cc: Nitin Kamble <nitin.a.kamble@intel.com>
Cc: Mark Hatle <mark.hatle@windriver.com>
Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
Cc: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Update the substrates to use x86-base instead of ia32-base and core2-64
instead of x86-64. Update the core2 bit to include the DEFAULTTUNE to be
explicit.
(From meta-yocto rev: 3ccc079192ca147382231f0379bae1d04d47a89c)
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: Paul Eggleton <paul.eggleton@intel.com>
Cc: Tom Zanussi <tom.zanussi@intel.com>
Cc: Nitin Kamble <nitin.a.kamble@intel.com>
Cc: Mark Hatle <mark.hatle@windriver.com>
Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
Cc: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The qemu BSPs were picking up the wrong interfaces file, resulting in
some erratic interface behavior seen with qemu-based BSPs - this fixes
the problem.
[YOCTO #5636]
(From meta-yocto rev: bbc3d56d6ec28b4cd92874fe4f98e1cd499415be)
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the build environment is misconfigured (e.g. a bad path
for a layer in bblayers.conf) the yocto-bsp script crashes with a
standard python error, not very explicit. This fixes the problem.
Signed-off-by: Bastien JAUNY <bastien.jauny@gmail.com>
(From meta-yocto rev: 4a8e80b812eebdc1c9570b5d88aa0f3b34824b68)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This seems to be an obsolete check - we don't have any problems with
image creation under selinux, so remove it.
(From OE-Core rev: 12e81eceab9e0a483765566ad3791b14718195b5)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Remove unnecessary pseudo exports i.e. PSEUDO_DISABLED and move the
setup to the top-level prepare_rootfs().
(From OE-Core rev: 4bf11cd7d7301da664c098c8a0ae9c0294a6f423)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
find_binary_path() is useful, but if the binary isn't found, it prints
a stacktrace and a less-than-useful message. Users complain when they
get stacktraces for things they can act on, so remove the stacktrace
and tell the user what the problem is.
(From OE-Core rev: 0d9eef0eaa267500e8eedab8b72ddf24eb0516db)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Current functionality doesn't make use of kpartx, mount, or unmount,
and we use native mkswap, so remove the binary checks for those.
(From OE-Core rev: 76293d2d6bbdeacd7b34f39f26fb97c3d7f9496f)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We don't currently use LiveCDImageCreator, but it makes calls when
initialized via the plugin interface to rpmmisc module functions,
which we don't want the dependency on.
To make it (and LiveUSBImageCreator) happy, we give it the dummy
"i386" value for now.
(From OE-Core rev: e10ae516cfc10900ed12e84c743e3a7127372135)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
BaseImageCreator is a base class for DirectImageCreator and others,
and imports rpm and grabber (which imports rpm).
The various plugins e.g. DirectPlugin import the creators and
therefore these dependencies, which manifest at run-time as e.g.:
Warning: Failed to load plugin imager/direct_plugin: No module named
rpm
(From OE-Core rev: a1e24c4a5f5771b7ad35e53ce96c6d82212e4d7e)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We don't currently use rpm functionality, so we don't need to silence
rpm warnings.
(From OE-Core rev: dd3cc03d4fa3347f8ef2db23d8ff98bdbdb73baa)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
mylrlgrab is in grabber, which imports rpm. For current
functionality, we don't need to grab urls or import rpm, so remove the
dependency.
(From OE-Core rev: 429ecc2afa499df35a1ae9da6f92b88c6f2d8d11)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
rpmmisc imports rpm and contains misc rpm utilities related to
packaging and determining arches based on the packaging. We should
never run across this in the initial version of wic, so remove the
dependency.
(From OE-Core rev: 2d59b6eeb418cf23eef3e32b43354b4ab16a40b9)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
rt_util contains bootstrap_mic(), which imports rpm and other things
we don't need because we don't do bootstrap i.e. runtime (set in
wic.conf) is always set to 'native', which means use what's on the
local host.
bootstrap mode is for downloading and installing rpms that wic needs,
which we may want to implement later; for now, we just want to use
what's local.
(From OE-Core rev: 3103f0cb908eced7b751128c2bba898d12017c80)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Without this, files in the generated filesystem pick up the wrong
ownership.
(From OE-Core rev: 24a6b1324965080fef6c363edcb37768090eebea)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If one of these isn't found, it won't be initialized and will throw an
UnboundLocalError.
(From OE-Core rev: ce6c3ec0e5f4822e85b8f957e9e31fa9de438c55)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If fat16 is specified to the mkpart parted command, parted will
default to setting the lba flag which causes certain EFI firmware
to fail to detect the filesystem. lba shouldn't be necessary for
FAT16 filesystems anyway, explicitly disable it.
(From OE-Core rev: 30442d432e203e655b7d40b93f7307f475de1614)
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The current find_bblayers() code finds and parses the BBLAYERS
variable manually, and therefore doesn't handle variable substitution,
which causes problems if used.
This change makes find_bblayers() use the variable-substituted
BBLAYERS instead.
Fixes [YOCTO #5106]
(From meta-yocto rev: 1629ac04e909143dc2c275c256094cb44c6cc43c)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Reuses the mic/livecd infrastructure but heavily subclasses and
modifies it to adapt to the special needs of building images from
existing OpenEmbedded build artifacts.
In addition to the OE-specific mic objects and modifications to the
underlying infrastructure, this adds a mechanism to allow OE kickstart
files to be 'canned' and made available to users via the 'wic list
images' command.
Two initial OE kickstart files have been added as canned .wks files:
directdisk, which implements the same thing as the images created by
directdisk.bbclass, and mkefidisk, which can essentially be used as a
replacement for mkefidisk.sh. Of course, since creation of these
images are now driven by .wks files rather than being hard-coded into
class files or scripts, they can be easily modified to generate
different variations on those images. They also don't require root
priveleges, since they don't use mount to create the images. They
don't however write to media like mkefidisk.sh does, but rather create
images that can be written onto media.
(From OE-Core rev: f87acc5e59d3c2c39ff171b5557977dab4c8f4a6)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is the starting point for the implemention described in [YOCTO
3847] which came to the conclusion that it would make sense to use
kickstart syntax to implement image creation in OpenEmbedded. I
subsequently realized that there was an existing tool that already
implemented image creation using kickstart syntax, the Tizen/Meego mic
tool. As such, it made sense to use that as a starting point - this
commit essentially just copies the relevant Python code from the MIC
tool to the scripts/lib dir, where it can be accessed by the
previously created wic tool.
Most of this will be removed or renamed by later commits, since we're
initially focusing on partitioning only. Care should be taken so that
we can easily add back any additional functionality should we decide
later to expand the tool, though (we may also want to contribute our
local changes to the mic tool to the Tizen project if it makes sense,
and therefore should avoid gratuitous changes to the original code if
possible).
Added the /mic subdir from Tizen mic repo as a starting point:
git clone git://review.tizen.org/tools/mic.git
For reference, the top commit:
commit 20164175ddc234a17b8a12c33d04b012347b1530
Author: Gui Chen <gui.chen@intel.com>
Date: Sun Jun 30 22:32:16 2013 -0400
bump up to 0.19.2
Also added the /plugins subdir, moved to under the /mic subdir (to
match the default plugin_dir location in mic.conf.in, which was
renamed to yocto-image.conf (moved and renamed by later patches) and
put into /scripts.
(From OE-Core rev: 31f0360f1fd4ebc9dfcaed42d1c50d2448b4632e)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Initial implementation of the 'wic' command.
The 'wic' command generates partitioned images from existing
OpenEmbedded build artifacts. Image generation is driven by
partitioning commands contained in an 'Openembedded kickstart' (.wks)
file specified either directly on the command-line or as one of a
selection of canned .wks files (see 'wic list images'). When applied
to a given set of build artifacts, the result is an image or set of
images that can be directly written onto media and used on a
particular system.
'wic' is based loosely on the 'mic' (Meego Image Creator) framework,
but heavily modified to make direct use of OpenEmbedded build
artifacts instead of package installation and configuration, things
already incorporated int the OE artifacts.
The name 'wic' comes from 'oeic' with the 'oe' diphthong promoted to
the letter 'w', because 'oeic' is impossible to remember or pronounce.
This covers the mechanics of invoking and providing help for the
command and sub-commands; it contains hooks for future commits to
connect with the actual functionality, once implemented.
Help is integrated into the 'wic' command - see that for details on
usage.
(From OE-Core rev: 95455ae4251e06d66e60945092b784d2d9ef165c)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For Yocto 1.5, 3.10 is the preferred kernel and 3.8 is obsolete.
This also removes any mention of emgd from the templates - we want to
discourage users from using it - it will be obsolete soon in any case.
Fixes [YOCTO #5107]
(From meta-yocto rev: 4dd4bf6ac2dcc7652ec8f807df02298546bdb41b)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As per the similar commit in oe-core on the qemu machines, the templates should
respect the opengl DISTRO_FEATURE when adding mesa-driver-swrast to new qemu
machines.
(From meta-yocto rev: 8d42ea2b2566913642c759e48ffe1f5f5166c510)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
APM is not only obsolete, but also requires a kernel config enabled, which is not enabled by default
[YOCTO #5121]
(From meta-yocto rev: e25c43661f27b27e61aa7fae868237c1c60e3e25)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows the BBLAYERS parsing code to handle cases where BBLAYERS
is spread across multiple assignments or all on a single line, within
double or single quotes.
Fixes [YOCTO #3746].
(From meta-yocto rev: 4ab26d9e655bab0069ffe9b135557d943cf1f524)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The current code uses .startswith to find BBLAYERS, which causes false
positives when other variables such as BBLAYERS_NON_REMOVABLE exist.
This forces an exact match instead of a partial match.
Fixes [YOCTO #4743].
(From meta-yocto rev: c039def50ca6c02cb1b66fd4bf76664de42c068e)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The yocto-layer tool added a new directory alongside the actual
architectures and 'common', which is already screened out as not an
actual architecture when displaying the architecures.
The same needs to be done for 'layer' which isn't actually an
architecuture and likewise needs to be screened out.
Fixes [YOCTO #4735].
(From meta-yocto rev: 7459485bf75855a40d124915d38284f737a25cc4)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We no longer need to manually bump PR values so lets not generate
code using this.
(From meta-yocto rev: ed23b0eee9791b06b0bae1ad17595e72ccaa86cf)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Privious check-in "yocto_kernel: check current items before add a
new one" had been merged before I apply the feedback from Zanussi, Tom.
Now fix it as a new patch.
This fix modify the output message when customer adding duplicate
items.
[YOCTO #4558]
(From meta-yocto rev: 530c6efa85b1798d30db4c6c83a748b100b8c1c3)
Signed-off-by: Ning Zhang <ning.zhang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When use "yocto-kernel config add" to add the same config many times,
all of these are list when use "yocto-kernel config list" to check.
This fix modify routine yocto_kernel_config_add, if the new added
components already exist in current configuration, just igore them.
Now, one config could only be added one time.
[YOCTO #4558]
(From meta-yocto rev: 655ccc5ed77b52fb62dab5f6cfdf3de39b1bf055)
Signed-off-by: Ning Zhang <ning.zhang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This was added quite a long time ago because of poor interactions
between HAL and the X server when it came to enabling input devices.
HAL is long gone and I think it's safe to say we don't need to disable
this any longer, especially as it gets in the way of being able to plug
in the keyboard/mouse after boot.
(From meta-yocto rev: e06ab1e030e8cfbc259500b1a0b958fe752fb872)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We have recipes-* directories not a recipes directory; this is left over
from the old old layout (2010).
(From meta-yocto rev: 8adbbb4b688e60113f68d3974310774686551eff)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The default branch for the qemu-based mips BSP template no longer
exists, so change to one that does.
(From meta-yocto rev: 5af614322269ee7c79928d1ff343f2e3bcf35509)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>