diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2020-09-18 22:11:35 +0300 |
---|---|---|
committer | Andrew Geissler <geissonator@yahoo.com> | 2020-10-06 01:10:26 +0300 |
commit | c9f7865a347606a64696048817b0f09d9c3fcd31 (patch) | |
tree | 00db80fae3599061617c0cb052a57302620882ec /poky/documentation/adt-manual | |
parent | d1a90aa35d35426789d8f4061166a6dd8d27a30e (diff) | |
download | openbmc-c9f7865a347606a64696048817b0f09d9c3fcd31.tar.xz |
poky: subtree update:c67f57c09e..c6bc20857c
Adrian Freihofer (2):
oe-publish-sdk: fix layers init via ssh
oe-publish-sdk: add --keep-orig option
Alexander Kanavin (68):
meta-selftest: correct the virgl test for 5.8 kernels
bison: upgrade 3.6.4 -> 3.7.1
util-linux: upgrade 2.35.2 -> 2.36
python3-numpy: upgrade 1.19.0 -> 1.19.1
python3-setuptools: upgrade 49.3.1 -> 49.6.0
rsync: upgrade 3.2.2 -> 3.2.3
util-linux: merge .inc into .bb
acpica: upgrade 20200528 -> 20200717
asciidoc: upgrade 9.0.1 -> 9.0.2
cryptodev: upgrade 1.10 -> 1.11
diffoscope: upgrade 153 -> 156
epiphany: upgrade 3.36.3 -> 3.36.4
font-alias: upgrade 1.0.3 -> 1.0.4
gtk+3: upgrade 3.24.21 -> 3.24.22
libcheck: upgrade 0.15.0 -> 0.15.2
libinput: upgrade 1.16.0 -> 1.16.1
libpipeline: upgrade 1.5.2 -> 1.5.3
libx11: upgrade 1.6.9 -> 1.6.11
linux-firmware: upgrade 20200619 -> 20200721
man-pages: upgrade 5.07 -> 5.08
mc: upgrade 4.8.24 -> 4.8.25
mesa: upgrade 20.1.4 -> 20.1.5
piglit: upgrade to latest revision
re2c: upgrade 2.0 -> 2.0.2
sysstat: upgrade 12.2.2 -> 12.4.0
vala: upgrade 0.48.7 -> 0.48.9
bootchart2: update 0.14.8 -> 0.14.9
harfbuzz: convert to meson, enable gobject introspection
pango: update 1.44.7 -> 1.46.0
boost: update 1.73.0 -> 1.74.0
xev: update 1.2.3 -> 1.2.4
wpebackend-fdo: update 1.6.1 -> 1.7.1
gpgme: update 1.13.1 -> 1.14.0
libpsl: update 0.21.0 -> 0.21.1.
gettext: update 0.20.2 -> 0.21
cmake: update 3.17.3 -> 3.18.1
linux-firmware: update 20200721 -> 20200817
meson: update 0.55.0 -> 0.55.1
systemd-boot: bump version to 246.2
json-glib: inherit upstream-version-is-even
packagegroup-core-device-devel: remove
oeqa/x32lib: rework to use readelf from the host
oeqa/multilib: rework to use readelf from the host
oeqa/multilib: un-skip the connman test
poky.conf: do not install packagegroup-core-device-devel into qemu images
glib-2.0: update 2.64.4 -> 2.64.5
cmake: upgrade 3.18.1 -> 3.18.2
libxcrypt: upgrade 4.4.16 -> 4.4.17
debianutils: upgrade 4.11 -> 4.11.1
enchant2: upgrade 2.2.8 -> 2.2.9
harfbuzz: upgrade 2.7.1 -> 2.7.2
libmpc: upgrade 1.1.0 -> 1.2.0
librepo: upgrade 1.12.0 -> 1.12.1
libuv: upgrade 1.38.1 -> 1.39.0
msmtp: upgrade 1.8.11 -> 1.8.12
ninja: upgrade 1.10.0 -> 1.10.1
p11-kit: upgrade 0.23.20 -> 0.23.21
pango: upgrade 1.46.0 -> 1.46.1
re2c: upgrade 2.0.2 -> 2.0.3
resolvconf: upgrade 1.82 -> 1.83
stress-ng: upgrade 0.11.18 -> 0.11.19
gnu-config: update to latest revision
nasm: update 2.15.03 -> 2.15.05
libva-utils: fix upstream version check
gnupg: update 2.2.21 -> 2.2.22
libx11: update 1.6.11 -> 1.6.12
mesa: update 20.1.5 -> 20.1.6
xserver-xorg: update 1.20.8 -> 1.20.9
Andrey Zhizhikin (1):
insane: check for missing update-alternatives inherit
Anibal Limon (1):
recipes-kernel: linux-firmware add qcom-venus-{5.2,5.4} packages
Aníbal Limón (1):
recipes-graphics/xorg-xserver: Add patch to fix segfault when probe
Armin Kuster (2):
bind: update to 9.11.22 ESV
core-image-sato: qemumips use 512 mem
Bruce Ashfield (30):
linux-yocto/5.4: update to v5.4.59
linux-yocto/5.8: update to v5.8.2
yocto-bsp: update to v5.4.56
yocto-bsp: update to v5.4.58
qemu: bump default reference kernel to v5.8
linux-yocto/5.8: fix perf and virtio_scsi warnings
linux-yocto-rt/5.8: fix lttng-modules build
linux-yocto/5.8: selftests/bpf: Prevent runqslower from racing on building bpftool
linux-yocto/5.8: disable CONFIG_NFS_DISABLE_UDP_SUPPORT
poky: set preferred version for linux-yocto to be v5.8
poky-tiny: set preferred version to 5.8
poky: add preferred version for linux-yocto-rt
linux-yocto/5.8: update to v5.8.3
linux-yocto/5.4: update to v5.4.60
kernel: config cleanups for 5.8+
linux-yocto/5.4: update to v5.4.61
linux-yocto/5.8: update to v5.8.4
linux-yocto/5.8: disable IKHEADERS in default builds
kernel-yocto: allow promotion of configuration warnings to errors
kernel-yocto: checksum all modifications to available kernel fragments directories
lttng-modules/devupstream: bump to latest 2.12 commits
linux-yocto-dev: bump to v5.9+
linux-yocto/5.8: update to v5.8.5
kernel-devsrc: account for HOSTCC and HOSTCXX
linux-yocto/config: netfilter: Enable nat for ipv4 and ipv6
linux-yocto/5.8: update to v5.8.8
linux-yocto/5.4: update to v5.4.64
linux-yocto/config: configuration warning cleanup
linux-yocto/5.8: update to v5.8.9
linux-yocto/5.4: update to v5.4.65
Changhyeok Bae (2):
iw: upgrade 5.4 -> 5.8
iputils: upgrade s20190709 -> s20200821
Chris Laplante (12):
bitbake: compat.py: remove file since it no longer actually implements anything
bitbake: COW: formatting
bitbake: COW: migrate test suite into tests/cow
cve-update-db-native: add progress handler
cve-check/cve-update-db-native: use lockfile to fix usage under multiconfig
cve-update-db-native: use context manager for cve_f
cve-check: avoid FileNotFoundError if no do_cve_check task has run
bitbake: utils: process_profilelog: use context manager
bitbake: utils: fix UnboundLocalError when _print_exception raises
cve-update-db-native: be less magical about checking whether the cve-check class is enabled
cve-update-db-native: move -journal checking into do_fetch
cve-update-db-native: remove unused variable
Christophe GUIBOUT (1):
initramfs-framework: support kernel cmdline with double quotes
Denys Dmytriyenko (2):
weston: upgrade 8.0.0 -> 9.0.0
cryptodev: bump 1 commit past 1.11 to fix 5.9-rc1+
Diego Sueiro (2):
license_image.bbclass: Create symlink to the image license manifest dir
license_image.bbclass: Fix symlink to the image license manifest dir creation
Douglas Royds (1):
tcmode-default: Drop gcc-cross-initial, gcc-crosssdk-initial references
Frazer Clews (1):
bitbake: lib: fix most undefined code picked up by pylint
Geoff Parker (1):
systemd-serialgetty: Replace sed quoting using ' with " to allow var expansion
Jacob Kroon (1):
gcc10: Don't default back to -fcommon
Jean-Francois Dagenais (1):
bitbake: siggen: clean_basepath: remove recipe full path when virtual:xyz present
Jens Rehsack (1):
lttng-modules: backport patches from 2.12.x to fix 5.4.64+ and 5.8.9+ builds
Joe Slater (1):
pseudo: fix renaming to self
Jon Mason (4):
cortex-m0plus.inc: change file permissions
tune-cortexa55.inc: clean-up ARMv8.2a uses
tune-cortexa57-cortexa53.inc: add CRC and set march
tune-cortexa*: Cleanups
Joshua Watt (8):
wic: Add 512 Byte alignment to --offset
oeqa: runtime_tests: Extra GPG debugging
oeqa: sdk: Capture stderr output
oeqa: reproducible: Fix test not producing diffs
diffoscope: upgrade 156 -> 158
bitbake: bitbake: Add parsing torture test
bitbake: cooker: Block SIGINT in worker processes
sphinx: dev-manual: Clarify that virtual providers do not apply to runtime dependencies
Kai Kang (1):
dhcpcd: 9.1.4 -> 9.2.0
Kevin Hao (1):
meta-yocto-bsp: Bump to the v5.8 kernel
Khairul Rohaizzat Jamaluddin (1):
wic/bootimg-efi: IMAGE_EFI_BOOT_FILES variable added to separate bootimg-efi and bootimg-partition
Khem Raj (24):
gcc-cross-canadian: Install gcc/g++ wrappers for musl
uninative: Upgrade to 2.9
packagegroup-core-tools-profile: Disable lttng-modules for riscv64
lttng-modules: Disable on riscv64
kexec-tools: Fix build with -fno-common on ppc
lttng-tools: Do not build for riscv64
util-linux: Allow update alternatives for additional apps
lttng-tools: lttng-ust works on riscv64
json-glib: Backport a build fix with clang
rpcbind: Use update-alternatives for rpcinfo
go: Upgrade to 1.15 major release
weston-init: Redefine weston service and add socket activation option
musl: Upgrade to latest master
libucontext: Recognise riscv32 architecture
linuxloader.bbclass: Define riscv32 ldso for musl
populate_sdk_ext: Do not assume local.conf will always exist
weston: plane_add_prop() calls break musl atomic modesetting
weston-init: Enable RDP screen share
weston-init: Do not use fbdev backend
weston-init: Select drm/fbdev backends for qemu machines
oeqa/weston: Fix tests to run with systemd
core-image-weston: Bump qemu memory to 512M
go: Update to 1.15.2 minor release
bind: Inherit update-alternatives
Mark Hatle (6):
package_tar.bbclass: Sync to the other package_* classes
kernel.bbclass: Remove do_install[prefunc] no longer needed
buildhistory.bbclass: Rework to use read_subpackage_metadata
kernel.bbclass: Move away from calling package_get_auto_pr
package.bbclass: hash equivalency and pr service
bitbake: process.py: Handle SystemExit exception to eliminate backtrace
Mark Morton (1):
sphinx: test-manual code block, link, and format update
Martin Jansa (7):
devtool: expand SRC_URI when guessing recipe update mode
image-artifact-names: introduce new bbclass and move some variables into it
kernel.bbclass: use bash variables like imageType, base_name without {}
kernel.bbclass: eliminate (initramfs_)symlink_name variables
kernel.bbclass: use camelCase notation for bash variables in do_deploy
*-initramfs: don't use .rootfs IMAGE_NAME_SUFFIX
bitbake.conf: use ${TCMODE}-${TCLIBC} directory for CACHE
Matt Madison (1):
image.bbclass: fix REPRODUCIBLE_TIMESTAMP_ROOTFS reference
Michael Gloff (2):
sysvinit rc: Use PSPLASH_FIFO_DIR for progress fifo
sysvinit: Remove ${B} assignment
Michael Tretter (1):
devtool: deploy-target: Fix size calculation for hard links
Ming Liu (2):
systemd: split systemd specific udev rules into its own package
libubootenv: inherit uboot-config
Mingli Yu (3):
qemu: always define unknown_lock_type
qemu: override DEBUG_BUILD
bison: remove the parallel build patch
Naveen Saini (1):
lib/oe/recipeutils.py: add support for BBFILES_DYNAMIC
Nicolas Dechesne (73):
linux-libc-headers: kernel headers are installed in STAGING_KERNEL_BUILDDIR
bitbake: sphinx: add initial build infrastructure
bitbake: sphinx: initial sphinx support
bitbake: sphinx: bitbake-user-manual: use builtin sphinx glossary
bitbake: sphinx: switch to readthedocs theme
bitbake: sphinx: override theme CSS
bitbake: sphinx: fixup for links
bitbake: sphinx: fix links inside notes
bitbake: sphinx: fixes all remaining warnings
bitbake: sphinx: Makefile.sphinx: add clean and publish targets
bitbake: sphinx: tweak html output a bit
bitbake: sphinx: add SPDX headers
bitbake: sphinx: index: move the boilerplate at the end of the page
bitbake: sphinx: conf: enable extlinks extension
bitbake: sphinx: add releases page
bitbake: sphinx: bitbake-user-manual: insert additional blank line after title
bitbake: sphinx: last manual round of fixes/improvements
bitbake: sphinx: update style for important, caution and warnings
bitbake: sphinx: remove leading '/'
bitbake: sphinx: theme_override: properly set font for verbatim text
bitbake: bitbake-user-manual: fix bad links
sphinx: add initial build infrastructure
sphinx: initial sphinx support
sphinx: ref-variables: use builtin sphinx glossary
sphinx: overview-manual: add figures
sphinx: switch to readthedocs theme
sphinx: Add SPDX license headers
sphinx: add CSS theme override
sphinx: bsp-guide: add figures
sphinx: add Yocto project logo
sphinx: conf: update copyright
sphinx: conf: add substitutions/global variables
sphinx: add boilerplate file
sphinx: add boilerplate to manuals
sphinx: ref-manual: add revision history table
sphinx: add a general index
sphinx: conf.py: enable sphinx.ext.autosectionlabel
sphinx: ref-manual: use builtin glossary for the Terms section
sphinx: fix internal links
sphinx: ref-manual: fix typo
sphinx: fix custom term links
sphinx: manual updates for some links
sphinx: dev-manual add figures
sphinx: kernel-dev: add figures
sphinx: profile-manual: add figures
sphinx: fix up bold text for informalexample container
sphinx: ref-manual: add figures
sphinx: sdk-manual: add figures
sphinx: test-manual: add figures
sphinx: toaster-manual: add figures
sphinx: add links for Yocto project website
sphinx: fix links when the link text should be displayed
sphinx: add links to terms in the BitBake glossary
sphinx: add links to section in the Bitbake manual
sphinx: setup extlink for docs.yoctoproject.org
sphinx: enable intersphinx extension
sphinx: insert blank below between title and toc
sphinx: fix up terms related to kernel-fitimage
sphinx: conf: a few rendering tweaks
sphinx: makefile: add publish target
sphinx: conf: include CSS/JS files, the proper way
sphinx: convert 'what I wish I'd known'
sphinx: convert 'transitioning to a custom environment'
sphinx: ref-manual: fix heading for oe-init-build-env
sphinx: brief-yoctoprojectqs: fix up all remaining rendering issues
sphinx: Makefile.sphinx improvements
sphinx: convert bsp-guide
sphinx: remove leading '/'
sphinx: update style for important, caution and warnings
sphinx: profile-manual: convert profile-manual
sphinx: theme_override: properly set font for verbatim text
sphinx: theme_override: add tying-it-together admonition
sphinx: conf: exclude adt-manual/*.rst
Oleksandr Kravchuk (1):
ell: update to 0.33
Ovidiu Panait (1):
libxml2: Fix CVE-2020-24977
Peter A. Bigot (2):
bluez5: fix builds that require ell support
timezone: include leap second data in tzdata-core
Peter Bergin (1):
systemd: avoid failing if no udev rules provided
Pierre-Jean Texier (2):
libubootenv: upgrade 0.3 -> 0.3.1
diffoscope: upgrade 158 -> 160
Quentin Schulz (16):
sphinx: brief-yoctoprojectqs: remove redundant welcome
sphinx: brief-yoctoprojectqs: fix ambiguous note for cyclone5 example
sphinx: brief-yoctoprojectqs: add missing boilerplate
sphinx: overview-manual: add link to AUH how-to section
sphinx: overview-manual: fix bitbake basic explanation
sphinx: brief-yoctoprojectqs: add note on branch consistency between layers
sphinx: what-i-wish-id-known: update "don't be fooled by doc search results"
sphinx: overview-manual: remove highlight in bold section
sphinx: replace special quotes with single and double quotes
sphinx: fix incorrect indentations
sphinx: brief-yoctoprojectqs: put other distros note after Ubuntu-specific packages
sphinx: fix a few typos or missing/too many words
sphinx: "highlight" some variables, tasks or files
sphinx: fix or add missing links and remove mention of Eclipse workflow
ref-manual: examples: hello-autotools: upgrade to 2.10
ref-manual: examples: libxpm: add relative path to .inc
Rahul Kumar (1):
systemd-serialgetty: Fix sed expression quoting
Rasmus Villemoes (1):
kernel.bbclass: run do_symlink_kernsrc before do_patch
Richard Purdie (74):
nativesdk-sdk-provides-dummy: Add /bin/sh
bitbake: fetch2/wget: Remove buffering parameter
bitbake: cooker: Ensure parse_quit thread is closed down
bitbake: cooker: Explictly shut down the sync thread
bitbake: fetch2: Drop cups.org from wget status checks
bitbake: build/msg: Cleanup verbose option handling
bitbake: cooker/cookerdata/main: Improve loglevel handling
bitbake: cookerdata: Ensure UI options are updated to the server
bitbake: cooker/cookerdata: Ensure UI event log is updated from commandline
bitbake: cooker: Defer configuration init to after UI connection
bitbake: server/process: Move the socket code to server process only
bitbake: main/server/process: Drop configuration object passing
bitbake: cooker: Ensure BB_ORIGENV is updated by changes to configuration.env
bitbake: server/process: Log extra threads at exit
bitbake: server/process: Add bitbake-server and exec() a new server process
bitbake: runqueue: Don't use sys.argv
bitbake: cooker: Ensure cooker's enviroment is updated on updateConfig
connman-gnome/matchbox-desktop: Remove file:// globbing
selftest/recipetool: Drop globbing SRC_URI test, no longer supported
local.conf.sample: Document memory resident bitbake
bitbake: fetch2: Drop globbing supprt in file:// SRC_URIs
bitbake: server/process: Use sys.executable for bitbake-server
bitbake: process: Avoid bb.utils.timeout
bitbake: utils: Drop broken timeout function
bitbake: server/process: Fix typo in code causing tracebacks
oeqa/selftest: Apply patch to fix cpio build with -fno-common
runqemu: Show an error for conflicting graphics options
lttng: Move platform logic to dedicated inc file
patchelf: upgrade 0.11 -> 0.12
build-appliance/packagegroup-core-base-utils: Replace dhcp-client/dhcp-server with dhcpcd/kea
selftest/prservice: Improve test failure message
iputils: Adapt ${PN}-tftpd package dependency to PACKAGECONFIG
bitbake: process/knotty: Improve early exception handling
bitbake: cooker/cookerdata: Use BBHandledException, not sys.exit()
bitbake: cookerdata: Fix exception raise statements
bitbake: process: Avoid printing binary strings for leftover processes
bitbake: server/process: Ensure logging is flushed
bitbake: server/process: Don't show tracebacks if the lockfile is removed
bitbake: cooker: Ensure parser replacement calls parser final_cleanup
bitbake: cooker: Assign a name to the sync thread to aid debugging
bitbake: server/process: Ensure we don't keep looping if some other server is started
bitbake: server/process: Prefix the log data with pid/time information
bitbake: server/process: Note when commands complete in logs
bitbake: cooker: Ensure parser is cleaned up
runqemu: Add a hook to allow it to renice
bitbake: cooker: Avoid parser deadlocks
bitbake: cooker: Ensure parser worker signal handlers are default
selftest/signing: Ensure build path relocation is safe
oeqa/concurrencytest: Improve builddir path manipulations
bitbake: cooker/command: Fix disconnection handling
bitbake: tinfoil: Ensure sockets don't leak even when exceptions occur
bitbake: tests/fetch: Move away from problematic freedesktop.org urls
bitbake: sphinx: Enhance the sphinx experience/nagivation with:
bitbake: sphinx: theme_override: Use bold for emphasis text
Revert "qemu: always define unknown_lock_type"
Revert "core-image-sato: qemumips use 512 mem"
sphinx: Organize top level docs
sphinx: releases.rst: Add index/links to docs for previous releases
sphinx: boilerplate.rst: Drop versions notes as we have better navigation now
sphinx: boilerplate.rst: Sphinx puts the copyright elsewhere
sphinx: history: Move revision history to its own section
sphinx: manuals: Move boilerplate after toctree
sphinx: Add support for multiple docs version
sphinx: index.rst: Fix links
sphinx: ref-system-requirements: Improve formatting of the notes sections, merging them
sphinx: ref-manual links fixes and many other cleanups to import
sphinx: dev-manual: Various URL, code block and other fixes to imported data
sphinx: sdk-manual: Various URL, code block and other fixes to imported data
sphinx: kernel-dev: Various URL, code block and other fixes to imported data
sphinx: theme_override: Use bold for emphasis text
sphinx: ref-tasks: Add populate_sdk_ext task definition
sphinx: ref-manual/migration: Split each release into its own file
sphinx: overview-manual: Various URL, code block and other fixes to imported data
build-appliance-image: Update to master head revision
Robert Yang (3):
bitbake: cooker.py: Save prioritized BBFILES to BBFILES_PRIORITIZED
bitbake: utils.py: get_file_layer(): Exit the loop when file is matched
bitbake: utils.py: get_file_layer(): Improve performance
Ross Burton (25):
package.bbclass: explode the RPROVIDES so we don't think the versions are provides
elfutils: silence a new QA warning
insane: improve gnu-hash-style warning
gdk-pixbuf: add tests PACKAGECONFIG
debianutils: change SRC_URI to use snapshot.debian.org
insane: only load real files as ELF
autoconf: consolidate SRC_URI
autoconf: consolidate DEPENDS
kea: no need to depend on kea-native
kea: don't use PACKAGECONFIG inappropriately
kea: bump to 1.7.10
help2man: rewrite recipe
local.conf.sample.extended: remove help2man reference
curl: add vendors to CVE_PRODUCT to exclude false positives
harfbuzz: update patch status
harfbuzz: fix a build race around hb-version.h
cmake: whitelist CVE-2016-10642
ncurses: remove config.cache
qemu: fix CVE-2020-14364
cve-update-db-native: remove unused import
cve-update-db-native: add more logging when fetching
cve-update-db-native: use fetch task
alsa-plugins: improve .la removal
sato-screenshot: improve .la removal
buildhistory-diff: use BUILDDIR to know where buildhistory is
Saul Wold (1):
gnupg: uprev 2.2.22 -> 2.2.23
Stacy Gaikovaia (2):
bison: uprev from 3.7.1 to 3.7.2
valgrind: fix memcheck vgtests remove fullpath-after flags
Steve Sakoman (1):
xinput-calibrator: change SRC_URI to branch with libinput support
Sumit Garg (1):
insane: fix gnu-hash-style check
TeohJayShen (1):
oeqa/runtime: add test for matchbox-terminal
Tim Orling (1):
sphinx: toaster-manual: fix vars, links, code blocks
Vijai Kumar K (2):
image_types_wic: Add ASSUME_PROVIDED to WICVARS
wic: misc: Add /bin to the list of searchpaths
Yanfei Xu (1):
kernel-yocto: only replace leading -I in include paths
Yi Zhao (1):
glib-networking: add ptest
Zhixiong Chi (1):
gnutls: CVE-2020-24659
akuster (8):
log4cplus: move meta-oe pkg to core
kea: Move from meta-networking
maintainers.inc: Add me as kea & log4plus maintainer.
dhcpcd: Move from meta-network as OE-Core needs a client
maintainers.inc: Add me as dhcpcd maintainer
dhcp: remove from core
bind: Add 9.16.x
bind: 9.11 remove
hongxu (1):
sysstat: fix installed-vs-shipped QA Issue in systemd
zangrc (4):
libcap:upgrade 2.42 -> 2.43
libcap-ng:upgrade 0.7.10 -> 0.7.11
libgpg-error:upgrade 1.38 -> 1.39
at-spi2-core:upgrade 2.36.0 -> 2.36.1
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I5542f5eea751a2641342e945725fd687cd74bebe
Diffstat (limited to 'poky/documentation/adt-manual')
-rw-r--r-- | poky/documentation/adt-manual/adt-command.rst | 180 | ||||
-rw-r--r-- | poky/documentation/adt-manual/adt-intro.rst | 138 | ||||
-rw-r--r-- | poky/documentation/adt-manual/adt-manual-intro.rst | 24 | ||||
-rw-r--r-- | poky/documentation/adt-manual/adt-manual.rst | 17 | ||||
-rw-r--r-- | poky/documentation/adt-manual/adt-package.rst | 70 | ||||
-rw-r--r-- | poky/documentation/adt-manual/adt-prepare.rst | 752 | ||||
-rw-r--r-- | poky/documentation/adt-manual/adt-prepare.xml | 4 |
7 files changed, 1183 insertions, 2 deletions
diff --git a/poky/documentation/adt-manual/adt-command.rst b/poky/documentation/adt-manual/adt-command.rst new file mode 100644 index 000000000..de854772b --- /dev/null +++ b/poky/documentation/adt-manual/adt-command.rst @@ -0,0 +1,180 @@ +.. SPDX-License-Identifier: CC-BY-2.0-UK + +********************** +Using the Command Line +********************** + +Recall that earlier the manual discussed how to use an existing +toolchain tarball that had been installed into the default installation +directory, ``/opt/poky/DISTRO``, which is outside of the :term:`Build Directory` +(see the section +"`Using a Cross-Toolchain +Tarball) <#using-an-existing-toolchain-tarball>`__". And, that sourcing +your architecture-specific environment setup script initializes a +suitable cross-toolchain development environment. + +During this setup, locations for the compiler, QEMU scripts, QEMU +binary, a special version of ``pkgconfig`` and other useful utilities +are added to the ``PATH`` variable. Also, variables to assist +``pkgconfig`` and ``autotools`` are also defined so that, for example, +``configure.sh`` can find pre-generated test results for tests that need +target hardware on which to run. You can see the "`Setting Up the +Cross-Development +Environment <#setting-up-the-cross-development-environment>`__" section +for the list of cross-toolchain environment variables established by the +script. + +Collectively, these conditions allow you to easily use the toolchain +outside of the OpenEmbedded build environment on both Autotools-based +projects and Makefile-based projects. This chapter provides information +for both these types of projects. + +Autotools-Based Projects +======================== + +Once you have a suitable cross-toolchain installed, it is very easy to +develop a project outside of the OpenEmbedded build system. This section +presents a simple "Helloworld" example that shows how to set up, +compile, and run the project. + +Creating and Running a Project Based on GNU Autotools +----------------------------------------------------- + +Follow these steps to create a simple Autotools-based project: + +1. *Create your directory:* Create a clean directory for your project + and then make that directory your working location: $ mkdir + $HOME/helloworld $ cd $HOME/helloworld + +2. *Populate the directory:* Create ``hello.c``, ``Makefile.am``, and + ``configure.in`` files as follows: + + - For ``hello.c``, include these lines: #include <stdio.h> main() { + printf("Hello World!\n"); } + + - For ``Makefile.am``, include these lines: bin_PROGRAMS = hello + hello_SOURCES = hello.c + + - For ``configure.in``, include these lines: AC_INIT(hello.c) + AM_INIT_AUTOMAKE(hello,0.1) AC_PROG_CC AC_PROG_INSTALL + AC_OUTPUT(Makefile) + +3. *Source the cross-toolchain environment setup file:* Installation of + the cross-toolchain creates a cross-toolchain environment setup + script in the directory that the ADT was installed. Before you can + use the tools to develop your project, you must source this setup + script. The script begins with the string "environment-setup" and + contains the machine architecture, which is followed by the string + "poky-linux". Here is an example that sources a script from the + default ADT installation directory that uses the 32-bit Intel x86 + Architecture and the DISTRO_NAME Yocto Project release: $ source + /opt/poky/DISTRO/environment-setup-i586-poky-linux + +4. *Generate the local aclocal.m4 files and create the configure + script:* The following GNU Autotools generate the local + ``aclocal.m4`` files and create the configure script: $ aclocal $ + autoconf + +5. *Generate files needed by GNU coding standards:* GNU coding + standards require certain files in order for the project to be + compliant. This command creates those files: $ touch NEWS README + AUTHORS ChangeLog + +6. *Generate the configure file:* This command generates the + ``configure``: $ automake -a + +7. *Cross-compile the project:* This command compiles the project using + the cross-compiler. The + :term:`CONFIGURE_FLAGS` + environment variable provides the minimal arguments for GNU + configure: $ ./configure ${CONFIGURE_FLAGS} + +8. *Make and install the project:* These two commands generate and + install the project into the destination directory: $ make $ make + install DESTDIR=./tmp + +9. *Verify the installation:* This command is a simple way to verify + the installation of your project. Running the command prints the + architecture on which the binary file can run. This architecture + should be the same architecture that the installed cross-toolchain + supports. $ file ./tmp/usr/local/bin/hello + +10. *Execute your project:* To execute the project in the shell, simply + enter the name. You could also copy the binary to the actual target + hardware and run the project there as well: $ ./hello As expected, + the project displays the "Hello World!" message. + +Passing Host Options +-------------------- + +For an Autotools-based project, you can use the cross-toolchain by just +passing the appropriate host option to ``configure.sh``. The host option +you use is derived from the name of the environment setup script found +in the directory in which you installed the cross-toolchain. For +example, the host option for an ARM-based target that uses the GNU EABI +is ``armv5te-poky-linux-gnueabi``. You will notice that the name of the +script is ``environment-setup-armv5te-poky-linux-gnueabi``. Thus, the +following command works to update your project and rebuild it using the +appropriate cross-toolchain tools: $ ./configure +--host=armv5te-poky-linux-gnueabi \\ --with-libtool-sysroot=sysroot_dir + +.. note:: + + If the + configure + script results in problems recognizing the + --with-libtool-sysroot= + sysroot-dir + option, regenerate the script to enable the support by doing the + following and then run the script again: + :: + + $ libtoolize --automake + $ aclocal -I ${OECORE_NATIVE_SYSROOT}/usr/share/aclocal \ + [-I dir_containing_your_project-specific_m4_macros] + $ autoconf + $ autoheader + $ automake -a + + +Makefile-Based Projects +======================= + +For Makefile-based projects, the cross-toolchain environment variables +established by running the cross-toolchain environment setup script are +subject to general ``make`` rules. + +To illustrate this, consider the following four cross-toolchain +environment variables: +:term:`CC`\ =i586-poky-linux-gcc -m32 +-march=i586 --sysroot=/opt/poky/1.8/sysroots/i586-poky-linux +:term:`LD`\ =i586-poky-linux-ld +--sysroot=/opt/poky/1.8/sysroots/i586-poky-linux +:term:`CFLAGS`\ =-O2 -pipe -g +-feliminate-unused-debug-types +:term:`CXXFLAGS`\ =-O2 -pipe -g +-feliminate-unused-debug-types Now, consider the following three cases: + +- *Case 1 - No Variables Set in the ``Makefile``:* Because these + variables are not specifically set in the ``Makefile``, the variables + retain their values based on the environment. + +- *Case 2 - Variables Set in the ``Makefile``:* Specifically setting + variables in the ``Makefile`` during the build results in the + environment settings of the variables being overwritten. + +- *Case 3 - Variables Set when the ``Makefile`` is Executed from the + Command Line:* Executing the ``Makefile`` from the command line + results in the variables being overwritten with command-line content + regardless of what is being set in the ``Makefile``. In this case, + environment variables are not considered unless you use the "-e" flag + during the build: $ make -e file If you use this flag, then the + environment values of the variables override any variables + specifically set in the ``Makefile``. + +.. note:: + + For the list of variables set up by the cross-toolchain environment + setup script, see the " + Setting Up the Cross-Development Environment + " section. diff --git a/poky/documentation/adt-manual/adt-intro.rst b/poky/documentation/adt-manual/adt-intro.rst new file mode 100644 index 000000000..5372f4f54 --- /dev/null +++ b/poky/documentation/adt-manual/adt-intro.rst @@ -0,0 +1,138 @@ +.. SPDX-License-Identifier: CC-BY-2.0-UK + +***************************************** +The Application Development Toolkit (ADT) +***************************************** + +Part of the Yocto Project development solution is an Application +Development Toolkit (ADT). The ADT provides you with a custom-built, +cross-development platform suited for developing a user-targeted product +application. + +Fundamentally, the ADT consists of the following: + +- An architecture-specific cross-toolchain and matching sysroot both + built by the :term:`OpenEmbedded Build System`. + The toolchain and + sysroot are based on a `Metadata <&YOCTO_DOCS_DEV_URL;#metadata>`__ + configuration and extensions, which allows you to cross-develop on + the host machine for the target hardware. + +- The Eclipse IDE Yocto Plug-in. + +- The Quick EMUlator (QEMU), which lets you simulate target hardware. + +- Various user-space tools that greatly enhance your application + development experience. + +The Cross-Development Toolchain +=============================== + +The `Cross-Development +Toolchain <&YOCTO_DOCS_DEV_URL;#cross-development-toolchain>`__ consists +of a cross-compiler, cross-linker, and cross-debugger that are used to +develop user-space applications for targeted hardware. This toolchain is +created either by running the ADT Installer script, a toolchain +installer script, or through a :term:`Build Directory` +that is based on +your Metadata configuration or extension for your targeted device. The +cross-toolchain works with a matching target sysroot. + +Sysroot +======= + +The matching target sysroot contains needed headers and libraries for +generating binaries that run on the target architecture. The sysroot is +based on the target root filesystem image that is built by the +OpenEmbedded build system and uses the same Metadata configuration used +to build the cross-toolchain. + +.. _eclipse-overview: + +Eclipse Yocto Plug-in +===================== + +The Eclipse IDE is a popular development environment and it fully +supports development using the Yocto Project. When you install and +configure the Eclipse Yocto Project Plug-in into the Eclipse IDE, you +maximize your Yocto Project experience. Installing and configuring the +Plug-in results in an environment that has extensions specifically +designed to let you more easily develop software. These extensions allow +for cross-compilation, deployment, and execution of your output into a +QEMU emulation session. You can also perform cross-debugging and +profiling. The environment also supports a suite of tools that allows +you to perform remote profiling, tracing, collection of power data, +collection of latency data, and collection of performance data. + +For information about the application development workflow that uses the +Eclipse IDE and for a detailed example of how to install and configure +the Eclipse Yocto Project Plug-in, see the "`Working Within +Eclipse <&YOCTO_DOCS_DEV_URL;#adt-eclipse>`__" section of the Yocto +Project Development Manual. + +The QEMU Emulator +================= + +The QEMU emulator allows you to simulate your hardware while running +your application or image. QEMU is made available a number of ways: + +- If you use the ADT Installer script to install ADT, you can specify + whether or not to install QEMU. + +- If you have cloned the ``poky`` Git repository to create a + :term:`Source Directory` and you have + sourced the environment setup script, QEMU is installed and + automatically available. + +- If you have downloaded a Yocto Project release and unpacked it to + create a :term:`Source Directory` + and you have sourced the environment setup script, QEMU is installed + and automatically available. + +- If you have installed the cross-toolchain tarball and you have + sourced the toolchain's setup environment script, QEMU is also + installed and automatically available. + +User-Space Tools +================ + +User-space tools are included as part of the Yocto Project. You will +find these tools helpful during development. The tools include +LatencyTOP, PowerTOP, OProfile, Perf, SystemTap, and Lttng-ust. These +tools are common development tools for the Linux platform. + +- *LatencyTOP:* LatencyTOP focuses on latency that causes skips in + audio, stutters in your desktop experience, or situations that + overload your server even when you have plenty of CPU power left. + +- *PowerTOP:* Helps you determine what software is using the most + power. You can find out more about PowerTOP at + https://01.org/powertop/. + +- *OProfile:* A system-wide profiler for Linux systems that is capable + of profiling all running code at low overhead. You can find out more + about OProfile at http://oprofile.sourceforge.net/about/. For + examples on how to setup and use this tool, see the + "`OProfile <&YOCTO_DOCS_PROF_URL;#profile-manual-oprofile>`__" + section in the Yocto Project Profiling and Tracing Manual. + +- *Perf:* Performance counters for Linux used to keep track of certain + types of hardware and software events. For more information on these + types of counters see https://perf.wiki.kernel.org/. For + examples on how to setup and use this tool, see the + "`perf <&YOCTO_DOCS_PROF_URL;#profile-manual-perf>`__" section in the + Yocto Project Profiling and Tracing Manual. + +- *SystemTap:* A free software infrastructure that simplifies + information gathering about a running Linux system. This information + helps you diagnose performance or functional problems. SystemTap is + not available as a user-space tool through the Eclipse IDE Yocto + Plug-in. See http://sourceware.org/systemtap for more + information on SystemTap. For examples on how to setup and use this + tool, see the + "`SystemTap <&YOCTO_DOCS_PROF_URL;#profile-manual-systemtap>`__" + section in the Yocto Project Profiling and Tracing Manual. + +- *Lttng-ust:* A User-space Tracer designed to provide detailed + information on user-space activity. See http://lttng.org/ust + for more information on Lttng-ust. diff --git a/poky/documentation/adt-manual/adt-manual-intro.rst b/poky/documentation/adt-manual/adt-manual-intro.rst new file mode 100644 index 000000000..4e98da16d --- /dev/null +++ b/poky/documentation/adt-manual/adt-manual-intro.rst @@ -0,0 +1,24 @@ +.. SPDX-License-Identifier: CC-BY-2.0-UK + +************ +Introduction +************ + +Welcome to the Yocto Project Application Developer's Guide. This manual +provides information that lets you begin developing applications using +the Yocto Project. + +The Yocto Project provides an application development environment based +on an Application Development Toolkit (ADT) and the availability of +stand-alone cross-development toolchains and other tools. This manual +describes the ADT and how you can configure and install it, how to +access and use the cross-development toolchains, how to customize the +development packages installation, how to use command-line development +for both Autotools-based and Makefile-based projects, and an +introduction to the Eclipse IDE Yocto Plug-in. + +.. note:: + + The ADT is distribution-neutral and does not require the Yocto + Project reference distribution, which is called Poky. This manual, + however, uses examples that use the Poky distribution. diff --git a/poky/documentation/adt-manual/adt-manual.rst b/poky/documentation/adt-manual/adt-manual.rst new file mode 100644 index 000000000..695230c5c --- /dev/null +++ b/poky/documentation/adt-manual/adt-manual.rst @@ -0,0 +1,17 @@ +.. SPDX-License-Identifier: CC-BY-2.0-UK + +=========================================== +Yocto Project Application Developer's Guide +=========================================== + +| + +.. toctree:: + :caption: Table of Contents + :numbered: + + adt-manual-intro + adt-intro + adt-prepare + adt-package + adt-command diff --git a/poky/documentation/adt-manual/adt-package.rst b/poky/documentation/adt-manual/adt-package.rst new file mode 100644 index 000000000..787d406e6 --- /dev/null +++ b/poky/documentation/adt-manual/adt-package.rst @@ -0,0 +1,70 @@ +.. SPDX-License-Identifier: CC-BY-2.0-UK + +************************************************************ +Optionally Customizing the Development Packages Installation +************************************************************ + +Because the Yocto Project is suited for embedded Linux development, it +is likely that you will need to customize your development packages +installation. For example, if you are developing a minimal image, then +you might not need certain packages (e.g. graphics support packages). +Thus, you would like to be able to remove those packages from your +target sysroot. + +Package Management Systems +========================== + +The OpenEmbedded build system supports the generation of sysroot files +using three different Package Management Systems (PMS): + +- *OPKG:* A less well known PMS whose use originated in the + OpenEmbedded and OpenWrt embedded Linux projects. This PMS works with + files packaged in an ``.ipk`` format. See + http://en.wikipedia.org/wiki/Opkg for more information about + OPKG. + +- *RPM:* A more widely known PMS intended for GNU/Linux distributions. + This PMS works with files packaged in an ``.rpm`` format. The build + system currently installs through this PMS by default. See + http://en.wikipedia.org/wiki/RPM_Package_Manager for more + information about RPM. + +- *Debian:* The PMS for Debian-based systems is built on many PMS + tools. The lower-level PMS tool ``dpkg`` forms the base of the Debian + PMS. For information on dpkg see + http://en.wikipedia.org/wiki/Dpkg. + +Configuring the PMS +=================== + +Whichever PMS you are using, you need to be sure that the +:term:`PACKAGE_CLASSES` +variable in the ``conf/local.conf`` file is set to reflect that system. +The first value you choose for the variable specifies the package file +format for the root filesystem at sysroot. Additional values specify +additional formats for convenience or testing. See the +``conf/local.conf`` configuration file for details. + +.. note:: + + For build performance information related to the PMS, see the " + package.bbclass + " section in the Yocto Project Reference Manual. + +As an example, consider a scenario where you are using OPKG and you want +to add the ``libglade`` package to the target sysroot. + +First, you should generate the IPK file for the ``libglade`` package and +add it into a working ``opkg`` repository. Use these commands: $ bitbake +libglade $ bitbake package-index + +Next, source the cross-toolchain environment setup script found in the +:term:`Source Directory`. Follow +that by setting up the installation destination to point to your sysroot +as sysroot_dir. Finally, have an OPKG configuration file conf_file that +corresponds to the ``opkg`` repository you have just created. The +following command forms should now work: $ opkg-cl –f conf_file -o +sysroot_dir update $ opkg-cl –f cconf_file -o sysroot_dir \\ +--force-overwrite install libglade $ opkg-cl –f cconf_file -o +sysroot_dir \\ --force-overwrite install libglade-dbg $ opkg-cl –f +conf_file> -osysroot_dir> \\ --force-overwrite install libglade-dev diff --git a/poky/documentation/adt-manual/adt-prepare.rst b/poky/documentation/adt-manual/adt-prepare.rst new file mode 100644 index 000000000..9b6bd0514 --- /dev/null +++ b/poky/documentation/adt-manual/adt-prepare.rst @@ -0,0 +1,752 @@ +.. SPDX-License-Identifier: CC-BY-2.0-UK + +************************************* +Preparing for Application Development +************************************* + +In order to develop applications, you need set up your host development +system. Several ways exist that allow you to install cross-development +tools, QEMU, the Eclipse Yocto Plug-in, and other tools. This chapter +describes how to prepare for application development. + +.. _installing-the-adt: + +Installing the ADT and Toolchains +================================= + +The following list describes installation methods that set up varying +degrees of tool availability on your system. Regardless of the +installation method you choose, you must ``source`` the cross-toolchain +environment setup script, which establishes several key environment +variables, before you use a toolchain. See the "`Setting Up the +Cross-Development +Environment <#setting-up-the-cross-development-environment>`__" section +for more information. + +.. note:: + + Avoid mixing installation methods when installing toolchains for + different architectures. For example, avoid using the ADT Installer + to install some toolchains and then hand-installing cross-development + toolchains by running the toolchain installer for different + architectures. Mixing installation methods can result in situations + where the ADT Installer becomes unreliable and might not install the + toolchain. + + If you must mix installation methods, you might avoid problems by + deleting ``/var/lib/opkg``, thus purging the ``opkg`` package + metadata. + +- *Use the ADT installer script:* This method is the recommended way to + install the ADT because it automates much of the process for you. For + example, you can configure the installation to install the QEMU + emulator and the user-space NFS, specify which root filesystem + profiles to download, and define the target sysroot location. + +- *Use an existing toolchain:* Using this method, you select and + download an architecture-specific toolchain installer and then run + the script to hand-install the toolchain. If you use this method, you + just get the cross-toolchain and QEMU - you do not get any of the + other mentioned benefits had you run the ADT Installer script. + +- *Use the toolchain from within the Build Directory:* If you already + have a :term:`Build Directory`, + you can build the cross-toolchain within the directory. However, like + the previous method mentioned, you only get the cross-toolchain and + QEMU - you do not get any of the other benefits without taking + separate steps. + +Using the ADT Installer +----------------------- + +To run the ADT Installer, you need to get the ADT Installer tarball, be +sure you have the necessary host development packages that support the +ADT Installer, and then run the ADT Installer Script. + +For a list of the host packages needed to support ADT installation and +use, see the "ADT Installer Extras" lists in the "`Required Packages for +the Host Development +System <&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system>`__" +section of the Yocto Project Reference Manual. + +Getting the ADT Installer Tarball +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ADT Installer is contained in the ADT Installer tarball. You can get +the tarball using either of these methods: + +- *Download the Tarball:* You can download the tarball from + ` <&YOCTO_ADTINSTALLER_DL_URL;>`__ into any directory. + +- *Build the Tarball:* You can use + :term:`BitBake` to generate the + tarball inside an existing :term:`Build Directory`. + + If you use BitBake to generate the ADT Installer tarball, you must + ``source`` the environment setup script + (````` <&YOCTO_DOCS_REF_URL;#structure-core-script>`__ or + ```oe-init-build-env-memres`` <&YOCTO_DOCS_REF_URL;#structure-memres-core-script>`__) + located in the Source Directory before running the ``bitbake`` + command that creates the tarball. + + The following example commands establish the + :term:`Source Directory`, check out the + current release branch, set up the build environment while also + creating the default Build Directory, and run the ``bitbake`` command + that results in the tarball + ``poky/build/tmp/deploy/sdk/adt_installer.tar.bz2``: + + .. note:: + + Before using BitBake to build the ADT tarball, be sure to make + sure your + local.conf + file is properly configured. See the " + User Configuration + " section in the Yocto Project Reference Manual for general + configuration information. + + $ cd ~ $ git clone git://git.yoctoproject.org/poky $ cd poky $ git + checkout -b DISTRO_NAME origin/DISTRO_NAME $ source OE_INIT_FILE $ + bitbake adt-installer + +Configuring and Running the ADT Installer Script +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Before running the ADT Installer script, you need to unpack the tarball. +You can unpack the tarball in any directory you wish. For example, this +command copies the ADT Installer tarball from where it was built into +the home directory and then unpacks the tarball into a top-level +directory named ``adt-installer``: $ cd ~ $ cp +poky/build/tmp/deploy/sdk/adt_installer.tar.bz2 $HOME $ tar -xjf +adt_installer.tar.bz2 Unpacking it creates the directory +``adt-installer``, which contains the ADT Installer script +(``adt_installer``) and its configuration file (``adt_installer.conf``). + +Before you run the script, however, you should examine the ADT Installer +configuration file and be sure you are going to get what you want. Your +configurations determine which kernel and filesystem image are +downloaded. + +The following list describes the configurations you can define for the +ADT Installer. For configuration values and restrictions, see the +comments in the ``adt-installer.conf`` file: + +- ``YOCTOADT_REPO``: This area includes the IPKG-based packages and the + root filesystem upon which the installation is based. If you want to + set up your own IPKG repository pointed to by ``YOCTOADT_REPO``, you + need to be sure that the directory structure follows the same layout + as the reference directory set up at + http://adtrepo.yoctoproject.org. Also, your repository needs + to be accessible through HTTP. + +- ``YOCTOADT_TARGETS``: The machine target architectures for which you + want to set up cross-development environments. + +- ``YOCTOADT_QEMU``: Indicates whether or not to install the emulator + QEMU. + +- ``YOCTOADT_NFS_UTIL``: Indicates whether or not to install user-mode + NFS. If you plan to use the Eclipse IDE Yocto plug-in against QEMU, + you should install NFS. + + .. note:: + + To boot QEMU images using our userspace NFS server, you need to be + running + portmap + or + rpcbind + . If you are running + rpcbind + , you will also need to add the + -i + option when + rpcbind + starts up. Please make sure you understand the security + implications of doing this. You might also have to modify your + firewall settings to allow NFS booting to work. + +- ``YOCTOADT_ROOTFS_``\ arch: The root filesystem images you want to + download from the ``YOCTOADT_IPKG_REPO`` repository. + +- ``YOCTOADT_TARGET_SYSROOT_IMAGE_``\ arch: The particular root + filesystem used to extract and create the target sysroot. The value + of this variable must have been specified with + ``YOCTOADT_ROOTFS_``\ arch. For example, if you downloaded both + ``minimal`` and ``sato-sdk`` images by setting + ``YOCTOADT_ROOTFS_``\ arch to "minimal sato-sdk", then + ``YOCTOADT_ROOTFS_``\ arch must be set to either "minimal" or + "sato-sdk". + +- ``YOCTOADT_TARGET_SYSROOT_LOC_``\ arch: The location on the + development host where the target sysroot is created. + +After you have configured the ``adt_installer.conf`` file, run the +installer using the following command: $ cd adt-installer $ +./adt_installer Once the installer begins to run, you are asked to enter +the location for cross-toolchain installation. The default location is +``/opt/poky/``\ release. After either accepting the default location or +selecting your own location, you are prompted to run the installation +script interactively or in silent mode. If you want to closely monitor +the installation, choose "I" for interactive mode rather than "S" for +silent mode. Follow the prompts from the script to complete the +installation. + +Once the installation completes, the ADT, which includes the +cross-toolchain, is installed in the selected installation directory. +You will notice environment setup files for the cross-toolchain in the +installation directory, and image tarballs in the ``adt-installer`` +directory according to your installer configurations, and the target +sysroot located according to the ``YOCTOADT_TARGET_SYSROOT_LOC_``\ arch +variable also in your configuration file. + +.. _using-an-existing-toolchain-tarball: + +Using a Cross-Toolchain Tarball +------------------------------- + +If you want to simply install a cross-toolchain by hand, you can do so +by running the toolchain installer. The installer includes the pre-built +cross-toolchain, the ``runqemu`` script, and support files. If you use +this method to install the cross-toolchain, you might still need to +install the target sysroot by installing and extracting it separately. +For information on how to install the sysroot, see the "`Extracting the +Root Filesystem <#extracting-the-root-filesystem>`__" section. + +Follow these steps: + +1. *Get your toolchain installer using one of the following methods:* + + - Go to ` <&YOCTO_TOOLCHAIN_DL_URL;>`__ and find the folder that + matches your host development system (i.e. ``i686`` for 32-bit + machines or ``x86_64`` for 64-bit machines). + + Go into that folder and download the toolchain installer whose + name includes the appropriate target architecture. The toolchains + provided by the Yocto Project are based off of the + ``core-image-sato`` image and contain libraries appropriate for + developing against that image. For example, if your host + development system is a 64-bit x86 system and you are going to use + your cross-toolchain for a 32-bit x86 target, go into the + ``x86_64`` folder and download the following installer: + poky-glibc-x86_64-core-image-sato-i586-toolchain-DISTRO.sh + + - Build your own toolchain installer. For cases where you cannot use + an installer from the download area, you can build your own as + described in the "`Optionally Building a Toolchain + Installer <#optionally-building-a-toolchain-installer>`__" + section. + +2. *Once you have the installer, run it to install the toolchain:* + + .. note:: + + You must change the permissions on the toolchain installer script + so that it is executable. + + The following command shows how to run the installer given a + toolchain tarball for a 64-bit x86 development host system and a + 32-bit x86 target architecture. The example assumes the toolchain + installer is located in ``~/Downloads/``. $ + ~/Downloads/poky-glibc-x86_64-core-image-sato-i586-toolchain-DISTRO.sh + The first thing the installer prompts you for is the directory into + which you want to install the toolchain. The default directory used + is ``/opt/poky/DISTRO``. If you do not have write permissions for the + directory into which you are installing the toolchain, the toolchain + installer notifies you and exits. Be sure you have write permissions + in the directory and run the installer again. + + When the script finishes, the cross-toolchain is installed. You will + notice environment setup files for the cross-toolchain in the + installation directory. + +.. _using-the-toolchain-from-within-the-build-tree: + +Using BitBake and the Build Directory +------------------------------------- + +A final way of making the cross-toolchain available is to use BitBake to +generate the toolchain within an existing :term:`Build Directory`. +This method does +not install the toolchain into the default ``/opt`` directory. As with +the previous method, if you need to install the target sysroot, you must +do that separately as well. + +Follow these steps to generate the toolchain into the Build Directory: + +1. *Set up the Build Environment:* Source the OpenEmbedded build + environment setup script (i.e. + ````` <&YOCTO_DOCS_REF_URL;#structure-core-script>`__ or + ```oe-init-build-env-memres`` <&YOCTO_DOCS_REF_URL;#structure-memres-core-script>`__) + located in the :term:`Source Directory`. + +2. *Check your Local Configuration File:* At this point, you should be + sure that the :term:`MACHINE` + variable in the ``local.conf`` file found in the ``conf`` directory + of the Build Directory is set for the target architecture. Comments + within the ``local.conf`` file list the values you can use for the + ``MACHINE`` variable. If you do not change the ``MACHINE`` variable, + the OpenEmbedded build system uses ``qemux86`` as the default target + machine when building the cross-toolchain. + + .. note:: + + You can populate the Build Directory with the cross-toolchains for + more than a single architecture. You just need to edit the + MACHINE + variable in the + local.conf + file and re-run the + bitbake + command. + +3. *Make Sure Your Layers are Enabled:* Examine the + ``conf/bblayers.conf`` file and make sure that you have enabled all + the compatible layers for your target machine. The OpenEmbedded build + system needs to be aware of each layer you want included when + building images and cross-toolchains. For information on how to + enable a layer, see the "`Enabling Your + Layer <&YOCTO_DOCS_DEV_URL;#enabling-your-layer>`__" section in the + Yocto Project Development Manual. + +4. *Generate the Cross-Toolchain:* Run ``bitbake meta-ide-support`` to + complete the cross-toolchain generation. Once the ``bitbake`` command + finishes, the cross-toolchain is generated and populated within the + Build Directory. You will notice environment setup files for the + cross-toolchain that contain the string "``environment-setup``" in + the Build Directory's ``tmp`` folder. + + Be aware that when you use this method to install the toolchain, you + still need to separately extract and install the sysroot filesystem. + For information on how to do this, see the "`Extracting the Root + Filesystem <#extracting-the-root-filesystem>`__" section. + +Setting Up the Cross-Development Environment +============================================ + +Before you can develop using the cross-toolchain, you need to set up the +cross-development environment by sourcing the toolchain's environment +setup script. If you used the ADT Installer or hand-installed +cross-toolchain, then you can find this script in the directory you +chose for installation. For this release, the default installation +directory is ````. If you installed the toolchain in the +:term:`Build Directory`, you can find the +environment setup script for the toolchain in the Build Directory's +``tmp`` directory. + +Be sure to run the environment setup script that matches the +architecture for which you are developing. Environment setup scripts +begin with the string "``environment-setup``" and include as part of +their name the architecture. For example, the toolchain environment +setup script for a 64-bit IA-based architecture installed in the default +installation directory would be the following: +YOCTO_ADTPATH_DIR/environment-setup-x86_64-poky-linux When you run the +setup script, many environment variables are defined: +:term:`SDKTARGETSYSROOT` - +The path to the sysroot used for cross-compilation +:term:`PKG_CONFIG_PATH` - The +path to the target pkg-config files +:term:`CONFIG_SITE` - A GNU +autoconf site file preconfigured for the target +:term:`CC` - The minimal command and +arguments to run the C compiler +:term:`CXX` - The minimal command and +arguments to run the C++ compiler +:term:`CPP` - The minimal command and +arguments to run the C preprocessor +:term:`AS` - The minimal command and +arguments to run the assembler :term:`LD` +- The minimal command and arguments to run the linker +:term:`GDB` - The minimal command and +arguments to run the GNU Debugger +:term:`STRIP` - The minimal command and +arguments to run 'strip', which strips symbols +:term:`RANLIB` - The minimal command +and arguments to run 'ranlib' +:term:`OBJCOPY` - The minimal command +and arguments to run 'objcopy' +:term:`OBJDUMP` - The minimal command +and arguments to run 'objdump' :term:`AR` +- The minimal command and arguments to run 'ar' +:term:`NM` - The minimal command and +arguments to run 'nm' +:term:`TARGET_PREFIX` - The +toolchain binary prefix for the target tools +:term:`CROSS_COMPILE` - The +toolchain binary prefix for the target tools +:term:`CONFIGURE_FLAGS` - The +minimal arguments for GNU configure +:term:`CFLAGS` - Suggested C flags +:term:`CXXFLAGS` - Suggested C++ +flags :term:`LDFLAGS` - Suggested +linker flags when you use CC to link +:term:`CPPFLAGS` - Suggested +preprocessor flags + +Securing Kernel and Filesystem Images +===================================== + +You will need to have a kernel and filesystem image to boot using your +hardware or the QEMU emulator. Furthermore, if you plan on booting your +image using NFS or you want to use the root filesystem as the target +sysroot, you need to extract the root filesystem. + +Getting the Images +------------------ + +To get the kernel and filesystem images, you either have to build them +or download pre-built versions. For an example of how to build these +images, see the "`Buiding +Images <&YOCTO_DOCS_QS_URL;#qs-buiding-images>`__" section of the Yocto +Project Quick Start. For an example of downloading pre-build versions, +see the "`Example Using Pre-Built Binaries and +QEMU <#using-pre-built>`__" section. + +The Yocto Project ships basic kernel and filesystem images for several +architectures (``x86``, ``x86-64``, ``mips``, ``powerpc``, and ``arm``) +that you can use unaltered in the QEMU emulator. These kernel images +reside in the release area - ` <&YOCTO_MACHINES_DL_URL;>`__ and are +ideal for experimentation using Yocto Project. For information on the +image types you can build using the OpenEmbedded build system, see the +":ref:`ref-manual/ref-images:Images`" chapter in the Yocto +Project Reference Manual. + +If you are planning on developing against your image and you are not +building or using one of the Yocto Project development images (e.g. +``core-image-*-dev``), you must be sure to include the development +packages as part of your image recipe. + +If you plan on remotely deploying and debugging your application from +within the Eclipse IDE, you must have an image that contains the Yocto +Target Communication Framework (TCF) agent (``tcf-agent``). You can do +this by including the ``eclipse-debug`` image feature. + +.. note:: + + See the " + Image Features + " section in the Yocto Project Reference Manual for information on + image features. + +To include the ``eclipse-debug`` image feature, modify your +``local.conf`` file in the :term:`Build Directory` +so that the +:term:`EXTRA_IMAGE_FEATURES` +variable includes the "eclipse-debug" feature. After modifying the +configuration file, you can rebuild the image. Once the image is +rebuilt, the ``tcf-agent`` will be included in the image and is launched +automatically after the boot. + +Extracting the Root Filesystem +------------------------------ + +If you install your toolchain by hand or build it using BitBake and you +need a root filesystem, you need to extract it separately. If you use +the ADT Installer to install the ADT, the root filesystem is +automatically extracted and installed. + +Here are some cases where you need to extract the root filesystem: + +- You want to boot the image using NFS. + +- You want to use the root filesystem as the target sysroot. For + example, the Eclipse IDE environment with the Eclipse Yocto Plug-in + installed allows you to use QEMU to boot under NFS. + +- You want to develop your target application using the root filesystem + as the target sysroot. + +To extract the root filesystem, first ``source`` the cross-development +environment setup script to establish necessary environment variables. +If you built the toolchain in the Build Directory, you will find the +toolchain environment script in the ``tmp`` directory. If you installed +the toolchain by hand, the environment setup script is located in +``/opt/poky/DISTRO``. + +After sourcing the environment script, use the ``runqemu-extract-sdk`` +command and provide the filesystem image. + +Following is an example. The second command sets up the environment. In +this case, the setup script is located in the ``/opt/poky/DISTRO`` +directory. The third command extracts the root filesystem from a +previously built filesystem that is located in the ``~/Downloads`` +directory. Furthermore, this command extracts the root filesystem into +the ``qemux86-sato`` directory: $ cd ~ $ source +/opt/poky/DISTRO/environment-setup-i586-poky-linux $ runqemu-extract-sdk +\\ ~/Downloads/core-image-sato-sdk-qemux86-2011091411831.rootfs.tar.bz2 +\\ $HOME/qemux86-sato You could now point to the target sysroot at +``qemux86-sato``. + +Optionally Building a Toolchain Installer +========================================= + +As an alternative to locating and downloading a toolchain installer, you +can build the toolchain installer if you have a :term:`Build Directory`. + +.. note:: + + Although not the preferred method, it is also possible to use + bitbake meta-toolchain + to build the toolchain installer. If you do use this method, you must + separately install and extract the target sysroot. For information on + how to install the sysroot, see the " + Extracting the Root Filesystem + " section. + +To build the toolchain installer and populate the SDK image, use the +following command: $ bitbake image -c populate_sdk The command results +in a toolchain installer that contains the sysroot that matches your +target root filesystem. + +Another powerful feature is that the toolchain is completely +self-contained. The binaries are linked against their own copy of +``libc``, which results in no dependencies on the target system. To +achieve this, the pointer to the dynamic loader is configured at install +time since that path cannot be dynamically altered. This is the reason +for a wrapper around the ``populate_sdk`` archive. + +Another feature is that only one set of cross-canadian toolchain +binaries are produced per architecture. This feature takes advantage of +the fact that the target hardware can be passed to ``gcc`` as a set of +compiler options. Those options are set up by the environment script and +contained in variables such as :term:`CC` +and :term:`LD`. This reduces the space +needed for the tools. Understand, however, that a sysroot is still +needed for every target since those binaries are target-specific. + +Remember, before using any BitBake command, you must source the build +environment setup script (i.e. +````` <&YOCTO_DOCS_REF_URL;#structure-core-script>`__ or +```oe-init-build-env-memres`` <&YOCTO_DOCS_REF_URL;#structure-memres-core-script>`__) +located in the Source Directory and you must make sure your +``conf/local.conf`` variables are correct. In particular, you need to be +sure the :term:`MACHINE` variable +matches the architecture for which you are building and that the +:term:`SDKMACHINE` variable is +correctly set if you are building a toolchain designed to run on an +architecture that differs from your current development host machine +(i.e. the build machine). + +When the ``bitbake`` command completes, the toolchain installer will be +in ``tmp/deploy/sdk`` in the Build Directory. + +.. note:: + + By default, this toolchain does not build static binaries. If you + want to use the toolchain to build these types of libraries, you need + to be sure your image has the appropriate static development + libraries. Use the + IMAGE_INSTALL + variable inside your + local.conf + file to install the appropriate library packages. Following is an + example using + glibc + static development libraries: + :: + + IMAGE_INSTALL_append = " glibc-staticdev" + + +Optionally Using an External Toolchain +====================================== + +You might want to use an external toolchain as part of your development. +If this is the case, the fundamental steps you need to accomplish are as +follows: + +- Understand where the installed toolchain resides. For cases where you + need to build the external toolchain, you would need to take separate + steps to build and install the toolchain. + +- Make sure you add the layer that contains the toolchain to your + ``bblayers.conf`` file through the + :term:`BBLAYERS` variable. + +- Set the + :term:`EXTERNAL_TOOLCHAIN` + variable in your ``local.conf`` file to the location in which you + installed the toolchain. + +A good example of an external toolchain used with the Yocto Project is +Mentor Graphics Sourcery G++ Toolchain. You can see information on how +to use that particular layer in the ``README`` file at +http://github.com/MentorEmbedded/meta-sourcery/. You can find +further information by reading about the +:term:`TCMODE` variable in the Yocto +Project Reference Manual's variable glossary. + +.. _using-pre-built: + +Example Using Pre-Built Binaries and QEMU +========================================= + +If hardware, libraries and services are stable, you can get started by +using a pre-built binary of the filesystem image, kernel, and toolchain +and run it using the QEMU emulator. This scenario is useful for +developing application software. + +|Using a Pre-Built Image| + +For this scenario, you need to do several things: + +- Install the appropriate stand-alone toolchain tarball. + +- Download the pre-built image that will boot with QEMU. You need to be + sure to get the QEMU image that matches your target machine's + architecture (e.g. x86, ARM, etc.). + +- Download the filesystem image for your target machine's architecture. + +- Set up the environment to emulate the hardware and then start the + QEMU emulator. + +Installing the Toolchain +------------------------ + +You can download a tarball installer, which includes the pre-built +toolchain, the ``runqemu`` script, and support files from the +appropriate directory under ` <&YOCTO_TOOLCHAIN_DL_URL;>`__. Toolchains +are available for 32-bit and 64-bit x86 development systems from the +``i686`` and ``x86_64`` directories, respectively. The toolchains the +Yocto Project provides are based off the ``core-image-sato`` image and +contain libraries appropriate for developing against that image. Each +type of development system supports five or more target architectures. + +The names of the tarball installer scripts are such that a string +representing the host system appears first in the filename and then is +immediately followed by a string representing the target architecture. + +:: + + poky-glibc-host_system-image_type-arch-toolchain-release_version.sh + + Where: + host_system is a string representing your development system: + + i686 or x86_64. + + image_type is a string representing the image you wish to + develop a Software Development Toolkit (SDK) for use against. + The Yocto Project builds toolchain installers using the + following BitBake command: + + bitbake core-image-sato -c populate_sdk + + arch is a string representing the tuned target architecture: + + i586, x86_64, powerpc, mips, armv7a or armv5te + + release_version is a string representing the release number of the + Yocto Project: + + DISTRO, DISTRO+snapshot + + +For example, the following toolchain installer is for a 64-bit +development host system and a i586-tuned target architecture based off +the SDK for ``core-image-sato``: +poky-glibc-x86_64-core-image-sato-i586-toolchain-DISTRO.sh + +Toolchains are self-contained and by default are installed into +``/opt/poky``. However, when you run the toolchain installer, you can +choose an installation directory. + +The following command shows how to run the installer given a toolchain +tarball for a 64-bit x86 development host system and a 32-bit x86 target +architecture. You must change the permissions on the toolchain installer +script so that it is executable. + +The example assumes the toolchain installer is located in +``~/Downloads/``. + +.. note:: + + If you do not have write permissions for the directory into which you + are installing the toolchain, the toolchain installer notifies you + and exits. Be sure you have write permissions in the directory and + run the installer again. + +$ ~/Downloads/poky-glibc-x86_64-core-image-sato-i586-toolchain-DISTRO.sh + +For more information on how to install tarballs, see the "`Using a +Cross-Toolchain +Tarball <&YOCTO_DOCS_ADT_URL;#using-an-existing-toolchain-tarball>`__" +and "`Using BitBake and the Build +Directory <&YOCTO_DOCS_ADT_URL;#using-the-toolchain-from-within-the-build-tree>`__" +sections in the Yocto Project Application Developer's Guide. + +Downloading the Pre-Built Linux Kernel +-------------------------------------- + +You can download the pre-built Linux kernel suitable for running in the +QEMU emulator from ` <&YOCTO_QEMU_DL_URL;>`__. Be sure to use the kernel +that matches the architecture you want to simulate. Download areas exist +for the five supported machine architectures: ``qemuarm``, ``qemumips``, +``qemuppc``, ``qemux86``, and ``qemux86-64``. + +Most kernel files have one of the following forms: \*zImage-qemuarch.bin +vmlinux-qemuarch.bin Where: arch is a string representing the target +architecture: x86, x86-64, ppc, mips, or arm. + +You can learn more about downloading a Yocto Project kernel in the +"`Yocto Project Kernel <&YOCTO_DOCS_DEV_URL;#local-kernel-files>`__" +bulleted item in the Yocto Project Development Manual. + +Downloading the Filesystem +-------------------------- + +You can also download the filesystem image suitable for your target +architecture from ` <&YOCTO_QEMU_DL_URL;>`__. Again, be sure to use the +filesystem that matches the architecture you want to simulate. + +The filesystem image has two tarball forms: ``ext3`` and ``tar``. You +must use the ``ext3`` form when booting an image using the QEMU +emulator. The ``tar`` form can be flattened out in your host development +system and used for build purposes with the Yocto Project. +core-image-profile-qemuarch.ext3 core-image-profile-qemuarch.tar.bz2 +Where: profile is the filesystem image's profile: lsb, lsb-dev, lsb-sdk, +lsb-qt3, minimal, minimal-dev, sato, sato-dev, or sato-sdk. For +information on these types of image profiles, see the +":ref:`ref-manual/ref-images:Images`" chapter in the Yocto +Project Reference Manual. arch is a string representing the target +architecture: x86, x86-64, ppc, mips, or arm. + +Setting Up the Environment and Starting the QEMU Emulator +--------------------------------------------------------- + +Before you start the QEMU emulator, you need to set up the emulation +environment. The following command form sets up the emulation +environment. $ source +YOCTO_ADTPATH_DIR/environment-setup-arch-poky-linux-if Where: arch is a +string representing the target architecture: i586, x86_64, ppc603e, +mips, or armv5te. if is a string representing an embedded application +binary interface. Not all setup scripts include this string. + +Finally, this command form invokes the QEMU emulator $ runqemu qemuarch +kernel-image filesystem-image Where: qemuarch is a string representing +the target architecture: qemux86, qemux86-64, qemuppc, qemumips, or +qemuarm. kernel-image is the architecture-specific kernel image. +filesystem-image is the .ext3 filesystem image. + +Continuing with the example, the following two commands setup the +emulation environment and launch QEMU. This example assumes the root +filesystem (``.ext3`` file) and the pre-built kernel image file both +reside in your home directory. The kernel and filesystem are for a +32-bit target architecture. $ cd $HOME $ source +YOCTO_ADTPATH_DIR/environment-setup-i586-poky-linux $ runqemu qemux86 +bzImage-qemux86.bin \\ core-image-sato-qemux86.ext3 + +The environment in which QEMU launches varies depending on the +filesystem image and on the target architecture. For example, if you +source the environment for the ARM target architecture and then boot the +minimal QEMU image, the emulator comes up in a new shell in command-line +mode. However, if you boot the SDK image, QEMU comes up with a GUI. + +.. note:: + + Booting the PPC image results in QEMU launching in the same shell in + command-line mode. + +.. |Using a Pre-Built Image| image:: figures/using-a-pre-built-image.png diff --git a/poky/documentation/adt-manual/adt-prepare.xml b/poky/documentation/adt-manual/adt-prepare.xml index 684eb75c5..2dc984325 100644 --- a/poky/documentation/adt-manual/adt-prepare.xml +++ b/poky/documentation/adt-manual/adt-prepare.xml @@ -232,7 +232,7 @@ own location, you are prompted to run the installation script interactively or in silent mode. If you want to closely monitor the installation, - choose “I” for interactive mode rather than “S” for silent mode. + choose "I" for interactive mode rather than "S" for silent mode. Follow the prompts from the script to complete the installation. </para> @@ -765,7 +765,7 @@ <itemizedlist> <listitem><para>Install the appropriate stand-alone toolchain tarball.</para></listitem> <listitem><para>Download the pre-built image that will boot with QEMU. - You need to be sure to get the QEMU image that matches your target machine’s + You need to be sure to get the QEMU image that matches your target machine's architecture (e.g. x86, ARM, etc.).</para></listitem> <listitem><para>Download the filesystem image for your target machine's architecture. </para></listitem> |