Commit Graph

57856 Commits

Author SHA1 Message Date
Richard Purdie
f4e0b26568 Revert "wic: Fix permissions when using exclude or include path"
This reverts commit 36993eea89d1c011397b7692b9b8d61b499d0171.

After discussion on the mailing list it was felt these changes
were not ready yet.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-07 21:57:16 +01:00
Richard Purdie
157a12d499 Revert "wic: Add --embed-rootfs argument"
This reverts commit efdcf94801f6abe8e4099e324d9a3deccd8d4384.

After discussion on the mailing list it was felt these
changes were not ready yet.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-07 21:57:16 +01:00
rpjday@crashcourse.ca
9a5aa31870 dev-manual: use "git", not "apmd", to explain checksum names
The apmd recipe is no longer appropriate to demonstrate the use of
SRC_URI checksum names as it has only a single SRC_URI URL, so pick a
more illuminating recipe.

(From yocto-docs rev: 7f391a0656442e7ee2f3dd48b848befb7f461aec)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 16:53:24 +01:00
rpjday@crashcourse.ca
43ad3f54ea dev-manual: use "strace" for PV example, not cdrtools
Section 3.3.5, "Fetching Code", uses the cdrtools recipe as an example
for showing the use of PV, but that's a bad example since the current
cdrtools recipe file contains:

  SRC_URI = " \
  ${SOURCEFORGE_MIRROR}/project/cdrtools/cdrtools-${REALPV}.tar.bz2 \
  ...

  PV = "3.01a31+really3.01"
  REALPV = "3.01"

which is not exactly the point the dev manual is trying to make, so
replace with simpler strace recipe.

(From yocto-docs rev: d865b0288a4162a8d4df9a2abde43875e3dc2ced)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 16:53:24 +01:00
Richard Purdie
45792835fe build-appliance-image: Update to master head revision
(From OE-Core rev: fcc68424f1dbd52fe3cef6decabc306fd06947c1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 16:50:40 +01:00
Richard Purdie
40d8ea5a49 poky.conf: Bump version for 3.1 dunfell release
(From meta-yocto rev: 3f6857be9be9ab5e2ede9a416c212487357eec0d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 16:50:31 +01:00
Richard Purdie
70ee928f8f bitbake: tinfoil: Add back ability to parse on top of a datastore
This option was removed recently as we didn't realise the layerindex
relies upon it. Add back the API which it turns out can be supported
as long as we assume the datastore passed in is a remote datastore
which it usually would be unless created locally.

(Bitbake rev: 4618da2094189e4d814b7d65672cb65c86c0626a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 16:45:34 +01:00
Richard Purdie
9435b6cf10 bitbake: data/siggen: Don't expand ignored variables
If a variable is in the signature whitelist, we'd currently expand
it, then later ignore the data. This is problemtic for code which
has effects when expanded, recently source date epoch in OE-Core
for example.

We don't actually need to do this, if we pass the whitelist into
the earlier function it can avoid the expansion. This also also
give a small performance boost since we avoid running code in some
cases.

[YOCTO #13581]

(Bitbake rev: f483ee4a869fb1dafbe4bdf2da228cdaa40b38bd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 16:45:34 +01:00
Adrian Freihofer
f15a1f2b7f runqemu-extract-sdk: fix install debugfs on rootfs
At least with my current setup and acc. the manual, the images are named
like image-dbg.rootfs.tar.bz2.

The filter has two bugs:
- expects something like -dbg.tar
- tar without compression suffix is not allowed

(From OE-Core rev: e5fb903db308c508fc44bada89fd0210810301a9)

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 16:45:11 +01:00
Jan Luebbe
d4fb02ee8b apt-native: don't let dpkg overwrite files by default
With --force-overwrite (implied by --force-all), dpkg will not abort
when a package overwrites files from different packages. As this can
also lead to "The following package disappeared from your system as
all files have been overwritten by other packages: <package>" and
subsequently broken dependencies, this makes the simple case of
conflicting files hard to debug.

Instead of finding all possibly required force options, only disable
overwrite for now.

(From OE-Core rev: 4292387ef6c4e80428bad6a07c844a288b27d9a1)

Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 16:45:11 +01:00
Khem Raj
6902357198 systemd: Package systemd-hwdb-update.service into udev
Currently, this unit is packaged into udev-hwdb which then adds it as rdep
instead of rrecommends to systemd itself, this meant that even if we
added udev-hwdb to BAD_RECOMMENDATIONS, it would not be respected since
its a rdep, therefore move the service unit file into udev package
instead, this decouples the hard runtime dependency and restores the bad
recommendations expectations

(From OE-Core rev: bfaaefe8346e9f0eab153981fe6a3cc63590afb5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Alex Kiernan <alex.kiernan@gmail.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 16:45:11 +01:00
Ricardo Ribalda Delgado
c4cd85ca3e pseudo: During DB fix, remove files that do not exist
If a file does not exist, either because it has been removed outside
bitbake, or because only some of the files have been moved to a
different location, delete it from the pseudo-db is the user decides to
fix the database.

(From OE-Core rev: 79f7212ae71a4eb9e7abfe2c333b035ccc10e5c5)

Signed-off-by: Ricardo Ribalda Delgado <ricardo@ribalda.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 16:45:11 +01:00
Ricardo Ribalda Delgado
242412656b wic: Add --embed-rootfs argument
This option adds the content of a rootfs on a specific location on the
rootfs.

It is very useful for making a partition that contains the rootfs for a
host and a target Eg:

/ -> Roofs for the host
/export/ -> Rootfs for the target (which will netboot)

Although today we support making a partition for "/export" this might
not be compatible with some upgrade systems, or we might be limited by
the number of partitions.

With this patch we can use something like:

part / --source rootfs --embed-rootfs target-image /export --embed-rootfs target-image2 /export2

on the .wks file.

(From OE-Core rev: efdcf94801f6abe8e4099e324d9a3deccd8d4384)

Signed-off-by: Ricardo Ribalda Delgado <ricardo@ribalda.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 16:45:11 +01:00
Ricardo Ribalda Delgado
6bac089383 wic: Fix permissions when using exclude or include path
When parameters include_path or exclude_path are passed to the rootfs
plugin, it will copy the partition content into a folder and make all
the modifications there.

This is done using copyhardlinktree(), which does not take into
consideration the content of the pseudo folder, which contains the
information about the right permissions and ownership of the folders.

This results in a rootfs owned by the user that is running the wic
command (usually UID 1000), which makes some rootfs unbootable.

To fix this we copy the content of the pseudo folders to the new folder
and modify the pseudo database using the "pseudo -B" command.

(From OE-Core rev: 36993eea89d1c011397b7692b9b8d61b499d0171)

Signed-off-by: Ricardo Ribalda Delgado <ricardo@ribalda.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 16:45:11 +01:00
Richard Purdie
f4c7f9ebae pseudo: Force seccomp to return success when in fact doing nothing
Pseudo changes the syscall access patterns which makes it incompatible with
seccomp. Therefore intercept the seccomp syscall and alter it, pretending that
seccomp was setup when in fact we do nothing. If we error as unsupported,
utilities like file will exit with errors so we can't just disable it.

This works around issues on platforms where seccomp is enabled in file
(e.g. archlinux).

(From OE-Core rev: bc895522eb940539a0e3cb6192c4a64f13ca8d6a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 16:45:11 +01:00
Richard Purdie
40407d28f0 bitbake: bitbake: Update to version 1.46
(Bitbake rev: 76396230731432b38fdcb25ad27bb84065bc89e5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 16:43:38 +01:00
Tim Orling
3b718dbdae brief-yoctoprojectqs: buildtools changes
Bump tar, Python versions and add new gcc requirement.

Update reference from 'required-git-tar-and-python-versions'
to 'required-git-tar-python-and-gcc-versions'

(From yocto-docs rev: ca6334c1653d5e2abfe77865391509a8cd516d88)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:25 +01:00
Tim Orling
edaad681fb dev-manual: buildtools versions and changes
Bump tar, Python versions and add new gcc requirement.

Update reference from 'required-git-tar-and-python-versions'
to 'required-git-tar-python-and-gcc-versions'

(From yocto-docs rev: 18b11662c7c9ab7828d2709eed4090116a751e14)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:25 +01:00
Tim Orling
07aaa69d57 ref-manual: add install-buildtools and -extended
Add instructions to use 'install-buildtools' and
'buildtools-extended-tarball'.

Add gcc 5.0 requirement and call out how to
use above to prepare host development system.

(From yocto-docs rev: c6dbd9bf6860ffea1bc025907343373439d91737)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:25 +01:00
Tim Orling
e75301e018 ref-manual: fix debian-8 system reqs
jessie-backports is no longer supported, so python3-git and
pylint3 are not installable via apt-get (or at least not
without disabling security checks by using archive.debian.org)

Add note to use pip3 to install instead.

(From yocto-docs rev: 19a02c5c6ef9a317c2339c2ec71200e51335e32f)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:25 +01:00
Tim Orling
2888172856 ref-manual: bump tar and python min versions
* tar min version is now 1.28
* python min version is now 3.5

(From yocto-docs rev: 96dfaee63f84c21fc2bf460ded642b853a5317cf)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:25 +01:00
Tim Orling
cdca9b23c9 ref-manual: split CentOS-7 and CentOS-8 reqs
CentOS-7 has different requirements than the much
newer CentOS-8. Add a section for CentOS-8 and
make the old section CentOS-7 specific.

NOTE: at the time this was written, the 'fop'
package is not yet available in epel-8. As
a Fedora packager, that will change.

(From yocto-docs rev: caf08811a23a29965ec915459019796a0c882d4d)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:25 +01:00
Tim Orling
cb6bb9d914 poky.ent: split centos-7 and centos-8
Update Centos-7 to require python3, not python.

CentOS-8 has different installation requirements than
either CentOS-7 or Fedora (although it is closer to
Fedora).

Allow for differentiation between CentOS versions.

(From yocto-docs rev: 615fc45108d10e842679b3d8a38b53074d3eed4b)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:25 +01:00
Tim Orling
85cc7cb4df poky.ent: recommend python36-pip for CentOS
'python3' in EPEL7 is now Python 3.6, so we
should be recommending python36-pip

Python 3.4 is EOL [1]

[1] https://www.python.org/downloads/release/python-3410/

(From yocto-docs rev: 817ca8adc91d9975b9ec57e7fead7fdff4001854)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
akuster
24dab56884 documentaiton: Change author info
Update the author indo and use variables for author and email to make it
easier to change in future.

(From yocto-docs rev: 4fdf2a060705fa00b11b5a9d270f4ffa506c9927)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
rpjday@crashcourse.ca
d4a3a121ed BSP Guide: numerous tweaks/grammar/wording/clarification
(From yocto-docs rev: 3a87e5900b603f124ce7f63fd072415762f63212)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
rpjday@crashcourse.ca
284af91476 kernel-dev: fix explanation of KBUILD_DEFCONFIG
KBUILD_DEFCONFIG is meant to refer to an *in-tree* defconfig file, not
an external one.

(From yocto-docs rev: 34202eee3fc2bb4e0b92374822bff87fd3af1ebc)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
rpjday@crashcourse.ca
0096b10efe correct mention of "postinst_intercept delay_to_first_boot"
Migration to YP 2.5 contains incorrect description of routine for
delaying to first boot.

(From yocto-docs rev: 08f71ec137822c0c19b56956d7045dfb73a544d7)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
rpjday@crashcourse.ca
4f58e37e17 ref-manual: minor rewording/clarification in chapter 2
(From yocto-docs rev: a9a3248b12b85f3637ebe5eddd4b1a29268d5598)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
rpjday@crashcourse.ca
77f6e7bb4e ref-manual: minor rewording in chapter 1
(From yocto-docs rev: 5582f01fc4774e7d21af24627bbd47a77463d272)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
rpjday@crashcourse.ca
5486dd3680 ref-manual: update PROVIDES example, clarify use of "+="
Update the example used in explaining the PROVIDES variable to one
that actually exists, and point out that "+=" is unnecessary, a simple
assignment is sufficient.

(From yocto-docs rev: 80cd888ee81757bc5281f174b26974391ee45522)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
rpjday@crashcourse.ca
f63d44ab32 ref-manual: various touchups, rewordings, corrections to Ch 5
Minor tweaks to chapter 5 of reference manual, including:

 - grammar
 - adding slashes to directory names for consistency
 - collapse trivial paras into one

(From yocto-docs rev: 96b75e723bff042183f70a858d09df4aad094578)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
rpjday@crashcourse.ca
a5ac4b6fca use defined entity "YOCTO_DOCS_URL", not "YOCTO_HOME_URL"
Given the defined DocBook entity:

  <!ENTITY YOCTO_DOCS_URL "&YOCTO_HOME_URL;/docs">

replace numerous instances of the more verbose
"&YOCTO_HOME_URL;/documentation", which is a redirect, anyway.

rday

(From yocto-docs rev: 53fa17321624028b12d880bc4236fbef46675eb4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
rpjday@crashcourse.ca
b31daa130a dev-manual: minor tweaks, rewording, grammar for chapter 2
(From yocto-docs rev: 706386ac094479916e1cc482e56a6433caa85e1a)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
rpjday@crashcourse.ca
fd54658d87 dev-manual: clarify PN usage in packagegroup files
Make it clear to the reader that they can use the much shorter form of
${PN} for the base packagegroup name, rather than typing it out in
full.

(From yocto-docs rev: 19915978c30bbf37b65d9887c78a23394779f079)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
rpjday@crashcourse.ca
63efaa94c1 dev-manual: add missing check to yocto-check-layer section
Add explanation of missing checks performed by yocto-check-layer, and
fix one typo.

(From yocto-docs rev: 231bb92fa4a9c044894f845b8d6d0b9498abfc49)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
rpjday@crashcourse.ca
5f6e055dc8 dev-manual: use actual machine override demonstration
Given that the section in question is describing how to configure
dependencies based on the machine type, it seems inappropriate to use
an example that depends on the choice of C library, so grab a snippet
from linux-yocto.inc to really drive the point home.

(From yocto-docs rev: 66bfec015f61a690f96cf8e28b80869c77327e6d)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
rpjday@crashcourse.ca
0bcf88c375 dev-manual: explain LAYERDEPENDS with other layer.conf vars
(From yocto-docs rev: 2d56b38e1a1d4a89c0ed46af93791fe1fbdfecc9)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:40:24 +01:00
Alejandro Hernandez Samaniego
189791a43d dev-manual: Fix CROPS link
The link used in the documentation points to a file
that no longer exists on the crops repository.

Use the poky-container repo instead since it is more
accurate and updated

(From yocto-docs rev: 5d16ccecf0b198af0f78a4cce28532ab9dca739f)

Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Alejandro Hernandez Samaniego <alhe@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:25:52 +01:00
Alejandro Hernandez Samaniego
e2053e2547 overview-manual-yp-intro: Fix CROPS link
The link used in the documentation points to a file
that no longer exists on the crops repository.

Use the poky-container repo instead since it is more
accurate and updated.

(From yocto-docs rev: c5e21f5d18f4fc069ccc05cd82819eda291fcf9d)

Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Alejandro Hernandez Samaniego <alhe@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:25:52 +01:00
Alejandro Hernandez Samaniego
fb1c4df08b overview-manual-development-environment: Fix CROPS link
The link used in the documentation points to a file
that no longer exists on the crops repository.

Use the poky-container repo instead since it is more
accurate and updated.

(From yocto-docs rev: 98d2a2161a30d9080bc7dea8ae7964893563b1e2)

Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Alejandro Hernandez Samaniego <alhe@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:25:52 +01:00
Yeoh Ee Peng
c2ca25e51e dev-manual-common-tasks.xml: Replace "QemuTarget" with "qemu"
As the OEQA code revamp and code changes in testimage.bbclass,
testexport.bbclass, runtime/context.py and oeqa/runexported.py,
"QemuTarget" was obsolete and replaced by "qemu".
Replacing the refer of "QemuTarget" with "qemu".

(From yocto-docs rev: f89d18adb62bc864e7890a613ff860bd3e4279ed)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:25:52 +01:00
Yeoh Ee Peng
0b46a94528 ref-variables.xml: Replace "QemuTarget" with "qemu"
As the OEQA code revamp and code changes in testimage.bbclass,
testexport.bbclass, runtime/context.py and oeqa/runexported.py,
"QemuTarget" was obsolete and replaced by "qemu".
Replacing the refer of "QemuTarget" with "qemu".

(From yocto-docs rev: 87691219dfe312c0db0af1fa30cc3505298a27af)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:25:52 +01:00
Yeoh Ee Peng
004b87f476 dev-manual-common-tasks: Replace "SimpleRemoteTarget" with "simpleremote"
As the OEQA code revamp and code changes in testimage.bbclass,
testexport.bbclass, runtime/context.py and oeqa/runexported.py,
"SimpleRemoteTarget" was obsolete and replaced by "simpleremote".
Replacing the refer of "SimpleRemoteTarget" by "simpleremote".

(From yocto-docs rev: 41823811229754805c682ecec6903399bfe606fe)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:25:52 +01:00
Yeoh Ee Peng
48bbafde4e ref-variables.xml: Replace "SimpleRemoteTarget" with "simpleremote"
As the OEQA code revamp and code changes in testimage.bbclass,
testexport.bbclass, runtime/context.py and oeqa/runexported.py,
"SimpleRemoteTarget" was obsolete and replaced by "simpleremote".
Replacing the refer of "SimpleRemoteTarget" by "simpleremote".

(From yocto-docs rev: 1779a6d699ae7a6e51f8b92516eea948c1767400)

Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:25:52 +01:00
Alejandro Hernandez Samaniego
734f5cb5ba brief-yoctoprojectqs: Document the basics of WSL and create a link to the build host setup process
(From yocto-docs rev: 225e2aff28a4a68faf1bf1c702e7deacc9effbde)

Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Alejandro Hernandez Samaniego <alhe@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:25:52 +01:00
Alejandro Hernandez Samaniego
42daacc1ac overview-manual: Document the basics of WSL and create a link to the build host setup process
(From yocto-docs rev: 317059cbfcd8fdb342819b00f9f2836e44ce3d8b)

Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Alejandro Hernandez Samaniego <alhe@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:25:52 +01:00
Alejandro Hernandez Samaniego
57a3886757 dev-manual: Document the WSLv2 install process
(From yocto-docs rev: 65e3a1b3c82475f706418b8ec7d0e6bed34b382b)

Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Alejandro Hernandez Samaniego <alhe@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:25:52 +01:00
Alejandro Hernandez Samaniego
0894fd32bd ref-manual: Explain the project is not validated against WSL but people may still use it
(From yocto-docs rev: c55378d8a5597b3760dd9aae766af735a61a6158)

Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Alejandro Hernandez Samaniego <alhe@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:25:52 +01:00
Alejandro Hernandez Samaniego
26da846034 Windows: Enable Windows builds under WSLv2 and warn accordingly
Due to the architectural changes between Windows Subsystem for Linux v2,
and WSL v1 it should now be possible to run bitbake on the several distros
offered through the Microsoft Store.

WSLv2 is available on Windows 10 build number > 18917

The current build number may be checked by opening a cmd prompt on Windows
and running:

C:\Users\myuser>ver

Microsoft Windows [Version 10.0.19041.113]

If a distro has already been installed via the Microsoft Store, then we can
check which WSL version its using by opening a Windows Powershell (notice this
is a powershell and not a cmd prompt):

C:\WINDOWS\system32> wsl -l -v
  NAME      STATE           VERSION
  * Ubuntu    Running         2
    Debian    Stopped         1

In this case it shows two distros installed, Ubuntu running WSLv2 and
Debian running WSLv1

To change the version of WSL being used by a certain distro run:

C:\WINDOWS\system32> wsl --set-version <Distro> 2

e.g

C:\WINDOWS\system32> wsl --set-version Debian 2

For more information on installing WSLv2 please look at:

  https://docs.microsoft.com/en-us/windows/wsl/wsl2-install

There are some caveats related to the way storage is handled by WSLv2 though,
and at this point these have to be managed by the user manually, the storage
space used by WSL is not reflected immediately and since bitbake heavily uses
storage, after several builds this can prove to be a bit of an issue.

WSLv2 uses a VHDX file for storage, this issue can be easily avoided by
optimizing this file every now and then, this can be done via the following:

1.- Find the location of your VHDX file:
 - Get the distro app package directory.
 - Open Windows Powershell as Administrator and run:
  Get-AppxPackage -Name "*<DISTRO>*" | Select PackageFamilyName

 e.g.:
  PS C:\WINDOWS\system32> Get-AppxPackage -Name "*Ubuntu*" | Select PackageFamilyName

 PackageFamilyName
  -----------------
   CanonicalGroupLimited.UbuntuonWindows_79abcdefgh

 Replace the PackageFamilyName (and your user) on the following path:

 C:\Users\<user>\AppData\Local\Packages\<PackageFamilyName>\LocalState\

 e.g.

 ls C:\Users\<user>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\

 Mode                 LastWriteTime         Length Name
  -a----         3/14/2020   9:52 PM    57418973184 ext4.vhdx

 The VHDX file path is:
  C:\Users\<user>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx

2.- Optimize your VHDX file (Also on Powershell):
 - Make sure WSL is shutdown
  wsl --shutdown

 - Optimize it
  optimize-vhd -Path C:\Users\<user>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx -Mode full

 A progress bar should be shown while optimizing the VHDX file.

 As an example, after building core-image-sato, removing the TMPDIR did not reflect
 any changes on Windows Explorer for storage space being used, after optimizing the
 VHDX file, 14 extra GB were shown as free.

 So, as long as the the user optimizes its storage, the builds should run smoothly.

This patch warns the user that is running bitbake under WSLv2, that they should
optimize the VHDX file eventually to avoid storage issues.

The same check previoulsy used for WSLv1 works for WSLv2, checking for the kernel
version:
WSLv1:
Linux version 4.4.0-19041-Microsoft (Microsoft@Microsoft.com)

WSLv2:
Linux version 4.19.84-microsoft-standard (oe-user@oe-host)

Builds have been tested under Ubuntu and Debian distros offered and installed through
the Microsoft Store, and other distros should be able to run builds just as fine.

Performance wise, using the same hardware, and same configuration a comparison between
builds using native Linux vs WSLv2 for the following targets has been performed:
- core-image-minimal
- core-image-sato
- core-image-sato-sdk
- meta-toolchain

No real evidence of any performance changes could be found, with WSLv2 builds running even
faster in some cases.

Running a recently built image can be done just as smoothly, if using "nographic" as
argument for runqemu, or if its a graphical image, installing an X server and running
runqemu runs just as fine.

Happy bitbaking.

(From OE-Core rev: c42cec0c1c57c4e67dc7cdb07c5e4aba14a847d3)

Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Alejandro Hernandez Samaniego <alhe@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-06 14:25:52 +01:00