From 1c7d6584a7811b7785ae5c1e378f14b5ba0971cf Mon Sep 17 00:00:00 2001 From: takeshi_hoshina Date: Mon, 2 Nov 2020 11:07:33 +0900 Subject: basesystem-jj recipes --- external/poky/documentation/Makefile | 129 +- .../brief-yoctoprojectqs-eclipse-customization.xsl | 35 - .../brief-yoctoprojectqs/brief-yoctoprojectqs.xml | 62 +- .../bsp-guide/bsp-guide-eclipse-customization.xsl | 35 - .../poky/documentation/bsp-guide/bsp-guide.xml | 70 +- external/poky/documentation/bsp-guide/bsp.xml | 384 ++++-- .../dev-manual/dev-manual-common-tasks.xml | 814 +++++++++++-- .../dev-manual-eclipse-customization.xsl | 35 - .../documentation/dev-manual/dev-manual-qemu.xml | 25 +- .../documentation/dev-manual/dev-manual-start.xml | 263 +++-- .../poky/documentation/dev-manual/dev-manual.xml | 59 +- .../dev-manual/figures/cute-files-npm-example.png | Bin 0 -> 26248 bytes .../documentation/kernel-dev/kernel-dev-common.xml | 84 +- .../kernel-dev/kernel-dev-concepts-appx.xml | 1 - .../kernel-dev-eclipse-customization.xsl | 35 - .../poky/documentation/kernel-dev/kernel-dev.xml | 59 +- .../mega-manual/figures/bb_multiconfig_files.png | Bin 0 -> 19991 bytes .../mega-manual/figures/bitbake-title.png | Bin 0 -> 5086 bytes .../mega-manual/figures/cute-files-npm-example.png | Bin 0 -> 26248 bytes .../mega-manual/figures/index-downloads.png | Bin 36362 -> 18142 bytes .../mega-manual/figures/lttngmain0.png | Bin 120581 -> 0 bytes .../mega-manual/figures/sdk-eclipse-dev-flow.png | Bin 62626 -> 0 bytes .../poky/documentation/mega-manual/mega-manual.xml | 90 +- .../overview-manual/figures/index-downloads.png | Bin 36362 -> 18142 bytes .../overview-manual/overview-manual-concepts.xml | 15 +- .../overview-manual-development-environment.xml | 27 +- .../overview-manual-eclipse-customization.xsl | 35 - .../overview-manual/overview-manual-yp-intro.xml | 69 +- .../overview-manual/overview-manual.xml | 52 +- external/poky/documentation/poky.ent | 68 +- .../profile-manual/figures/lttngmain0.png | Bin 120581 -> 0 bytes .../profile-manual-eclipse-customization.xsl | 35 - .../profile-manual/profile-manual-usage.xml | 182 +-- .../profile-manual/profile-manual.xml | 59 +- external/poky/documentation/ref-manual/faq.xml | 4 +- .../poky/documentation/ref-manual/migration.xml | 1011 +++++++++++++++- .../poky/documentation/ref-manual/ref-classes.xml | 97 +- .../ref-manual/ref-devtool-reference.xml | 191 ++- .../poky/documentation/ref-manual/ref-features.xml | 34 +- .../documentation/ref-manual/ref-kickstart.xml | 14 +- .../ref-manual-eclipse-customization.xsl | 35 - .../poky/documentation/ref-manual/ref-manual.xml | 70 +- .../documentation/ref-manual/ref-structure.xml | 130 +- .../ref-manual/ref-system-requirements.xml | 386 +++--- .../poky/documentation/ref-manual/ref-tasks.xml | 44 +- .../poky/documentation/ref-manual/ref-terms.xml | 25 +- .../documentation/ref-manual/ref-variables.xml | 1059 +++++------------ .../poky/documentation/ref-manual/resources.xml | 10 +- .../sdk-manual/figures/sdk-eclipse-dev-flow.png | Bin 62626 -> 0 bytes .../sdk-manual/sdk-appendix-customizing.xml | 2 +- .../documentation/sdk-manual/sdk-appendix-neon.xml | 956 --------------- .../sdk-manual/sdk-appendix-obtain.xml | 12 +- .../sdk-manual/sdk-eclipse-project.xml | 1248 -------------------- .../documentation/sdk-manual/sdk-extensible.xml | 99 +- .../poky/documentation/sdk-manual/sdk-intro.xml | 65 - .../sdk-manual-eclipse-customization.xsl | 35 - .../poky/documentation/sdk-manual/sdk-manual.xml | 58 +- .../poky/documentation/sdk-manual/sdk-using.xml | 11 +- .../sdk-manual/sdk-working-projects.xml | 8 +- .../toaster-manual/toaster-manual.xml | 54 +- external/poky/documentation/tools/mega-manual.sed | 60 +- 61 files changed, 3548 insertions(+), 4892 deletions(-) delete mode 100644 external/poky/documentation/brief-yoctoprojectqs/brief-yoctoprojectqs-eclipse-customization.xsl delete mode 100644 external/poky/documentation/bsp-guide/bsp-guide-eclipse-customization.xsl mode change 100644 => 100755 external/poky/documentation/bsp-guide/bsp-guide.xml delete mode 100644 external/poky/documentation/dev-manual/dev-manual-eclipse-customization.xsl mode change 100644 => 100755 external/poky/documentation/dev-manual/dev-manual.xml create mode 100644 external/poky/documentation/dev-manual/figures/cute-files-npm-example.png delete mode 100644 external/poky/documentation/kernel-dev/kernel-dev-eclipse-customization.xsl mode change 100644 => 100755 external/poky/documentation/kernel-dev/kernel-dev.xml create mode 100644 external/poky/documentation/mega-manual/figures/bb_multiconfig_files.png create mode 100644 external/poky/documentation/mega-manual/figures/bitbake-title.png create mode 100644 external/poky/documentation/mega-manual/figures/cute-files-npm-example.png mode change 100644 => 100755 external/poky/documentation/mega-manual/figures/index-downloads.png delete mode 100644 external/poky/documentation/mega-manual/figures/lttngmain0.png delete mode 100644 external/poky/documentation/mega-manual/figures/sdk-eclipse-dev-flow.png mode change 100644 => 100755 external/poky/documentation/mega-manual/mega-manual.xml mode change 100644 => 100755 external/poky/documentation/overview-manual/figures/index-downloads.png delete mode 100644 external/poky/documentation/overview-manual/overview-manual-eclipse-customization.xsl mode change 100644 => 100755 external/poky/documentation/overview-manual/overview-manual.xml mode change 100644 => 100755 external/poky/documentation/poky.ent delete mode 100644 external/poky/documentation/profile-manual/figures/lttngmain0.png delete mode 100644 external/poky/documentation/profile-manual/profile-manual-eclipse-customization.xsl mode change 100644 => 100755 external/poky/documentation/profile-manual/profile-manual.xml delete mode 100644 external/poky/documentation/ref-manual/ref-manual-eclipse-customization.xsl mode change 100644 => 100755 external/poky/documentation/ref-manual/ref-manual.xml delete mode 100644 external/poky/documentation/sdk-manual/figures/sdk-eclipse-dev-flow.png delete mode 100644 external/poky/documentation/sdk-manual/sdk-appendix-neon.xml delete mode 100644 external/poky/documentation/sdk-manual/sdk-eclipse-project.xml delete mode 100644 external/poky/documentation/sdk-manual/sdk-manual-eclipse-customization.xsl mode change 100644 => 100755 external/poky/documentation/sdk-manual/sdk-manual.xml mode change 100644 => 100755 external/poky/documentation/toaster-manual/toaster-manual.xml (limited to 'external/poky/documentation') diff --git a/external/poky/documentation/Makefile b/external/poky/documentation/Makefile index 0566a0f3..15644bf9 100644 --- a/external/poky/documentation/Makefile +++ b/external/poky/documentation/Makefile @@ -4,24 +4,17 @@ # in any manuals must be .PNG files and live in the individual book's figures # directory as well as in the figures directory for the mega-manual. # -# Some manuals are available as linked help through the Eclipse development -# system. These manuals also include an "eclipse" sub-directory as part of -# the make process. -# # Note that the figures for the Yocto Project Development Tasks Manual # differ depending on the BRANCH being built. # # The Makefile has these targets: # all: If you leave off the target then "all" is implied. -# You will generate HTML, eclipse help (if applicable), -# and a tarball of files. +# You will generate HTML and a tarball of files. # # pdf: generates a PDF version of a manual. Not valid for the # Quick Start or the mega-manual (single, large HTML file # comprised of all Yocto Project manuals). # html: generates an HTML version of a manual. -# eclipse: generates an HTML version of a manual that can be used as -# eclipse help (including necessary metadata files). # tarball: creates a tarball for the doc files. # validate: validates # publish: pushes generated files to the Yocto Project website @@ -53,13 +46,13 @@ # make DOC=dev-manual BRANCH=edison # make DOC=mega-manual BRANCH=denzil # -# The first example generates the HTML and Eclipse help versions of the BSP Guide. +# The first example generates the HTML version of the BSP Guide. # The second example generates the HTML version only of the Quick Start. Note # that the Quick Start only has an HTML version available. So, the # 'make DOC=brief-yoctoprojectqs' command would be equivalent. The third example # generates just the PDF version of the Yocto Project Reference Manual. -# The fourth example generates the HTML 'edison' version and (if available) -# the Eclipse help version of the YP Development Tasks Manual. The last example +# The fourth example generates the HTML 'edison' version of the YP Development +# Tasks Manual. The last example # generates the HTML version of the mega-manual and uses the 'denzil' # branch when choosing figures for the tarball of figures. Any example that does # not use the BRANCH argument builds the current version of the manual set. @@ -67,7 +60,7 @@ # The publish target pushes the generated manuals to the Yocto Project # website. Unless you are a developer on the YP team, you will not succeed in # pushing manuals to this server. All files needed for the manual's HTML form are -# pushed as well as applicable Eclipse versions. +# pushed. # # Examples: # @@ -95,10 +88,10 @@ XSLTOPTS = --stringparam html.stylesheet brief-yoctoprojectqs-style.css \ --stringparam section.autolabel 0 \ --stringparam section.label.includes.component.label 0 \ --xinclude -ALLPREQ = html eclipse tarball +ALLPREQ = html tarball TARFILES = brief-yoctoprojectqs-style.css brief-yoctoprojectqs.html figures/bypqs-title.png \ figures/yocto-project-transp.png -MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse +MANUALS = $(DOC)/$(DOC).html FIGURES = figures STYLESHEET = $(DOC)/*.css @@ -106,7 +99,7 @@ endif ifeq ($(DOC),overview-manual) XSLTOPTS = --xinclude -ALLPREQ = html eclipse tarball +ALLPREQ = html tarball TARFILES = overview-manual-style.css overview-manual.html figures/overview-manual-title.png \ figures/git-workflow.png figures/source-repos.png figures/index-downloads.png \ figures/yp-download.png figures/YP-flow-diagram.png figures/key-dev-elements.png \ @@ -115,9 +108,8 @@ TARFILES = overview-manual-style.css overview-manual.html figures/overview-manua figures/package-feeds.png figures/patching.png figures/source-fetching.png \ figures/configuration-compile-autoreconf.png figures/analysis-for-package-splitting.png \ figures/image-generation.png figures/sdk-generation.png figures/images.png \ - figures/sdk.png \ - eclipse -MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse + figures/sdk.png +MANUALS = $(DOC)/$(DOC).html FIGURES = figures STYLESHEET = $(DOC)/*.css @@ -125,11 +117,10 @@ endif ifeq ($(DOC),bsp-guide) XSLTOPTS = --xinclude -ALLPREQ = html eclipse tarball +ALLPREQ = html tarball TARFILES = bsp-style.css bsp-guide.html figures/bsp-title.png \ - figures/bsp-dev-flow.png \ - eclipse -MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse + figures/bsp-dev-flow.png +MANUALS = $(DOC)/$(DOC).html FIGURES = figures STYLESHEET = $(DOC)/*.css @@ -137,7 +128,7 @@ endif ifeq ($(DOC),dev-manual) XSLTOPTS = --xinclude -ALLPREQ = html eclipse tarball +ALLPREQ = html tarball # # Note that the tarfile might produce the "Cannot stat: No such file or # directory" error message for .PNG files that are not present when building @@ -170,11 +161,10 @@ TARFILES = dev-style.css dev-manual.html \ TARFILES = dev-style.css dev-manual.html figures/buildhistory-web.png \ figures/dev-title.png figures/buildhistory.png \ figures/recipe-workflow.png figures/bitbake-build-flow.png \ - figures/multiconfig_files.png \ - eclipse + figures/multiconfig_files.png figures/cute-files-npm-example.png endif -MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse +MANUALS = $(DOC)/$(DOC).html FIGURES = figures STYLESHEET = $(DOC)/*.css @@ -235,7 +225,7 @@ TARFILES = mega-manual.html mega-style.css \ figures/profile-title.png figures/kernelshark-all.png \ figures/kernelshark-choose-events.png \ figures/kernelshark-i915-display.png \ - figures/kernelshark-output-display.png figures/lttngmain0.png \ + figures/kernelshark-output-display.png \ figures/oprofileui-busybox.png figures/oprofileui-copy-to-user.png \ figures/oprofileui-downloading.png figures/oprofileui-processes.png \ figures/perf-probe-do_fork-profile.png \ @@ -272,9 +262,10 @@ TARFILES = mega-manual.html mega-style.css \ figures/compatible-layers.png figures/import-layer.png figures/new-project.png \ figures/sdk-environment.png figures/sdk-installed-standard-sdk-directory.png \ figures/sdk-devtool-add-flow.png figures/sdk-installed-extensible-sdk-directory.png \ - figures/sdk-devtool-modify-flow.png figures/sdk-eclipse-dev-flow.png \ + figures/sdk-devtool-modify-flow.png \ figures/sdk-devtool-upgrade-flow.png figures/bitbake-build-flow.png figures/bypqs-title.png \ - figures/overview-manual-title.png figures/sdk-autotools-flow.png figures/sdk-makefile-flow.png + figures/overview-manual-title.png figures/sdk-autotools-flow.png figures/sdk-makefile-flow.png \ + figures/bb_multiconfig_files.png figures/bitbake-title.png figures/cute-files-npm-example.png endif MANUALS = $(DOC)/$(DOC).html @@ -285,37 +276,35 @@ endif ifeq ($(DOC),ref-manual) XSLTOPTS = --xinclude -ALLPREQ = html eclipse tarball +ALLPREQ = html tarball TARFILES = ref-manual.html ref-style.css figures/poky-title.png \ - figures/build-workspace-directory.png \ - eclipse -MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse + figures/build-workspace-directory.png +MANUALS = $(DOC)/$(DOC).html FIGURES = figures STYLESHEET = $(DOC)/*.css endif ifeq ($(DOC),sdk-manual) XSLTOPTS = --xinclude -ALLPREQ = html eclipse tarball +ALLPREQ = html tarball TARFILES = sdk-manual.html sdk-style.css figures/sdk-title.png \ figures/sdk-environment.png figures/sdk-installed-standard-sdk-directory.png \ figures/sdk-installed-extensible-sdk-directory.png figures/sdk-devtool-add-flow.png \ - figures/sdk-devtool-modify-flow.png figures/sdk-eclipse-dev-flow.png \ - figures/sdk-devtool-upgrade-flow.png figures/sdk-autotools-flow.png figures/sdk-makefile-flow.png \ - eclipse -MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse + figures/sdk-devtool-modify-flow.png \ + figures/sdk-devtool-upgrade-flow.png figures/sdk-autotools-flow.png figures/sdk-makefile-flow.png +MANUALS = $(DOC)/$(DOC).html FIGURES = figures STYLESHEET = $(DOC)/*.css endif ifeq ($(DOC),profile-manual) XSLTOPTS = --xinclude -ALLPREQ = html eclipse tarball +ALLPREQ = html tarball TARFILES = profile-manual.html profile-manual-style.css \ figures/profile-title.png figures/kernelshark-all.png \ figures/kernelshark-choose-events.png \ figures/kernelshark-i915-display.png \ - figures/kernelshark-output-display.png figures/lttngmain0.png \ + figures/kernelshark-output-display.png \ figures/oprofileui-busybox.png figures/oprofileui-copy-to-user.png \ figures/oprofileui-downloading.png figures/oprofileui-processes.png \ figures/perf-probe-do_fork-profile.png \ @@ -336,21 +325,19 @@ TARFILES = profile-manual.html profile-manual-style.css \ figures/pychart-linux-yocto-rpm.png \ figures/pychart-linux-yocto-rpm-nostrip.png \ figures/sched-wakeup-profile.png figures/sysprof-callers.png \ - figures/sysprof-copy-from-user.png figures/sysprof-copy-to-user.png \ - eclipse -MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse + figures/sysprof-copy-from-user.png figures/sysprof-copy-to-user.png +MANUALS = $(DOC)/$(DOC).html FIGURES = figures STYLESHEET = $(DOC)/*.css endif ifeq ($(DOC),kernel-dev) XSLTOPTS = --xinclude -ALLPREQ = html eclipse tarball +ALLPREQ = html tarball TARFILES = kernel-dev.html kernel-dev-style.css \ figures/kernel-dev-title.png figures/kernel-overview-2-generic.png \ - figures/kernel-architecture-overview.png figures/kernel-dev-flow.png \ - eclipse -MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse + figures/kernel-architecture-overview.png figures/kernel-dev-flow.png +MANUALS = $(DOC)/$(DOC).html FIGURES = figures STYLESHEET = $(DOC)/*.css endif @@ -416,50 +403,6 @@ else endif -eclipse: BASE_DIR = html/$(DOC)/ - -eclipse: eclipse-generate eclipse-resolve-links - -.PHONY : eclipse-generate eclipse-resolve-links - -eclipse-generate: -ifeq ($(filter $(DOC), overview-manual sdk-manual bsp-guide dev-manual kernel-dev profile-manual ref-manual brief-yoctoprojectqs),) - @echo " " - @echo "ERROR: You can only create eclipse documentation" - @echo " of the following documentation parts:" - @echo " - overview-manual" - @echo " - sdk-manual" - @echo " - bsp-guide" - @echo " - dev-manual" - @echo " - kernel-dev" - @echo " - profile-manual" - @echo " - ref-manual" - @echo " - brief-yoctoprojectqs" - @echo " " -else - @echo " " - @echo "******** Building eclipse help of "$(DOC) - @echo " " - cd $(DOC) && \ - xsltproc $(XSLTOPTS) \ - --stringparam base.dir '$(BASE_DIR)' \ - -o eclipse/$(DOC).html \ - $(DOC)-eclipse-customization.xsl $(DOC).xml && \ - mv eclipse/toc.xml eclipse/$(DOC)-toc.xml && \ - cp -rf $(FIGURES) eclipse/$(BASE_DIR) && \ - cd ..; - - $(call modify-eclipse) -endif - -eclipse-resolve-links: - @echo " " - @echo "******** Using eclipse-help.sed to process external links" - @echo " " - $(foreach FILE, \ - $(wildcard $(DOC)/eclipse/html/$(DOC)/*.html), \ - $(shell sed -i -f tools/eclipse-help.sed $(FILE))) - tarball: html @echo " " @echo "******** Creating Tarball of document files" @@ -476,8 +419,8 @@ publish: echo " "; \ echo "******** Publishing "$(DOC)".html"; \ echo " "; \ - scp -r $(MANUALS) $(STYLESHEET) docs.yp:/var/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \ - cd $(DOC); scp -r $(FIGURES) docs.yp:/var/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \ + scp -r $(MANUALS) $(STYLESHEET) www.yoctoproject.org:/var/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \ + cd $(DOC); scp -r $(FIGURES) www.yoctoproject.org:/var/www/www.yoctoproject.org-docs/$(VER)/$(DOC); \ else \ echo " "; \ echo $(DOC)".html missing. Generate the file first then try again."; \ diff --git a/external/poky/documentation/brief-yoctoprojectqs/brief-yoctoprojectqs-eclipse-customization.xsl b/external/poky/documentation/brief-yoctoprojectqs/brief-yoctoprojectqs-eclipse-customization.xsl deleted file mode 100644 index fbb3b578..00000000 --- a/external/poky/documentation/brief-yoctoprojectqs/brief-yoctoprojectqs-eclipse-customization.xsl +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/external/poky/documentation/brief-yoctoprojectqs/brief-yoctoprojectqs.xml b/external/poky/documentation/brief-yoctoprojectqs/brief-yoctoprojectqs.xml index f261deed..3c83afd4 100644 --- a/external/poky/documentation/brief-yoctoprojectqs/brief-yoctoprojectqs.xml +++ b/external/poky/documentation/brief-yoctoprojectqs/brief-yoctoprojectqs.xml @@ -55,10 +55,18 @@ information. - You cannot use a build host that is using the - Windows Subsystem for Linux - (WSL). - The Yocto Project is not compatible with WSL. + You may use Windows Subsystem For Linux v2 to set up a build + host using Windows 10. + + The Yocto Project is not compatible with WSLv1, it is + compatible but not officially supported nor validated + with WSLv2, if you still decide to use WSL please upgrade + to WSLv2. + + See the + Setting Up to Use Windows Subsystem For Linux" + section in the Yocto Project Development Tasks Manual for more + information. @@ -99,17 +107,20 @@ Git 1.8.3.1 or greater - tar 1.27 or greater + tar 1.28 or greater - Python 3.4.0 or greater. - + Python 3.5.0 or greater. + + + gcc 5.0 or greater. + If your build host does not meet any of these three listed version requirements, you can take steps to prepare the system so that you can still use the Yocto Project. See the - "Required Git, tar, and Python Versions" + "Required Git, tar, Python and gcc Versions" section in the Yocto Project Reference Manual for information. @@ -131,7 +142,7 @@ section in the Yocto Project Reference Manual. - $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL; libsdl1.2-dev xterm + $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL; @@ -148,11 +159,11 @@ $ git clone git://git.yoctoproject.org/poky Cloning into 'poky'... - remote: Counting objects: 445141, done. - remote: Compressing objects: 100% (105214/105214), done. - remote: Total 445141 (delta 333098), reused 444745 (delta 332720) - Receiving objects: 100% (445141/445141), 156.60 MiB | 5.13 MiB/s, done. - Resolving deltas: 100% (333098/333098), done. + remote: Counting objects: 432160, done. + remote: Compressing objects: 100% (102056/102056), done. + remote: Total 432160 (delta 323116), reused 432037 (delta 323000) + Receiving objects: 100% (432160/432160), 153.81 MiB | 8.54 MiB/s, done. + Resolving deltas: 100% (323116/323116), done. Checking connectivity... done. Move to the poky directory and take a look @@ -172,11 +183,9 @@ yocto-2.5 yocto-2.5.1 yocto-2.5.2 - yocto-2.5.3 yocto-2.6 yocto-2.6.1 yocto-2.6.2 - yocto-2.6.3 yocto-2.7 yocto_1.5_M5.rc8 @@ -268,7 +277,7 @@ meta-toolchain meta-ide-support - You can also run generated qemu images with a command like 'runqemu qemux86' + You can also run generated qemu images with a command like 'runqemu qemux86-64' Among other things, the script creates the Build Directory, @@ -334,7 +343,7 @@ QEMU, which is a Quick EMUlator that ships with the Yocto Project: - $ runqemu qemux86 + $ runqemu qemux86-64 If you want to learn more about running QEMU, see the "Using the Quick EMUlator (QEMU)" @@ -392,15 +401,16 @@ You can put the copy in the top level of the copy of the Poky repository created earlier: + $ cd ~/poky $ git clone https://github.com/kraj/meta-altera.git Cloning into 'meta-altera'... - remote: Enumerating objects: 219, done. - remote: Counting objects: 100% (219/219), done. - remote: Compressing objects: 100% (116/116), done. - remote: Total 1463 (delta 111), reused 172 (delta 79), pack-reused 1244 - Receiving objects: 100% (1463/1463), 211.60 KiB | 0 bytes/s, done. - Resolving deltas: 100% (706/706), done. - Checking connectivity... done. + remote: Counting objects: 25170, done. + remote: Compressing objects: 100% (350/350), done. + remote: Total 25170 (delta 645), reused 719 (delta 538), pack-reused 24219 + Receiving objects: 100% (25170/25170), 41.02 MiB | 1.64 MiB/s, done. + Resolving deltas: 100% (13385/13385), done. + Checking connectivity... done. + The hardware layer now exists with other layers inside the Poky reference repository on your build host as meta-altera and contains all the @@ -438,6 +448,8 @@ $ cd ~/poky/build $ bitbake-layers add-layer ../meta-altera NOTE: Starting bitbake server... + Parsing recipes: 100% |##################################################################| Time: 0:00:32 + Parsing of 918 .bb files complete (0 cached, 918 parsed). 1401 targets, 123 skipped, 0 masked, 0 errors. You can find more information on adding layers in the "Adding a Layer Using the bitbake-layers Script" diff --git a/external/poky/documentation/bsp-guide/bsp-guide-eclipse-customization.xsl b/external/poky/documentation/bsp-guide/bsp-guide-eclipse-customization.xsl deleted file mode 100644 index 35346eff..00000000 --- a/external/poky/documentation/bsp-guide/bsp-guide-eclipse-customization.xsl +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/external/poky/documentation/bsp-guide/bsp-guide.xml b/external/poky/documentation/bsp-guide/bsp-guide.xml old mode 100644 new mode 100755 index b7a5ba67..76f40f81 --- a/external/poky/documentation/bsp-guide/bsp-guide.xml +++ b/external/poky/documentation/bsp-guide/bsp-guide.xml @@ -22,33 +22,27 @@ - Scott Rifenbark - Scotty's Documentation Services, INC + &ORGNAME; - srifenbark@gmail.com + &ORGEMAIL; 0.9 - 24 November 2010 - The initial document draft released with the Yocto Project 0.9 Release. + November 2010 + The initial document released with the Yocto Project 0.9 Release. 1.0 - 6 April 2011 + April 2011 Released with the Yocto Project 1.0 Release. - - 1.0.1 - 23 May 2011 - Released with the Yocto Project 1.0.1 Release. - 1.1 - 6 October 2011 + October 2011 Released with the Yocto Project 1.1 Release. @@ -71,11 +65,6 @@ October 2013 Released with the Yocto Project 1.5 Release. - - 1.5.1 - January 2014 - Released with the Yocto Project 1.5.1 Release. - 1.6 April 2014 @@ -127,24 +116,29 @@ Released with the Yocto Project 2.6 Release. - 2.6.1 - February 2019 - Released with the Yocto Project 2.6.1 Release. + 2.7 + May 2019 + Released with the Yocto Project 2.7 Release. - 2.6.2 - April 2019 - Released with the Yocto Project 2.6.2 Release. + 3.0 + October 2019 + Released with the Yocto Project 3.0 Release. - 2.6.3 - August 2019 - Released with the Yocto Project 2.6.3 Release. + 3.1 + April 2020 + Released with the Yocto Project 3.1 Release. - 2.6.4 - November 2019 - Released with the Yocto Project 2.6.4 Release. + 3.1.1 + June 2020 + Released with the Yocto Project 3.1.1 Release. + + + 3.1.2 + &REL_MONTH_YEAR; + Released with the Yocto Project 3.1.2 Release. @@ -167,7 +161,7 @@ Yocto Project. To be sure you have the latest version of the manual for this release, go to the - Yocto Project documentation page + Yocto Project documentation page and select the manual from that site. Manuals from the site are more up-to-date than manuals derived from the Yocto Project released TAR files. @@ -184,18 +178,20 @@ page. If you need a version of this manual for a different Yocto Project release, visit the - Yocto Project documentation page + Yocto Project documentation page and select the manual set by using the "ACTIVE RELEASES DOCUMENTATION" or "DOCUMENTS ARCHIVE" pull-down menus. - + + To report any inaccuracies or problems with this - manual, send an email to the Yocto Project - discussion group at - yocto@yoctoproject.com or log into - the freenode #yocto channel. - + (or any other Yocto Project) manual, send an email to + the Yocto Project documentation mailing list at + docs@lists.yoctoproject.org or + log into the freenode #yocto channel. + + diff --git a/external/poky/documentation/bsp-guide/bsp.xml b/external/poky/documentation/bsp-guide/bsp.xml index a1d91031..96c0455f 100644 --- a/external/poky/documentation/bsp-guide/bsp.xml +++ b/external/poky/documentation/bsp-guide/bsp.xml @@ -19,7 +19,7 @@ - This guide presents information about BSP Layers, defines a structure for components + This guide presents information about BSP layers, defines a structure for components so that BSPs follow a commonly understood layout, discusses how to customize a recipe for a BSP, addresses BSP licensing, and provides information that shows you how to create a @@ -34,7 +34,7 @@ A BSP consists of a file structure inside a base directory. Collectively, you can think of the base directory, its file structure, - and the contents as a BSP Layer. + and the contents as a BSP layer. Although not a strict requirement, BSP layers in the Yocto Project use the following well-established naming convention: @@ -69,9 +69,9 @@ Each repository is a BSP layer supported by the Yocto Project (e.g. meta-raspberrypi and meta-intel). - Each of these layers is a repository unto itself and clicking on a - layer reveals information that includes two links from which you can choose - to set up a clone of the layer's repository on your local host system. + Each of these layers is a repository unto itself and clicking on + the layer name displays two URLs from which you can + clone the layer's repository to your local system. Here is an example that clones the Raspberry Pi BSP layer: $ git clone git://git.yoctoproject.org/meta-raspberrypi @@ -83,12 +83,13 @@ meta-yocto-bsp layer is part of the shipped poky repository. The meta-yocto-bsp layer maintains several - BSPs such as the Beaglebone, EdgeRouter, and generic versions of + "reference" BSPs including the ARM-based Beaglebone, MIPS-based + EdgeRouter, and generic versions of both 32-bit and 64-bit IA machines. - For information on the BSP development workflow, see the + For information on typical BSP development workflow, see the "Developing a Board Support Package (BSP)" section. For more information on how to set up a local copy of source files @@ -98,12 +99,12 @@ - The layer's base directory + The BSP layer's base directory (meta-bsp_root_name) - is the root directory of the BSP Layer. + is the root directory of that Layer. This directory is what you add to the BBLAYERS - variable in the conf/bblayers.conf file found in the + variable in the conf/bblayers.conf file found in your Build Directory, which is established after you run the OpenEmbedded build environment setup script (i.e. @@ -148,16 +149,25 @@ Some layers function as a layer to hold other BSP layers. These layers are knows as "container layers". - An example of this type of layer is the - meta-intel layer. - This layer contains BSP layers for the Intel-core2-32 - Intel Common Core - (Intel-core2-32) and the Intel-corei7-64 - Intel Common Core - (Intel-corei7-64). - the meta-intel layer also contains - the common/ directory, which contains - common content across those layers. + An example of this type of layer is OpenEmbedded's + meta-openembedded + layer. + The meta-openembedded layer contains + many meta-* layers. + In cases like this, you need to include the names of the actual + layers you want to work with, such as: + + BBLAYERS ?= " \ + /usr/local/src/yocto/meta \ + /usr/local/src/yocto/meta-poky \ + /usr/local/src/yocto/meta-yocto-bsp \ + /usr/local/src/yocto/meta-mylayer \ + .../meta-openembedded/meta-oe \ + .../meta-openembedded/meta-perl \ + .../meta-openembedded/meta-networking \ + " + + and so on. @@ -243,11 +253,11 @@ $ git clone git://git.yoctoproject.org/meta-intel.git Cloning into 'meta-intel'... - remote: Counting objects: 17179, done. - remote: Compressing objects: 100% (5307/5307), done. - remote: Total 17179 (delta 10209), reused 17139 (delta 10169) - Receiving objects: 100% (17179/17179), 4.76 MiB | 4.39 MiB/s, done. - Resolving deltas: 100% (10209/10209), done. + remote: Counting objects: 15585, done. + remote: Compressing objects: 100% (5056/5056), done. + remote: Total 15585 (delta 9123), reused 15329 (delta 8867) + Receiving objects: 100% (15585/15585), 4.51 MiB | 3.19 MiB/s, done. + Resolving deltas: 100% (9123/9123), done. Checking connectivity... done. @@ -289,12 +299,13 @@ $ git clone git://git.yoctoproject.org/meta-raspberrypi Cloning into 'meta-raspberrypi'... - remote: Counting objects: 6205, done. - remote: Compressing objects: 100% (2700/2700), done. - remote: Total 6205 (delta 3342), reused 5916 (delta 3146) - Receiving objects: 100% (6205/6205), 1.43 MiB | 0 bytes/s, done. - Resolving deltas: 100% (3342/3342), done. - Checking connectivity... done. + remote: Counting objects: 4743, done. + remote: Compressing objects: 100% (2185/2185), done. + remote: Total 4743 (delta 2447), reused 4496 (delta 2258) + Receiving objects: 100% (4743/4743), 1.18 MiB | 0 bytes/s, done. + Resolving deltas: 100% (2447/2447), done. + Checking connectivity... done. + Initialize the Build Environment: @@ -355,25 +366,24 @@ layer combined with a build system and other tools. Realize that it is important to maintain the distinction that the BSP layer, a build system, and tools are - separate components that could to be combined in + separate components that could be combined in certain end products. - Before looking at the common form for the file structure - inside a BSP Layer, you should be aware that some + Before looking at the recommended form for the directory structure + inside a BSP layer, you should be aware that some requirements do exist in order for a BSP layer to - be considered compliant with the Yocto Project. + be considered compliant with the Yocto Project. For that list of requirements, see the "Released BSP Requirements" section. - Below is the common form for the file structure - inside a BSP Layer. + Below is the typical directory structure for a BSP layer. While this basic form represents the standard, - realize that the actual file structures for specific + realize that the actual layout for individual BSPs could differ. meta-bsp_root_name/ @@ -391,15 +401,164 @@ - You can examine the Raspberry Pi BSP + Below is an example of the Raspberry Pi BSP layer that is available from the - Source Repositories by - following this link: - . - Following the link puts you in the Source Repositories and the - Raspberry Pi BSP layer for the "&DISTRO_NAME_NO_CAP;" release. - You can use the interface to explore the configuration, docs, and - recipe files. + Source Respositories: + + meta-raspberrypi/COPYING.MIT + meta-raspberrypi/README.md + meta-raspberrypi/classes + meta-raspberrypi/classes/sdcard_image-rpi.bbclass + meta-raspberrypi/conf/ + meta-raspberrypi/conf/layer.conf + meta-raspberrypi/conf/machine/ + meta-raspberrypi/conf/machine/raspberrypi-cm.conf + meta-raspberrypi/conf/machine/raspberrypi-cm3.conf + meta-raspberrypi/conf/machine/raspberrypi.conf + meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf + meta-raspberrypi/conf/machine/raspberrypi0.conf + meta-raspberrypi/conf/machine/raspberrypi2.conf + meta-raspberrypi/conf/machine/raspberrypi3-64.conf + meta-raspberrypi/conf/machine/raspberrypi3.conf + meta-raspberrypi/conf/machine/include + meta-raspberrypi/conf/machine/include/rpi-base.inc + meta-raspberrypi/conf/machine/include/rpi-default-providers.inc + meta-raspberrypi/conf/machine/include/rpi-default-settings.inc + meta-raspberrypi/conf/machine/include/rpi-default-versions.inc + meta-raspberrypi/conf/machine/include/tune-arm1176jzf-s.inc + meta-raspberrypi/docs + meta-raspberrypi/docs/Makefile + meta-raspberrypi/docs/conf.py + meta-raspberrypi/docs/contributing.md + meta-raspberrypi/docs/extra-apps.md + meta-raspberrypi/docs/extra-build-config.md + meta-raspberrypi/docs/index.rst + meta-raspberrypi/docs/layer-contents.md + meta-raspberrypi/docs/readme.md + meta-raspberrypi/files + meta-raspberrypi/files/custom-licenses + meta-raspberrypi/files/custom-licenses/Broadcom + meta-raspberrypi/recipes-bsp + meta-raspberrypi/recipes-bsp/bootfiles + meta-raspberrypi/recipes-bsp/bootfiles/bcm2835-bootfiles.bb + meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb + meta-raspberrypi/recipes-bsp/common + meta-raspberrypi/recipes-bsp/common/firmware.inc + meta-raspberrypi/recipes-bsp/formfactor + meta-raspberrypi/recipes-bsp/formfactor/formfactor + meta-raspberrypi/recipes-bsp/formfactor/formfactor/raspberrypi + meta-raspberrypi/recipes-bsp/formfactor/formfactor/raspberrypi/machconfig + meta-raspberrypi/recipes-bsp/formfactor/formfactor_0.0.bbappend + meta-raspberrypi/recipes-bsp/rpi-u-boot-src + meta-raspberrypi/recipes-bsp/rpi-u-boot-src/files + meta-raspberrypi/recipes-bsp/rpi-u-boot-src/files/boot.cmd.in + meta-raspberrypi/recipes-bsp/rpi-u-boot-src/rpi-u-boot-scr.bb + meta-raspberrypi/recipes-bsp/u-boot + meta-raspberrypi/recipes-bsp/u-boot/u-boot + meta-raspberrypi/recipes-bsp/u-boot/u-boot/*.patch + meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend + meta-raspberrypi/recipes-connectivity + meta-raspberrypi/recipes-connectivity/bluez5 + meta-raspberrypi/recipes-connectivity/bluez5/bluez5 + meta-raspberrypi/recipes-connectivity/bluez5/bluez5/*.patch + meta-raspberrypi/recipes-connectivity/bluez5/bluez5/BCM43430A1.hcd + meta-raspberrypi/recipes-connectivity/bluez5/bluez5brcm43438.service + meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend + meta-raspberrypi/recipes-core + meta-raspberrypi/recipes-core/images + meta-raspberrypi/recipes-core/images/rpi-basic-image.bb + meta-raspberrypi/recipes-core/images/rpi-hwup-image.bb + meta-raspberrypi/recipes-core/images/rpi-test-image.bb + meta-raspberrypi/recipes-core/packagegroups + meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb + meta-raspberrypi/recipes-core/psplash + meta-raspberrypi/recipes-core/psplash/files + meta-raspberrypi/recipes-core/psplash/files/psplash-raspberrypi-img.h + meta-raspberrypi/recipes-core/psplash/psplash_git.bbappend + meta-raspberrypi/recipes-core/udev + meta-raspberrypi/recipes-core/udev/udev-rules-rpi + meta-raspberrypi/recipes-core/udev/udev-rules-rpi/99-com.rules + meta-raspberrypi/recipes-core/udev/udev-rules-rpi.bb + meta-raspberrypi/recipes-devtools + meta-raspberrypi/recipes-devtools/bcm2835 + meta-raspberrypi/recipes-devtools/bcm2835/bcm2835_1.52.bb + meta-raspberrypi/recipes-devtools/pi-blaster + meta-raspberrypi/recipes-devtools/pi-blaster/files + meta-raspberrypi/recipes-devtools/pi-blaster/files/*.patch + meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb + meta-raspberrypi/recipes-devtools/python + meta-raspberrypi/recipes-devtools/python/python-rtimu + meta-raspberrypi/recipes-devtools/python/python-rtimu/*.patch + meta-raspberrypi/recipes-devtools/python/python-rtimu_git.bb + meta-raspberrypi/recipes-devtools/python/python-sense-hat_2.2.0.bb + meta-raspberrypi/recipes-devtools/python/rpi-gpio + meta-raspberrypi/recipes-devtools/python/rpi-gpio/*.patch + meta-raspberrypi/recipes-devtools/python/rpi-gpio_0.6.3.bb + meta-raspberrypi/recipes-devtools/python/rpio + meta-raspberrypi/recipes-devtools/python/rpio/*.patch + meta-raspberrypi/recipes-devtools/python/rpio_0.10.0.bb + meta-raspberrypi/recipes-devtools/wiringPi + meta-raspberrypi/recipes-devtools/wiringPi/files + meta-raspberrypi/recipes-devtools/wiringPi/files/*.patch + meta-raspberrypi/recipes-devtools/wiringPi/wiringpi_git.bb + meta-raspberrypi/recipes-graphics + meta-raspberrypi/recipes-graphics/eglinfo + meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend + meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-x11_%.bbappend + meta-raspberrypi/recipes-graphics/mesa + meta-raspberrypi/recipes-graphics/mesa/mesa-gl_%.bbappend + meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend + meta-raspberrypi/recipes-graphics/userland + meta-raspberrypi/recipes-graphics/userland/userland + meta-raspberrypi/recipes-graphics/userland/userland/*.patch + meta-raspberrypi/recipes-graphics/userland/userland_git.bb + meta-raspberrypi/recipes-graphics/vc-graphics + meta-raspberrypi/recipes-graphics/vc-graphics/files + meta-raspberrypi/recipes-graphics/vc-graphics/files/egl.pc + meta-raspberrypi/recipes-graphics/vc-graphics/files/vchiq.sh + meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics-hardfp.bb + meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.bb + meta-raspberrypi/recipes-graphics/vc-graphics/vc-graphics.inc + meta-raspberrypi/recipes-graphics/wayland + meta-raspberrypi/recipes-graphics/wayland/weston_%.bbappend + meta-raspberrypi/recipes-graphics/xorg-xserver + meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config + meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi + meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf + meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d + meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/10-evdev.conf + meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/98-pitft.conf + meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/99-calibration.conf + meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend + meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend + meta-raspberrypi/recipes-kernel + meta-raspberrypi/recipes-kernel/linux-firmware + meta-raspberrypi/recipes-kernel/linux-firmware/files + meta-raspberrypi/recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.bin + meta-raspberrypi/recipes-kernel/linux-firmware/files/brcfmac43430-sdio.txt + meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend + meta-raspberrypi/recipes-kernel/linux + meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb + meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc + meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb + meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.9.bb + meta-raspberrypi/recipes-multimedia + meta-raspberrypi/recipes-multimedia/gstreamer + meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx + meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx/*.patch + meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend + meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend + meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12 + meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/*.patch + meta-raspberrypi/recipes-multimedia/omxplayer + meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer + meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/*.patch + meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb + meta-raspberrypi/recipes-multimedia/x264 + meta-raspberrypi/recipes-multimedia/x264/x264_git.bbappend + meta-raspberrypi/wic + meta-raspberrypi/wic/sdimage-raspberrypi.wks + @@ -422,7 +581,7 @@ for the BSP. The type or types of files here can vary depending on the licensing requirements. - For example, in the Raspberry Pi BSP all licensing + For example, in the Raspberry Pi BSP, all licensing requirements are handled with the COPYING.MIT file. @@ -657,7 +816,7 @@ Source Directory. For example, many tune-* files (e.g. tune-arm1136jf-s.inc, - tun-1586-nlp.inc, and so forth) + tune-1586-nlp.inc, and so forth) reside in the poky/meta/conf/machine/include directory. @@ -689,14 +848,14 @@ This optional directory contains miscellaneous recipe files for the BSP. Most notably would be the formfactor files. - For example, in the Raspberry Pi BSP there is the - formfactor_%.bbappend file, + For example, in the Raspberry Pi BSP, there is the + formfactor_0.0.bbappend file, which is an append file used to augment the recipe that starts the build. Furthermore, there are machine-specific settings used during the build that are defined by the machconfig file further down in - the directory (i.e. formfactor/rpi/). + the directory. Here is the machconfig file for the Raspberry Pi BSP: @@ -716,8 +875,7 @@ formfactor recipe meta/recipes-bsp/formfactor/formfactor_0.0.bb, which is found in the - Source Directory - (i.e. poky). + Source Directory. @@ -757,7 +915,7 @@ The *.bb files would be a developer-supplied kernel recipe. This area of the BSP hierarchy can contain both these - types of files, although in practice, it is likely that + types of files although, in practice, it is likely that you would have one or the other. @@ -832,7 +990,7 @@ Developing a Board Support Package (BSP) - This section contains the high-level procedure you can + This section describes the high-level procedure you can follow to create a BSP. Although not required for BSP creation, the meta-intel repository, which @@ -930,10 +1088,6 @@ Texas Instruments Beaglebone (beaglebone-yocto) - - Freescale MPC8315E-RDB - (mpc8315e-rdb) - Ubiquiti Networks EdgeRouter Lite (edgerouter) @@ -1158,7 +1312,7 @@ (openembedded-core) or the Source Directory (poky). In other words, make sure you place related - files in appropriately related + files in appropriately-related recipes-* subdirectories specific to the recipe's function, or within a subdirectory containing a set of closely-related @@ -1175,7 +1329,7 @@ directory. This license covers the BSP Metadata as a whole. You must specify which license to use since no - default license exists when one not specified. + default license exists when one is not specified. See the COPYING.MIT file for the Raspberry Pi BSP in the @@ -1198,12 +1352,10 @@ file should contain the following: - A brief description about the hardware the BSP - targets. + A brief description of the target hardware. - A list of all the dependencies - on which a BSP layer depends. + A list of all the dependencies of the BSP. These dependencies are typically a list of required layers needed to build the BSP. @@ -1466,7 +1618,7 @@ BSP Licensing Considerations - In some cases, a BSP contains separately licensed + In some cases, a BSP contains separately-licensed Intellectual Property (IP) for a component or components. For these cases, you are required to accept the terms of a commercial or other type of license that requires @@ -1479,7 +1631,7 @@ - You could find that some separately licensed components + You could find that some separately-licensed components that are essential for normal operation of the system might not have an unencumbered (or free) substitute. Without these essential components, the system would be @@ -1487,7 +1639,7 @@ Then again, you might find that other licensed components that are simply 'good-to-have' or purely elective do have an unencumbered, free replacement component that you can - use rather than agreeing to the separately licensed + use rather than agreeing to the separately-licensed component. Even for components essential to the system, you might find an unencumbered component that is not identical but @@ -1600,7 +1752,7 @@ The bitbake-layers create-layer script automates creating a BSP layer. - What makes a layer a "BSP layer", is the presence of a machine + What makes a layer a "BSP layer" is the presence of at least one machine configuration file. Additionally, a BSP layer usually has a kernel recipe or an append file that leverages off an existing kernel recipe. @@ -1668,9 +1820,8 @@ The remainder of this section provides a description of the Yocto Project reference BSP for Beaglebone, which resides in the - Container Layer - (i.e. - meta-yocto-bsp). + meta-yocto-bsp + layer.
@@ -1725,15 +1876,18 @@ - Machine configuration files exist in the + One or more machine configuration files exist in the bsp_layer/conf/machine/ directory of the layer: - bsp_layer/conf/machine/machine.conf + bsp_layer/conf/machine/machine1.conf + bsp_layer/conf/machine/machine2.conf + bsp_layer/conf/machine/machine3.conf + ... more ... For example, the machine configuration file for the BeagleBone and BeagleBone Black development boards - is located in the container layer + is located in the layer poky/meta-yocto-bsp/conf/machine and is named beaglebone-yocto.conf: @@ -1759,10 +1913,11 @@ IMAGE_INSTALL_append = " kernel-devicetree kernel-image-zimage" do_image_wic[depends] += "mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot" - SERIAL_CONSOLES = "115200;ttyO0" + SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyO0" + SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" - PREFERRED_VERSION_linux-yocto ?= "4.12%" + PREFERRED_VERSION_linux-yocto ?= "5.0%" KERNEL_IMAGETYPE = "zImage" KERNEL_DEVICETREE = "am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb" @@ -1770,17 +1925,17 @@ SPL_BINARY = "MLO" UBOOT_SUFFIX = "img" - UBOOT_MACHINE = "am335x_boneblack_config" + UBOOT_MACHINE = "am335x_evm_defconfig" UBOOT_ENTRYPOINT = "0x80008000" UBOOT_LOADADDRESS = "0x80008000" MACHINE_FEATURES = "usbgadget usbhost vfat alsa" - IMAGE_BOOT_FILES ?= "u-boot.${UBOOT_SUFFIX} MLO" + IMAGE_BOOT_FILES ?= "u-boot.${UBOOT_SUFFIX} MLO zImage am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb" The variables used to configure the machine define - machine-specific properties. - For example, machine-dependent packages, machine + machine-specific properties; + for example, machine-dependent packages, machine tunings, the type of kernel to build, and U-Boot configurations. @@ -1791,7 +1946,7 @@ machine configuration file for the BeagleBone development boards. Realize that much more can be defined as part of - a machines configuration file. + a machine's configuration file. In general, you can learn about related variables that this example does not have by locating the variables in the @@ -1805,7 +1960,7 @@ In this case, the recipe that provides "virtual/xserver" is "xserver-xorg", which exists in - poky/meta/recipes-graphics/xserver-xorg. + poky/meta/recipes-graphics/xorg-xserver. XSERVER: @@ -1918,7 +2073,7 @@ PREFERRED_VERSION_linux-yocto: Defines the version of the recipe used - to build the kernel, which is "4.12" in this + to build the kernel, which is "5.0" in this case. @@ -1929,8 +2084,8 @@ KERNEL_DEVICETREE: - The name of the generated Linux kernel device - tree (i.e. the .dtb) file. + The names of the generated Linux kernel device + trees (i.e. the *.dtb) files. All the device trees for the various BeagleBone devices are included. COMPATIBLE_MACHINE: diff --git a/external/poky/documentation/dev-manual/dev-manual-common-tasks.xml b/external/poky/documentation/dev-manual/dev-manual-common-tasks.xml index c75e718d..e9ce182a 100644 --- a/external/poky/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/external/poky/documentation/dev-manual/dev-manual-common-tasks.xml @@ -183,6 +183,10 @@ LAYERDEPENDS variable. + + LAYERDEPENDS: + Lists all layers on which this layer depends (if any). + LAYERSERIES_COMPAT: Lists the @@ -315,12 +319,26 @@ DEPENDS_append_one = " foo" DEPENDS_prepend_one = "foo " - As an actual example, here's a line from the recipe - for gnutls, which adds dependencies on - "argp-standalone" when building with the musl C - library: + As an actual example, here's a snippet from the + generic kernel include file + linux-yocto.inc, + wherein the kernel compile and link options are + adjusted in the case of a subset of the supported + architectures: - DEPENDS_append_libc-musl = " argp-standalone" + DEPENDS_append_aarch64 = " libgcc" + KERNEL_CC_append_aarch64 = " ${TOOLCHAIN_OPTIONS}" + KERNEL_LD_append_aarch64 = " ${TOOLCHAIN_OPTIONS}" + + DEPENDS_append_nios2 = " libgcc" + KERNEL_CC_append_nios2 = " ${TOOLCHAIN_OPTIONS}" + KERNEL_LD_append_nios2 = " ${TOOLCHAIN_OPTIONS}" + + DEPENDS_append_arc = " libgcc" + KERNEL_CC_append_arc = " ${TOOLCHAIN_OPTIONS}" + KERNEL_LD_append_arc = " ${TOOLCHAIN_OPTIONS}" + + KERNEL_FEATURES_append_qemuall=" features/debug/printk.scc" Avoiding "+=" and "=+" and using @@ -579,11 +597,19 @@ is in order without errors (i.e. bitbake -e). + + common.test_world: + Verifies that bitbake world works. + common.test_signatures: Tests to be sure that BSP and DISTRO layers do not come with recipes that change signatures. + + common.test_layerseries_compat: + Verifies layer compatibility is set properly. + bsp.test_bsp_defines_machines: Tests if a BSP layer has machine configurations. @@ -593,12 +619,23 @@ Tests to ensure a BSP layer does not set the machine when the layer is added. + + bsp.test_machine_world: + Verifies that bitbake world + works regardless of which machine is selected. + + + bsp.test_machine_signatures: + Verifies that building for a particular machine + affects only the signature of tasks specific to that + machine. + distro.test_distro_defines_distros: Tests if a DISTRO layer has distro configurations. - distro.test_distro_no_set_distro: + distro.test_distro_no_set_distros: Tests to ensure a DISTRO layer does not set the distribution when the layer is added. @@ -1397,7 +1434,7 @@ package specified in the PACKAGES statement. - The inherit packages should be + The inherit packagegroup line should be located near the top of the recipe, certainly before the PACKAGES statement. @@ -1417,28 +1454,32 @@ Here is a short, fabricated example showing the same basic - pieces: + pieces for a hypothetical packagegroup defined in + packagegroup-custom.bb, where the + variable PN is the standard way to + abbreviate the reference to the full packagegroup name + packagegroup-custom: DESCRIPTION = "My Custom Package Groups" inherit packagegroup PACKAGES = "\ - packagegroup-custom-apps \ - packagegroup-custom-tools \ + ${PN}-apps \ + ${PN}-tools \ " - RDEPENDS_packagegroup-custom-apps = "\ + RDEPENDS_${PN}-apps = "\ dropbear \ portmap \ psplash" - RDEPENDS_packagegroup-custom-tools = "\ + RDEPENDS_${PN}-tools = "\ oprofile \ oprofileui-server \ lttng-tools" - RRECOMMENDS_packagegroup-custom-tools = "\ + RRECOMMENDS_${PN}-tools = "\ kernel-module-oprofile" @@ -1883,7 +1924,8 @@ do_fetch task uses the prefix of each entry in the SRC_URI variable value to determine which - fetcher to use to get your source files. + fetcher + to use to get your source files. It is the SRC_URI variable that triggers the fetcher. The @@ -1899,9 +1941,9 @@ The SRC_URI variable in your recipe must define each unique location for your source files. - It is good practice to not hard-code pathnames in an URL used + It is good practice to not hard-code version numbers in a URL used in SRC_URI. - Rather than hard-code these paths, use + Rather than hard-code these values, use ${PV}, which causes the fetch process to use the version specified in the recipe filename. @@ -1912,13 +1954,13 @@ Here is a simple example from the - meta/recipes-devtools/cdrtools/cdrtools-native_3.01a20.bb + meta/recipes-devtools/strace/strace_5.5.bb recipe where the source comes from a single tarball. Notice the use of the PV variable: - SRC_URI = "ftp://ftp.berlios.de/pub/cdrecord/alpha/cdrtools-${PV}.tar.bz2" + SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \ @@ -1977,16 +2019,17 @@ For these cases, you provide a name for each URL as part of the SRC_URI and then reference that name in the subsequent checksum statements. - Here is an example: + Here is an example combining lines from the files + git.inc and + git_2.24.1.bb: - SRC_URI = "${DEBIAN_MIRROR}/main/a/apmd/apmd_3.2.2.orig.tar.gz;name=tarball \ - ${DEBIAN_MIRROR}/main/a/apmd/apmd_${PV}.diff.gz;name=patch" + SRC_URI = "${KERNELORG_MIRROR}/software/scm/git/git-${PV}.tar.gz;name=tarball \ + ${KERNELORG_MIRROR}/software/scm/git/git-manpages-${PV}.tar.gz;name=manpages" - SRC_URI[tarball.md5sum] = "b1e6309e8331e0f4e6efd311c2d97fa8" - SRC_URI[tarball.sha256sum] = "7f7d9f60b7766b852881d40b8ff91d8e39fccb0d1d913102a5c75a2dbb52332d" - - SRC_URI[patch.md5sum] = "57e1b689264ea80f78353519eece0c92" - SRC_URI[patch.sha256sum] = "7905ff96be93d725544d0040e425c42f9c05580db3c272f11cff75b9aa89d430" + SRC_URI[tarball.md5sum] = "166bde96adbbc11c8843d4f8f4f9811b" + SRC_URI[tarball.sha256sum] = "ad5334956301c86841eb1e5b1bb20884a6bad89a10a6762c958220c7cf64da02" + SRC_URI[manpages.md5sum] = "31c2272a8979022497ba3d4202df145d" + SRC_URI[manpages.sha256sum] = "9a7ae3a093bea39770eb96ca3e5b40bff7af0b9f6123f089d7821d0e5b8e1230" @@ -2348,7 +2391,7 @@ Most software provides some means of setting build-time configuration options before compilation. Typically, setting these options is accomplished by running a - configure script with some options, or by modifying a build + configure script with options, or by modifying a build configuration file. As of Yocto Project Release 1.7, some of the core recipes @@ -2388,6 +2431,7 @@ software is built using Autotools. If this is the case, you just need to worry about modifying the configuration. + When using Autotools, your recipe needs to inherit the autotools @@ -2400,13 +2444,15 @@ or PACKAGECONFIG_CONFARGS to pass any needed configure options that are specific - to the recipe. + to the recipe. + CMake: If your source files have a CMakeLists.txt file, then your software is built using CMake. If this is the case, you just need to worry about modifying the configuration. + When you use CMake, your recipe needs to inherit the cmake @@ -2416,7 +2462,16 @@ You can make some adjustments by setting EXTRA_OECMAKE to pass any needed configure options that are specific - to the recipe. + to the recipe. + + If you need to install one or more custom CMake + toolchain files that are supplied by the + application you are building, install the files to + ${D}${datadir}/cmake/ Modules + during + do_install. + + Other: If your source files do not have a configure.ac or @@ -2779,6 +2834,14 @@ PARALLEL_MAKEINST for additional information. + + If you need to install one or more custom CMake + toolchain files that are supplied by the + application you are building, install the files to + ${D}${datadir}/cmake/ Modules + during + do_install. +
@@ -3221,8 +3284,6 @@ The script defined in the post-installation function is called when the root filesystem is created. If the script succeeds, the package is marked as installed. - If the script fails, the package is marked as unpacked and - the script is executed when the image boots again. Any RPM post-installation script that runs on the target should return a 0 exit code. @@ -3241,7 +3302,7 @@ mark post installs to defer to the target. You can use pkg_postinst_ontarget() or call - postinst-intercepts defer_to_first_boot + postinst_intercept delay_to_first_boot from pkg_postinst(). Any failure of a pkg_postinst() script (including exit 1) triggers an error during the @@ -4196,11 +4257,27 @@ built by layer recipes. It is recommended to keep recipes up-to-date with upstream version releases. +
+ + + While several methods exist that allow you upgrade a recipe, + you might consider checking on the upgrade status of a recipe + first. + You can do so using the + devtool check-upgrade-status command. + See the + "Checking on the Upgrade Status of a Recipe" + section in the Yocto Project Reference Manual for more information. + + + + The remainder of this section describes three ways you can + upgrade a recipe. You can use the Automated Upgrade Helper (AUH) to set up automatic version upgrades. Alternatively, you can use devtool upgrade to set up semi-automatic version upgrades. - Finally, you can even manually upgrade a recipe by editing the + Finally, you can manually upgrade a recipe by editing the recipe itself. @@ -4318,12 +4395,6 @@ directory you just created for AUH. Make these following configurations: - - Enable "distrodata" as follows: - - INHERIT =+ "distrodata" - - If you want to enable Build History, @@ -5116,15 +5187,15 @@ So, commands such as the following are useful when exploring the data store and running functions: - pydevshell> d.getVar("STAGING_DIR", True) + pydevshell> d.getVar("STAGING_DIR") '/media/build1/poky/build/tmp/sysroots' - pydevshell> d.getVar("STAGING_DIR", False) + pydevshell> d.getVar("STAGING_DIR") '${TMPDIR}/sysroots' pydevshell> d.setVar("FOO", "bar") - pydevshell> d.getVar("FOO", True) + pydevshell> d.getVar("FOO") 'bar' pydevshell> d.delVar("FOO") - pydevshell> d.getVar("FOO", True) + pydevshell> d.getVar("FOO") pydevshell> bb.build.exec_func("do_unpack", d) pydevshell> @@ -5409,26 +5480,39 @@ BBMULTICONFIG = "x86 arm" + + A "default" configuration already exists by + definition. + This configuration is named: "" (i.e. empty + string) and is defined by the variables coming + from your local.conf file. + Consequently, the previous example actually + adds two additional configurations to your + build: "arm" and "x86" along with "". + Launch BitBake: Use the following BitBake command form to launch the multiple configuration build: - $ bitbake [multiconfig:multiconfigname:]target [[[multiconfig:multiconfigname:]target] ... ] + $ bitbake [mc:multiconfigname:]target [[[mc:multiconfigname:]target] ... ] For the example in this section, the following command applies: - $ bitbake multiconfig:x86:core-image-minimal multiconfig:arm:core-image-sato + $ bitbake mc:x86:core-image-minimal mc:arm:core-image-sato mc::core-image-base The previous BitBake command builds a core-image-minimal image that is configured through the - x86.conf configuration file - and builds a core-image-sato + x86.conf configuration file, + a core-image-sato image that is configured through the - arm.conf configuration file. + arm.conf configuration file + and a core-image-base that is + configured through your + local.conf configuration file. @@ -5468,7 +5552,7 @@ build, you must declare the dependencies in the recipe using the following statement form: - task_or_package[mcdepends] = "multiconfig:from_multiconfig:to_multiconfig:recipe_name:task_on_which_to_depend" + task_or_package[mcdepends] = "mc:from_multiconfig:to_multiconfig:recipe_name:task_on_which_to_depend" To better show how to use this statement, consider the example scenario from the first paragraph of this section. @@ -5476,7 +5560,7 @@ that builds the core-image-sato image: - do_image[mcdepends] = "multiconfig:x86:arm:core-image-minimal:do_rootfs" + do_image[mcdepends] = "mc:x86:arm:core-image-minimal:do_rootfs" In this example, the from_multiconfig is "x86". @@ -5491,7 +5575,7 @@ Once you set up this dependency, you can build the "x86" multiconfig using a BitBake command as follows: - $ bitbake multiconfig:x86:core-image-sato + $ bitbake mc:x86:core-image-sato This command executes all the tasks needed to create the core-image-sato image for the @@ -5507,7 +5591,7 @@ Consider this change to the statement in the core-image-sato recipe: - do_image[mcdepends] = "multiconfig:x86:arm:core-image-minimal:do_image" + do_image[mcdepends] = "mc:x86:arm:core-image-minimal:do_image" In this case, BitBake must create the core-image-minimal image for the @@ -6323,9 +6407,180 @@
- +
+ Replicating a Build Offline + + It can be useful to take a "snapshot" of upstream sources + used in a build and then use that "snapshot" later to + replicate the build offline. + To do so, you need to first prepare and populate your downloads + directory your "snapshot" of files. + Once your downloads directory is ready, you can use it at + any time and from any machine to replicate your build. + + + + Follow these steps to populate your Downloads directory: + + + Create a Clean Downloads Directory: + Start with an empty downloads directory + (DL_DIR). + You start with an empty downloads directory by either + removing the files in the existing directory or by + setting + DL_DIR to point to either an + empty location or one that does not yet exist. + + + Generate Tarballs of the Source Git Repositories: + Edit your local.conf configuration + file as follows: + + DL_DIR = "/home/your-download-dir/" + BB_GENERATE_MIRROR_TARBALLS = "1" + + During the fetch process in the next step, BitBake + gathers the source files and creates tarballs in + the directory pointed to by DL_DIR. + See the + BB_GENERATE_MIRROR_TARBALLS + variable for more information. + + + Populate Your Downloads Directory Without Building: + Use BitBake to fetch your sources but inhibit the + build: + + $ bitbake target --runonly=fetch + + The downloads directory (i.e. + ${DL_DIR}) now has a "snapshot" of + the source files in the form of tarballs, which can + be used for the build. + + + Optionally Remove Any Git or other SCM Subdirectories From the Downloads Directory: + If you want, you can clean up your downloads directory + by removing any Git or other Source Control Management + (SCM) subdirectories such as + ${DL_DIR}/git2/*. + The tarballs already contain these subdirectories. + + + + + + Once your downloads directory has everything it needs regarding + source files, you can create your "own-mirror" and build + your target. + Understand that you can use the files to build the target + offline from any machine and at any time. + + + + Follow these steps to build your target using the files in the + downloads directory: + + + Using Local Files Only: + Inside your local.conf file, add + the + SOURCE_MIRROR_URL + variable, + inherit the own-mirrors + class, and use the + BB_NO_NETWORK + variable to your local.conf. + + SOURCE_MIRROR_URL ?= "file:///home/your-download-dir/" + INHERIT += "own-mirrors" + BB_NO_NETWORK = "1" + + The SOURCE_MIRROR_URL and + own-mirror class set up the system + to use the downloads directory as your "own mirror". + Using the BB_NO_NETWORK + variable makes sure that BitBake's fetching process + in step 3 stays local, which means files from + your "own-mirror" are used. + + + Start With a Clean Build: + You can start with a clean build by removing the + ${TMPDIR} + directory or using a new + Build Directory. + + + Build Your Target: + Use BitBake to build your target: + + $ bitbake target + + The build completes using the known local "snapshot" of + source files from your mirror. + The resulting tarballs for your "snapshot" of source + files are in the downloads directory. + + The offline build does not work if recipes + attempt to find the latest version of software + by setting + SRCREV + to + ${AUTOREV}: + + SRCREV = "${AUTOREV}" + + When a recipe sets + SRCREV to + ${AUTOREV}, the build system + accesses the network in an attempt to determine the + latest version of software from the SCM. + Typically, recipes that use + AUTOREV are custom or + modified recipes. + Recipes that reside in public repositories + usually do not use AUTOREV. + + + If you do have recipes that use + AUTOREV, you can take steps to + still use the recipes in an offline build. + Do the following: + + + Use a configuration generated by + enabling + build history. + + + Use the + buildhistory-collect-srcrevs + command to collect the stored + SRCREV values from + the build's history. + For more information on collecting these + values, see the + "Build History Package Information" + section. + + + Once you have the correct source + revisions, you can modify those recipes + to to set SRCREV + to specific versions of the software. + + + + + + + +
+
Speeding Up a Build @@ -6892,8 +7147,8 @@ MACHINE = "qemux86-64" DEFAULTTUNE = "x86-64-x32" - baselib = "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE', True) \ - or 'INVALID'), True) or 'lib'}" + baselib = "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE') \ + or 'INVALID')) or 'lib'}" Once you have set up your configuration file, use BitBake to build an image that supports the x32 psABI. @@ -6947,7 +7202,8 @@ This problem is solved with the OpenEmbedded build system by running the code through QEMU, which allows precisely that. Unfortunately, QEMU does not always work perfectly as mentioned - in the xxx section. + in the + "Known Issues" section.
@@ -7216,17 +7472,17 @@ it is based on is by definition incomplete. The purpose of the command is to allow the generation of customized images, and as such, was designed to be - completely extensible through a plug-in interface. + completely extensible through a plugin interface. See the - "Using the Wic Plug-Ins Interface" - section for information on these plug-ins. + "Using the Wic PlugIn Interface" + section for information on these plugins. This section provides some background information on Wic, describes what you need to have in place to run the tool, provides instruction on how to use - the Wic utility, provides information on using the Wic plug-ins + the Wic utility, provides information on using the Wic plugins interface, and provides several examples that show how to use Wic. @@ -7393,7 +7649,6 @@ available Wic images as follows: $ wic list images - mpc8315e-rdb Create SD card image for MPC8315E-RDB genericx86 Create an EFI disk image for genericx86* beaglebone-yocto Create SD card image for Beaglebone edgerouter Create SD card image for Edgerouter @@ -7581,7 +7836,6 @@ files: $ wic list images - mpc8315e-rdb Create SD card image for MPC8315E-RDB genericx86 Create an EFI disk image for genericx86* beaglebone-yocto Create SD card image for Beaglebone edgerouter Create SD card image for Edgerouter @@ -7621,28 +7875,28 @@
-
- Using the Wic Plug-Ins Interface +
+ Using the Wic Plugin Interface You can extend and specialize Wic functionality by using - Wic plug-ins. - This section explains the Wic plug-in interface. + Wic plugins. + This section explains the Wic plugin interface. - Wic plug-ins consist of "source" and "imager" plug-ins. - Imager plug-ins are beyond the scope of this section. + Wic plugins consist of "source" and "imager" plugins. + Imager plugins are beyond the scope of this section. - Source plug-ins provide a mechanism to customize partition + Source plugins provide a mechanism to customize partition content during the Wic image generation process. - You can use source plug-ins to map values that you specify + You can use source plugins to map values that you specify using --source commands in kickstart - files (i.e. *.wks) to a plug-in + files (i.e. *.wks) to a plugin implementation used to populate a given partition. - If you use plug-ins that have build-time dependencies + If you use plugins that have build-time dependencies (e.g. native tools, bootloaders, and so forth) when building a Wic image, you need to specify those dependencies using the @@ -7652,43 +7906,43 @@ - Source plug-ins are subclasses defined in plug-in files. - As shipped, the Yocto Project provides several plug-in + Source plugins are subclasses defined in plugin files. + As shipped, the Yocto Project provides several plugin files. - You can see the source plug-in files that ship with the + You can see the source plugin files that ship with the Yocto Project here. - Each of these plug-in files contains source plug-ins that + Each of these plugin files contains source plugins that are designed to populate a specific Wic image partition. - Source plug-ins are subclasses of the + Source plugins are subclasses of the SourcePlugin class, which is defined in the poky/scripts/lib/wic/pluginbase.py file. For example, the BootimgEFIPlugin - source plug-in found in the + source plugin found in the bootimg-efi.py file is a subclass of the SourcePlugin class, which is found in the pluginbase.py file. - You can also implement source plug-ins in a layer outside + You can also implement source plugins in a layer outside of the Source Repositories (external layer). - To do so, be sure that your plug-in files are located in + To do so, be sure that your plugin files are located in a directory whose path is scripts/lib/wic/plugins/source/ within your external layer. - When the plug-in files are located there, the source - plug-ins they contain are made available to Wic. + When the plugin files are located there, the source + plugins they contain are made available to Wic. When the Wic implementation needs to invoke a - partition-specific implementation, it looks for the plug-in + partition-specific implementation, it looks for the plugin with the same name as the --source parameter used in the kickstart file given to that partition. @@ -7698,13 +7952,13 @@ part /boot --source bootimg-pcbios --ondisk sda --label boot --active --align 1024 The methods defined as class members of the matching - source plug-in (i.e. bootimg-pcbios) - in the bootimg-pcbios.py plug-in file + source plugin (i.e. bootimg-pcbios) + in the bootimg-pcbios.py plugin file are used. - To be more concrete, here is the corresponding plug-in + To be more concrete, here is the corresponding plugin definition from the bootimg-pcbios.py file for the previous command along with an example method called by the Wic implementation when it needs to @@ -7736,19 +7990,19 @@ . . - If a subclass (plug-in) itself does not implement a + If a subclass (plugin) itself does not implement a particular function, Wic locates and uses the default version in the superclass. - It is for this reason that all source plug-ins are derived + It is for this reason that all source plugins are derived from the SourcePlugin class. The SourcePlugin class defined in the pluginbase.py file defines - a set of methods that source plug-ins can implement or + a set of methods that source plugins can implement or override. - Any plug-ins (subclass of + Any plugins (subclass of SourcePlugin) that do not implement a particular method inherit the implementation of the method from the SourcePlugin class. @@ -7809,11 +8063,11 @@ - You can extend the source plug-in mechanism. - To add more hooks, create more source plug-in methods + You can extend the source plugin mechanism. + To add more hooks, create more source plugin methods within SourcePlugin and the corresponding derived subclasses. - The code that calls the plug-in methods uses the + The code that calls the plugin methods uses the plugin.get_source_plugin_methods() function to find the method or methods needed by the call. Retrieval of those methods is accomplished by filling up @@ -8792,11 +9046,17 @@ Handling optional module packaging - Using Runtime Package Management + Using runtime package management + + + Generating and using signed packages Setting up and running package test (ptest) + + Creating node package manager (NPM) packages + @@ -9233,7 +9493,7 @@ Many pieces of software split functionality into optional - modules (or plug-ins) and the plug-ins that are built + modules (or plugins) and the plugins that are built might depend on configuration options. To avoid having to duplicate the logic that determines what modules are available in your recipe or to avoid having @@ -10225,6 +10485,282 @@
+ +
+ Creating Node Package Manager (NPM) Packages + + + NPM + is a package manager for the JavaScript programming + language. + The Yocto Project supports the NPM + fetcher. + You can use this fetcher in combination with + devtool + to create recipes that produce NPM packages. + + + + Two workflows exist that allow you to create NPM packages + using devtool: the NPM registry modules + method and the NPM project code method. + + While it is possible to create NPM recipes manually, + using devtool is far simpler. + + Additionally, some requirements and caveats exist. + + +
+ Requirements and Caveats + + + You need to be aware of the following before using + devtool to create NPM packages: + + + Of the two methods that you can use + devtool to create NPM + packages, the registry approach is slightly + simpler. + However, you might consider the project + approach because you do not have to publish + your module in the NPM registry + (npm-registry), + which is NPM's public registry. + + + Be familiar with + devtool. + + + The NPM host tools need the native + nodejs-npm package, which + is part of the OpenEmbedded environment. + You need to get the package by cloning the + + repository out of GitHub. + Be sure to add the path to your local copy to + your bblayers.conf file. + + + devtool cannot detect + native libraries in module dependencies. + Consequently, you must manually add packages + to your recipe. + + + While deploying NPM packages, + devtool cannot determine + which dependent packages are missing on the + target (e.g. the node runtime + nodejs). + Consequently, you need to find out what + files are missing and be sure they are on the + target. + + + Although you might not need NPM to run your + node package, it is useful to have NPM on your + target. + The NPM package name is + nodejs-npm. + + + +
+ +
+ Using the Registry Modules Method + + + This section presents an example that uses the + cute-files module, which is a + file browser web application. + + You must know the cute-files + module version. + + + + + The first thing you need to do is use + devtool and the NPM fetcher to + create the recipe: + + $ devtool add "npm://registry.npmjs.org;package=cute-files;version=1.0.2" + + The devtool add command runs + recipetool create and uses the + same fetch URI to download each dependency and capture + license details where possible. + The result is a generated recipe. + + + + The recipe file is fairly simple and contains every + license that recipetool finds + and includes the licenses in the recipe's + LIC_FILES_CHKSUM + variables. + You need to examine the variables and look for those + with "unknown" in the + LICENSE + field. + You need to track down the license information for + "unknown" modules and manually add the information to the + recipe. + + + + recipetool creates a "shrinkwrap" file + for your recipe. + Shrinkwrap files capture the version of all dependent + modules. + Many packages do not provide shrinkwrap files. + recipetool create a shrinkwrap + file as it runs. + + A package is created for each sub-module. + This policy is the only practical way to have the + licenses for all of the dependencies represented + in the license manifest of the image. + + + + + The devtool edit-recipe command + lets you take a look at the recipe: + + $ devtool edit-recipe cute-files + SUMMARY = "Turn any folder on your computer into a cute file browser, available on the local network." + LICENSE = "MIT & ISC & Unknown" + LIC_FILES_CHKSUM = "file://LICENSE;md5=71d98c0a1db42956787b1909c74a86ca \ + file://node_modules/toidentifier/LICENSE;md5=1a261071a044d02eb6f2bb47f51a3502 \ + file://node_modules/debug/LICENSE;md5=ddd815a475e7338b0be7a14d8ee35a99 \ + ... + + SRC_URI = " \ + npm://registry.npmjs.org/;package=cute-files;version=${PV} \ + npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \ + " + + S = "${WORKDIR}/npm" + + inherit npm + + LICENSE_${PN} = "MIT" + LICENSE_${PN}-accepts = "MIT" + LICENSE_${PN}-array-flatten = "MIT" + ... + LICENSE_${PN}-vary = "MIT" + + Three key points exist in the previous example: + + + SRC_URI + uses the NPM scheme so that the NPM fetcher + is used. + + + recipetool collects all + the license information. + If a sub-module's license is unavailable, + the sub-module's name appears in the comments. + + + The inherit npm statement + causes the + npm + class to package up all the modules. + + + + + + You can run the following command to build the + cute-files package: + + $ devtool build cute-files + + Remember that nodejs must be + installed on the target before your package. + + + + Assuming 192.168.7.2 for the target's IP address, use + the following command to deploy your package: + + $ devtool deploy-target -s cute-files root@192.168.7.2 + + Once the package is installed on the target, you can + test the application: + + Because of a know issue, you cannot simply run + cute-files as you would if you + had run npm install. + + + $ cd /usr/lib/node_modules/cute-files + $ node cute-files.js + + On a browser, go to + http://192.168.7.2:3000 and you + see the following: + + + + + You can find the recipe in + workspace/recipes/cute-files. + You can use the recipe in any layer you choose. + +
+ +
+ Using the NPM Projects Code Method + + + Although it is useful to package modules already in the + NPM registry, adding node.js projects + under development is a more common developer use case. + + + + This section covers the NPM projects code method, which is + very similar to the "registry" approach described in the + previous section. + In the NPM projects method, you provide + devtool with an URL that points to the + source files. + + + + Replicating the same example, (i.e. + cute-files) use the following command: + + $ devtool add https://github.com/martinaglv/cute-files.git + + The recipe this command generates is very similar to the + recipe created in the previous section. + However, the SRC_URI looks like the + following: + + SRC_URI = " \ + git://github.com/martinaglv/cute-files.git;protocol=https \ + npmsw://${THISDIR}/${BPN}/npm-shrinkwrap.json \ + " + + In this example, the main module is taken from the Git + repository and dependents are taken from the NPM registry. + Other than those differences, the recipe is basically the + same between the two methods. + You can build and deploy the package exactly as described + in the previous section that uses the registry modules + method. + +
+
@@ -10314,7 +10850,7 @@ Use the following BitBake command form to fetch all the necessary sources without starting the build: - $ bitbake -c target runall="fetch" + $ bitbake target --runall=fetch This variation of the BitBake command guarantees that you have all the sources for that BitBake target should you @@ -10336,6 +10872,38 @@ features that are used by many distributions. + + Within the system, SysVinit treats system components as services. + These services are maintained as shell scripts stored in the + /etc/init.d/ directory. + Services organize into different run levels. + This organization is maintained by putting links to the services + in the /etc/rcN.d/ directories, where + N/ is one of the following options: + "S", "0", "1", "2", "3", "4", "5", or "6". + + Each runlevel has a dependency on the previous runlevel. + This dependency allows the services to work properly. + + + + + In comparison, systemd treats components as units. + Using units is a broader concept as compared to using a service. + A unit includes several different types of entities. + Service is one of the types of entities. + The runlevel concept in SysVinit corresponds to the concept of a + target in systemd, where target is also a type of supported unit. + + + + In a SysVinit-based system, services load sequentially (i.e. one + by one) during and parallelization is not supported. + With systemd, services start in parallel. + Needless to say, the method can have an impact on system startup + performance. + + If you want to use SysVinit, you do not have to do anything. @@ -10347,7 +10915,7 @@ Using systemd Exclusively - Set the these variables in your distribution configuration + Set these variables in your distribution configuration file as follows: DISTRO_FEATURES_append = " systemd" @@ -10615,18 +11183,18 @@ To create the read-only root filesystem, simply add the - "read-only-rootfs" feature to your image. - Using either of the following statements in your - image recipe or from within the - local.conf file found in the - Build Directory - causes the build system to create a read-only root filesystem: + "read-only-rootfs" feature to your image, normally in one of two ways. + The first way is to add the "read-only-rootfs" image feature + in the image's recipe file via the + IMAGE_FEATURES variable: - IMAGE_FEATURES = "read-only-rootfs" + IMAGE_FEATURES += "read-only-rootfs" - or + As an alternative, you can add the same feature from within your + build directory's local.conf file with the + associated EXTRA_IMAGE_FEATURES variable, as in: - EXTRA_IMAGE_FEATURES += "read-only-rootfs" + EXTRA_IMAGE_FEATURES = "read-only-rootfs" @@ -11489,15 +12057,15 @@ In order to run tests on hardware, you need to set TEST_TARGET to an appropriate value. For QEMU, you do not have to change anything, the default - value is "QemuTarget". + value is "qemu". For running tests on hardware, the following options exist: - "SimpleRemoteTarget": - Choose "SimpleRemoteTarget" if you are going to + "simpleremote": + Choose "simpleremote" if you are going to run tests on a target system that is already running the image to be tested and is available on the network. - You can use "SimpleRemoteTarget" in conjunction + You can use "simpleremote" in conjunction with either real hardware or an image running within a separately started QEMU or any other virtual machine manager. @@ -11672,7 +12240,7 @@ Power Control - For most hardware targets other than SimpleRemoteTarget, + For most hardware targets other than "simpleremote", you can control power: @@ -12069,7 +12637,7 @@ target: The target controller object used to deploy and start an image on a particular target - (e.g. QemuTarget, SimpleRemote, and + (e.g. Qemu, SimpleRemote, and SystemdbootTarget). Tests usually use the following: @@ -12318,14 +12886,6 @@ - - For debugging information within the popular - Eclipse IDE, see the - "Working within Eclipse" - section in the Yocto Project Application Development and the - Extensible Software Development Kit (eSDK) manual. - -
Viewing Logs from Failed Tasks @@ -12362,6 +12922,16 @@
Viewing Variable Values + + Sometimes you need to know the value of a variable as a + result of BitBake's parsing step. + This could be because some unexpected behavior occurred + in your project. + Perhaps an attempt to + modify a variable + did not work out as expected. + + BitBake's -e option is used to display variable values after parsing. @@ -14888,12 +15458,12 @@ - Specifying audio and video plug-ins as part of the + Specifying audio and video plugins as part of the COMMERCIAL_AUDIO_PLUGINS and COMMERCIAL_VIDEO_PLUGINS statements (along with the enabling LICENSE_FLAGS_WHITELIST) includes the - plug-ins or components into built images, thus adding + plugins or components into built images, thus adding support for media formats or components.
diff --git a/external/poky/documentation/dev-manual/dev-manual-eclipse-customization.xsl b/external/poky/documentation/dev-manual/dev-manual-eclipse-customization.xsl deleted file mode 100644 index 6d7b5fbb..00000000 --- a/external/poky/documentation/dev-manual/dev-manual-eclipse-customization.xsl +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/external/poky/documentation/dev-manual/dev-manual-qemu.xml b/external/poky/documentation/dev-manual/dev-manual-qemu.xml index 4e7b5de4..5ccc0dfe 100644 --- a/external/poky/documentation/dev-manual/dev-manual-qemu.xml +++ b/external/poky/documentation/dev-manual/dev-manual-qemu.xml @@ -151,13 +151,13 @@ This example starts QEMU with - MACHINE set to "qemux86". + MACHINE set to "qemux86-64". Assuming a standard Build Directory, runqemu automatically finds the - bzImage-qemux86.bin image file and + bzImage-qemux86-64.bin image file and the - core-image-minimal-qemux86-20140707074611.rootfs.ext3 + core-image-minimal-qemux86-64-20200218002850.rootfs.ext4 (assuming the current build created a core-image-minimal image). @@ -166,7 +166,7 @@ timestamp. - $ runqemu qemux86 + $ runqemu qemux86-64 @@ -175,7 +175,7 @@ This command, however, specifically provides the image and root filesystem type. - $ runqemu qemux86 core-image-minimal ext3 + $ runqemu qemux86-64 core-image-minimal ext4 @@ -188,7 +188,7 @@ be installed (see the previous description for the audio option for more information). - $ runqemu qemux86 ramfs audio + $ runqemu qemux86-64 ramfs audio @@ -200,7 +200,7 @@ KERNEL, or VM option. - $ runqemu ext3 + $ runqemu ext4 @@ -209,9 +209,9 @@ From the .wic.vmdk, runqemu determines the QEMU architecture (MACHINE) to be - "qemux86" and the root filesystem type to be "vmdk". + "qemux86-64" and the root filesystem type to be "vmdk". - $ runqemu /home/scott-lenovo/vm/core-image-minimal-qemux86.wic.vmdk + $ runqemu /home/scott-lenovo/vm/core-image-minimal-qemux86-64.wic.vmdk @@ -296,7 +296,7 @@ extracts it to a directory named test-nfs: - runqemu-extract-sdk ./tmp/deploy/images/qemux86/core-image-sato-qemux86.tar.bz2 test-nfs + runqemu-extract-sdk ./tmp/deploy/images/qemux86-64/core-image-sato-qemux86-64.tar.bz2 test-nfs @@ -310,7 +310,7 @@ Here is an example using the qemux86 image: - runqemu qemux86 ./test-nfs + runqemu qemux86-64 ./test-nfs @@ -590,6 +590,9 @@ nographic: Disables the video console, which sets the console to "ttys0". + This option is useful when you have logged into a server + and you do not want to disable forwarding from the + X Window System (X11) to your workstation or laptop. serial: diff --git a/external/poky/documentation/dev-manual/dev-manual-start.xml b/external/poky/documentation/dev-manual/dev-manual-start.xml index d37c0303..8cb5631f 100644 --- a/external/poky/documentation/dev-manual/dev-manual-start.xml +++ b/external/poky/documentation/dev-manual/dev-manual-start.xml @@ -7,7 +7,7 @@ Setting Up to Use the Yocto Project - This chapter provides procedures related to getting set up to use the + This chapter provides guidance on how to prepare to use the Yocto Project. You can learn about creating a team environment that develops using the Yocto Project, how to set up a @@ -23,11 +23,10 @@ It might not be immediately clear how you can use the Yocto Project in a team development environment, or how to scale it for a large team of developers. - One of the strengths of the Yocto Project is that it is extremely - flexible. - Thus, you can adapt it to many different use cases and scenarios. - However, this flexibility could cause difficulties if you are trying - to create a working setup that scales across a large team. + You can adapt the Yocto Project to many different use cases and + scenarios; + however, this flexibility could cause difficulties if you are trying + to create a working setup that scales effectively. @@ -36,17 +35,17 @@ that can help you get the results you want. The procedure is high-level and presents some of the project's most successful experiences, practices, solutions, and available - technologies that have proved to work well in the past. - Keep in mind, the procedure here is a starting point. + technologies that have proved to work well in the past; + however, keep in mind, the procedure here is simply a starting point. You can build off these steps and customize the procedure to fit any particular working environment and set of practices. Determine Who is Going to be Developing: - You need to understand who is going to be doing anything - related to the Yocto Project and what their roles would be. + You first need to understand who is going to be doing anything + related to the Yocto Project and determine their roles. Making this determination is essential to completing - steps two and three, which are to get your equipment together + subsequent steps, which are to get your equipment together and set up your development environment's hardware topology. @@ -65,8 +64,8 @@ Build Engineer: This type of developer manages Autobuilders and - releases. - Not all environments need a Build Engineer. + releases. Depending on the specifics of the environment, + not all situations might need a Build Engineer. Test Engineer: @@ -89,6 +88,11 @@ You can help ensure efficiency by having any machines used for testing or that run Autobuilders be as high performance as possible. + + Given sufficient processing power, you might also consider + building Yocto Project development containers to be run + under Docker, which is described later. + Understand the Hardware Topology of the Environment: @@ -115,10 +119,10 @@ and any software you are developing under the control of an SCM system that is compatible with the OpenEmbedded build system is advisable. - Of the SCMs BitBake supports, the Yocto Project team strongly + Of all of the SCMs supported by BitBake, the Yocto Project team strongly recommends using Git. - Git is a distributed system that is easy to backup, + Git is a distributed system that is easy to back up, allows you to work remotely, and then connects back to the infrastructure. @@ -175,14 +179,6 @@ This method works well for small numbers of relatively isolated applications. - - When possible, use the Yocto Project plug-in for the - Eclipse IDE - and SDK development practices. - For more information, see the - Yocto Project Application Development and the Extensible Software Development Kit (eSDK) - manual. - Keep your cross-development toolchains updated. You can do this through provisioning either as new @@ -311,7 +307,7 @@ As with any development environment, it is important to document the policy used as well as any main project guidelines so they are understood by everyone. - It is also a good idea to have well structured + It is also a good idea to have well-structured commit messages, which are usually a part of a project's guidelines. Good commit messages are essential when looking back in time and @@ -403,16 +399,18 @@ This section provides procedures to set up a system to be used as your build host for development using the Yocto Project. - Your build host can be a native Linux machine (recommended) or it can + Your build host can be a native Linux machine (recommended), it can be a machine (Linux, Mac, or Windows) that uses - CROPS, + CROPS, which leverages - Docker Containers. + Docker Containers or it can + be a Windows machine capable of running Windows Subsystem For Linux v2 (WSL). - You cannot use a build host that is using the - Windows Subsystem for Linux - (WSL). - The Yocto Project is not compatible with WSL. + The Yocto Project is not compatible with + Windows Subsystem for Linux v1. + It is compatible but not officially supported nor validated with WSLv2. + If you still decide to use WSL please upgrade to + WSLv2. @@ -421,8 +419,7 @@ further steps are necessary depending on what you want to accomplish. See the following references for information on how to prepare for - Board Support Package (BSP) development, kernel development, and - development using the Eclipse IDE: + Board Support Package (BSP) development and kernel development: BSP Development: @@ -437,13 +434,6 @@ "Preparing the Build Host to Work on the Kernel" section in the Yocto Project Linux Kernel Development Manual. - - Eclipse Development: - See the - "Developing Applications Using Eclipse" - Chapter in the Yocto Project Application Development and the - Extensible Software Development Kit (eSDK) manual. - @@ -459,7 +449,7 @@ You should have a reasonably current Linux-based host system. You will have the best results with a recent release of - Fedora, openSUSE, Debian, Ubuntu, or CentOS as these + Fedora, openSUSE, Debian, Ubuntu, RHEL or CentOS as these releases are frequently tested against the Yocto Project and officially supported. For a list of the distributions under validation and their @@ -477,23 +467,26 @@ Meet Minimal Version Requirements: The OpenEmbedded build system should be able to run on any modern distribution that has the following versions for - Git, tar, and Python. + Git, tar, Python and gcc. Git 1.8.3.1 or greater - tar 1.27 or greater + tar 1.28 or greater - Python 3.4.0 or greater. - + Python 3.5.0 or greater. + + + gcc 5.0 or greater. + If your build host does not meet any of these three listed version requirements, you can take steps to prepare the system so that you can still use the Yocto Project. See the - "Required Git, tar, and Python Versions" + "Required Git, tar, Python and gcc Versions" section in the Yocto Project Reference Manual for information. @@ -534,7 +527,7 @@ With - CROPS, + CROPS, which leverages Docker Containers, you can create a Yocto Project development environment that @@ -671,15 +664,147 @@ section in the Toaster User Manual.
+ +
+ Setting Up to Use Windows Subsystem For Linux (WSLv2) + + + With + Windows Subsystem for Linux (WSLv2), you can create a + Yocto Project development environment that allows you to build + on Windows. You can set up a Linux distribution inside Windows + in which you can develop using the Yocto Project. + + + + Follow these general steps to prepare a Windows machine using WSLv2 + as your Yocto Project build host: + + + Make sure your Windows 10 machine is capable of running WSLv2: + + WSLv2 is only available for Windows 10 builds > 18917. To + check which build version you are running, you may open a + command prompt on Windows and execute the command "ver". + + C:\Users\myuser> ver + + Microsoft Windows [Version 10.0.19041.153] + + If your build is capable of running WSLv2 you may continue, + for more information on this subject or instructions on how + to upgrade to WSLv2 visit Windows 10 WSLv2 + + + Install the Linux distribution of your choice inside Windows 10: + Once you know your version of Windows 10 supports WSLv2, + you can install the distribution of your choice from the + Microsoft Store. + Open the Microsoft Store and search for Linux. While there + are several Linux distributions available, the assumption + is that your pick will be one of the distributions supported + by the Yocto Project as stated on the instructions for + using a native Linux host. + After making your selection, simply click "Get" to download + and install the distribution. + + + Check your Linux distribution is using WSLv2: + Open a Windows PowerShell and run: + + C:\WINDOWS\system32> wsl -l -v + NAME STATE VERSION + *Ubuntu Running 2 + + Note the version column which says the WSL version being used by + your distribution, on compatible systems, this can be changed back + at any point in time. + + + Optionally Orient Yourself on WSL: + If you are unfamiliar with WSL, you can learn more here - + . + + + Launch your WSL Distibution: + From the Windows start menu simply launch your WSL distribution + just like any other application. + + + Optimize your WSLv2 storage often: + Due to the way storage is handled on WSLv2, the storage + space used by the undelying Linux distribution is not + reflected immedately, and since bitbake heavily uses + storage, after several builds, you may be unaware you + are running out of space. WSLv2 uses a VHDX file for + storage, this issue can be easily avoided by manually + optimizing this file often, this can be done in the + following way: + + + Find the location of your VHDX file: + First you need to find the distro app package directory, + to achieve this open a Windows Powershell as Administrator + and run: + + C:\WINDOWS\system32> Get-AppxPackage -Name "*Ubuntu*" | Select PackageFamilyName + PackageFamilyName + ----------------- + CanonicalGroupLimited.UbuntuonWindows_79abcdefgh + + You should now replace the PackageFamilyName + and your user on the following + path to find your VHDX file: C:\Users\user\AppData\Local\Packages\PackageFamilyName\LocalState\ + For example: + + ls C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ + Mode LastWriteTime Length Name + -a---- 3/14/2020 9:52 PM 57418973184 ext4.vhdx + + Your VHDX file path is: C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx + + Optimize your VHDX file: + Open a Windows Powershell as Administrator to optimize + your VHDX file, shutting down WSL first: + + C:\WINDOWS\system32> wsl --shutdown + C:\WINDOWS\system32> optimize-vhd -Path C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx -Mode full + + A progress bar should be shown while optimizing the VHDX file, + and storage should now be reflected correctly on the Windows + Explorer. + + + + + + The current implementation of WSLv2 does not have out-of-the-box + access to external devices such as those connected through a + USB port, but it automatically mounts your C: + drive on /mnt/c/ (and others), which + you can use to share deploy artifacts to be later flashed on + hardware through Windows, but your build directory should not + reside inside this mountpoint. + + Once you have WSLv2 set up, everything is in place to + develop just as if you were running on a native Linux machine. + If you are going to use the Extensible SDK container, see the + "Using the Extensible SDK" + Chapter in the Yocto Project Application Development and the + Extensible Software Development Kit (eSDK) manual. + If you are going to use the Toaster container, see the + "Setting Up and Using Toaster" + section in the Toaster User Manual. + +
Locating Yocto Project Source Files - This section shows you how to locate and access the - source files that ship with the Yocto Project. - You establish and use these local files to work on projects. + This section shows you how to locate, fetch and configure the source + files you'll need to work with the Yocto Project. Notes @@ -767,7 +892,7 @@ to access the Index of Releases. The list represents released components (e.g. - eclipse-plugin, + bitbake, sato, and so on). The yocto directory contains the @@ -864,8 +989,7 @@ Yocto Project maintains an area for nightly builds that contains tarball releases at . These builds include Yocto Project releases ("poky"), - toolchains, Yocto Project plugins for Eclipse, and builds for - supported machines. + toolchains, and builds for supported machines. @@ -951,11 +1075,11 @@ $ git clone git://git.yoctoproject.org/poky Cloning into 'poky'... - remote: Counting objects: 416542, done. - remote: Compressing objects: 100% (98611/98611), done. - remote: Total 416542 (delta 311104), reused 416377 (delta 310939) - Receiving objects: 100% (416542/416542), 150.39 MiB | 15.77 MiB/s, done. - Resolving deltas: 100% (311104/311104), done. + remote: Counting objects: 432160, done. + remote: Compressing objects: 100% (102056/102056), done. + remote: Total 432160 (delta 323116), reused 432037 (delta 323000) + Receiving objects: 100% (432160/432160), 153.81 MiB | 8.54 MiB/s, done. + Resolving deltas: 100% (323116/323116), done. Checking connectivity... done. Unless you specify a specific development branch or @@ -1037,18 +1161,18 @@ . . . - remotes/origin/master-next - remotes/origin/master-next2 - remotes/origin/morty - remotes/origin/pinky - remotes/origin/purple - remotes/origin/pyro - remotes/origin/rocko + remotes/origin/thud + remotes/origin/thud-next + remotes/origin/warrior + remotes/origin/warrior-next + remotes/origin/zeus + remotes/origin/zeus-next + ... and so on ... - Checkout the Branch: - Checkout the development branch in which you want to work. + Check out the Branch: + Check out the development branch in which you want to work. For example, to access the files for the Yocto Project &DISTRO; Release (&DISTRO_NAME;), use the following command: @@ -1125,13 +1249,16 @@ yocto-2.5 yocto-2.5.1 yocto-2.5.2 + yocto-2.5.3 yocto-2.6 yocto-2.6.1 + yocto-2.6.2 + yocto-2.7 yocto_1.5_M5.rc8 - Checkout the Branch: + Check out the Branch: $ git checkout tags/&DISTRO_REL_TAG; -b my_yocto_&DISTRO; Switched to a new branch 'my_yocto_&DISTRO;' diff --git a/external/poky/documentation/dev-manual/dev-manual.xml b/external/poky/documentation/dev-manual/dev-manual.xml old mode 100644 new mode 100755 index 3ec921f6..381c7e3c --- a/external/poky/documentation/dev-manual/dev-manual.xml +++ b/external/poky/documentation/dev-manual/dev-manual.xml @@ -22,18 +22,17 @@ - Scott Rifenbark - Scotty's Documentation Services, INC + &ORGNAME; - srifenbark@gmail.com + &ORGEMAIL; 1.1 - 6 October 2011 + October 2011 The initial document released with the Yocto Project 1.1 Release. @@ -56,11 +55,6 @@ October 2013 Released with the Yocto Project 1.5 Release. - - 1.5.1 - January 2014 - Released with the Yocto Project 1.5.1 Release. - 1.6 April 2014 @@ -112,24 +106,29 @@ Released with the Yocto Project 2.6 Release. - 2.6.1 - February 2019 - Released with the Yocto Project 2.6.1 Release. + 2.7 + May 2019 + Released with the Yocto Project 2.7 Release. + + + 3.0 + October 2019 + Released with the Yocto Project 3.0 Release. - 2.6.2 - April 2019 - Released with the Yocto Project 2.6.2 Release. + 3.1 + April 2020 + Released with the Yocto Project 3.1 Release. - 2.6.3 - August 2019 - Released with the Yocto Project 2.6.3 Release. + 3.1.1 + June 2020 + Released with the Yocto Project 3.1.1 Release. - 2.6.4 - November 2019 - Released with the Yocto Project 2.6.4 Release. + 3.1.2 + &REL_MONTH_YEAR; + Released with the Yocto Project 3.1.2 Release. @@ -154,7 +153,7 @@ Yocto Project. To be sure you have the latest version of the manual for this release, go to the - Yocto Project documentation page + Yocto Project documentation page and select the manual from that site. Manuals from the site are more up-to-date than manuals derived from the Yocto Project released TAR files. @@ -171,18 +170,20 @@ page. If you need a version of this manual for a different Yocto Project release, visit the - Yocto Project documentation page + Yocto Project documentation page and select the manual set by using the "ACTIVE RELEASES DOCUMENTATION" or "DOCUMENTS ARCHIVE" pull-down menus. - + + To report any inaccuracies or problems with this - manual, send an email to the Yocto Project - discussion group at - yocto@yoctoproject.com or log into - the freenode #yocto channel. - + (or any other Yocto Project) manual, send an email to + the Yocto Project documentation mailing list at + docs@lists.yoctoproject.org or + log into the freenode #yocto channel. + + diff --git a/external/poky/documentation/dev-manual/figures/cute-files-npm-example.png b/external/poky/documentation/dev-manual/figures/cute-files-npm-example.png new file mode 100644 index 00000000..1ebe74f5 Binary files /dev/null and b/external/poky/documentation/dev-manual/figures/cute-files-npm-example.png differ diff --git a/external/poky/documentation/kernel-dev/kernel-dev-common.xml b/external/poky/documentation/kernel-dev/kernel-dev-common.xml index 90528761..c1c2d6d7 100644 --- a/external/poky/documentation/kernel-dev/kernel-dev-common.xml +++ b/external/poky/documentation/kernel-dev/kernel-dev-common.xml @@ -89,8 +89,8 @@ Prepare Your local.conf File: By default, the MACHINE - variable is set to "qemux86", which is fine if you are - building for the QEMU emulator in 32-bit mode. + variable is set to "qemux86-64", which is fine if you are + building for the QEMU emulator in 64-bit mode. However, if you are not, you need to set the MACHINE variable appropriately in your conf/local.conf file found in @@ -104,10 +104,12 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS variable to include kernel modules. - This example uses the default "qemux86" for the - MACHINE variable but needs to - add the "kernel-modules": + In this example we wish to build for qemux86 so + we must set the MACHINE variable + to "qemux86" and also add the "kernel-modules". As described + we do this by appending to conf/local.conf: + MACHINE = "qemux86" MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-modules" @@ -185,7 +187,7 @@ Poky (Yocto Project Reference Distro) Extensible SDK installer version &DISTRO; ============================================================================ Enter target directory for SDK (default: ~/poky_sdk): - You are about to install the SDK to "/home/scottrif/poky_sdk". Proceed[Y/n]? Y + You are about to install the SDK to "/home/scottrif/poky_sdk". Proceed [Y/n]? Y Extracting SDK......................................done Setting it up... Extracting buildtools... @@ -314,8 +316,8 @@ File: By default, the MACHINE - variable is set to "qemux86", which is fine if you are - building for the QEMU emulator in 32-bit mode. + variable is set to "qemux86-64", which is fine if you are + building for the QEMU emulator in 64-bit mode. However, if you are not, you need to set the MACHINE variable appropriately in your conf/local.conf file found @@ -329,10 +331,12 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS variable to include kernel modules. - This example uses the default "qemux86" for the - MACHINE variable but needs to - add the "kernel-modules": + In this example we wish to build for qemux86 so + we must set the MACHINE variable + to "qemux86" and also add the "kernel-modules". As described + we do this by appending to conf/local.conf: + MACHINE = "qemux86" MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-modules" @@ -549,9 +553,9 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" - SRC_URI_append += "file://patch-file-one" - SRC_URI_append += "file://patch-file-two" - SRC_URI_append += "file://patch-file-three" + SRC_URI_append = " file://patch-file-one" + SRC_URI_append = " file://patch-file-two" + SRC_URI_append = " file://patch-file-three" The FILESEXTRAPATHS @@ -655,26 +659,22 @@ KMACHINE_genericx86-64 ?= "common-pc-64" KBRANCH_edgerouter = "standard/edgerouter" KBRANCH_beaglebone = "standard/beaglebone" - KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb" SRCREV_machine_genericx86 ?= "d09f2ce584d60ecb7890550c22a80c48b83c2e19" SRCREV_machine_genericx86-64 ?= "d09f2ce584d60ecb7890550c22a80c48b83c2e19" SRCREV_machine_edgerouter ?= "b5c8cfda2dfe296410d51e131289fb09c69e1e7d" SRCREV_machine_beaglebone ?= "b5c8cfda2dfe296410d51e131289fb09c69e1e7d" - SRCREV_machine_mpc8315e-rdb ?= "2d1d010240846d7bff15d1fcc0cb6eb8a22fc78a" COMPATIBLE_MACHINE_genericx86 = "genericx86" COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64" COMPATIBLE_MACHINE_edgerouter = "edgerouter" COMPATIBLE_MACHINE_beaglebone = "beaglebone" - COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb" LINUX_VERSION_genericx86 = "4.12.7" LINUX_VERSION_genericx86-64 = "4.12.7" LINUX_VERSION_edgerouter = "4.12.10" LINUX_VERSION_beaglebone = "4.12.10" - LINUX_VERSION_mpc8315e-rdb = "4.12.10" This append file contains statements used to support several BSPs that ship with the Yocto Project. @@ -948,12 +948,14 @@ KBUILD_DEFCONFIG_KMACHINE ?= defconfig_file - Here is an example that appends the - KBUILD_DEFCONFIG variable with - "common-pc" and provides the path to the "in-tree" - defconfig file: + Here is an example that assigns the + KBUILD_DEFCONFIG variable based on + "raspberrypi2" and provides the path to the "in-tree" + defconfig file + to be used for a Raspberry Pi 2, + which is based on the Broadcom 2708/2709 chipset: - KBUILD_DEFCONFIG_common-pc ?= "/home/scottrif/configfiles/my_defconfig_file" + KBUILD_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig" @@ -1479,15 +1481,33 @@ To use the menuconfig tool in the Yocto - Project development environment, you must launch it using - BitBake. - Thus, the environment must be set up using the - &OE_INIT_FILE; - script found in the - Build Directory. - You must also be sure of the state of your build's - configuration in the - Source Directory. + Project development environment, you must do the following: + + + Because you launch menuconfig + using BitBake, you must be sure to set up your + environment by running the + &OE_INIT_FILE; + script found in the + Build Directory. + + + You must be sure of the state of your build's + configuration in the + Source Directory. + + + Your build host must have the following two packages + installed: + + libncurses5-dev + libtinfo-dev + + + + + + The following commands initialize the BitBake environment, run the do_kernel_configme diff --git a/external/poky/documentation/kernel-dev/kernel-dev-concepts-appx.xml b/external/poky/documentation/kernel-dev/kernel-dev-concepts-appx.xml index 6d675a6d..62c68527 100644 --- a/external/poky/documentation/kernel-dev/kernel-dev-concepts-appx.xml +++ b/external/poky/documentation/kernel-dev/kernel-dev-concepts-appx.xml @@ -543,7 +543,6 @@ yocto-kernel-cache/features/kgdb/hardware.cfg yocto-kernel-cache/ktypes/base/hardware.cfg yocto-kernel-cache/bsp/mti-malta32/hardware.cfg - yocto-kernel-cache/bsp/fsl-mpc8315e-rdb/hardware.cfg yocto-kernel-cache/bsp/qemu-ppc32/hardware.cfg yocto-kernel-cache/bsp/qemuarma9/hardware.cfg yocto-kernel-cache/bsp/mti-malta64/hardware.cfg diff --git a/external/poky/documentation/kernel-dev/kernel-dev-eclipse-customization.xsl b/external/poky/documentation/kernel-dev/kernel-dev-eclipse-customization.xsl deleted file mode 100644 index 3c56a5a9..00000000 --- a/external/poky/documentation/kernel-dev/kernel-dev-eclipse-customization.xsl +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - A - - - diff --git a/external/poky/documentation/kernel-dev/kernel-dev.xml b/external/poky/documentation/kernel-dev/kernel-dev.xml old mode 100644 new mode 100755 index 6f3e5895..be613fe4 --- a/external/poky/documentation/kernel-dev/kernel-dev.xml +++ b/external/poky/documentation/kernel-dev/kernel-dev.xml @@ -22,11 +22,10 @@ - Scott Rifenbark - Scotty's Documentation Services, INC + &ORGNAME; - srifenbark@gmail.com + &ORGEMAIL; @@ -34,18 +33,13 @@ 1.4 April 2013 - Released with the Yocto Project 1.4 Release. + The initial document released with the Yocto Project 1.4 Release. 1.5 October 2013 Released with the Yocto Project 1.5 Release. - - 1.5.1 - January 2014 - Released with the Yocto Project 1.5.1 Release. - 1.6 April 2014 @@ -97,24 +91,29 @@ Released with the Yocto Project 2.6 Release. - 2.6.1 - February 2019 - Released with the Yocto Project 2.6.1 Release. + 2.7 + May 2019 + Released with the Yocto Project 2.7 Release. + + + 3.0 + October 2019 + Released with the Yocto Project 3.0 Release. - 2.6.2 - April 2019 - Released with the Yocto Project 2.6.2 Release. + 3.1 + April 2020 + Released with the Yocto Project 3.1 Release. - 2.6.3 - August 2019 - Released with the Yocto Project 2.6.3 Release. + 3.1.1 + June 2020 + Released with the Yocto Project 3.1.1 Release. - 2.6.4 - November 2019 - Released with the Yocto Project 2.6.4 Release. + 3.1.2 + &REL_MONTH_YEAR; + Released with the Yocto Project 3.1.2 Release. @@ -137,7 +136,7 @@ Yocto Project. To be sure you have the latest version of the manual for this release, go to the - Yocto Project documentation page + Yocto Project documentation page and select the manual from that site. Manuals from the site are more up-to-date than manuals derived from the Yocto Project released TAR files. @@ -154,18 +153,20 @@ page. If you need a version of this manual for a different Yocto Project release, visit the - Yocto Project documentation page + Yocto Project documentation page and select the manual set by using the "ACTIVE RELEASES DOCUMENTATION" or "DOCUMENTS ARCHIVE" pull-down menus. - + + To report any inaccuracies or problems with this - manual, send an email to the Yocto Project - discussion group at - yocto@yoctoproject.com or log into - the freenode #yocto channel. - + (or any other Yocto Project) manual, send an email to + the Yocto Project documentation mailing list at + docs@lists.yoctoproject.org or + log into the freenode #yocto channel. + + diff --git a/external/poky/documentation/mega-manual/figures/bb_multiconfig_files.png b/external/poky/documentation/mega-manual/figures/bb_multiconfig_files.png new file mode 100644 index 00000000..041f0640 Binary files /dev/null and b/external/poky/documentation/mega-manual/figures/bb_multiconfig_files.png differ diff --git a/external/poky/documentation/mega-manual/figures/bitbake-title.png b/external/poky/documentation/mega-manual/figures/bitbake-title.png new file mode 100644 index 00000000..cb290154 Binary files /dev/null and b/external/poky/documentation/mega-manual/figures/bitbake-title.png differ diff --git a/external/poky/documentation/mega-manual/figures/cute-files-npm-example.png b/external/poky/documentation/mega-manual/figures/cute-files-npm-example.png new file mode 100644 index 00000000..1ebe74f5 Binary files /dev/null and b/external/poky/documentation/mega-manual/figures/cute-files-npm-example.png differ diff --git a/external/poky/documentation/mega-manual/figures/index-downloads.png b/external/poky/documentation/mega-manual/figures/index-downloads.png old mode 100644 new mode 100755 index 96303b87..d8d4475c Binary files a/external/poky/documentation/mega-manual/figures/index-downloads.png and b/external/poky/documentation/mega-manual/figures/index-downloads.png differ diff --git a/external/poky/documentation/mega-manual/figures/lttngmain0.png b/external/poky/documentation/mega-manual/figures/lttngmain0.png deleted file mode 100644 index 5f60113c..00000000 Binary files a/external/poky/documentation/mega-manual/figures/lttngmain0.png and /dev/null differ diff --git a/external/poky/documentation/mega-manual/figures/sdk-eclipse-dev-flow.png b/external/poky/documentation/mega-manual/figures/sdk-eclipse-dev-flow.png deleted file mode 100644 index 9f986e0d..00000000 Binary files a/external/poky/documentation/mega-manual/figures/sdk-eclipse-dev-flow.png and /dev/null differ diff --git a/external/poky/documentation/mega-manual/mega-manual.xml b/external/poky/documentation/mega-manual/mega-manual.xml old mode 100644 new mode 100755 index 300246c9..69111a9c --- a/external/poky/documentation/mega-manual/mega-manual.xml +++ b/external/poky/documentation/mega-manual/mega-manual.xml @@ -12,9 +12,11 @@ The Yocto Project Mega-Manual is a concatenation of the published - Yocto Project HTML manuals for the given release. - The manual exists to help users efficiently search for strings - across the entire Yocto Project documentation set. + Yocto Project HTML manuals along with the corresponding BitBake + User Manual for the given release. + The Mega-Manual exists to help users efficiently search for strings + across the entire Yocto Project documentation set inclusive of + the BitBake User Manual. @@ -31,11 +33,10 @@ - Scott Rifenbark - Scotty's Documentation Services, INC + &ORGNAME; - srifenbark@gmail.com + &ORGEMAIL; @@ -43,7 +44,7 @@ 1.8 April 2015 - Released with the Yocto Project 1.8 Release. + The initial document released with the Yocto Project 1.8 Release. 2.0 @@ -81,24 +82,29 @@ Released with the Yocto Project 2.6 Release. - 2.6.1 - February 2019 - Released with the Yocto Project 2.6.1 Release. + 2.7 + May 2019 + Released with the Yocto Project 2.7 Release. - 2.6.2 - April 2019 - Released with the Yocto Project 2.6.2 Release. + 3.0 + October 2019 + Released with the Yocto Project 3.0 Release. - 2.6.3 - August 2019 - Released with the Yocto Project 2.6.3 Release. + 3.1 + April 2020 + Released with the Yocto Project 3.1 Release. - 2.6.4 - November 2019 - Released with the Yocto Project 2.6.4 Release. + 3.1.1 + June 2020 + Released with the Yocto Project 3.1.1 Release. + + + 3.1.2 + &REL_MONTH_YEAR; + Released with the Yocto Project 3.1.2 Release. @@ -121,7 +127,7 @@ Yocto Project. To be sure you have the latest version of the manual for this release, go to the - Yocto Project documentation page + Yocto Project documentation page and select the manual from that site. Manuals from the site are more up-to-date than manuals derived from the Yocto Project released TAR files. @@ -138,18 +144,20 @@ page. If you need a version of this manual for a different Yocto Project release, visit the - Yocto Project documentation page + Yocto Project documentation page and select the manual set by using the "ACTIVE RELEASES DOCUMENTATION" or "DOCUMENTS ARCHIVE" pull-down menus. - + + To report any inaccuracies or problems with this - manual, send an email to the Yocto Project - discussion group at - yocto@yoctoproject.com or log into - the freenode #yocto channel. - + (or any other Yocto Project) manual, send an email to + the Yocto Project documentation mailing list at + docs@lists.yoctoproject.org or + log into the freenode #yocto channel. + + @@ -213,16 +221,12 @@ xmlns:xi="http://www.w3.org/2003/XInclude" href="../sdk-manual/sdk-using.xml"/> - - @@ -337,6 +341,30 @@ + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - diff --git a/external/poky/documentation/overview-manual/overview-manual-yp-intro.xml b/external/poky/documentation/overview-manual/overview-manual-yp-intro.xml index 254f191c..1b60a303 100644 --- a/external/poky/documentation/overview-manual/overview-manual-yp-intro.xml +++ b/external/poky/documentation/overview-manual/overview-manual-yp-intro.xml @@ -225,9 +225,9 @@ For information that helps you transition from trying out the Yocto Project to using it for your project, see the - "What I wish I'd Known" + "What I wish I'd Known" and - "Transitioning to a Custom Environment for Systems Development" + "Transitioning to a Custom Environment for Systems Development" documents on the Yocto Project website. @@ -437,7 +437,7 @@ CROPS: - CROPS + CROPS is an open source, cross-platform development framework that leverages Docker Containers. @@ -501,35 +501,6 @@ Yocto Project Application Development and the Extensible Software Development Kit (eSDK) Manual. - - Eclipse IDE Plug-in: - This plug-in enables you to use the popular Eclipse - Integrated Development Environment (IDE), which allows - for development using the Yocto Project all within the - Eclipse IDE. - You can work within Eclipse to cross-compile, deploy, - and execute your output into a QEMU emulation session - as well as onto actual target hardware. - - The environment also supports performance - enhancing tools that allow you to perform remote - profiling, tracing, collection of power data, - collection of latency data, and collection of - performance data. - - Once you enable the plug-in, standard Eclipse - functions automatically use the cross-toolchain - and target system libraries. - You can build applications using any of these - libraries. - - For more information on the Eclipse plug-in, - see the - "Working Within Eclipse" - section in the Yocto Project Application Development - and the Extensible Software Development Kit (eSDK) - manual. - Toaster: Toaster is a web interface to the Yocto Project @@ -912,7 +883,7 @@ CROss PlatformS (CROPS): Typically, you use - CROPS, + CROPS, which leverages Docker Containers, to set up a Build Host that is not running Linux (e.g. @@ -936,6 +907,24 @@ "Setting Up to Use CROss PlatformS (CROPS)" section in the Yocto Project Development Tasks Manual. + + Windows Subsystem For Linux (WSLv2): + You may use Windows Subsystem For Linux v2 to set up a build + host using Windows 10. + + The Yocto Project is not compatible with WSLv1, it is + compatible but not officially supported nor validated + with WSLv2, if you still decide to use WSL please upgrade + to WSLv2. + + The Windows Subsystem For Linux allows Windows 10 to run a real + Linux kernel inside of a lightweight utility virtual + machine (VM) using virtualization technology. + For information on how to set up a Build Host with + WSLv2, see the + "Setting Up to Use Windows Subsystem For Linux" + section in the Yocto Project Development Tasks Manual. + Toaster: Regardless of what your Build Host is running, you can @@ -953,20 +942,6 @@ see the Toaster User Manual. - - Eclipse IDE: - If your Build Host supports and runs the popular - Eclipse IDE, you can install the Yocto Project Eclipse - plug-in and use the Yocto Project to develop software. - The plug-in integrates the Yocto Project functionality - into Eclipse development practices. - - For information about how to install and use the - Yocto Project Eclipse plug-in, see the - "Developing Applications Using Eclipse" - chapter in the Yocto Project Application Development and - the Extensible Software Development Kit (eSDK) Manual. -
diff --git a/external/poky/documentation/overview-manual/overview-manual.xml b/external/poky/documentation/overview-manual/overview-manual.xml old mode 100644 new mode 100755 index e79867ec..771eca07 --- a/external/poky/documentation/overview-manual/overview-manual.xml +++ b/external/poky/documentation/overview-manual/overview-manual.xml @@ -22,11 +22,10 @@ - Scott Rifenbark - Scotty's Documentation Services, INC + &ORGNAME; - srifenbark@gmail.com + &ORGEMAIL; @@ -42,24 +41,29 @@ Released with the Yocto Project 2.6 Release. - 2.6.1 - February 2019 - Released with the Yocto Project 2.6.1 Release. + 2.7 + May 2019 + Released with the Yocto Project 2.7 Release. - 2.6.2 - April 2019 - Released with the Yocto Project 2.6.2 Release. + 3.0 + October 2019 + Released with the Yocto Project 3.0 Release. - 2.6.3 - August 2019 - Released with the Yocto Project 2.6.3 Release. + 3.1 + April 2020 + Released with the Yocto Project 3.1 Release. - 2.6.4 - November 2019 - Released with the Yocto Project 2.6.4 Release. + 3.1.1 + June 2020 + Released with the Yocto Project 3.1.1 Release. + + + 3.1.2 + &REL_MONTH_YEAR; + Released with the Yocto Project 3.1.2 Release. @@ -84,7 +88,7 @@ Yocto Project. To be sure you have the latest version of the manual for this release, go to the - Yocto Project documentation page + Yocto Project documentation page and select the manual from that site. Manuals from the site are more up-to-date than manuals derived from the Yocto Project released TAR files. @@ -101,18 +105,20 @@ page. If you need a version of this manual for a different Yocto Project release, visit the - Yocto Project documentation page + Yocto Project documentation page and select the manual set by using the "ACTIVE RELEASES DOCUMENTATION" or "DOCUMENTS ARCHIVE" pull-down menus.
- + + To report any inaccuracies or problems with this - manual, send an email to the Yocto Project - discussion group at - yocto@yoctoproject.com or log into - the freenode #yocto channel. - + (or any other Yocto Project) manual, send an email to + the Yocto Project documentation mailing list at + docs@lists.yoctoproject.org or + log into the freenode #yocto channel. + + diff --git a/external/poky/documentation/poky.ent b/external/poky/documentation/poky.ent old mode 100644 new mode 100755 index 34f8c114..1d0aef5f --- a/external/poky/documentation/poky.ent +++ b/external/poky/documentation/poky.ent @@ -1,19 +1,21 @@ - - - - - - - - - - - + + + + + + + + + + + - - + + - + + + @@ -27,15 +29,6 @@ - - - - - - - - - @@ -43,7 +36,6 @@ - @@ -68,18 +60,30 @@ + build-essential chrpath socat cpio python3 python3-pip python3-pexpect \ + xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \ + pylint3 xterm"> + python3-pexpect findutils which file cpio python python3-pip xz python3-GitPython \ + python3-jinja2 SDL-devel xterm rpcgen"> - + + perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python36-pip xz \ + which SDL-devel xterm + $ sudo pip3 install GitPython jinja2"> + diff --git a/external/poky/documentation/profile-manual/figures/lttngmain0.png b/external/poky/documentation/profile-manual/figures/lttngmain0.png deleted file mode 100644 index 5f60113c..00000000 Binary files a/external/poky/documentation/profile-manual/figures/lttngmain0.png and /dev/null differ diff --git a/external/poky/documentation/profile-manual/profile-manual-eclipse-customization.xsl b/external/poky/documentation/profile-manual/profile-manual-eclipse-customization.xsl deleted file mode 100644 index a898281f..00000000 --- a/external/poky/documentation/profile-manual/profile-manual-eclipse-customization.xsl +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - A - - - diff --git a/external/poky/documentation/profile-manual/profile-manual-usage.xml b/external/poky/documentation/profile-manual/profile-manual-usage.xml index a1b56515..9a4273a0 100644 --- a/external/poky/documentation/profile-manual/profile-manual-usage.xml +++ b/external/poky/documentation/profile-manual/profile-manual-usage.xml @@ -2182,7 +2182,7 @@ meta-toolchain meta-ide-support - You can also run generated qemu images with a command like 'runqemu qemux86' + You can also run generated qemu images with a command like 'runqemu qemux86-64' Once you've done that, you can cd to whatever directory @@ -2350,22 +2350,8 @@ For this section, we'll assume you've already performed the basic setup outlined in the General Setup section. - - - LTTng is run on the target system by ssh'ing to it. - However, if you want to see the traces graphically, - install Eclipse as described in section - "Manually copying a trace to the host and viewing it in Eclipse (i.e. using Eclipse without network support)" - and follow the directions to manually copy traces to the host and - view them in Eclipse (i.e. using Eclipse without network support). - - - Be sure to download and install/run the 'SR1' or later Juno release - of eclipse e.g.: - http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/SR1/eclipse-cpp-juno-SR1-linux-gtk-x86_64.tar.gz -
@@ -2564,163 +2550,6 @@
-
- Manually copying a trace to the host and viewing it in Eclipse (i.e. using Eclipse without network support) - - - If you already have an LTTng trace on a remote target and - would like to view it in Eclipse on the host, you can easily - copy it from the target to the host and import it into - Eclipse to view it using the LTTng Eclipse plug-in already - bundled in the Eclipse (Juno SR1 or greater). - - - - Using the trace we created in the previous section, archive - it and copy it to your host system: - - root@crownbay:~/lttng-traces# tar zcvf auto-20121015-232120.tar.gz auto-20121015-232120 - auto-20121015-232120/ - auto-20121015-232120/kernel/ - auto-20121015-232120/kernel/metadata - auto-20121015-232120/kernel/channel0_1 - auto-20121015-232120/kernel/channel0_0 - - $ scp root@192.168.1.47:lttng-traces/auto-20121015-232120.tar.gz . - root@192.168.1.47's password: - auto-20121015-232120.tar.gz 100% 1566KB 1.5MB/s 00:01 - - Unarchive it on the host: - - $ gunzip -c auto-20121015-232120.tar.gz | tar xvf - - auto-20121015-232120/ - auto-20121015-232120/kernel/ - auto-20121015-232120/kernel/metadata - auto-20121015-232120/kernel/channel0_1 - auto-20121015-232120/kernel/channel0_0 - - We can now import the trace into Eclipse and view it: - - First, start eclipse and open the - 'LTTng Kernel' perspective by selecting the following - menu item: - - Window | Open Perspective | Other... - - In the dialog box that opens, select - 'LTTng Kernel' from the list. - Back at the main menu, select the - following menu item: - - File | New | Project... - - In the dialog box that opens, select - the 'Tracing | Tracing Project' wizard and press - 'Next>'. - Give the project a name and press - 'Finish'. - In the 'Project Explorer' pane under - the project you created, right click on the - 'Traces' item. - Select 'Import..." and in the dialog - that's displayed: - Browse the filesystem and find the - select the 'kernel' directory containing the trace - you copied from the target - e.g. auto-20121015-232120/kernel - 'Checkmark' the directory in the tree - that's displayed for the trace - Below that, select 'Common Trace Format: - Kernel Trace' for the 'Trace Type' - Press 'Finish' to close the dialog - - Back in the 'Project Explorer' pane, - double-click on the 'kernel' item for the - trace you just imported under 'Traces' - - - You should now see your trace data displayed graphically - in several different views in Eclipse: - - - - - - - - You can access extensive help information on how to use - the LTTng plug-in to search and analyze captured traces via - the Eclipse help system: - - Help | Help Contents | LTTng Plug-in User Guide - - -
- -
- Collecting and viewing a trace in Eclipse - - - This section on collecting traces remotely doesn't currently - work because of Eclipse 'RSE' connectivity problems. Manually - tracing on the target, copying the trace files to the host, - and viewing the trace in Eclipse on the host as outlined in - previous steps does work however - please use the manual - steps outlined above to view traces in Eclipse. - - - - In order to trace a remote target, you also need to add - a 'tracing' group on the target and connect as a user - who's part of that group e.g: - - # adduser tomz - # groupadd -r tracing - # usermod -a -G tracing tomz - - - First, start eclipse and open the - 'LTTng Kernel' perspective by selecting the following - menu item: - - Window | Open Perspective | Other... - - In the dialog box that opens, select - 'LTTng Kernel' from the list. - Back at the main menu, select the - following menu item: - - File | New | Project... - - In the dialog box that opens, select - the 'Tracing | Tracing Project' wizard and - press 'Next>'. - Give the project a name and press - 'Finish'. That should result in an entry in the - 'Project' subwindow. - In the 'Control' subwindow just below - it, press 'New Connection'. - Add a new connection, giving it the - hostname or IP address of the target system. - - Provide the username and password - of a qualified user (a member of the 'tracing' group) - or root account on the target system. - - Provide appropriate answers to whatever - else is asked for e.g. 'secure storage password' - can be anything you want. - If you get an 'RSE Error' it may be due to proxies. - It may be possible to get around the problem by - changing the following setting: - - Window | Preferences | Network Connections - - Switch 'Active Provider' to 'Direct' - - - -
@@ -2742,15 +2571,6 @@ You can find a "Getting Started" link on this site that takes you to an LTTng Quick Start. - - - Finally, you can access extensive help information on how to use - the LTTng plug-in to search and analyze captured traces via the - Eclipse help system: - - Help | Help Contents | LTTng Plug-in User Guide - -
diff --git a/external/poky/documentation/profile-manual/profile-manual.xml b/external/poky/documentation/profile-manual/profile-manual.xml old mode 100644 new mode 100755 index 02d989ff..3527850d --- a/external/poky/documentation/profile-manual/profile-manual.xml +++ b/external/poky/documentation/profile-manual/profile-manual.xml @@ -22,11 +22,10 @@ - Scott Rifenbark - Scotty's Documentation Services, INC + &ORGNAME; - srifenbark@gmail.com + &ORGEMAIL; @@ -34,18 +33,13 @@ 1.4 April 2013 - Released with the Yocto Project 1.4 Release. + The initial document released with the Yocto Project 1.4 Release. 1.5 October 2013 Released with the Yocto Project 1.5 Release. - - 1.5.1 - January 2014 - Released with the Yocto Project 1.5.1 Release. - 1.6 April 2014 @@ -97,24 +91,29 @@ Released with the Yocto Project 2.6 Release. - 2.6.1 - February 2019 - Released with the Yocto Project 2.6.1 Release. + 2.7 + May 2019 + Released with the Yocto Project 2.7 Release. + + + 3.0 + October 2019 + Released with the Yocto Project 3.0 Release. - 2.6.2 - April 2019 - Released with the Yocto Project 2.6.2 Release. + 3.1 + April 2020 + Released with the Yocto Project 3.1 Release. - 2.6.3 - August 2019 - Released with the Yocto Project 2.6.3 Release. + 3.1.1 + June 2020 + Released with the Yocto Project 3.1.1 Release. - 2.6.4 - November 2019 - Released with the Yocto Project 2.6.4 Release. + 3.1.2 + &REL_MONTH_YEAR; + Released with the Yocto Project 3.1.2 Release. @@ -139,7 +138,7 @@ Yocto Project. To be sure you have the latest version of the manual for this release, go to the - Yocto Project documentation page + Yocto Project documentation page and select the manual from that site. Manuals from the site are more up-to-date than manuals derived from the Yocto Project released TAR files. @@ -156,18 +155,20 @@ page. If you need a version of this manual for a different Yocto Project release, visit the - Yocto Project documentation page + Yocto Project documentation page and select the manual set by using the "ACTIVE RELEASES DOCUMENTATION" or "DOCUMENTS ARCHIVE" pull-down menus. - + + To report any inaccuracies or problems with this - manual, send an email to the Yocto Project - discussion group at - yocto@yoctoproject.com or log into - the freenode #yocto channel. - + (or any other Yocto Project) manual, send an email to + the Yocto Project documentation mailing list at + docs@lists.yoctoproject.org or + log into the freenode #yocto channel. + + diff --git a/external/poky/documentation/ref-manual/faq.xml b/external/poky/documentation/ref-manual/faq.xml index 49ff8626..d94cb32a 100644 --- a/external/poky/documentation/ref-manual/faq.xml +++ b/external/poky/documentation/ref-manual/faq.xml @@ -33,7 +33,7 @@ My development system does not meet the required Git, tar, and Python versions. - In particular, I do not have Python 3.4.0 or greater. + In particular, I do not have Python 3.5.0 or greater. Can I still use the Yocto Project? @@ -43,7 +43,7 @@ system a couple different ways (i.e. building a tarball or downloading a tarball). See the - "Required Git, tar, and Python Versions" + "Required Git, tar, Python and gcc Versions" section for steps on how to update your build tools. diff --git a/external/poky/documentation/ref-manual/migration.xml b/external/poky/documentation/ref-manual/migration.xml index c648d8d4..affc8b90 100644 --- a/external/poky/documentation/ref-manual/migration.xml +++ b/external/poky/documentation/ref-manual/migration.xml @@ -680,7 +680,7 @@ For more information on this requirement, see the - "Required Git, tar, and Python Versions" + "Required Git, tar, Python and gcc Versions" section. @@ -875,8 +875,7 @@ not work. This change is intended to catch those kinds of situations. Valid IMAGE_FEATURES are drawn from - PACKAGE_GROUP - definitions, + PACKAGE_GROUP definitions, COMPLEMENTARY_GLOB and a new "validitems" varflag on IMAGE_FEATURES. @@ -1404,8 +1403,7 @@ The - PACKAGE_GROUP - variable has been renamed to + PACKAGE_GROUP variable has been renamed to FEATURE_PACKAGES to more accurately reflect its purpose. You can still use PACKAGE_GROUP but @@ -1754,7 +1752,7 @@ Git that meets this requirement, you can use the buildtools-tarball that does. See the - "Required Git, tar, and Python Versions" + "Required Git, tar, Python and gcc Versions" section for more information. @@ -2103,15 +2101,14 @@ - Additionally, a - bluetooth - class has been added to make selection of the appropriate bluetooth - support within a recipe a little easier. + Additionally, a bluetooth class has been added + to make selection of the appropriate bluetooth support within a + recipe a little easier. If you wish to make use of this class in a recipe, add something such as the following: inherit bluetooth - PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} + PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}" PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4" PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5" @@ -2566,9 +2563,7 @@ OE-Core. The change includes package_regex.inc and distro_alias.inc, which are typically enabled - when using the - distrodata - class. + when using the distrodata class. Additionally, the contents of upstream_tracking.inc has now been split out to the relevant recipes. @@ -3218,7 +3213,7 @@ recent version, you can install the buildtools, which will provide it. See the - "Required Git, tar, and Python Versions" + "Required Git, tar, Python and gcc Versions" section for more information on the buildtools tarball. @@ -3627,7 +3622,7 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64. image types, this part of the kernel image base name as been removed leaving only the following: - KERNEL_IMAGE_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME} + KERNEL_IMAGE_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}" If you have recipes or classes that use KERNEL_IMAGE_BASE_NAME directly, you might @@ -4506,8 +4501,8 @@ id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81'>commit message. fsimage Plug-in Removed: - The Wic fsimage plug-in has been removed as it duplicates - functionality of the rawcopy plug-in. + The Wic fsimage plugin has been removed as it duplicates + functionality of the rawcopy plugin. @@ -4742,7 +4737,7 @@ id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81'>commit message. This section provides information about packaging changes that have - ocurred: + occurred: python3 Changes: @@ -5604,7 +5599,7 @@ id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81'>commit message. creation time, use pkg_postinst_ontarget() or call - postinst-intercepts defer_to_first_boot + postinst_intercept delay_to_first_boot from pkg_postinst(). Any failure of a pkg_postinst() script (including exit 1) @@ -6195,7 +6190,7 @@ id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81'>commit message. If you want to explicitly defer a postinstall to first boot on the target rather than at rootfs creation time, use pkg_postinst_ontarget() or call - postinst-intercepts defer_to_first_boot from + postinst_intercept delay_to_first_boot from pkg_postinst(). Any failure of a pkg_postinst() script (including exit 1) triggers an error during the @@ -6325,6 +6320,980 @@ id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81'>commit message. + +
+ Moving to the Yocto Project 2.7 Release + + + This section provides migration information for moving to the + Yocto Project 2.7 Release from the prior release. + + +
+ BitBake Changes + + + The following changes have been made to BitBake: + + + BitBake now checks anonymous Python functions and pure + Python functions (e.g. def funcname:) + in the metadata for tab indentation. + If found, BitBake produces a warning. + + + Bitbake now checks + BBFILE_COLLECTIONS + for duplicate entries and triggers an error if any are + found. + + + +
+ +
+ <trademark class='trade'>Eclipse</trademark> Support Removed + + + Support for the Eclipse IDE has been removed. + Support continues for those releases prior to 2.7 that did include + support. + The 2.7 release does not include the Eclipse Yocto plugin. + +
+ +
+ <filename>qemu-native</filename> Splits the System and User-Mode Parts + + + The system and user-mode parts of qemu-native + are now split. + qemu-native provides the user-mode components + and qemu-system-native provides the system + components. + If you have recipes that depend on QEMU's system emulation + functionality at build time, they should now depend upon + qemu-system-native instead of + qemu-native. + +
+ +
+ The <filename>upstream-tracking.inc</filename> File Has Been Removed + + + The previously deprecated upstream-tracking.inc + file is now removed. + Any UPSTREAM_TRACKING* variables are now set + in the corresponding recipes instead. + + + + Remove any references you have to the + upstream-tracking.inc file in your + configuration. + +
+ +
+ The <filename>DISTRO_FEATURES_LIBC</filename> Variable Has Been Removed + + + The DISTRO_FEATURES_LIBC variable is no + longer used. + The ability to configure glibc using kconfig has been removed + for quite some time making the libc-* features + set no longer effective. + + + + Remove any references you have to + DISTRO_FEATURES_LIBC in your own layers. + +
+ +
+ License Value Corrections + + + The following corrections have been made to the + LICENSE + values set by recipes: + + socat: Corrected LICENSE to be "GPLv2" rather than + "GPLv2+". + + libgfortran: Set license to "GPL-3.0-with-GCC-exception". + + elfutils: Removed "Elfutils-Exception" and set to "GPLv2" for shared + libraries + + +
+ +
+ Packaging Changes + + + This section provides information about packaging changes. + + + bind: The + nsupdate binary has been moved to + the bind-utils package. + + + Debug split: The default debug split has been changed to + create separate source packages (i.e. + package_name-dbg + and + package_name-src). + If you are currently using dbg-pkgs + in + IMAGE_FEATURES + to bring in debug symbols and you still need the sources, + you must now also add src-pkgs to + IMAGE_FEATURES. + Source packages remain in the target portion of the SDK + by default, unless you have set your own value for + SDKIMAGE_FEATURES + that does not include src-pkgs. + + + Mount all using util-linux: + /etc/default/mountall has + moved into the -mount sub-package. + + + Splitting binaries using util-linux: + util-linux now splits each binary into + its own package for fine-grained control. + The main util-linux package pulls in + the individual binary packages using the + RRECOMMENDS + and + RDEPENDS + variables. + As a result, existing images should not see any changes + assuming + NO_RECOMMENDATIONS + is not set. + + + netbase/base-files: + /etc/hosts has moved from + netbase to + base-files. + + + tzdata: The main package has been + converted to an empty meta package that pulls in all + tzdata packages by default. + + + lrzsz: This package has been removed + from packagegroup-self-hosted and + packagegroup-core-tools-testapps. + The X/Y/ZModem support is less likely to be needed on + modern systems. + If you are relying on these packagegroups to include the + lrzsz package in your image, you + now need to explicitly add the package. + + + +
+ +
+ Removed Recipes + + + The following recipes have been removed: + + gcc: Drop version 7.3 recipes. Version 8.3 now remains. + + linux-yocto: Drop versions 4.14 and 4.18 recipes. Versions 4.19 and 5.0 remain. + + go: Drop version 1.9 recipes. Versions 1.11 and 1.12 remain. + + xvideo-tests: Became obsolete. + + libart-lgpl: Became obsolete. + + gtk-icon-utils-native: These tools are now provided by gtk+3-native + + gcc-cross-initial: No longer needed. gcc-cross/gcc-crosssdk is now used instead. + + gcc-crosssdk-initial: No longer needed. gcc-cross/gcc-crosssdk is now used instead. + + glibc-initial: Removed because the benefits of having it for site_config are + currently outweighed by the cost of building the recipe. + + +
+ +
+ Removed Classes + + + The following classes have been removed: + + distutils-tools: This class was never used. + + bugzilla.bbclass: Became obsolete. + + distrodata: This functionally has been replaced by a more modern + tinfoil-based implementation. + + +
+ +
+ Miscellaneous Changes + + + The following miscellaneous changes occurred: + + + The distro subdirectory of the Poky + repository has been removed from the top-level + scripts directory. + + + Perl now builds for the target using + perl-cross + for better maintainability and improved build performance. + This change should not present any problems unless you have + heavily customized your Perl recipe. + + + arm-tunes: Removed the "-march" + option if mcpu is already added. + + + update-alternatives: Convert file + renames to + PACKAGE_PREPROCESS_FUNCS + + + base/pixbufcache: Obsolete + sstatecompletions code has been + removed. + + + native + class: + RDEPENDS + handling has been enabled. + + + inetutils: This recipe has rsh + disabled. + + + +
+
+ +
+ Moving to the Yocto Project 3.0 Release + + + This section provides migration information for moving to the + Yocto Project 3.0 Release from the prior release. + + +
+ Init System Selection + + + Changing the init system manager previously required setting a + number of different variables. + You can now change the manager by setting the + INIT_MANAGER variable and the corresponding + include files + (i.e. conf/distro/include/init-manager-*.conf). + Include files are provided for four values: "none", "sysvinit", + "systemd", and "mdev-busybox". + The default value, "none", for INIT_MANAGER + should allow your current settings to continue working. + However, it is advisable to explicitly set + INIT_MANAGER. + +
+ +
+ LSB Support Removed + + + Linux Standard Base (LSB) as a standard is not current, and + is not well suited for embedded applications. + Support can be continued in a separate layer if needed. + However, presently LSB support has been removed from the core. + + + + As a result of this change, the poky-lsb + derivative distribution configuration that was also used for + testing alternative configurations has been replaced with a + poky-altcfg distribution that has LSB + parts removed. + +
+ +
+ Removed Recipes + + + The following recipes have been removed. + + + core-image-lsb-dev: Part of removed + LSB support. + + + core-image-lsb: Part of removed + LSB support. + + + core-image-lsb-sdk: Part of removed + LSB support. + + + cve-check-tool: Functionally replaced + by the cve-update-db recipe and + cve-check class. + + + eglinfo: No longer maintained. + eglinfo from + mesa-demos is an adequate and + maintained alternative. + + + gcc-8.3: Version 8.3 removed. + Replaced by 9.2. + + + gnome-themes-standard: Only needed + by gtk+ 2.x, which has been removed. + + + gtk+: GTK+ 2 is obsolete and has been + replaced by gtk+3. + + + irda-utils: Has become obsolete. + IrDA support has been removed from the Linux kernel in + version 4.17 and later. + + + libnewt-python: + libnewt Python support merged into + main libnewt recipe. + + + libsdl: Replaced by newer + libsdl2. + + + libx11-diet: Became obsolete. + + + libxx86dga: Removed obsolete client + library. + + + libxx86misc: Removed. Library is + redundant. + + + linux-yocto: Version 5.0 removed, + which is now redundant (5.2 / 4.19 present). + + + lsbinitscripts: Part of removed LSB + support. + + + lsb: Part of removed LSB support. + + + lsbtest: Part of removed LSB support. + + + openssl10: Replaced by newer + openssl version 1.1. + + + packagegroup-core-lsb: Part of removed + LSB support. + + + python-nose: Removed the Python 2.x + version of the recipe. + + + python-numpy: Removed the Python 2.x + version of the recipe. + + + python-scons: Removed the Python 2.x + version of the recipe. + + + source-highlight: No longer needed. + + + stress: Replaced by + stress-ng. + + + vulkan: Split into + vulkan-loader, + vulkan-headers, and + vulkan-tools. + + + weston-conf: Functionality moved to + weston-init. + + + +
+ +
+ Packaging Changes + + + The following packaging changes have occurred. + + + The + Epiphany + browser has been dropped from + packagegroup-self-hosted as it has + not been needed inside + build-appliance-image for + quite some time and was causing resource problems. + + + libcap-ng Python support has been + moved to a separate libcap-ng-python + recipe to streamline the build process when the Python + bindings are not needed. + + + libdrm now packages the file + amdgpu.ids into a separate + libdrm-amdgpu package. + + + python3: The + runpy module is now in the + python3-core package as it is + required to support the common "python3 -m" command usage. + + + distcc now provides separate + distcc-client and + distcc-server packages as typically + one or the other are needed, rather than both. + + + python*-setuptools recipes now + separately package the pkg_resources + module in a python-pkg-resources / + python3-pkg-resources package as + the module is useful independent of the rest of the + setuptools package. + The main python-setuptools / + python3-setuptools package depends + on this new package so you should only need to update + dependencies unless you want to take advantage of the + increased granularity. + + + +
+ +
+ CVE Checking + + + cve-check-tool has been functionally replaced + by a new cve-update-db recipe and + functionality built into the cve-check class. + The result uses NVD JSON data feeds rather than the deprecated + XML feeds that cve-check-tool was using, + supports CVSSv3 scoring, and makes other improvements. + + + + Additionally, the CVE_CHECK_CVE_WHITELIST + variable has been replaced by + CVE_CHECK_WHITELIST. + +
+ +
+ Bitbake Changes + + + The following BitBake changes have occurred. + + + addtask statements now properly + validate dependent tasks. + Previously, an invalid task was silently ignored. + With this change, the invalid task generates a warning. + + + Other invalid addtask and + deltask usages now trigger these + warnings: "multiple target tasks arguments with + addtask / deltask", and "multiple before/after clauses". + + + The "multiconfig" prefix is now shortened to "mc". + "multiconfig" will continue to work, however it may be + removed in a future release. + + + The bitbake -g command no longer + generates a recipe-depends.dot file + as the contents (i.e. a reprocessed version of + task-depends.dot) were confusing. + + + The bb.build.FuncFailed exception, + previously raised by + bb.build.exec_func() when certain + other exceptions have occurred, has been removed. + The real underlying exceptions will be raised instead. + If you have calls to + bb.build.exec_func() in custom classes + or tinfoil-using scripts, any + references to bb.build.FuncFailed + should be cleaned up. + + + Additionally, the + bb.build.exec_func() no longer accepts + the "pythonexception" parameter. + The function now always raises exceptions. + Remove this argument in any calls to + bb.build.exec_func() in custom classes + or scripts. + + + The + BB_SETSCENE_VERIFY_FUNCTION2 + is no longer used. + In the unlikely event that you have any references to it, + they should be removed. + + + The RunQueueExecuteScenequeue and + RunQueueExecuteTasks events have been + removed since setscene tasks are now executed as part of + the normal runqueue. + Any event handling code in custom classes or scripts that + handles these two events need to be updated. + + + The arguments passed to functions used with + BB_HASHCHECK_FUNCTION + have changed. + If you are using your own custom hash check function, see + + for details. + + + Task specifications in BB_TASKDEPDATA + and class implementations used in signature generator + classes now use "<fn>:<task>" everywhere rather than + the "." delimiter that was being used in some places. + This change makes it consistent with all areas in the code. + Custom signature generator classes and code that reads + BB_TASKDEPDATA need to be updated to + use ':' as a separator rather than '.'. + + + +
+ +
+ Sanity Checks + + + The following sanity check changes occurred. + + + SRC_URI + is now checked for usage of two problematic items: + + + "${PN}" prefix/suffix use - Warnings always appear + if ${PN} is used. + You must fix the issue regardless of whether + multiconfig or anything else that would cause + prefixing/suffixing to happen. + + + Github archive tarballs - these are not guaranteed + to be stable. + Consequently, it is likely that the tarballs will + be refreshed and thus the SRC_URI checksums + will fail to apply. + It is recommended that you fetch either an official + release tarball or a specific revision from the + actual Git repository instead. + + + Either one of these items now trigger a warning by default. + If you wish to disable this check, remove + src-uri-bad from + WARN_QA. + + + The file-rdeps runtime dependency + check no longer expands + RDEPENDS + recursively as there is no mechanism to ensure they can be + fully computed, and thus races sometimes result in errors + either showing up or not. + Thus, you might now see errors for missing runtime + dependencies that were previously satisfied recursively. + Here is an example: package A contains a shell script + starting with #!/bin/bash but has no + dependency on bash. + However, package A depends on package B, which does depend + on bash. + You need to add the missing dependency or dependencies to + resolve the warning. + + + Setting DEPENDS_${PN} anywhere + (i.e. typically in a recipe) now triggers an error. + The error is triggered because + DEPENDS + is not a package-specific variable unlike RDEPENDS. + You should set DEPENDS instead. + + + systemd currently does not work well with the musl C + library because only upstream officially supports linking + the library with glibc. + Thus, a warning is shown when building systemd in + conjunction with musl. + + + +
+ +
+ Miscellaneous Changes + + + The following miscellaneous changes have occurred. + + + The gnome + class has been removed because it now does very little. + You should update recipes that previously inherited this + class to do the following: + + inherit gnomebase gtk-icon-cache gconf mime + + + + The + meta/recipes-kernel/linux/linux-dtb.inc + file has been removed. + This file was previously deprecated in favor of setting + KERNEL_DEVICETREE + in any kernel recipe and only produced a warning. + Remove any include or + require statements pointing to this + file. + + + TARGET_CFLAGS, + TARGET_CPPFLAGS, + TARGET_CXXFLAGS, + and + TARGET_LDFLAGS + are no longer exported to the external environment. + This change did not require any changes to core recipes, + which is a good indicator that no changes will be + required. + However, if for some reason the software being built by one + of your recipes is expecting these variables to be set, + then building the recipe will fail. + In such cases, you must either export the variable or + variables in the recipe or change the scripts so that + exporting is not necessary. + + + You must change the host distro identifier used in + NATIVELSBSTRING + to use all lowercase characters even if it does not contain + a version number. + This change is necessary only if you are not using + uninative and + SANITY_TESTED_DISTROS. + + + In the base-files recipe, writing the + hostname into /etc/hosts and + /etc/hostname is now done within the + main + do_install + function rather than in the + do_install_basefilesissue function. + The reason for the change is because + do_install_basefilesissue is more + easily overridden without having to duplicate the hostname + functionality. + If you have done the latter (e.g. in a + base-files bbappend), then you should + remove it from your customized + do_install_basefilesissue function. + + + The wic --expand command now uses + commas to separate "key:value" pairs rather than hyphens. + + The wic command-line help is not updated. + + You must update any scripts or commands where you use + wic --expand with multiple + "key:value" pairs. + + + UEFI image variable settings have been moved from various + places to a central + conf/image-uefi.conf. + This change should not influence any existing configuration + as the meta/conf/image-uefi.conf + in the core metadata sets defaults that can be overridden + in the same manner as before. + + + conf/distro/include/world-broken.inc + has been removed. + For cases where certain recipes need to be disabled when + using the musl C library, these recipes now have + COMPATIBLE_HOST_libc-musl set with a + comment that explains why. + + + +
+
+ + +
+ Moving to the Yocto Project 3.1 Release + + + This section provides migration information for moving to the + Yocto Project 3.1 Release from the prior release. + + +
+ Minimum system requirements + + + The following versions / requirements of build host components have been updated: + + gcc 5.0 + python 3.5 + tar 1.28 + rpcgen is now required on the host (part of the libc-dev-bin package on Ubuntu, Debian and related distributions, and the glibc package on RPM-based distributions). + + + Additionally, the makeinfo and pod2man + tools are no longer required on the host. + +
+ +
+ mpc8315e-rdb machine removed + + + The MPC8315E-RDB machine is old/obsolete and unobtainable, thus given the maintenance burden + the mpc8315e-rdb machine configuration that supported it has been removed + in this release. The removal does leave a gap in official PowerPC reference hardware + support; this may change in future if a suitable machine with accompanying support resources + is found. + +
+ +
+ Python 2 removed + + + Due to the expiration of upstream support in January 2020, support for Python 2 has now been removed; it is recommended that you use Python 3 instead. If absolutely needed there is a meta-python2 community layer containing Python 2, related classes and various Python 2-based modules, however it should not be considered as supported. + +
+ +
+ Reproducible builds now enabled by default + + + In order to avoid unnecessary differences in output files (aiding binary reproducibility), the Poky distribution configuration (DISTRO = "poky") now inherits the reproducible_build class by default. + +
+ +
+ Impact of ptest feature is now more significant + + + The Poky distribution configuration (DISTRO = "poky") enables ptests by default to enable runtime testing of various components. In this release, a dependency needed to be added that has resulted in a significant increase in the number of components that will be built just when building a simple image such as core-image-minimal. If you do not need runtime tests enabled for core components, then it is recommended that you remove "ptest" from DISTRO_FEATURES to save a significant amount of build time e.g. by adding the following in your configuration: + + + DISTRO_FEATURES_remove = "ptest" + + +
+ +
+ Removed recipes + + + The following recipes have been removed: + + + chkconfig: obsolete + console-tools: obsolete + enchant: replaced by enchant2 + foomatic-filters: obsolete + libidn: no longer needed, moved to meta-oe + libmodulemd: replaced by libmodulemd-v1 + linux-yocto: drop 4.19, 5.2 version recipes (5.4 now provided) + nspr: no longer needed, moved to meta-oe + nss: no longer needed, moved to meta-oe + python: Python 2 removed (Python 3 preferred) + python-setuptools: Python 2 version removed (python3-setuptools preferred) + sysprof: no longer needed, moved to meta-oe + texi2html: obsolete + u-boot-fw-utils: functionally replaced by libubootenv + + +
+ +
+ features_check class replaces distro_features_check + + + The distro_features_check class has had its functionality expanded, now supporting ANY_OF_MACHINE_FEATURES, REQUIRED_MACHINE_FEATURES, CONFLICT_MACHINE_FEATURES, ANY_OF_COMBINED_FEATURES, REQUIRED_COMBINED_FEATURES, CONFLICT_COMBINED_FEATURES. As a result the class has now been renamed to features_check; the distro_features_check class still exists but generates a warning and redirects to the new class. In preparation for a future removal of the old class it is recommended that you update recipes currently inheriting distro_features_check to inherit features_check instead. + +
+ +
+ Removed classes + + + The following classes have been removed: + + + distutils-base: moved to meta-python2 + distutils: moved to meta-python2 + libc-common: merged into the glibc recipe as nothing else used it. + python-dir: moved to meta-python2 + pythonnative: moved to meta-python2 + setuptools: moved to meta-python2 + tinderclient: dropped as it was obsolete. + + +
+ +
+ SRC_URI checksum behaviour + + + Previously, recipes by tradition included both SHA256 and MD5 checksums for remotely fetched files in SRC_URI, even though only one is actually mandated. However, the MD5 checksum does not add much given its inherent weakness; thus when a checksum fails only the SHA256 sum will now be printed. The md5sum will still be verified if it is specified. + +
+ + +
+ npm fetcher changes + + + The npm fetcher has been completely reworked in this release. The npm fetcher now only fetches the package source itself and no longer the dependencies; there is now also an npmsw fetcher which explicitly fetches the shrinkwrap file and the dependencies. This removes the slightly awkward NPM_LOCKDOWN and NPM_SHRINKWRAP variables which pointed to local files; the lockdown file is no longer needed at all. Additionally, the package name in npm:// entries in SRC_URI is now specified using a package parameter instead of the earlier name which overlapped with the generic name parameter. All recipes using the npm fetcher will need to be changed as a result. + + + An example of the new scheme: + +SRC_URI = "npm://registry.npmjs.org;package=array-flatten;version=1.1.1 \ + npmsw://${THISDIR}/npm-shrinkwrap.json" + + Another example where the sources are fetched from git rather than an npm repository: + +SRC_URI = "git://github.com/foo/bar.git;protocol=https \ + npmsw://${THISDIR}/npm-shrinkwrap.json" + + + + devtool and recipetool have also been updated to match with the npm fetcher changes. Other than producing working and more complete recipes for npm sources, there is also a minor change to the command line for devtool: the --fetch-dev option has been renamed to --npm-dev as it is npm-specific. + +
+ + +
+ Packaging changes + + + + intltool has been removed from packagegroup-core-sdk as it is rarely needed to build modern software - gettext can do most of the things it used to be needed for. intltool has also been removed from packagegroup-core-self-hosted as it is not needed to for standard builds. + git: git-am, git-difftool, git-submodule, and git-request-pull are no longer perl-based, so are now installed with the main git package instead of within git-perltools. + The ldconfig binary built as part of glibc has now been moved to its own ldconfig package (note no glibc- prefix). This package is in the RRECOMMENDS of the main glibc package if ldconfig is present in DISTRO_FEATURES. + libevent now splits each shared library into its own package (as Debian does). Since these are shared libraries and will be pulled in through the normal shared library dependency handling, there should be no impact to existing configurations other than less unnecessary libraries being installed in some cases. + linux-firmware now has a new package for bcm4366c and includes available NVRAM config files into the bcm43340, bcm43362, bcm43430 and bcm4356-pcie packages. + harfbuzz now splits the new libharfbuzz-subset.so library into its own package to reduce the main package size in cases where libharfbuzz-subset.so is not needed. + + +
+ +
+ Additional warnings + + + Warnings will now be shown at do_package_qa time in the following circumstances: + + + A recipe installs .desktop files containing MimeType keys but does not inherit the new mime-xdg class + A recipe installs .xml files into ${datadir}/mime/packages but does not inherit the mime class + + +
+ +
+ <filename>wic</filename> image type now used instead of <filename>live</filename> by default for x86 + + + conf/machine/include/x86-base.inc (inherited by most x86 machine configurations) now specifies wic instead of live by default in IMAGE_FSTYPES. The live image type will likely be removed in a future release so it is recommended that you use wic instead. + +
+ +
+ Miscellaneous changes + + + + The undocumented SRC_DISTRIBUTE_LICENSES variable has now been removed in favour of a new AVAILABLE_LICENSES variable which is dynamically set based upon license files found in ${COMMON_LICENSE_DIR} and ${LICENSE_PATH}. + The tune definition for big-endian microblaze machines is now microblaze instead of microblazeeb. + newlib no longer has built-in syscalls. libgloss should then provide the syscalls, crt0.o and other functions that are no longer part of newlib itself. If you are using TCLIBC = "newlib" this now means that you must link applications with both newlib and libgloss, whereas before newlib would run in many configurations by itself. + + +
+ +
+ + - - - - - - - - - - - - - - - A - - - diff --git a/external/poky/documentation/ref-manual/ref-manual.xml b/external/poky/documentation/ref-manual/ref-manual.xml old mode 100644 new mode 100755 index 104bbb9e..d7b82bb5 --- a/external/poky/documentation/ref-manual/ref-manual.xml +++ b/external/poky/documentation/ref-manual/ref-manual.xml @@ -22,11 +22,10 @@ - Scott Rifenbark - Scotty's Documentation Services, INC + &ORGNAME; - srifenbark@gmail.com + &ORGEMAIL; @@ -34,22 +33,17 @@ 4.0+git - 24 November 2010 - Released with the Yocto Project 0.9 Release + November 2010 + The initial document released with the Yocto Project 0.9 Release 1.0 - 6 April 2011 + April 2011 Released with the Yocto Project 1.0 Release. - - 1.0.1 - 23 May 2011 - Released with the Yocto Project 1.0.1 Release. - 1.1 - 6 October 2011 + October 2011 Released with the Yocto Project 1.1 Release. @@ -72,11 +66,6 @@ October 2013 Released with the Yocto Project 1.5 Release. - - 1.5.1 - January 2014 - Released with the Yocto Project 1.5.1 Release. - 1.6 April 2014 @@ -128,24 +117,29 @@ Released with the Yocto Project 2.6 Release. - 2.6.1 - February 2019 - Released with the Yocto Project 2.6.1 Release. + 2.7 + May 2019 + Released with the Yocto Project 2.7 Release. - 2.6.2 - April 2019 - Released with the Yocto Project 2.6.2 Release. + 3.0 + October 2019 + Released with the Yocto Project 3.0 Release. - 2.6.3 - August 2019 - Released with the Yocto Project 2.6.3 Release. + 3.1 + April 2020 + Released with the Yocto Project 3.1 Release. - 2.6.4 - November 2019 - Released with the Yocto Project 2.6.4 Release. + 3.1.1 + June 2020 + Released with the Yocto Project 3.1.1 Release. + + + 3.1.2 + &REL_MONTH_YEAR; + Released with the Yocto Project 3.1.2 Release. @@ -168,7 +162,7 @@ Yocto Project. To be sure you have the latest version of the manual for this release, go to the - Yocto Project documentation page + Yocto Project documentation page and select the manual from that site. Manuals from the site are more up-to-date than manuals derived from the Yocto Project released TAR files. @@ -185,18 +179,20 @@ page. If you need a version of this manual for a different Yocto Project release, visit the - Yocto Project documentation page + Yocto Project documentation page and select the manual set by using the "ACTIVE RELEASES DOCUMENTATION" or "DOCUMENTS ARCHIVE" pull-down menus.
- + + To report any inaccuracies or problems with this - manual, send an email to the Yocto Project - discussion group at - yocto@yoctoproject.com or log into - the freenode #yocto channel. - + (or any other Yocto Project) manual, send an email to + the Yocto Project documentation mailing list at + docs@lists.yoctoproject.org or + log into the freenode #yocto channel. + + diff --git a/external/poky/documentation/ref-manual/ref-structure.xml b/external/poky/documentation/ref-manual/ref-structure.xml index 8e0c9f5b..27f17dd9 100644 --- a/external/poky/documentation/ref-manual/ref-structure.xml +++ b/external/poky/documentation/ref-manual/ref-structure.xml @@ -8,11 +8,11 @@ The Source Directory - consists of several components. - Understanding them and knowing where they are located is key to using the - Yocto Project well. + consists of numerous files, directories and subdirectories; + understanding their locations and contents is key to using the + Yocto Project effectively. This chapter describes the Source Directory and gives information about - the various files and directories. + those files and directories. @@ -22,12 +22,12 @@ section in the Yocto Project Development Tasks Manual. - - The OpenEmbedded build system does not support file or directory names that - contain spaces. - Be sure that the Source Directory you use does not contain these types - of names. - + + The OpenEmbedded build system does not support file or directory names that + contain spaces. + Be sure that the Source Directory you use does not contain these types + of names. +
Top-Level Core Components @@ -48,18 +48,18 @@ Metadata interpreter, reads the Yocto Project Metadata and runs the tasks defined by that data. - Failures are usually from the Metadata and not from BitBake itself. - Consequently, most users do not need to worry about BitBake. + Failures are usually caused by errors in your Metadata and not from BitBake itself; + consequently, most users do not need to worry about BitBake. When you run the bitbake command, the - main BitBake executable, which resides in the - bitbake/bin/ directory, starts. + main BitBake executable (which resides in the + bitbake/bin/ directory) starts. Sourcing the environment setup script (i.e. &OE_INIT_FILE;) - places the scripts and - bitbake/bin directories (in that order) into + places the scripts/ and + bitbake/bin/ directories (in that order) into the shell's PATH environment variable. @@ -91,7 +91,7 @@ by providing a directory name when you source the setup script. For information on separating output from your local - Source Directory files, see the + Source Directory files (commonly described as an "out of tree" build), see the "&OE_INIT_FILE;" section. @@ -104,8 +104,8 @@ This directory holds the source for the Yocto Project documentation as well as templates and tools that allow you to generate PDF and HTML versions of the manuals. - Each manual is contained in a sub-folder. - For example, the files for this manual reside in + Each manual is contained in its own sub-folder; + for example, the files for this reference manual reside in the ref-manual/ directory.
@@ -114,9 +114,9 @@ <filename>meta/</filename> - This directory contains the OpenEmbedded-Core metadata. + This directory contains the minimal, underlying OpenEmbedded-Core metadata. The directory holds recipes, common classes, and machine - configuration for emulated targets (qemux86, + configuration for strictly emulated targets (qemux86, qemuarm, and so forth.) @@ -125,8 +125,8 @@ <filename>meta-poky/</filename> - This directory contains the configuration for the Poky - reference distribution. + Designed above the meta/ content, this directory + adds just enough metadata to define the Poky reference distribution. @@ -148,9 +148,6 @@ This directory adds additional recipes and append files used by the OpenEmbedded selftests to verify the behavior of the build system. - - - You do not have to add this layer to your bblayers.conf file unless you want to run the selftests. @@ -172,7 +169,7 @@ This directory contains various integration scripts that implement extra functionality in the Yocto Project environment (e.g. QEMU scripts). The &OE_INIT_FILE; - script appends this directory to the shell's + script prepends this directory to the shell's PATH environment variable. @@ -202,7 +199,8 @@ up, a Build Directory is created, your working directory becomes the Build Directory, - and you are presented with a list of common BitBake targets. + and you are presented with some simple suggestions as to what to do + next, including a list of some possible targets to build. Here is an example: $ source oe-init-build-env @@ -217,14 +215,14 @@ meta-toolchain meta-ide-support - You can also run generated qemu images with a command like 'runqemu qemux86' + You can also run generated qemu images with a command like 'runqemu qemux86-64' - The script gets its default list of common targets from the - conf-notes.txt file, which is found in the + The default output of the oe-init-build-env script + is from the conf-notes.txt file, which is found in the meta-poky directory within the Source Directory. - Should you have custom distributions, it is very easy to modify - this configuration file to include your targets for your + If you design a custom distribution, you can include your own version + of this configuration file to mention the targets defined by your distribution. See the "Creating a Custom Template Configuration Directory" @@ -234,20 +232,20 @@ By default, running this script without a Build Directory - argument creates the build directory + argument creates the build/ directory in your current working directory. If you provide a Build Directory argument when you source the script, you direct the OpenEmbedded build system to create a Build Directory of your choice. For example, the following command creates a Build Directory named - mybuilds that is outside of the + mybuilds/ that is outside of the Source Directory: $ source &OE_INIT_FILE; ~/mybuilds The OpenEmbedded build system uses the template configuration files, which are found by default in the - meta-poky/conf directory in the + meta-poky/conf/ directory in the Source Directory. See the "Creating a Custom Template Configuration Directory" @@ -280,28 +278,26 @@ The OpenEmbedded build system creates the Build Directory - when you run the build environment setup scripts (i.e. - &OE_INIT_FILE;). - - - + when you run the build environment setup script + &OE_INIT_FILE;. If you do not give the Build Directory a specific name when you run - a setup script, the name defaults to build. + the setup script, the name defaults to build/. - The - TOPDIR variable - points to the Build Directory. + For subsequent parsing and processing, the name of the Build + directory is available via the + TOPDIR variable.
- <filename>build/buildhistory</filename> + <filename>build/buildhistory/</filename> The OpenEmbedded build system creates this directory when you - enable the build history feature. - The directory tracks build information into image, packages, and + enable build history via the buildhistory class file. + The directory organizes build information into image, packages, and SDK subdirectories. For information on the build history feature, see the "Maintaining Build Output Quality" @@ -320,14 +316,14 @@ Any variable set here overrides any variable set elsewhere within the environment unless that variable is hard-coded within a file (e.g. by using '=' instead of '?='). - Some variables are hard-coded for various reasons but these + Some variables are hard-coded for various reasons but such variables are relatively rare. - Edit this file to set the - MACHINE - for which you want to build, which package types you wish to use + At a minimum, you would normally edit this file to select the target + MACHINE, + which package types you wish to use (PACKAGE_CLASSES), and the location from which you want to access downloaded files (DL_DIR). @@ -338,16 +334,16 @@ start the build, the OpenEmbedded build system creates it from local.conf.sample when you source the top-level build environment - setup script (i.e. - &OE_INIT_FILE;). + setup script + &OE_INIT_FILE;. The source local.conf.sample file used depends on the $TEMPLATECONF script variable, - which defaults to meta-poky/conf + which defaults to meta-poky/conf/ when you are building from the Yocto Project development - environment and defaults to meta/conf when + environment, and to meta/conf/ when you are building from the OpenEmbedded-Core environment. Because the script variable points to the source of the local.conf.sample file, this implies that @@ -395,11 +391,12 @@ - The source bblayers.conf.sample file used + As with the local.conf file, + the source bblayers.conf.sample file used depends on the $TEMPLATECONF script variable, - which defaults to meta-poky/conf + which defaults to meta-poky/conf/ when you are building from the Yocto Project development - environment and defaults to meta/conf when + environment, and to meta/conf/ when you are building from the OpenEmbedded-Core environment. Because the script variable points to the source of the bblayers.conf.sample file, this implies that @@ -418,13 +415,13 @@ Source Directory. You can find the Yocto Project version of the bblayers.conf.sample file in the - meta-poky/conf directory. + meta-poky/conf/ directory.
- <filename>build/conf/sanity_info</filename> + <filename>build/cache/sanity_info</filename> This file indicates the state of the sanity checks and is created @@ -572,8 +569,11 @@ <filename>build/tmp/deploy/images/</filename> - This directory receives complete filesystem images. - If you want to flash the resulting image from a build onto a device, look here for the image. + This directory is populated with the basic output objects of the + build (think of them as the "generated artifacts" of the build process), + including things like the boot loader image, kernel, root filesystem and more. + If you want to flash the resulting image from a build onto a device, + look here for the necessary components. @@ -604,7 +604,7 @@ The OpenEmbedded build system creates this directory to hold - toolchain installer scripts, which when executed, install the + toolchain installer scripts which, when executed, install the sysroot that matches your target hardware. You can find out more about these installers in the "Building an SDK Installer" @@ -1038,7 +1038,7 @@ <filename>meta/recipes-graphics/</filename> - This directory contains X and other graphically related system libraries + This directory contains X and other graphically related system libraries.
diff --git a/external/poky/documentation/ref-manual/ref-system-requirements.xml b/external/poky/documentation/ref-manual/ref-system-requirements.xml index 0db84e31..c6e1eb97 100644 --- a/external/poky/documentation/ref-manual/ref-system-requirements.xml +++ b/external/poky/documentation/ref-manual/ref-system-requirements.xml @@ -8,12 +8,12 @@ Welcome to the Yocto Project Reference Manual! This manual provides reference information for the current release - of the Yocto Project. - The manual is best used after you have an understanding + of the Yocto Project, and + is most effectively used after you have an understanding of the basics of the Yocto Project. The manual is neither meant to be read as a starting point to the - Yocto Project nor read from start to finish. - Use this manual to find variable definitions, class + Yocto Project, nor read from start to finish. + Rather, use this manual to find variable definitions, class descriptions, and so forth as needed during the course of using the Yocto Project. @@ -66,12 +66,15 @@ below.
- The Yocto Project is not compatible with the - Windows Subsystem for Linux - (WSL). - You cannot use a - build host - that is running WSL. + You may use Windows Subsystem For Linux v2 to set up a build + host using Windows 10, but validation is not performed + against build hosts using WSLv2. + + The Yocto Project is not compatible with WSLv1, it is + compatible but not officially supported nor validated + with WSLv2, if you still decide to use WSL please upgrade + to WSLv2. + If you encounter problems, please go to @@ -89,69 +92,21 @@ Ubuntu 16.04 (LTS) - Ubuntu 18.04 + Ubuntu 18.04 (LTS) + Ubuntu 19.04 + Ubuntu 20.04 Fedora 28 + Fedora 29 + Fedora 30 + Fedora 31 + Fedora 32 CentOS 7.x Debian GNU/Linux 8.x (Jessie) Debian GNU/Linux 9.x (Stretch) - OpenSUSE 42.3 + Debian GNU/Linux 10.x (Buster) + OpenSUSE Leap 15.1 - While the Yocto Project Team attempts to ensure all Yocto Project @@ -168,7 +123,7 @@ Here is some old list items to show the form: The list of packages you need on the host development system can be large when covering all build scenarios using the Yocto Project. - This section provides required packages according to + This section describes required packages according to Linux distribution and function. @@ -178,19 +133,29 @@ Here is some old list items to show the form: The following list shows the required packages by function given a supported Ubuntu or Debian Linux distribution: - - If your build system has the - oss4-dev package installed, you - might experience QEMU build failures due to the package - installing its own custom - /usr/include/linux/soundcard.h on - the Debian system. - If you run into this situation, either of the following - solutions exist: - + Notes + + + If your build system has the + oss4-dev package installed, you + might experience QEMU build failures due to the package + installing its own custom + /usr/include/linux/soundcard.h on + the Debian system. + If you run into this situation, either of the following + solutions exist: + $ sudo apt-get build-dep qemu $ sudo apt-get remove oss4-dev - + + + + For Debian-8, python3-git and pylint3 are no longer available via apt-get. + + $ sudo pip3 install GitPython pylint==1.9.5 + + + Essentials: @@ -199,26 +164,12 @@ Here is some old list items to show the form: $ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL; - Graphical and Eclipse Plug-In Extras: - Packages recommended if the host system has graphics - support or if you are going to use the Eclipse - IDE: - - $ sudo apt-get install libsdl1.2-dev xterm - Documentation: Packages needed if you are going to build out the Yocto Project documentation manuals: $ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto - OpenEmbedded Self-Test (oe-selftest): - Packages needed if you are going to run - oe-selftest: - - $ sudo apt-get install python-git - - @@ -236,27 +187,13 @@ Here is some old list items to show the form: $ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL; - Graphical and Eclipse Plug-In Extras: - Packages recommended if the host system has graphics - support or if you are going to use the Eclipse - IDE: - - $ sudo dnf install SDL-devel xterm - Documentation: Packages needed if you are going to build out the Yocto Project documentation manuals: - $ sudo dnf install make docbook-style-dsssl docbook-style-xsl \ + $ sudo dnf install docbook-style-dsssl docbook-style-xsl \ docbook-dtds docbook-utils fop libxslt dblatex xmlto - OpenEmbedded Self-Test (oe-selftest): - Packages needed if you are going to run - oe-selftest: - - $ sudo dnf install python3-GitPython - - @@ -274,48 +211,28 @@ Here is some old list items to show the form: $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL; - Graphical and Eclipse Plug-In Extras: - Packages recommended if the host system has graphics - support or if you are going to use the Eclipse - IDE: - - $ sudo zypper install libSDL-devel xterm - Documentation: Packages needed if you are going to build out the Yocto Project documentation manuals: - $ sudo zypper install make dblatex xmlto - - OpenEmbedded Self-Test (oe-selftest): - Packages needed if you are going to run - oe-selftest: - - $ sudo zypper install python-GitPython + $ sudo zypper install dblatex xmlto - - Sanity testing, through the - testimage - classes, does not work on systems using the - Wicked - network manager. - -
- CentOS Packages +
+ CentOS-7 Packages The following list shows the required packages by function - given a supported CentOS Linux distribution: + given a supported CentOS-7 Linux distribution: Essentials: Packages needed to build an image for a headless system: - $ sudo yum install &CENTOS_HOST_PACKAGES_ESSENTIAL; SDL-devel xterm + $ sudo yum install &CENTOS7_HOST_PACKAGES_ESSENTIAL; Notes @@ -328,43 +245,81 @@ Here is some old list items to show the form: Linux by default. You need to install these packages separately. - + The makecache command consumes additional Metadata from epel-release. - + - - Graphical and Eclipse Plug-In Extras: - Packages recommended if the host system has graphics - support or if you are going to use the Eclipse - IDE: - - $ sudo yum install SDL-devel xterm - + Documentation: Packages needed if you are going to build out the Yocto Project documentation manuals: - $ sudo yum install make docbook-style-dsssl docbook-style-xsl \ + $ sudo yum install docbook-style-dsssl docbook-style-xsl \ docbook-dtds docbook-utils fop libxslt dblatex xmlto - - OpenEmbedded Self-Test (oe-selftest): - Packages needed if you are going to run - oe-selftest: + + + + +
+ +
+ CentOS-8 Packages + + + The following list shows the required packages by function + given a supported CentOS-8 Linux distribution: + + Essentials: + Packages needed to build an image for a headless + system: - $ sudo yum install GitPython + $ sudo dnf install &CENTOS8_HOST_PACKAGES_ESSENTIAL; - + Notes + + + Extra Packages for Enterprise Linux + (i.e. epel-release) + is a collection of packages from Fedora + built on RHEL/CentOS for easy installation + of packages not included in enterprise + Linux by default. + You need to install these packages + separately. + + + The PowerTools repo + provides additional packages such as + rpcgen and + texinfo. + + + The makecache command + consumes additional Metadata from + epel-release. + + + + + Documentation: + Packages needed if you are going to build out the + Yocto Project documentation manuals: + + $ sudo dnf install docbook-style-dsssl docbook-style-xsl \ + docbook-dtds docbook-utils fop libxslt dblatex xmlto + +
-
- Required Git, tar, and Python Versions +
+ Required Git, tar, Python and gcc Versions In order to use the build system, your host development system @@ -372,8 +327,8 @@ Here is some old list items to show the form: Python: Git 1.8.3.1 or greater - tar 1.27 or greater - Python 3.4.0 or greater + tar 1.28 or greater + Python 3.5.0 or greater @@ -385,6 +340,89 @@ Here is some old list items to show the form: tarball or use BitBake to build the tarball. + + In addition, your host development system must meet the following + version requirement for gcc: + + gcc 5.0 or greater + + + + + If your host development system does not meet this requirement, + you can resolve this by installing a buildtools-extended + tarball that contains additional tools, the equivalent of buildtools-essential. + +
+ Installing a Pre-Built <filename>buildtools</filename> Tarball with <filename>install-buildtools</filename> script + + + The install-buildtools script is the easiest + of the three methods by which you can get these tools. It downloads + a pre-built buildtools installer and automatically installs the tools + for you: + + + Execute the install-buildtools script. + Here is an example: + + $ cd poky + $ scripts/install-buildtools --without-extended-buildtools \ + --base-url &YOCTO_DL_URL;/releases/yocto \ + --release yocto-&DISTRO; \ + --installer-version &DISTRO; + + + During execution, the buildtools tarball will be downloaded, + the checksum of the download will be verified, the installer + will be run for you, and some basic checks will be run to + to make sure the installation is functional. + + + To avoid the need of sudo privileges, + the install-buildtools script will + by default tell the installer to install in: + + /path/to/poky/buildtools + + + + If your host development system needs the additional tools + provided in the buildtools-extended + tarball, you can instead execute the + install-buildtools script with the + default parameters: + + $ cd poky + $ scripts/install-buildtools + + + + + Source the tools environment setup script by using a + command like the following: + + $ source /path/to/poky/buildtools/environment-setup-x86_64-pokysdk-linux + + Of course, you need to supply your installation directory and be + sure to use the right file (i.e. i586 or x86_64). + + + After you have sourced the setup script, + the tools are added to PATH + and any other environment variables required to run the + tools are initialized. + The results are working versions versions of Git, tar, + Python and chrpath. And in the case of + the buildtools-extended tarball, additional + working versions of tools including gcc, + make and the other tools included in + packagegroup-core-buildessential. + + + +
+
Downloading a Pre-Built <filename>buildtools</filename> Tarball @@ -394,13 +432,17 @@ Here is some old list items to show the form: Locate and download the *.sh at - . + . Execute the installation script. - Here is an example: + Here is an example for the traditional installer: $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh + + Here is an example for the extended installer: + + $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh During execution, a prompt appears that allows you to choose the installation directory. @@ -424,7 +466,11 @@ Here is some old list items to show the form: and any other environment variables required to run the tools are initialized. The results are working versions versions of Git, tar, - Python and chrpath. + Python and chrpath. And in the case of + the buildtools-extended tarball, additional + working versions of tools including gcc, + make and the other tools included in + packagegroup-core-buildessential. @@ -440,7 +486,7 @@ Here is some old list items to show the form: .sh file and then take steps to transfer and run it on a machine that does not meet the minimal Git, tar, and Python - requirements. + (or gcc) requirements. @@ -457,6 +503,10 @@ Here is some old list items to show the form: Run the BitBake command to build the tarball: $ bitbake buildtools-tarball + + or run the BitBake command to build the extended tarball: + + $ bitbake buildtools-extended-tarball The @@ -471,20 +521,24 @@ Here is some old list items to show the form: subdirectory of the Build Directory. The installer file has the string "buildtools" - in the name. + (or "buildtools-extended") in the name. Transfer the .sh file from the build host to the machine that does not meet the - Git, tar, or Python requirements. + Git, tar, or Python (or gcc) requirements. On the machine that does not meet the requirements, run the .sh file to install the tools. - Here is an example: + Here is an example for the traditional installer: $ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh + + Here is an example for the extended installer: + + $ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh During execution, a prompt appears that allows you to choose the installation directory. @@ -497,10 +551,10 @@ Here is some old list items to show the form: Source the tools environment setup script by using a command like the following: - $ source /home/your_username/buildtools/environment-setup-i586-poky-linux + $ source /home/your_username/buildtools/environment-setup-x86_64-poky-linux Of course, you need to supply your installation directory and be - sure to use the right file (i.e. i585 or x86-64). + sure to use the right file (i.e. i586 or x86_64). After you have sourced the setup script, @@ -508,7 +562,11 @@ Here is some old list items to show the form: and any other environment variables required to run the tools are initialized. The results are working versions versions of Git, tar, - Python and chrpath. + Python and chrpath. And in the case of + the buildtools-extended tarball, additional + working versions of tools including gcc, + make and the other tools included in + packagegroup-core-buildessential. diff --git a/external/poky/documentation/ref-manual/ref-tasks.xml b/external/poky/documentation/ref-manual/ref-tasks.xml index 8f3ff26d..011e0d74 100644 --- a/external/poky/documentation/ref-manual/ref-tasks.xml +++ b/external/poky/documentation/ref-manual/ref-tasks.xml @@ -158,32 +158,6 @@
-
- <filename>do_distrodata</filename> - - - Provides information about the recipe. - - - - The distrodata task is included as part of the - distrodata - class. - - - - To build the distrodata task, use the - bitbake command with the "-c" option and - task name: - - $ bitbake core-image-minimal -c distrodata - - By default, the results are stored in - $LOG_DIR - (e.g. $BUILD_DIR/tmp/log). - -
-
<filename>do_fetch</filename> @@ -192,7 +166,8 @@ This task uses the SRC_URI variable and the argument's prefix to determine the correct - fetcher module. + fetcher + module.
@@ -635,9 +610,18 @@ - The checkpkg task is included as part of the - distrodata - class. + To check the upstream version and status of a recipe, use the + following devtool commands: + + $ devtool latest-version + $ devtool check-upgrade-status + + See the + "devtool Quick Reference" + chapter for more information on devtool. + See the + "Checking on the Upgrade Status of a Recipe" + section for information on checking the upgrade status of a recipe. diff --git a/external/poky/documentation/ref-manual/ref-terms.xml b/external/poky/documentation/ref-manual/ref-terms.xml index c573a521..722fa7ee 100644 --- a/external/poky/documentation/ref-manual/ref-terms.xml +++ b/external/poky/documentation/ref-manual/ref-terms.xml @@ -41,11 +41,13 @@ That append file would match any busybox_1.21.x.bb version of the recipe. - So, the append file would match the following recipe names: + So, the append file would match any of the following recipe names: busybox_1.21.1.bb busybox_1.21.2.bb busybox_1.21.3.bb + busybox_1.21.10.bb + busybox_1.21.25.bb Important The use of the "%" character @@ -115,7 +117,7 @@ in your home directory within the existing directory mybuilds: - $cd $HOME + $ cd $HOME $ source $HOME/poky/&OE_INIT_FILE; $HOME/mybuilds/YP-&POKYVERSION; @@ -141,7 +143,7 @@ The system used to build images in a Yocto Project Development environment. The build system is sometimes referred to as the - development host. + development host. Classes: @@ -183,16 +185,11 @@ Container Layer: Layers that hold other layers. - An example of a container layer is the - meta-intel layer. - This layer contains BSP layers for the Intel-core2-32 - Intel Common Core - (Intel-core2-32) and the Intel-corei7-64 - Intel Common Core - (Intel-corei7-64). - the meta-intel layer also contains - the common/ directory, which contains - common content across those layers. + An example of a container layer is OpenEmbedded's + meta-openembedded + layer. + The meta-openembedded layer contains + many meta-* layers. Cross-Development Toolchain: @@ -398,7 +395,7 @@ Poky is not a product level distro. Rather, it is a good starting point for customization. - Poky began an open-source + Poky began as an open-source project initially developed by OpenedHand. OpenedHand developed Poky from the existing OpenEmbedded build system to create a commercially diff --git a/external/poky/documentation/ref-manual/ref-variables.xml b/external/poky/documentation/ref-manual/ref-variables.xml index c7c5f27b..364cd09e 100644 --- a/external/poky/documentation/ref-manual/ref-variables.xml +++ b/external/poky/documentation/ref-manual/ref-variables.xml @@ -52,7 +52,6 @@ - Extension to the Application Binary Interface (ABI) field of the GNU canonical architecture name (e.g. "eabi"). @@ -76,7 +75,6 @@ - Specifies whether to produce an output package even if it is empty. By default, BitBake does not produce empty packages. @@ -103,7 +101,6 @@ - Lists commands in a package that need an alternative binary naming scheme. Sometimes the same command is provided in multiple packages. @@ -134,7 +131,6 @@ - Used by the alternatives system to map duplicated commands to actual locations. For example, if the bracket command @@ -174,7 +170,6 @@ - Used by the alternatives system to create default priorities for duplicated commands. You can use the variable to create a single default @@ -203,7 +198,6 @@ - Used by the alternatives system to create default link locations for duplicated commands. You can use the variable to create a single default @@ -258,7 +252,6 @@ - An override list of append strings for each target specified with LABELS. @@ -278,7 +271,6 @@ - The minimal command and arguments used to run ar. @@ -291,7 +283,6 @@ - When used with the archiver class, determines the type of information used to create @@ -334,8 +325,7 @@ - - The minimal command and arguments used to run the + Minimal command and arguments needed to run the assembler. @@ -347,7 +337,6 @@ - Lists recipe names (PN values) BitBake does not attempt to build. @@ -367,11 +356,10 @@ ASSUME_SHLIBS - ASSUME_SHLIBS[doc] = Provides additional shlibs provider mapping information, which adds to or overwrites the information provided automatically by the system." + ASSUME_SHLIBS[doc] = "Provides additional shlibs provider mapping information, which adds to or overwrites the information provided automatically by the system." - Provides additional shlibs provider mapping information, which adds to or overwrites the information provided automatically by the system. @@ -406,7 +394,6 @@ - The email address used to contact the original author or authors in order to send patches and forward bugs. @@ -419,7 +406,6 @@ - When the debian class is inherited, which is the default behavior, @@ -442,7 +428,6 @@ - Enables creating an automatic menu for the syslinux bootloader. You must set this variable in your recipe. @@ -459,7 +444,6 @@ - When SRCREV is set to the value of this variable, it specifies to use @@ -495,13 +479,35 @@ + AVAILABLE_LICENSES + + AVAILABLE_LICENSES[doc] = "List of licenses found in the directories specified by COMMON_LICENSE_DIR and LICENSE_PATH." + + + + + List of licenses found in the directories specified + by COMMON_LICENSE_DIR + and LICENSE_PATH. + + + It is assumed that all changes + to COMMON_LICENSE_DIR + and LICENSE_PATH have been done + before AVAILABLE_LICENSES is + defined + (in license.bbclass). + + + + + AVAILTUNES AVAILTUNES[doc] = "The list of defined CPU and Application Binary Interface (ABI) tunings (i.e. "tunes") available for use by the OpenEmbedded build system." - The list of defined CPU and Application Binary Interface (ABI) tunings (i.e. "tunes") available for use by the OpenEmbedded build system. @@ -536,7 +542,6 @@ - The directory within the Build Directory in which the OpenEmbedded build system places generated @@ -566,7 +571,6 @@ - Lists "recommended-only" packages to not install. Recommended-only packages are packages installed only through the @@ -621,7 +625,6 @@ - The library directory name for the CPU or Application Binary Interface (ABI) tune. The BASE_LIB applies only in the @@ -647,7 +650,6 @@ - Points to the base of the work directory for all recipes. The default value is "${TMPDIR}/work". @@ -727,7 +729,6 @@ - Defines how BitBake handles situations where an append file (.bbappend) has no corresponding recipe file (.bb). @@ -765,7 +766,6 @@ - Monitors disk space and available inodes during the build and allows you to control the build based on these parameters. @@ -863,7 +863,6 @@ - Defines the disk space and free inode warning intervals. To set these intervals, define the variable in your conf/local.conf file in the @@ -931,20 +930,20 @@ BB_GENERATE_MIRROR_TARBALLS - BB_GENERATE_MIRROR_TARBALLS[doc] = "Causes tarballs of the Git repositories to be placed in the DL_DIR directory." + BB_GENERATE_MIRROR_TARBALLS[doc] = "Causes tarballs of the source control repositories to be placed in the DL_DIR directory." - - Causes tarballs of the Git repositories, including the - Git metadata, to be placed in the + Causes tarballs of the source control repositories + (e.g. Git repositories), including metadata, to be placed + in the DL_DIR directory. For performance reasons, creating and placing tarballs of - the Git repositories is not the default action by the + these repositories is not the default action by the OpenEmbedded build system. BB_GENERATE_MIRROR_TARBALLS = "1" @@ -953,6 +952,13 @@ file in the Build Directory. + + + Once you have the tarballs containing your source files, + you can clean up your DL_DIR + directory by deleting any Git or other source control + work directories. + @@ -962,7 +968,6 @@ - The maximum number of tasks BitBake should run in parallel at any one time. The OpenEmbedded build system automatically configures @@ -998,7 +1003,6 @@ - Specifies the time (in seconds) after which to unload the BitBake server due to inactivity. Set BB_SERVER_TIMEOUT to determine how @@ -1024,7 +1028,6 @@ - Allows you to extend a recipe so that it builds variants of the software. Common variants for recipes exist such as "natives" like quilt-native, which is a copy of Quilt built to run on the build system; @@ -1075,7 +1078,6 @@ - Lists the names of configured layers. These names are used to find the other BBFILE_* variables. @@ -1091,7 +1093,6 @@ - Variable that expands to match files from BBFILES in a particular layer. @@ -1108,7 +1109,6 @@ - Assigns the priority for recipe files in each layer. @@ -1151,7 +1151,6 @@ - A space-separated list of recipe files BitBake uses to build software. @@ -1173,7 +1172,6 @@ - Activates content when identified layers are present. You identify the layers by the collections that the layers define. @@ -1220,7 +1218,6 @@ - Variable that controls how BitBake displays logs on build failure. @@ -1232,7 +1229,6 @@ - If BBINCLUDELOGS is set, specifies the maximum number of lines from the @@ -1249,7 +1245,6 @@ - Lists the layers to enable during the build. This variable is defined in the bblayers.conf configuration file in the @@ -1278,7 +1273,6 @@ - Prevents BitBake from processing recipes and recipe append files. @@ -1336,13 +1330,12 @@ BBMULTICONFIG - BBMULTICONFIG[doc] = "Specifies each separate configuration when you are building targets with multiple configurations." + BBMULTICONFIG[doc] = "Specifies each additional separate configuration when you are building targets with multiple configurations." - - Specifies each separate configuration when you are - building targets with multiple configurations. + Specifies each additional separate configuration when you + are building targets with multiple configurations. Use this variable in your conf/local.conf configuration file. Specify a multiconfigname for @@ -1376,7 +1369,6 @@ - Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the @@ -1405,7 +1397,6 @@ - If defined in the BitBake environment, BBSERVER points to the BitBake remote server. @@ -1415,7 +1406,7 @@ Use the following format to export the variable to the BitBake environment: - export BBSERVER=localhost:$port" + export BBSERVER=localhost:$port @@ -1434,7 +1425,6 @@ - When inheriting the binconfig-disabled class, this variable specifies binary configuration @@ -1462,7 +1452,6 @@ - When inheriting the binconfig class, this variable specifies a wildcard for @@ -1501,7 +1490,6 @@ - The base recipe name and version but without any special recipe name suffix (i.e. -native, lib64-, and so forth). @@ -1519,7 +1507,6 @@ - This variable is a version of the PN variable with common prefixes and suffixes @@ -1544,7 +1531,6 @@ - Specifies a URL for an upstream bug tracking website for a recipe. The OpenEmbedded build system does not use this variable. @@ -1560,7 +1546,6 @@ - Specifies the architecture of the build host (e.g. i686). The OpenEmbedded build system sets the value of @@ -1576,7 +1561,6 @@ - Specifies the architecture-specific assembler flags for the build host. By default, the value of BUILD_AS_ARCH is empty. @@ -1590,7 +1574,6 @@ - Specifies the architecture-specific C compiler flags for the build host. By default, the value of BUILD_CC_ARCH is empty. @@ -1604,7 +1587,6 @@ - Specifies the linker command to be used for the build host when the C compiler is being used as the linker. By default, BUILD_CCLD points to GCC and passes as @@ -1621,7 +1603,6 @@ - Specifies the flags to pass to the C compiler when building for the build host. When building in the -native context, @@ -1637,7 +1618,6 @@ - Specifies the flags to pass to the C preprocessor (i.e. to both the C and the C++ compilers) when building for the build host. @@ -1654,7 +1634,6 @@ - Specifies the flags to pass to the C++ compiler when building for the build host. When building in the -native context, @@ -1670,7 +1649,6 @@ - Specifies the Fortran compiler command for the build host. By default, BUILD_FC points to Gfortran and passes as arguments the value of @@ -1686,7 +1664,6 @@ - Specifies the linker command for the build host. By default, BUILD_LD points to the GNU linker (ld) and passes as arguments the value of @@ -1702,7 +1679,6 @@ - Specifies architecture-specific linker flags for the build host. By default, the value of BUILD_LD_ARCH is empty. @@ -1716,7 +1692,6 @@ - Specifies the flags to pass to the linker when building for the build host. When building in the -native context, @@ -1732,7 +1707,6 @@ - Specifies the optimization flags passed to the C compiler when building for the build host or the SDK. The flags are passed through the @@ -1756,7 +1730,6 @@ - Specifies the operating system in use on the build host (e.g. "linux"). The OpenEmbedded build system sets the value of @@ -1773,7 +1746,6 @@ - The toolchain binary prefix used for native recipes. The OpenEmbedded build system uses the BUILD_PREFIX value to set the @@ -1789,7 +1761,6 @@ - Specifies the command to be used to strip debugging symbols from binaries produced for the build host. By default, BUILD_STRIP points to @@ -1804,7 +1775,6 @@ - Specifies the system, including the architecture and the operating system, to use when building for the build host (i.e. when building native @@ -1830,7 +1800,6 @@ - Specifies the vendor name to use when building for the build host. The default value is an empty string (""). @@ -1844,7 +1813,6 @@ - Points to the location of the Build Directory. You can define this directory indirectly through the @@ -1864,7 +1832,6 @@ - When inheriting the buildhistory class, this variable specifies whether or not to commit the @@ -1896,7 +1863,6 @@ - When inheriting the buildhistory class, this variable specifies the author to use for each @@ -1931,7 +1897,6 @@ - When inheriting the buildhistory class, this variable specifies the directory in which @@ -1956,7 +1921,6 @@ - When inheriting the buildhistory class, this variable specifies the build history features @@ -2009,7 +1973,6 @@ - When inheriting the buildhistory class, this variable specifies a list of paths to files @@ -2042,7 +2005,6 @@ - When inheriting the buildhistory class, this variable optionally specifies a remote @@ -2077,7 +2039,6 @@ - Specifies the flags to pass to the C compiler when building for the SDK. When building in the nativesdk- @@ -2094,7 +2055,6 @@ - Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers) when building for the SDK. @@ -2112,7 +2072,6 @@ - Specifies the flags to pass to the C++ compiler when building for the SDK. When building in the nativesdk- @@ -2129,7 +2088,6 @@ - Specifies the flags to pass to the linker when building for the SDK. When building in the nativesdk- @@ -2146,7 +2104,6 @@ - Points to the location of the directory that holds build statistics when you use and enable the buildstats @@ -2164,7 +2121,6 @@ - For the BusyBox recipe, specifies whether to split the output executable file into two parts: one for features that require setuid root, and one for @@ -2174,9 +2130,10 @@ The BUSYBOX_SPLIT_SUID variable - defaults to "1", which results in a single output + defaults to "1", which results in splitting the output executable file. - Set the variable to "0" to split the output file. + Set the variable to "0" to get a single output executable + file. @@ -2191,7 +2148,6 @@ - Specifies the directory BitBake uses to store a cache of the Metadata @@ -2207,7 +2163,6 @@ - The minimal command and arguments used to run the C compiler. @@ -2220,7 +2175,6 @@ - Specifies the flags to pass to the C compiler. This variable is exported to an environment variable and thus made visible to the software being @@ -2256,7 +2210,6 @@ - An internal variable specifying the special class override that should currently apply (e.g. "class-target", "class-native", and so forth). @@ -2300,7 +2253,6 @@ - If set to "1" within a recipe, CLEANBROKEN specifies that the make clean command does @@ -2319,7 +2271,6 @@ - Provides a list of hardware features that are enabled in both MACHINE_FEATURES @@ -2342,7 +2293,6 @@ - Points to meta/files/common-licenses in the Source Directory, @@ -2357,7 +2307,6 @@ - A regular expression that resolves to one or more hosts (when the recipe is native) or one or more targets (when the recipe is non-native) with which a recipe is compatible. @@ -2380,7 +2329,6 @@ - A regular expression that resolves to one or more target machines with which a recipe is compatible. The regular expression is matched against @@ -2401,7 +2349,6 @@ - Defines wildcards to match when installing a list of complementary packages for all the packages explicitly (or implicitly) installed in an image. @@ -2440,7 +2387,6 @@ - Stores sysroot components for each recipe. The OpenEmbedded build system uses COMPONENTS_DIR when constructing @@ -2461,7 +2407,6 @@ - Tracks the version of the local configuration file (i.e. local.conf). The value for CONF_VERSION @@ -2477,7 +2422,6 @@ - Identifies editable or configurable files that are part of a package. If the Package Management System (PMS) is being used to update packages on the target system, it is possible that @@ -2531,7 +2475,6 @@ - Identifies the initial RAM filesystem (initramfs) source files. The OpenEmbedded build system receives and uses @@ -2574,7 +2517,6 @@ - A list of files that contains autoconf test results relevant to the current build. This variable is used by the Autotools utilities when running @@ -2589,7 +2531,6 @@ - The minimal arguments for GNU configure. @@ -2601,7 +2542,6 @@ - When inheriting the distro_features_check class, this @@ -2624,7 +2564,6 @@ - A space-separated list of licenses to exclude from the source archived by the archiver @@ -2656,7 +2595,6 @@ - A space-separated list of licenses to include in the source archived by the archiver @@ -2684,7 +2622,6 @@ - A list of recipes to exclude in the source archived by the archiver @@ -2716,7 +2653,6 @@ - A list of recipes to include in the source archived by the archiver @@ -2748,7 +2684,6 @@ - A space-separated list of recipe types to include in the source archived by the archiver @@ -2778,7 +2713,6 @@ - If set to "1" along with the COPY_LIC_MANIFEST variable, the OpenEmbedded build system copies @@ -2810,7 +2744,6 @@ - If set to "1", the OpenEmbedded build system copies the license manifest for the image to /usr/share/common-licenses/license.manifest @@ -2838,7 +2771,6 @@ - Specifies the list of packages to be added to the image. You should only set this variable in the local.conf configuration file found @@ -2858,7 +2790,6 @@ - Specifies the parent directory of the OpenEmbedded-Core Metadata layer (i.e. meta). @@ -2884,7 +2815,6 @@ - Lists files from the COREBASE directory that should be copied other than the layers @@ -2913,7 +2843,6 @@ - The minimal command and arguments used to run the C preprocessor. @@ -2926,7 +2855,6 @@ - Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers). This variable is exported to an environment @@ -2963,7 +2891,6 @@ - The toolchain binary prefix for the target tools. The CROSS_COMPILE variable is the same as the @@ -2985,7 +2912,6 @@ - The directory in which files checked out under the CVS system are stored. @@ -2998,7 +2924,6 @@ - The minimal command and arguments used to run the C++ compiler. @@ -3011,7 +2936,6 @@ - Specifies the flags to pass to the C++ compiler. This variable is exported to an environment variable and thus made visible to the software being @@ -3051,7 +2975,6 @@ - The destination directory. The location in the Build Directory @@ -3077,7 +3000,6 @@ - The date the build was started. Dates appear using the year, month, and day (YMD) format (e.g. "20150209" for February 9th, 2015). @@ -3091,7 +3013,6 @@ - The date and time on which the current build started. The format is suitable for timestamps. @@ -3104,7 +3025,6 @@ - When the debian class is inherited, which is the default behavior, @@ -3128,7 +3048,6 @@ - When the debian class is inherited, which is the default behavior, @@ -3152,7 +3071,6 @@ - Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION @@ -3167,7 +3085,6 @@ - The options to pass in TARGET_CFLAGS and CFLAGS when compiling @@ -3183,7 +3100,6 @@ - Specifies a weak bias for recipe selection priority. @@ -3213,7 +3129,6 @@ - The default CPU and Application Binary Interface (ABI) tunings (i.e. the "tune") used by the OpenEmbedded build system. @@ -3238,7 +3153,6 @@ - Lists a recipe's build-time dependencies. These are dependencies on other recipes whose contents (e.g. headers and shared libraries) are needed @@ -3361,7 +3275,6 @@ - Points to the general area that the OpenEmbedded build system uses to place images, packages, SDKs, and other output files that are ready to be used outside of the build system. @@ -3393,7 +3306,6 @@ - Points to the area that the OpenEmbedded build system uses to place Debian packages that are ready to be used outside of the build system. @@ -3433,7 +3345,6 @@ - Points to the area that the OpenEmbedded build system uses to place images and other associated output files that are ready to be deployed onto the target machine. @@ -3466,7 +3377,6 @@ - Points to the area that the OpenEmbedded build system uses to place IPK packages that are ready to be used outside of the build system. @@ -3505,7 +3415,6 @@ - Points to the area that the OpenEmbedded build system uses to place RPM packages that are ready to be used outside of the build system. @@ -3544,7 +3453,6 @@ - Points to the area that the OpenEmbedded build system uses to place tarballs that are ready to be used outside of the build system. @@ -3583,7 +3491,6 @@ - When inheriting the deploy class, the DEPLOYDIR points to a @@ -3611,7 +3518,6 @@ - The package description used by package managers. If not set, DESCRIPTION takes the value of the @@ -3621,67 +3527,12 @@ - DISK_SIGNATURE - - DISK_SIGNATURE[doc] = "A 32-bit MBR disk signature used by directdisk images." - - - - - A 32-bit MBR disk signature used by - directdisk images. - - - - By default, the signature is set to an automatically - generated random value that allows the OpenEmbedded - build system to create a boot loader. - You can override the signature in the image recipe - by setting DISK_SIGNATURE to an - 8-digit hex string. - You might want to override - DISK_SIGNATURE if you want the disk - signature to remain constant between image builds. - - - - When using Linux 3.8 or later, you can use - DISK_SIGNATURE to specify the root - by UUID to allow the kernel to locate the root device - even if the device name changes due to differences in - hardware configuration. - By default, ROOT_VM is set - as follows: - - ROOT_VM ?= "root=/dev/sda2" - - However, you can change this to locate the root device - using the disk signature instead: - - ROOT_VM = "root=PARTUUID=${DISK_SIGNATURE}-02" - - - - - As previously mentioned, it is possible to set the - DISK_SIGNATURE variable in your - local.conf file to a fixed - value if you do not want syslinux.cfg - changing for each build. - You might find this useful when you want to upgrade the - root filesystem on a device without having to recreate or - modify the master boot record. - - - - DISTRO DISTRO[doc] = "The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used." - The short name of the distribution. For information on the long name of the distribution, see the @@ -3734,7 +3585,6 @@ - Specifies a codename for the distribution being built. @@ -3746,7 +3596,6 @@ - Specifies a list of distro-specific packages to add to all images. This variable takes affect through packagegroup-base so the @@ -3766,7 +3615,6 @@ - Specifies a list of distro-specific packages to add to all images if the packages exist. The packages might not exist or be empty (e.g. kernel modules). @@ -3782,7 +3630,6 @@ - The software support you want in your distribution for various features. You define your distribution features in the distribution @@ -3819,7 +3666,6 @@ - Features to be added to DISTRO_FEATURES if not also present in @@ -3831,7 +3677,7 @@ It is not intended to be user-configurable. It is best to just reference the variable to see which distro features are being backfilled for all distro configurations. - See the Feature Backfilling section for + See the "Feature Backfilling" section for more information. @@ -3843,7 +3689,6 @@ - Features from DISTRO_FEATURES_BACKFILL that should not be backfilled (i.e. added to @@ -3861,7 +3706,6 @@ - A convenience variable that gives you the default list of distro features with the exception of any features specific to the C library @@ -3877,7 +3721,7 @@ DISTRO_FEATURES_DEFAULT from a custom distro configuration file: - DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} myfeature" + DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} myfeature" @@ -3889,7 +3733,6 @@ - Specifies a list of features that if present in the target DISTRO_FEATURES @@ -3910,7 +3753,6 @@ - Specifies a list of features that if present in the target DISTRO_FEATURES value should be included in @@ -3924,13 +3766,13 @@ + A convenience variable that specifies the list of distro features that are specific to the C library (libc). @@ -3940,6 +3782,7 @@ +--> DISTRO_FEATURES_NATIVE @@ -3947,7 +3790,6 @@ - Specifies a list of features that should be included in DISTRO_FEATURES when building native recipes. @@ -3965,7 +3807,6 @@ - Specifies a list of features that should be included in DISTRO_FEATURES when building nativesdk recipes. @@ -3983,7 +3824,6 @@ - The long name of the distribution. For information on the short name of the distribution, see the @@ -4035,7 +3875,6 @@ - The version of the distribution. @@ -4047,7 +3886,6 @@ - A colon-separated list of overrides specific to the current distribution. By default, this list includes the value of @@ -4075,7 +3913,6 @@ - The central download directory used by the build process to store downloads. By default, DL_DIR gets files @@ -4138,7 +3975,6 @@ - When inheriting the compress_doc class, this variable sets the compression policy used when @@ -4166,7 +4002,6 @@ - When building bootable images (i.e. where hddimg, iso, or wic.vmdk is in @@ -4193,7 +4028,6 @@ - Variable that controls which locales for glibc are generated during the build (useful if the target device has 64Mbytes @@ -4208,7 +4042,6 @@ - When used with the report-error class, specifies the path used for storing the debug files @@ -4237,7 +4070,6 @@ - Specifies the quality assurance checks whose failures are reported as errors by the OpenEmbedded build system. You set this variable in your distribution configuration @@ -4256,7 +4088,6 @@ - Triggers the OpenEmbedded build system's shared libraries resolver to exclude an entire package when scanning for shared libraries. @@ -4295,7 +4126,6 @@ - Directs BitBake to exclude a recipe from world builds (i.e. bitbake world). During world builds, BitBake locates, parses and builds all @@ -4325,7 +4155,6 @@ - Used with file and pathnames to create a prefix for a recipe's version based on the recipe's PE value. @@ -4347,7 +4176,6 @@ - The full package version specification as it appears on the final packages produced by a recipe. The variable's value is normally used to fix a runtime @@ -4372,7 +4200,6 @@ - When set, the EXTERNAL_KERNEL_TOOLS variable indicates that these tools are not in the source tree. @@ -4398,7 +4225,6 @@ - When inheriting the externalsrc class, this variable points to the source tree, which is @@ -4428,7 +4254,6 @@ - When inheriting the externalsrc class, this variable points to the directory in which the @@ -4459,7 +4284,6 @@ - For recipes inheriting the autotools class, you can use EXTRA_AUTORECONF to @@ -4482,7 +4306,6 @@ - A list of additional features to include in an image. When listing more than one feature, separate them with a space. @@ -4563,7 +4386,6 @@ - Specifies additional options for the image creation command that has been specified in IMAGE_CMD. @@ -4583,7 +4405,6 @@ - A list of recipes to build that do not provide packages for installing into the root filesystem. @@ -4611,7 +4432,6 @@ - A list of subdirectories of ${STAGING_BINDIR_NATIVE} added to the beginning of the environment variable @@ -4632,7 +4452,6 @@ - Additional CMake options. @@ -4649,7 +4468,6 @@ - Additional configure script options. See PACKAGECONFIG_CONFARGS @@ -4665,7 +4483,6 @@ - Additional GNU make options. @@ -4692,7 +4509,6 @@ - When inheriting the scons class, this variable specifies additional configuration @@ -4708,7 +4524,6 @@ - When inheriting the extrausers class, this variable provides image level user and group @@ -4750,7 +4565,6 @@ - Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES. @@ -4785,7 +4599,6 @@ - Points to the base URL of the server and location within the document-root that provides the metadata and packages required by OPKG to support runtime package @@ -4816,7 +4629,6 @@ - The list of files and directories that are placed in a package. The @@ -4887,7 +4699,6 @@ - Defines the file specification to match SOLIBSDEV. In other words, FILES_SOLIBSDEV @@ -4911,7 +4722,6 @@ - Extends the search path the OpenEmbedded build system uses when looking for files and patches as it processes recipes and append files. @@ -5008,13 +4818,20 @@ - A subset of OVERRIDES used by the OpenEmbedded build system for creating FILESPATH. - You can find more information on how overrides are handled - in the - BitBake User Manual. + The FILESOVERRIDES variable uses + overrides to automatically extend the + FILESPATH + variable. + For an example of how that works, see the + FILESPATH + variable description. + Additionally, you find more information on how overrides + are handled in the + "Conditional Syntax (Overrides)" + section of the BitBake User Manual. @@ -5040,12 +4857,14 @@ - - The default set of directories the OpenEmbedded build system - uses when searching for patches and files. - During the build process, BitBake searches each directory in - FILESPATH in the specified order when - looking for files and patches specified by each + The default set of directories the OpenEmbedded build + system uses when searching for patches and files. + + + + During the build process, BitBake searches each directory + in FILESPATH in the specified order + when looking for files and patches specified by each file:// URI in a recipe's SRC_URI statements. @@ -5060,23 +4879,62 @@ FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", \ "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}" - - Do not hand-edit the FILESPATH - variable. - If you want the build system to look in directories - other than the defaults, extend the - FILESPATH variable by using the - FILESEXTRAPATHS - variable. + The FILESPATH variable is automatically + extended using the overrides from the + FILESOVERRIDES + variable. + Notes + + + Do not hand-edit the + FILESPATH variable. + If you want the build system to look in + directories other than the defaults, extend the + FILESPATH variable by + using the + FILESEXTRAPATHS + variable. + + + Be aware that the default + FILESPATH directories do + not map to directories in custom layers + where append files + (.bbappend) are used. + If you want the build system to find patches + or files that reside with your append files, + you need to extend the + FILESPATH variable by + using the FILESEXTRAPATHS + variable. + + - Be aware that the default FILESPATH - directories do not map to directories in custom layers - where append files (.bbappend) - are used. - If you want the build system to find patches or files - that reside with your append files, you need to extend - the FILESPATH variable by using - the FILESEXTRAPATHS variable. + + + + You can take advantage of this searching behavior in + useful ways. + For example, consider a case where the following + directory structure exists for general and machine-specific + configurations: + + files/defconfig + files/MACHINEA/defconfig + files/MACHINEB/defconfig + + Also in the example, the SRC_URI + statement contains "file://defconfig". + Given this scenario, you can set + MACHINE + to "MACHINEA" and cause the build system to use files + from files/MACHINEA. + Set MACHINE to "MACHINEB" and the + build system uses files from + files/MACHINEB. + Finally, for any machine other than "MACHINEA" and + "MACHINEB", the build system uses files from + files/defconfig. @@ -5099,7 +4957,6 @@ - Allows you to define your own file permissions settings table as part of your configuration for the packaging process. For example, suppose you need a consistent set of custom permissions for @@ -5139,7 +4996,6 @@ - When inheriting the fontcache class, this variable specifies the runtime dependencies @@ -5156,7 +5012,6 @@ - When inheriting the fontcache class, this variable identifies packages containing font @@ -5176,7 +5031,6 @@ - Forces the removal of the packages listed in ROOTFS_RO_UNNEEDED during the generation of the root filesystem. @@ -5195,7 +5049,6 @@ - The options to pass in TARGET_CFLAGS and CFLAGS @@ -5215,7 +5068,6 @@ - Enables Position Independent Executables (PIE) within the GNU C Compiler (GCC). Enabling PIE in the GCC makes Return Oriented Programming @@ -5239,7 +5091,6 @@ - Specifies the default version of the GNU C Compiler (GCC) used for compilation. By default, GCCVERSION is set to @@ -5261,7 +5112,6 @@ - The minimal command and arguments to run the GNU Debugger. @@ -5273,7 +5123,6 @@ - The directory in which a local copy of a Git repository is stored when it is cloned. @@ -5286,7 +5135,6 @@ - Specifies the list of GLIBC locales to generate should you not wish to generate all LIBC locals, which can be time consuming. @@ -5315,7 +5163,6 @@ - When inheriting the useradd class, this variable @@ -5344,7 +5191,6 @@ - When inheriting the useradd class, this variable @@ -5368,7 +5214,6 @@ - Configures the GNU GRand Unified Bootloader (GRUB) to have graphics and serial in the boot menu. Set this variable to "1" in your @@ -5391,7 +5236,6 @@ - Additional options to add to the GNU GRand Unified Bootloader (GRUB) configuration. Use a semi-colon character (;) to @@ -5413,7 +5257,6 @@ - Specifies the timeout before executing the default LABEL in the GNU GRand Unified Bootloader (GRUB). @@ -5434,7 +5277,6 @@ - When inheriting the gtk-immodules-cache class, this variable specifies the packages that contain the @@ -5454,7 +5296,6 @@ - Website where more information about the software the recipe is building can be found. @@ -5468,7 +5309,6 @@ - The name of the target architecture, which is normally the same as TARGET_ARCH. @@ -5496,7 +5336,6 @@ - Specifies architecture-specific compiler flags that are passed to the C compiler. @@ -5530,7 +5369,6 @@ - Specifies the name of the target operating system, which is normally the same as the TARGET_OS. @@ -5548,7 +5386,6 @@ - Specifies the prefix for the cross-compile toolchain. HOST_PREFIX is normally the same as TARGET_PREFIX. @@ -5562,7 +5399,6 @@ - Specifies the system, including the architecture and the operating system, for which the build is occurring in the context of the current recipe. @@ -5603,7 +5439,6 @@ - A space-separated list (filter) of tools on the build host that should be allowed to be called from within build tasks. Using this filter helps reduce the possibility of host @@ -5627,7 +5462,6 @@ - A space-separated list (filter) of tools on the build host that should be allowed to be called from within build tasks. Using this filter helps reduce the possibility of host @@ -5650,7 +5484,6 @@ - Specifies the name of the vendor. HOST_VENDOR is normally the same as TARGET_VENDOR. @@ -5668,7 +5501,6 @@ - Disables or enables the icecc (Icecream) function. For more information on this function and best practices @@ -5697,7 +5529,6 @@ - Points to the icecc-create-env script that you provide. This variable is used by the @@ -5723,7 +5554,6 @@ - Extra options passed to the make command during the do_compile @@ -5769,7 +5599,6 @@ - The location of the icecc binary. You can set this variable in your local.conf file. @@ -5788,7 +5617,6 @@ - Identifies user classes that you do not want the Icecream distributed compile support to consider. This variable is used by the @@ -5814,7 +5642,6 @@ - Identifies user recipes that you do not want the Icecream distributed compile support to consider. This variable is used by the @@ -5840,7 +5667,6 @@ - Identifies user recipes that use an empty PARALLEL_MAKE variable that you want to force remote distributed @@ -5861,7 +5687,6 @@ - The base name of image output files. This variable defaults to the recipe name (${PN}). @@ -5875,7 +5700,6 @@ - A space-separated list of files installed into the boot partition when preparing an image using the Wic tool with the bootimg-partition source @@ -5932,7 +5756,6 @@ - A list of classes that all images should inherit. You typically use this variable to specify the list of classes that register the different types of images @@ -5961,7 +5784,6 @@ - Specifies the command to create the image file for a specific image type, which corresponds to the value set set in @@ -5995,7 +5817,6 @@ - Specifies one or more files that contain custom device tables that are passed to the makedevs command as part of creating @@ -6019,7 +5840,6 @@ - The primary list of features to include in an image. Typically, you configure this variable in an image recipe. Although you can use this variable from your @@ -6055,7 +5875,6 @@ - Specifies the formats the OpenEmbedded build system uses during the build when creating the root filesystem. For example, setting IMAGE_FSTYPES @@ -6076,11 +5895,12 @@ Notes - If you add "live" to - IMAGE_FSTYPES inside an image - recipe, be sure that you do so prior to the - "inherit image" line of the recipe or the live - image will not build. + If an image recipe uses the "inherit image" line + and you are setting + IMAGE_FSTYPES inside the + recipe, you must set + IMAGE_FSTYPES prior to + using the "inherit image" line. Due to the way the OpenEmbedded build system @@ -6102,7 +5922,6 @@ - Used by recipes to specify the packages to install into an image through the image @@ -6188,7 +6007,6 @@ - Specifies the list of locales to install into the image during the root filesystem construction process. The OpenEmbedded build system automatically splits locale @@ -6230,7 +6048,6 @@ - The manifest file for the image. This file lists all the installed packages that make up the image. @@ -6267,7 +6084,6 @@ - The name of the output image files minus the extension. This variable is derived using the IMAGE_BASENAME, @@ -6288,7 +6104,6 @@ - Defines a multiplier that the build system applies to the initial image size for cases when the multiplier times the returned disk usage value for the image is greater than the sum of @@ -6334,7 +6149,6 @@ - Defines the package type (i.e. DEB, RPM, IPK, or TAR) used by the OpenEmbedded build system. The variable is defined appropriately by the @@ -6386,7 +6200,6 @@ - Specifies a list of functions to call once the OpenEmbedded build system creates the final image output files. @@ -6414,7 +6227,6 @@ - Specifies a list of functions to call before the OpenEmbedded build system creates the final image output files. @@ -6442,7 +6254,6 @@ - The location of the root filesystem while it is under construction (i.e. during the do_rootfs @@ -6459,7 +6270,6 @@ - Specifies the alignment for the output image file in Kbytes. If the size of the image is not a multiple of @@ -6479,7 +6289,6 @@ - Defines additional free disk space created in the image in Kbytes. By default, this variable is set to "0". This free disk space is added to the image after the build system determines @@ -6514,7 +6323,6 @@ - Defines the size in Kbytes for the generated image. The OpenEmbedded build system determines the final size for the generated image using an algorithm that takes into account the initial disk space used @@ -6564,7 +6372,6 @@ - Specifies a dependency from one image type on another. Here is an example from the image-live @@ -6594,18 +6401,17 @@ - Specifies the complete list of supported image types by default: btrfs + container cpio cpio.gz cpio.lz4 cpio.lzma cpio.xz cramfs - elf ext2 ext2.bz2 ext2.gz @@ -6614,13 +6420,14 @@ ext3.gz ext4 ext4.gz - hdddirect + f2fs hddimg iso jffs2 jffs2.sum multiubi squashfs + squashfs-lz4 squashfs-lzo squashfs-xz tar @@ -6628,6 +6435,7 @@ tar.gz tar.lz4 tar.xz + tar.zst ubi ubifs wic @@ -6652,7 +6460,6 @@ - Helps define the recipe revision for recipes that share a common include file. You can think of this variable as part of the recipe revision @@ -6718,7 +6525,6 @@ - Specifies a space-separated list of license names (as they would appear in LICENSE) @@ -6740,6 +6546,25 @@ components that are required to produce a functional system image. + + Tips + It is possible to define a list of licenses that are allowed + to be used instead of the licenses that are excluded. To do + this, define a + variable COMPATIBLE_LICENSES with the + names of the licences that are allowed. Then + define INCOMPATIBLE_LICENSE as: + + INCOMPATIBLE_LICENSE = "${@' '.join(sorted(set(d.getVar('AVAILABLE_LICENSES').split()) - set(d.getVar('COMPATIBLE_LICENSES').split())))}" + + This will result + in INCOMPATIBLE_LICENSE containing the + names of all licences + from AVAILABLE_LICENSES + except the ones specified + in COMPATIBLE_LICENSES, thus only + allowing the latter licences to be used. + @@ -6749,7 +6574,6 @@ - Causes the named class or classes to be inherited globally. Anonymous functions in the class or classes are not executed for the @@ -6773,7 +6597,6 @@ - Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable. @@ -6796,7 +6619,6 @@ - Prevents the default dependencies, namely the C compiler and standard C library (libc), from being added to DEPENDS. @@ -6817,7 +6639,6 @@ - Prevents the OpenEmbedded build system from splitting out debug information during packaging. By default, the build system splits out debugging @@ -6848,7 +6669,6 @@ - If set to "1", causes the build to not strip binaries in resulting packages and prevents the -dbg package from containing the @@ -6866,13 +6686,49 @@ + INHIBIT_SYSROOT_STRIP + + INHIBIT_SYSROOT_STRIP[doc] = "If set to "1", causes the build to not strip binaries in the resulting sysroot." + + + + If set to "1", causes the build to not strip binaries in + the resulting sysroot. + + + + By default, the OpenEmbedded build system strips + binaries in the resulting sysroot. + When you specifically set the + INHIBIT_SYSROOT_STRIP variable to + "1" in your recipe, you inhibit this stripping. + + + + If you want to use this variable, include the + staging + class. + This class uses a sys_strip() + function to test for the variable and acts accordingly. + + Use of the INHIBIT_SYSROOT_STRIP + variable occurs in rare and special circumstances. + For example, suppose you are building bare-metal + firmware by using an external GCC toolchain. + Furthermore, even if the toolchain's binaries are + strippable, other files exist that are needed for the + build that are not strippable. + + + + + INITRAMFS_FSTYPES INITRAMFS_FSTYPES[doc] = "Defines the format for the output image of an initial RAM filesystem (initramfs), which is used during boot." - Defines the format for the output image of an initial RAM filesystem (initramfs), which is used during boot. Supported formats are the same as those supported by the @@ -6901,7 +6757,6 @@ - Specifies the PROVIDES name of an image recipe that is used to build an initial @@ -6969,7 +6824,6 @@ - Controls whether or not the image recipe specified by INITRAMFS_IMAGE is run through an extra pass @@ -7035,7 +6889,6 @@ - The link name of the initial RAM filesystem image. This variable is set in the meta/classes/kernel-artifact-names.bbclass @@ -7065,7 +6918,6 @@ - The base name of the initial RAM filesystem image. This variable is set in the meta/classes/kernel-artifact-names.bbclass @@ -7090,7 +6942,6 @@ - Indicates list of filesystem images to concatenate and use as an initial RAM disk (initrd). @@ -7110,7 +6961,6 @@ - When building a "live" bootable image (i.e. when IMAGE_FSTYPES contains "live"), INITRD_IMAGE @@ -7133,7 +6983,6 @@ - The filename of the initialization script as installed to ${sysconfdir}/init.d. @@ -7151,7 +7000,6 @@ - A list of the packages that contain initscripts. If multiple packages are specified, you need to append the package name to the other INITSCRIPT_* as an override. @@ -7171,7 +7019,6 @@ - Specifies the options to pass to update-rc.d. Here is an example: @@ -7209,7 +7056,6 @@ - Specifies the QA checks to skip for a specific package within a recipe. For example, to skip the check for symbolic link @@ -7236,7 +7082,6 @@ - By default, the tzdata recipe packages an /etc/timezone file. Set the INSTALL_TIMEZONE_FILE @@ -7252,7 +7097,6 @@ - When the IPK backend is in use and package management is enabled on the target, you can use this variable to set up opkg in the target image @@ -7312,7 +7156,6 @@ - Defines the kernel architecture used when assembling the configuration. Architectures supported for this release are: @@ -7339,7 +7182,6 @@ - A regular expression used by the build process to explicitly identify the kernel branch that is validated, patched, and configured during a build. @@ -7380,7 +7222,6 @@ KBRANCH_genericx86-64 = "standard/base" KBRANCH_edgerouter = "standard/edgerouter" KBRANCH_beaglebone = "standard/beaglebone" - KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb" The KBRANCH statements identify the kernel branch to use when building for each @@ -7395,7 +7236,6 @@ - When used with the kernel-yocto class, specifies an "in-tree" kernel configuration file @@ -7451,7 +7291,6 @@ - Specifies an alternate kernel image type for creation in addition to the kernel image type specified using the KERNEL_IMAGETYPE @@ -7466,7 +7305,6 @@ - Specifies the name of all of the build artifacts. You can change the name of the artifacts by changing the KERNEL_ARTIFACT_NAME variable. @@ -7505,7 +7343,6 @@ - A list of classes defining kernel image types that the kernel class should inherit. @@ -7526,7 +7363,6 @@ - Specifies the name of the generated Linux kernel device tree (i.e. the .dtb) file. @@ -7535,15 +7371,9 @@ However, providing just the .dtb file is preferred. - In order to use this variable, you must have the include - files in your kernel recipe: - - require recipes-kernel/linux/linux-dtb.inc - - or - - require recipes-kernel/linux/linux-yocto.inc - + In order to use this variable, the + kernel-devicetree + class must be inherited. @@ -7554,7 +7384,6 @@ - The link name of the kernel device tree binary (DTB). This variable is set in the meta/classes/kernel-artifact-names.bbclass @@ -7584,7 +7413,6 @@ - The base name of the kernel device tree binary (DTB). This variable is set in the meta/classes/kernel-artifact-names.bbclass @@ -7609,7 +7437,6 @@ - Specifies additional make command-line arguments the OpenEmbedded build system passes on when compiling the kernel. @@ -7623,7 +7450,6 @@ - Includes additional kernel metadata. In the OpenEmbedded build system, the default Board Support Packages (BSPs) @@ -7672,7 +7498,6 @@ - The link name of the kernel flattened image tree (FIT) image. This variable is set in the meta/classes/kernel-artifact-names.bbclass @@ -7702,7 +7527,6 @@ - The base name of the kernel flattened image tree (FIT) image. This variable is set in the meta/classes/kernel-artifact-names.bbclass @@ -7727,7 +7551,6 @@ - The link name for the kernel image. This variable is set in the meta/classes/kernel-artifact-names.bbclass @@ -7757,7 +7580,6 @@ - Specifies the maximum size of the kernel image file in kilobytes. If KERNEL_IMAGE_MAXSIZE is set, @@ -7788,7 +7610,6 @@ - The base name of the kernel image. This variable is set in the meta/classes/kernel-artifact-names.bbclass @@ -7813,7 +7634,6 @@ - The type of kernel to build for a device, usually set by the machine configuration files and defaults to "zImage". This variable is used @@ -7835,7 +7655,6 @@ - Lists kernel modules that need to be auto-loaded during boot. @@ -7889,7 +7708,6 @@ - Provides a list of modules for which the OpenEmbedded build system expects to find module_conf_modname @@ -7908,7 +7726,6 @@ - The location of the kernel sources. This variable is set to the value of the STAGING_KERNEL_DIR @@ -7940,7 +7757,6 @@ - The location of the kernel sources. This variable is set to the value of the STAGING_KERNEL_DIR @@ -7972,7 +7788,6 @@ - Specifies the version of the kernel as extracted from version.h or utsrelease.h within the kernel sources. @@ -7990,7 +7805,6 @@ - Specifies whether the data referenced through PKGDATA_DIR is needed or not. @@ -8012,7 +7826,6 @@ - Provides a short description of a configuration fragment. You use this variable in the .scc file that describes a configuration fragment file. @@ -8032,7 +7845,6 @@ - The machine as known by the kernel. Sometimes the machine name used by the kernel does not match the machine name used by the OpenEmbedded build @@ -8079,7 +7891,6 @@ - Defines the kernel type to be used in assembling the configuration. The linux-yocto recipes define "standard", "tiny", @@ -8109,7 +7920,6 @@ - Provides a list of targets for automatic configuration. @@ -8127,7 +7937,6 @@ - Lists the layers, separated by spaces, on which this recipe depends. Optionally, you can specify a specific layer version for a @@ -8158,7 +7967,6 @@ - When used inside the layer.conf configuration file, this variable provides the path of the current layer. This variable is not available outside of layer.conf @@ -8173,7 +7981,6 @@ - Lists the layers, separated by spaces, recommended for use with this layer. @@ -8206,7 +8013,6 @@ - Lists the versions of the OpenEmbedded-Core for which a layer is compatible. @@ -8253,7 +8059,6 @@ - Optionally specifies the version of a layer as a single number. You can use this within LAYERDEPENDS @@ -8272,7 +8077,6 @@ - The minimal command and arguments used to run the linker. @@ -8285,7 +8089,6 @@ - Specifies the flags to pass to the linker. This variable is exported to an environment variable and thus made visible to the software being @@ -8321,7 +8124,6 @@ - Specifies the lead (or primary) compiled library file (i.e. .so) that the debian @@ -8342,7 +8144,6 @@ - Checksums of the license text in the recipe source code. @@ -8371,7 +8172,6 @@ - The list of source licenses for the recipe. Follow these rules: @@ -8436,7 +8236,6 @@ - Setting LICENSE_CREATE_PACKAGE to "1" causes the OpenEmbedded build system to create an extra package (i.e. @@ -8479,7 +8278,6 @@ - Specifies additional flags for a recipe you must whitelist through LICENSE_FLAGS_WHITELIST @@ -8507,7 +8305,6 @@ - Lists license flags that when specified in LICENSE_FLAGS within a recipe should not prevent that recipe from being @@ -8527,7 +8324,6 @@ - Path to additional licenses used during the build. By default, the OpenEmbedded build system uses COMMON_LICENSE_DIR to define the directory that holds common license text used during the build. @@ -8546,7 +8342,6 @@ - Defines the kernel type to be used in assembling the configuration. The linux-yocto recipes define "standard", "tiny", and @@ -8579,7 +8374,6 @@ - The Linux version from kernel.org on which the Linux kernel image being built using the OpenEmbedded build system is based. @@ -8610,7 +8404,6 @@ - A string extension compiled into the version string of the Linux kernel built with the OpenEmbedded build system. @@ -8643,7 +8436,6 @@ - Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log. @@ -8667,7 +8459,6 @@ - Specifies the target device for which the image is built. You define MACHINE in the local.conf file found in the @@ -8704,7 +8495,6 @@ MACHINE ?= "genericx86" MACHINE ?= "genericx86-64" MACHINE ?= "beaglebone" - MACHINE ?= "mpc8315e-rdb" MACHINE ?= "edgerouter" The last five are Yocto Project reference hardware boards, which @@ -8723,7 +8513,6 @@ - Specifies the name of the machine-specific architecture. This variable is set automatically from MACHINE @@ -8741,7 +8530,6 @@ - A list of required machine-specific packages to install as part of the image being built. The build process depends on these packages being present. @@ -8778,7 +8566,6 @@ - A list of recommended machine-specific packages to install as part of the image being built. The build process does not depend on these packages being present. @@ -8842,7 +8629,6 @@ - A list of machine-specific packages to install as part of the image being built that are not essential for the machine to boot. However, the build process for more fully-featured images @@ -8888,7 +8674,6 @@ - A list of machine-specific packages to install as part of the image being built that are not essential for booting the machine. The image being built has no build dependency on this list of packages. @@ -8933,7 +8718,6 @@ - Specifies the list of hardware features the MACHINE is capable of supporting. @@ -8960,7 +8744,6 @@ - Features to be added to MACHINE_FEATURES if not also present in @@ -8984,7 +8767,6 @@ - Features from MACHINE_FEATURES_BACKFILL that should not be backfilled (i.e. added to @@ -9002,7 +8784,6 @@ - A colon-separated list of overrides that apply to the current machine. By default, this list includes the value of @@ -9043,7 +8824,6 @@ - The email address of the distribution maintainer. @@ -9055,7 +8835,6 @@ - Specifies additional paths from which the OpenEmbedded build system gets source code. When the build system searches for source code, it first @@ -9084,7 +8863,6 @@ - Specifies a prefix has been added to PN to create a special version of a recipe or package (i.e. a Multilib version). @@ -9136,7 +8914,6 @@ - This variable has been replaced by the KERNEL_MODULE_AUTOLOAD variable. You should replace all occurrences of @@ -9165,7 +8942,6 @@ - Specifies modprobe.d syntax lines for inclusion in the @@ -9226,7 +9002,6 @@ - Controls creation of the modules-*.tgz file. Set this variable to "0" to disable creation of this @@ -9242,7 +9017,6 @@ - The link name of the kernel module tarball. This variable is set in the meta/classes/kernel-artifact-names.bbclass @@ -9272,7 +9046,6 @@ - The base name of the kernel module tarball. This variable is set in the meta/classes/kernel-artifact-names.bbclass @@ -9299,7 +9072,6 @@ --> - Uniquely identifies the type of the target system for which packages are being built. This variable allows output for different types of target @@ -9365,7 +9136,6 @@ - A string identifying the host distribution. Strings consist of the host distributor ID followed by the release, as reported by the @@ -9395,7 +9165,6 @@ - The minimal command and arguments to run nm. @@ -9408,7 +9177,6 @@ - Avoids QA errors when you use a non-common, non-CLOSED license in a recipe. Packages exist, such as the linux-firmware package, with @@ -9442,7 +9210,6 @@ - Prevents installation of all "recommended-only" packages. Recommended-only packages are packages installed only through the @@ -9503,7 +9270,6 @@ - Disables auto package from splitting .debug files. If a recipe requires FILES_${PN}-dbg to be set manually, @@ -9529,7 +9295,6 @@ - The minimal command and arguments to run objcopy. @@ -9542,7 +9307,6 @@ - The minimal command and arguments to run objdump. @@ -9555,7 +9319,6 @@ - When inheriting the binconfig class, this variable @@ -9589,7 +9352,6 @@ - An internal variable used to tell the OpenEmbedded build system what Python modules to import for every Python function run by the system. @@ -9608,7 +9370,6 @@ - The name of the build environment setup script for the purposes of setting up the environment within the extensible SDK. @@ -9630,7 +9391,6 @@ - Controls how the OpenEmbedded build system spawns interactive terminals on the host development system (e.g. using the BitBake command with the @@ -9662,7 +9422,6 @@ - The directory from which the top-level build environment setup script is sourced. The Yocto Project provides a top-level build environment @@ -9686,7 +9445,6 @@ - Declares the oldest version of the Linux kernel that the produced binaries must support. This variable is passed into the build of the Embedded @@ -9709,7 +9467,6 @@ - A colon-separated list of overrides that currently apply. Overrides are a BitBake mechanism that allows variables to be selectively overridden at the end of parsing. @@ -9773,7 +9530,6 @@ - The recipe name and version. P is comprised of the following: @@ -9789,7 +9545,6 @@ - The architecture of the resulting package or packages. @@ -9825,7 +9580,6 @@ - Specifies a list of architectures compatible with the target machine. This variable is set automatically and should not @@ -9845,7 +9599,6 @@ - Enables easily adding packages to PACKAGES before ${PN} @@ -9861,7 +9614,6 @@ - This variable, which is set in the local.conf configuration file found in the conf folder of the @@ -9911,7 +9663,6 @@ - Determines how to split up the binary and debug information when creating *-dbg packages to be used with the GNU Project Debugger (GDB). @@ -9933,7 +9684,6 @@ /bin/.debug. Source files are placed in /usr/src/debug. - This is the default behavior. "debug-file-directory": Debug symbol files are @@ -9957,6 +9707,7 @@ ".debug" previously described with the exception that all source files are placed in a separate *-src pkg. + This is the default behavior. @@ -9976,7 +9727,6 @@ - Prevents specific packages from being installed when you are installing complementary packages. @@ -10002,7 +9752,6 @@ - Lists packages that should not be installed into an image. For example: @@ -10054,7 +9803,6 @@ - Specifies the list of architectures compatible with the device CPU. This variable is useful when you build for several different devices that use miscellaneous processors such as XScale and ARM926-EJS. @@ -10068,7 +9816,6 @@ - Optionally specifies the package architectures used as part of the package feed URIs during the build. When used, the PACKAGE_FEED_ARCHS @@ -10123,7 +9870,6 @@ - Specifies the base path used when constructing package feed URIs. The PACKAGE_FEED_BASE_PATHS variable @@ -10170,7 +9916,6 @@ - Specifies the front portion of the package feed URI used by the OpenEmbedded build system. Each final package feed URI is comprised of @@ -10209,35 +9954,12 @@ - PACKAGE_GROUP - - PACKAGE_GROUP[doc] = "Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES." - - - - - The PACKAGE_GROUP variable has been - renamed to - FEATURE_PACKAGES. - See the variable description for - FEATURE_PACKAGES for information. - - - - If if you use the PACKAGE_GROUP - variable, the OpenEmbedded build system issues a warning - message. - - - - PACKAGE_INSTALL PACKAGE_INSTALL[doc] = "List of the packages to be installed into the image. The variable is generally not user-defined and uses IMAGE_INSTALL as part of the list." - The final list of packages passed to the package manager for installation into the image. @@ -10272,7 +9994,6 @@ - Specifies a list of packages the OpenEmbedded build system attempts to install when creating an image. If a listed package fails to install, the build system @@ -10288,7 +10009,6 @@ - Specifies a list of functions run to pre-process the PKGD directory prior to splitting the files out to individual @@ -10303,7 +10023,6 @@ - Specifies a list of dependencies for post-installation and pre-installation scripts on native/cross tools. If your post-installation or pre-installation script can @@ -10328,18 +10047,25 @@ - This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis. PACKAGECONFIG blocks are defined in recipes when you specify features and then arguments that define feature behaviors. - Here is the basic block structure: + Here is the basic block structure (broken over multiple + lines for readability): PACKAGECONFIG ??= "f1 f2 f3 ..." - PACKAGECONFIG[f1] = "--with-f1,--without-f1,build-deps-f1,rt-deps-f1,rt-recs-f1" - PACKAGECONFIG[f2] = "--with-f2,--without-f2,build-deps-f2,rt-deps-f2,rt-recs-f2" - PACKAGECONFIG[f3] = "--with-f3,--without-f3,build-deps-f3,rt-deps-f3,rt-recs-f3" + PACKAGECONFIG[f1] = "\ + --with-f1, \ + --without-f1, \ + build-deps-for-f1, \ + runtime-deps-for-f1, \ + runtime-recommends-for-f1, \ + packageconfig-conflicts-for-f1 \ + " + PACKAGECONFIG[f2] = "\ + ... and so on and so on ... @@ -10348,7 +10074,7 @@ variable itself specifies a space-separated list of the features to enable. Following the features, you can determine the behavior of - each feature by providing up to five order-dependent + each feature by providing up to six order-dependent arguments, which are separated by commas. You can omit any argument you like but must retain the separating commas. @@ -10378,6 +10104,10 @@ (RRECOMMENDS) that should be added if the feature is enabled. + Any conflicting (that is, mutually + exclusive) PACKAGECONFIG + settings for this feature. + @@ -10385,25 +10115,23 @@ Consider the following PACKAGECONFIG block taken from the librsvg recipe. - In this example the feature is croco, + In this example the feature is gtk, which has three arguments that determine the feature's behavior. - PACKAGECONFIG ??= "croco" - PACKAGECONFIG[croco] = "--with-croco,--without-croco,libcroco" + PACKAGECONFIG[gtk] = "--with-gtk3,--without-gtk3,gtk+3" - The --with-croco and - libcroco arguments apply only if + The --with-gtk3 and + gtk+3 arguments apply only if the feature is enabled. - In this case, --with-croco is + In this case, --with-gtk3 is added to the configure script argument list and - libcroco is added to + gtk+3 is added to DEPENDS. On the other hand, if the feature is disabled say through a .bbappend file in another layer, then - the second argument --without-croco is - added to the configure script rather than - --with-croco. + the second argument --without-gtk3 is + added to the configure script instead. @@ -10457,7 +10185,6 @@ - A space-separated list of configuration options generated from the PACKAGECONFIG @@ -10488,7 +10215,6 @@ - For recipes inheriting the packagegroup class, setting @@ -10509,7 +10235,6 @@ - The list of packages the recipe creates. The default value is the following: @@ -10550,7 +10275,6 @@ - A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes. PACKAGES_DYNAMIC @@ -10593,7 +10317,6 @@ - Specifies a list of functions run to perform additional splitting of files into individual packages. Recipes can either prepend to this variable or prepend @@ -10615,7 +10338,6 @@ - Extra options passed to the make command during the do_compile @@ -10672,7 +10394,6 @@ - Extra options passed to the make install command during the do_install @@ -10709,7 +10430,6 @@ - Determines the action to take when a patch fails. You can set this variable to one of two values: "noop" and "user". @@ -10737,7 +10457,6 @@ - Specifies the utility used to apply patches for a recipe during the do_patch @@ -10768,7 +10487,6 @@ - The epoch of the recipe. By default, this variable is unset. The variable is used to make upgrades possible when the @@ -10790,7 +10508,6 @@ - Specifies the recipe or package name and includes all version and revision numbers (i.e. glibc-2.13-r20+svnr15508/ and bash-4.2-r1/). @@ -10808,7 +10525,6 @@ - When inheriting the pixbufcache class, this variable identifies packages that contain @@ -10829,7 +10545,6 @@ - The name of the resulting package created by the OpenEmbedded build system. @@ -10853,7 +10568,6 @@ - The path to pkg-config files for the current build context. pkg-config reads this variable @@ -10868,7 +10582,6 @@ - Points to the destination directory for files to be packaged before they are split into individual packages. This directory defaults to the following: @@ -10889,7 +10602,6 @@ - Points to a shared, global-state directory that holds data generated during the packaging process. During the packaging process, the @@ -10920,7 +10632,6 @@ - Points to the parent directory for files to be packaged after they have been split into individual packages. This directory defaults to the following: @@ -10944,7 +10655,6 @@ - Points to a temporary work area where the do_package task saves package metadata. @@ -10973,7 +10683,6 @@ - The epoch of the package(s) built by the recipe. By default, PKGE is set to PE. @@ -10987,7 +10696,6 @@ - The revision of the package(s) built by the recipe. By default, PKGR is set to PR. @@ -11001,7 +10709,6 @@ - The version of the package(s) built by the recipe. By default, PKGV is set to @@ -11012,11 +10719,10 @@ PN - PN[doc] = "PN refers to a recipe name in the context of a file used by the OpenEmbedded build system as input to create a package. + PN[doc] = "PN refers to a recipe name in the context of a file used by the OpenEmbedded build system as input to create a package." - This variable can have two separate functions depending on the context: a recipe name or a resulting package name. @@ -11053,7 +10759,6 @@ - Lists recipes you do not want the OpenEmbedded build system to build. This variable works in conjunction with the @@ -11080,7 +10785,6 @@ - Specifies a list of functions to call once the OpenEmbedded build system has created the host part of the SDK. @@ -11109,7 +10813,6 @@ - Specifies a list of functions to call once the OpenEmbedded build system has created the target part of the SDK. @@ -11138,7 +10841,6 @@ - The revision of the recipe. The default value for this variable is "r0". Subsequent revisions of the recipe conventionally have the @@ -11194,7 +10896,6 @@ - If multiple recipes provide the same item, this variable determines which recipe is preferred and thus provides the item (i.e. the preferred provider). @@ -11244,7 +10945,6 @@ - If multiple versions of recipes exist, this variable determines which version is given preference. You must always suffix the variable with the @@ -11264,7 +10964,7 @@ Here are two examples: PREFERRED_VERSION_python = "3.4.0" - PREFERRED_VERSION_linux-yocto = "4.12%" + PREFERRED_VERSION_linux-yocto = "5.0%" Important The use of the "%" character @@ -11310,14 +11010,14 @@ to set a machine-specific override. Here is an example: - PREFERRED_VERSION_linux-yocto_qemux86 = "4.12%" + PREFERRED_VERSION_linux-yocto_qemux86 = "5.0%" Although not recommended, worst case, you can also use the "forcevariable" override, which is the strongest override possible. Here is an example: - PREFERRED_VERSION_linux-yocto_forcevariable = "4.12%" + PREFERRED_VERSION_linux-yocto_forcevariable = "5.0%" The _forcevariable override is @@ -11336,7 +11036,6 @@ - Specifies additional paths from which the OpenEmbedded build system gets source code. When the build system searches for source code, it first @@ -11385,7 +11084,6 @@ - Indicates the importance of a package. @@ -11411,7 +11109,6 @@ - Specifies libraries installed within a recipe that should be ignored by the OpenEmbedded build system's shared library resolver. @@ -11453,29 +11150,40 @@ - A list of aliases by which a particular recipe can be known. By default, a recipe's own PN is implicitly already in its PROVIDES - list. + list and therefore does not need to mention that it provides itself. If a recipe uses PROVIDES, the additional aliases are synonyms for the recipe and can - be useful satisfying dependencies of other recipes during + be useful for satisfying dependencies of other recipes during the build as specified by DEPENDS. Consider the following example - PROVIDES statement from a recipe - file libav_0.8.11.bb: + PROVIDES statement from the recipe + file eudev_3.2.9.bb: - PROVIDES += "libpostproc" + PROVIDES = "udev" The PROVIDES statement results in - the "libav" recipe also being known as "libpostproc". + the "eudev" recipe also being available as simply "udev". + + + Given that a recipe's own recipe name is already + implicitly in its own PROVIDES list, + it is unnecessary to add aliases with the "+=" operator; + using a simple assignment will be sufficient. In other + words, while you could write: + + PROVIDES += "udev" + + in the above, the "+=" is overkill and unnecessary. + @@ -11530,7 +11238,6 @@ - The network based PR service host and port. @@ -11560,7 +11267,6 @@ - Specifies whether or not Package Test (ptest) functionality is enabled when building a recipe. @@ -11579,7 +11285,6 @@ - The version of the recipe. The version is normally extracted from the recipe filename. For example, if the recipe is named @@ -11605,7 +11310,6 @@ - When used by recipes that inherit the distutils3, setuptools3, @@ -11641,7 +11345,6 @@ - When used by recipes that inherit the distutils3, setuptools3, @@ -11649,8 +11352,7 @@ or setuptools classes, specifies the major Python version being built. - For Python 2.x, PYTHON_PN would - be "python2". For Python 3.x, the variable would be + For Python 3.x, PYTHON_PN would be "python3". You do not have to set this variable as the OpenEmbedded build system automatically sets it for you. @@ -11678,7 +11380,6 @@ - The minimal command and arguments to run ranlib. @@ -11691,7 +11392,6 @@ - The list of packages that conflict with packages. Note that packages will not be installed if conflicting packages are not first removed. @@ -11740,7 +11440,6 @@ - Lists runtime dependencies of a package. These dependencies are other packages that must be installed in order for the package to function correctly. @@ -11903,7 +11602,6 @@ - When inheriting the distro_features_check class, this @@ -11926,7 +11624,6 @@ - With rm_work enabled, this variable specifies a list of recipes whose work directories should not be removed. @@ -11942,7 +11639,6 @@ - Defines the root home directory. By default, this directory is set as follows in the BitBake configuration file: @@ -11979,7 +11675,6 @@ - Indicates a filesystem image to include as the root filesystem. @@ -11999,7 +11694,6 @@ - Specifies a list of functions to call after the OpenEmbedded build system has installed packages. You can specify functions separated by semicolons: @@ -12026,7 +11720,6 @@ - Specifies a list of functions to call once the OpenEmbedded build system has created the root filesystem. You can specify functions separated by semicolons: @@ -12053,7 +11746,6 @@ - Specifies a list of functions to call after the OpenEmbedded build system has removed unnecessary packages. @@ -12086,7 +11778,6 @@ - Specifies a list of functions to call before the OpenEmbedded build system has created the root filesystem. You can specify functions separated by semicolons: @@ -12113,7 +11804,6 @@ - A list of package name aliases that a package also provides. These aliases are useful for satisfying runtime dependencies of other packages both during the build and on the target @@ -12142,7 +11832,6 @@ - A list of packages that extends the usability of a package being built. The package being built does not depend on this list of @@ -12235,7 +11924,6 @@ - A list of packages replaced by a package. The package manager uses this variable to determine which package should be installed to replace other package(s) @@ -12291,7 +11979,6 @@ - A list of additional packages that you can suggest for installation by the package manager at the time a package is installed. @@ -12320,7 +12007,6 @@ - The location in the Build Directory where unpacked recipe source code resides. @@ -12373,7 +12059,6 @@ - Specifies a list of command-line utilities that should be checked for during the initial sanity checking process when running BitBake. @@ -12389,7 +12074,6 @@ - A list of the host distribution identifiers that the build system has been tested against. Identifiers consist of the host distributor ID @@ -12414,7 +12098,6 @@ - The target architecture for the SDK. Typically, you do not directly set this variable. Instead, use @@ -12429,7 +12112,6 @@ - The directory set up and used by the populate_sdk_base class to which the SDK is deployed. @@ -12448,7 +12130,6 @@ - The parent directory used by the OpenEmbedded build system when creating SDK output. The @@ -12474,7 +12155,6 @@ - Controls whether or not shared state artifacts are copied into the extensible SDK. The default value of "full" copies all of the required @@ -12498,7 +12178,6 @@ - The manifest file for the host part of the SDK. This file lists all the installed packages that make up the host part of the SDK. @@ -12531,7 +12210,6 @@ - When set to "1", specifies to include the packagedata for all recipes in the "world" target in the extensible SDK. Including this data allows the @@ -12556,7 +12234,6 @@ - When set to "1", specifies to include the toolchain in the extensible SDK. Including the toolchain is useful particularly when @@ -12564,7 +12241,7 @@ is set to "minimal" to keep the SDK reasonably small but you still want to provide a usable toolchain. For example, suppose you want to use the toolchain from an - IDE (e.g. Eclipse) or from other tools and you do not + IDE or from other tools and you do not want to perform additional steps to install the toolchain. @@ -12583,7 +12260,6 @@ - A list of classes to remove from the INHERIT value globally within the extensible SDK configuration. @@ -12617,7 +12293,6 @@ - A list of variables not allowed through from the OpenEmbedded build system configuration into the extensible SDK configuration. @@ -12661,7 +12336,6 @@ - A list of variables allowed through from the OpenEmbedded build system configuration into the extensible SDK configuration. @@ -12697,7 +12371,6 @@ - The base name for SDK output files. The name is derived from the DISTRO, @@ -12720,7 +12393,6 @@ - Specifies the operating system for which the SDK will be built. The default value is the value of @@ -12735,7 +12407,6 @@ - The location used by the OpenEmbedded build system when creating SDK output. The @@ -12765,7 +12436,6 @@ - Specifies a list of architectures compatible with the SDK machine. This variable is set automatically and should not @@ -12785,7 +12455,6 @@ - Specifies a list of functions to call once the OpenEmbedded build system creates the SDK. You can specify functions separated by semicolons: @@ -12813,7 +12482,6 @@ - The toolchain binary prefix used for nativesdk recipes. The OpenEmbedded build system uses the @@ -12831,7 +12499,6 @@ - A list of shared state tasks added to the extensible SDK. By default, the following tasks are added: @@ -12858,7 +12525,6 @@ - Specifies the system, including the architecture and the operating system, for which the SDK will be built. @@ -12882,7 +12548,6 @@ - The manifest file for the target part of the SDK. This file lists all the installed packages that make up the target part of the SDK. @@ -12915,7 +12580,6 @@ - A list of targets to install from shared state as part of the standard or extensible SDK installation. The default value is "${PN}" (i.e. the image from which @@ -12935,7 +12599,6 @@ - The title to be printed when running the SDK installer. By default, this title is based on the DISTRO_NAME @@ -12968,7 +12631,6 @@ - An optional URL for an update server for the extensible SDK. If set, the value is used as the default update server when @@ -12984,7 +12646,6 @@ - Specifies the name of the SDK vendor. @@ -12996,13 +12657,12 @@ - Specifies the version of the SDK. The distribution configuration file (e.g. /meta-poky/conf/distro/poky.conf) defines the SDK_VERSION as follows: - SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}" + SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${DATE}','snapshot')}" @@ -13022,7 +12682,6 @@ - The default installation directory for the Extensible SDK. By default, this directory is based on the DISTRO @@ -13052,7 +12711,6 @@ - Equivalent to IMAGE_FEATURES. However, this variable applies to the SDK generated from an @@ -13070,7 +12728,6 @@ - The machine for which the SDK is built. In other words, the SDK is built such that it runs on the target you specify with the @@ -13102,7 +12759,6 @@ - Defines the path offered to the user for installation of the SDK that is generated by the OpenEmbedded build system. @@ -13120,7 +12776,6 @@ - The full path to the sysroot used for cross-compilation within an SDK as it will be when installed into the default @@ -13135,7 +12790,6 @@ - The section in which packages should be categorized. Package management utilities can make use of this variable. @@ -13148,7 +12802,6 @@ - Specifies the optimization flags passed to the C compiler when building for the target. The flags are passed through the default value of the @@ -13173,7 +12826,6 @@ - Defines a serial console (TTY) to enable using getty. Provide a value that specifies the baud rate followed by @@ -13199,7 +12851,6 @@ - Defines a serial console (TTY) to enable using getty. Provide a value that specifies the baud rate followed by @@ -13218,7 +12869,6 @@ - Specifies serial consoles, which must be listed in SERIAL_CONSOLES, to check against /proc/console @@ -13244,7 +12894,6 @@ - A list of recipe dependencies that should not be used to determine signatures of tasks from one recipe when they depend on tasks from another recipe. @@ -13296,7 +12945,6 @@ - A list of recipes that are completely stable and will never change. The ABI for the recipes in the list are presented by @@ -13320,7 +12968,6 @@ - Specifies the number of bits for the target system CPU. The value should be either "32" or "64". @@ -13333,7 +12980,6 @@ - Specifies the endian byte order of the target system. The value should be either "le" for little-endian or "be" for big-endian. @@ -13342,12 +12988,10 @@ SKIP_FILEDEPS - SKIP_FILEDEPS[doc] = "Enables you to remove all files from - the "Provides" section of an RPM package." + SKIP_FILEDEPS[doc] = "Enables you to remove all files from the 'Provides' section of an RPM package." - Enables removal of all files from the "Provides" section of an RPM package. Removal of these files is required for packages containing @@ -13374,7 +13018,6 @@ - Groups together machines based upon the same family of SOC (System On Chip). You typically set this variable in a common @@ -13396,7 +13039,6 @@ - Defines the suffix for shared libraries used on the target platform. By default, this suffix is ".so.*" for all Linux-based @@ -13418,7 +13060,6 @@ - Defines the suffix for the development symbolic link (symlink) for shared libraries on the target platform. By default, this suffix is ".so" for Linux-based @@ -13440,7 +13081,6 @@ - When you are fetching files to create a mirror of sources (i.e. creating a source mirror), setting SOURCE_MIRROR_FETCH to "1" in your @@ -13472,7 +13112,6 @@ - Defines your own PREMIRRORS from which to first fetch source before attempting to fetch @@ -13503,7 +13142,6 @@ - Maps commonly used license names to their SPDX counterparts found in meta/files/common-licenses/. For the default SPDXLICENSEMAP @@ -13525,7 +13163,6 @@ - A list of prefixes for PN used by the OpenEmbedded build system to create variants of recipes or packages. The list specifies the prefixes to strip off during certain circumstances @@ -13540,7 +13177,6 @@ - The file type for the Secondary Program Loader (SPL). Some devices use an SPL from which to boot (e.g. the BeagleBone development board). @@ -13582,7 +13218,6 @@ - The list of source files - local or remote. This variable tells the OpenEmbedded build system which bits to pull in for the build and how to pull them in. @@ -13677,6 +13312,9 @@ a secure shell. svn:// - Fetches files from a Subversion (svn) revision control repository. + npm:// - Fetches JavaScript + modules from a registry. + @@ -13771,7 +13409,6 @@ - By default, the OpenEmbedded build system automatically detects whether SRC_URI contains files that are machine-specific. @@ -13788,7 +13425,6 @@ - The date of the source code used to build the package. This variable applies only if the source was fetched from a Source Code Manager (SCM). @@ -13801,7 +13437,6 @@ - Returns the version string of the current package. This string is used to help define the value of PV. @@ -13839,7 +13474,6 @@ - The revision of the source code used to build the package. This variable applies to Subversion, Git, Mercurial, and Bazaar only. @@ -13869,7 +13503,6 @@ - The directory for the shared state cache. @@ -13881,7 +13514,6 @@ - If set to "1", allows fetches from mirrors that are specified in SSTATE_MIRRORS @@ -13904,7 +13536,6 @@ - Configures the OpenEmbedded build system to search other mirror locations for prebuilt cache data objects before building out the data. @@ -13927,7 +13558,7 @@ When pointing to sstate build artifacts on another machine that uses a different GCC version for native builds, - you must configure SSTATE_MIRROR + you must configure SSTATE_MIRRORS with a regular expression that maps local search paths to server paths. The paths need to take into account @@ -13965,7 +13596,6 @@ - Controls the list of files the OpenEmbedded build system scans for hardcoded installation paths. The variable uses a space-separated list of filenames (not paths) with standard @@ -14000,7 +13630,6 @@ - Specifies the path to the /lib subdirectory of the sysroot directory for the build host. @@ -14014,7 +13643,6 @@ - Specifies the path to the /lib subdirectory of the sysroot directory for the target for which the current recipe is being built @@ -14029,7 +13657,6 @@ - Specifies the path to the /usr/bin subdirectory of the sysroot directory for the target for which the current @@ -14045,7 +13672,6 @@ - Specifies the path to the directory containing binary configuration scripts. These scripts provide configuration information for @@ -14071,7 +13697,6 @@ - Specifies the path to the /usr/bin subdirectory of the sysroot directory for the build host. @@ -14085,7 +13710,6 @@ - Specifies the path to the /usr/share subdirectory of the sysroot directory for the target for which the current recipe is being built @@ -14100,7 +13724,6 @@ - Specifies the path to the /usr/share subdirectory of the sysroot directory for the build host. @@ -14113,7 +13736,6 @@ - Helps construct the recipe-sysroots directory, which is used during packaging. @@ -14152,7 +13774,6 @@ - Specifies the path to the sysroot directory for the system on which the component is built to run (the system that hosts the component). @@ -14223,7 +13844,6 @@ - Specifies the path to the sysroot directory used when building components that run on the build host itself. @@ -14236,7 +13856,6 @@ - Specifies the path to the sysroot used for the system for which the component generates code. For components that do not generate code, which is the @@ -14268,7 +13887,6 @@ - Specifies the path to the /etc subdirectory of the sysroot directory for the build host. @@ -14282,7 +13900,6 @@ - Specifies the path to the /usr subdirectory of the sysroot directory for the target for which the current recipe is being built @@ -14297,7 +13914,6 @@ - Specifies the path to the /usr/include subdirectory of the sysroot directory for the target for which the current @@ -14313,7 +13929,6 @@ - Specifies the path to the /usr/include subdirectory of the sysroot directory for the build host. @@ -14326,7 +13941,6 @@ - Points to the directory containing the kernel build artifacts. Recipes building software that needs to access kernel @@ -14345,7 +13959,6 @@ - The directory with kernel headers that are required to build out-of-tree modules. @@ -14358,7 +13971,6 @@ - Specifies the path to the /usr/lib subdirectory of the sysroot directory for the target for which the current recipe is being built @@ -14373,7 +13985,6 @@ - Specifies the path to the /usr/lib subdirectory of the sysroot directory for the build host. @@ -14386,7 +13997,6 @@ - Specifies the base path used to create recipe stamp files. The path to an actual stamp file is constructed by evaluating this string and then appending additional information. @@ -14423,7 +14033,6 @@ - Specifies the base directory in which the OpenEmbedded build system places stamps. The default directory is @@ -14438,7 +14047,6 @@ - The minimal command and arguments to run strip, which is used to strip symbols. @@ -14452,7 +14060,6 @@ - The short (72 characters or less) summary of the binary package for packaging systems such as opkg, rpm, or dpkg. @@ -14470,7 +14077,6 @@ - The directory in which files checked out of a Subversion system are stored. @@ -14483,7 +14089,6 @@ - Specifies the kernel boot default console. If you want to use a console other than the default, set this variable in your recipe as follows where "X" is @@ -14508,7 +14113,6 @@ - Lists additional options to add to the syslinux file. You need to set this variable in your recipe. If you want to list multiple options, separate the options @@ -14529,7 +14133,6 @@ - Specifies the alternate serial port or turns it off. To turn off serial, set this variable to an empty string in your recipe. @@ -14553,7 +14156,6 @@ - An .LSS file used as the background for the VGA boot menu when you use the boot menu. You need to set this variable in your recipe. @@ -14574,7 +14176,6 @@ - Specifies the alternate console=tty... kernel boot argument. The variable's default value is set in the syslinux @@ -14596,7 +14197,6 @@ - Points to the temporary directory under the work directory (default "${WORKDIR}/sysroot-destdir") @@ -14614,7 +14214,6 @@ - Directories that are staged into the sysroot by the do_populate_sysroot task. @@ -14638,7 +14237,6 @@ - Directories that are not staged into the sysroot by the do_populate_sysroot task. @@ -14668,7 +14266,6 @@ - Extra directories staged into the sysroot by the do_populate_sysroot task for -native recipes, in addition @@ -14703,7 +14300,6 @@ - A list of functions to execute after files are staged into the sysroot. These functions are usually used to apply additional @@ -14719,7 +14315,6 @@ - When inheriting the systemd class, this variable specifies whether the specified service @@ -14749,7 +14344,6 @@ - When EFI_PROVIDER is set to "systemd-boot", the @@ -14777,7 +14371,6 @@ - When EFI_PROVIDER is set to "systemd-boot", the @@ -14807,7 +14400,6 @@ - When EFI_PROVIDER is set to "systemd-boot", the @@ -14835,7 +14427,6 @@ - When inheriting the systemd class, this variable locates the systemd unit files when @@ -14865,7 +14456,6 @@ - When inheriting the systemd class, this variable specifies the systemd service name for @@ -14890,7 +14480,6 @@ - When using SysVinit, specifies a space-separated list of the virtual terminals @@ -14919,7 +14508,6 @@ - This variable points to a directory were BitBake places temporary files, which consist mostly of task logs and scripts, when building a particular recipe. @@ -14948,7 +14536,6 @@ - The target machine's architecture. The OpenEmbedded build system supports many architectures. @@ -14981,7 +14568,6 @@ - Specifies architecture-specific assembler flags for the target system. TARGET_AS_ARCH is initialized from @@ -15001,7 +14587,6 @@ - Specifies architecture-specific C compiler flags for the target system. TARGET_CC_ARCH is initialized from @@ -15025,7 +14610,6 @@ - This is a specific kernel compiler flag for a CPU or Application Binary Interface (ABI) tune. The flag is used rarely and only for cases where a @@ -15050,7 +14634,6 @@ - Specifies the flags to pass to the C compiler when building for the target. When building in the target context, @@ -15074,7 +14657,6 @@ - Specifies the flags to pass to the C pre-processor (i.e. to both the C and the C++ compilers) when building for the target. @@ -15099,7 +14681,6 @@ - Specifies the flags to pass to the C++ compiler when building for the target. When building in the target context, @@ -15123,7 +14704,6 @@ - Specifies the method for handling FPU code. For FPU-less targets, which include most ARM CPUs, the variable must be set to "soft". @@ -15138,7 +14718,6 @@ - Specifies architecture-specific linker flags for the target system. TARGET_LD_ARCH is initialized from @@ -15158,7 +14737,6 @@ - Specifies the flags to pass to the linker when building for the target. When building in the target context, @@ -15184,7 +14762,6 @@ - Specifies the target's operating system. The variable can be set to "linux" for glibc-based systems (GNU C Library) and to "linux-musl" for musl libc. @@ -15200,7 +14777,6 @@ - Specifies the prefix used for the toolchain binary target tools. @@ -15236,7 +14812,6 @@ - Specifies the system, including the architecture and the operating system, for which the build is occurring in the context of the current recipe. @@ -15279,7 +14854,6 @@ - Specifies the name of the target vendor. @@ -15287,11 +14861,10 @@ TCLIBC - TCLIBC[doc] = "Specifies GNU standard C library (libc) variant to use during the build process. You can select 'glibc', 'musl' or "newlib." + TCLIBC[doc] = "Specifies GNU standard C library (libc) variant to use during the build process. You can select 'glibc', 'musl' or 'newlib'." - Specifies the GNU standard C library (libc) variant to use during the build process. @@ -15311,7 +14884,6 @@ - Specifies a suffix to be appended onto the TMPDIR value. @@ -15342,7 +14914,6 @@ - Specifies the toolchain selector. TCMODE controls the characteristics of the generated packages and images by telling the @@ -15414,7 +14985,6 @@ - The location the OpenEmbedded build system uses to export tests when the TEST_EXPORT_ONLY @@ -15434,7 +15004,6 @@ - Specifies to export the tests only. Set this variable to "1" if you do not want to run the tests but you want them to be exported in a manner that @@ -15449,7 +15018,6 @@ - Holds the SSH log and the boot log for QEMU machines. The TEST_LOG_DIR variable defaults to "${WORKDIR}/testimage". @@ -15468,7 +15036,6 @@ - For automated hardware testing, specifies the command to use to control the power of the target machine under test. Typically, this command would point to a script that @@ -15488,7 +15055,6 @@ - For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_POWERCONTROL_CMD. @@ -15507,7 +15073,6 @@ - The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image. @@ -15531,7 +15096,6 @@ - For automated hardware testing, specifies the command to use to connect to the serial console of the target machine under test. @@ -15557,7 +15121,6 @@ - For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_SERIALCONTROL_CMD. @@ -15576,7 +15139,6 @@ - The IP address of the build machine (host machine). This IP address is usually automatically detected. However, if detection fails, this variable needs to be set @@ -15599,12 +15161,11 @@ - Specifies the target controller to use when running tests against a test image. - The default controller to use is "QemuTarget": + The default controller to use is "qemu": - TEST_TARGET = "QemuTarget" + TEST_TARGET = "qemu" @@ -15623,21 +15184,21 @@ You can provide the following arguments with TEST_TARGET: - "QemuTarget": + "qemu": Boots a QEMU image and runs the tests. See the "Enabling Runtime Tests on QEMU" section in the Yocto Project Development Tasks Manual for more information. - "SimpleRemoteTarget": + "simpleremote": Runs the tests on target hardware that is already up and running. The hardware can be on the network or it can be a device running an image on QEMU. You must also set TEST_TARGET_IP - when you use "SimpleRemoteTarget". + when you use "simpleremote". This argument is defined in meta/lib/oeqa/controllers/simpleremote.py. @@ -15660,7 +15221,6 @@ - The IP address of your hardware under test. The TEST_TARGET_IP variable has no effect when @@ -15690,7 +15250,6 @@ - An ordered list of tests (modules) to run against an image when performing automated runtime testing. @@ -15749,7 +15308,6 @@ - Automatically runs the series of automated tests for images when an image is successfully built. Setting TESTIMAGE_AUTO to "1" @@ -15790,7 +15348,6 @@ - The directory in which the file BitBake is currently parsing is located. Do not manually set this variable. @@ -15804,7 +15361,6 @@ - The time the build was started. Times appear using the hour, minute, and second (HMS) format (e.g. "140159" for one minute and fifty-nine @@ -15819,7 +15375,6 @@ - This variable is the base directory the OpenEmbedded build system uses for all build output and intermediate files (other than the shared state cache). @@ -15861,7 +15416,6 @@ - This variable lists packages the OpenEmbedded build system uses when building an SDK, which contains a cross-development environment. @@ -15903,7 +15457,6 @@ - This variable defines the name used for the toolchain output. The @@ -15929,7 +15482,6 @@ - This variable lists packages the OpenEmbedded build system uses when it creates the target part of an SDK (i.e. the part built for the target hardware), which @@ -15962,7 +15514,6 @@ - The top-level Build Directory. BitBake automatically sets this variable when you @@ -15978,7 +15529,6 @@ - A sanitized version of TARGET_ARCH. This variable is used where the architecture is needed in @@ -16000,7 +15550,6 @@ - The GNU canonical architecture for a specific architecture (i.e. arm, armeb, @@ -16059,7 +15608,6 @@ - Specifies architecture-specific assembler flags for the target system. The set of flags is based on the selected tune features. @@ -16090,7 +15638,6 @@ - Specifies architecture-specific C compiler flags for the target system. The set of flags is based on the selected tune features. @@ -16115,7 +15662,6 @@ - Specifies architecture-specific linker flags for the target system. The set of flags is based on the selected tune features. @@ -16146,7 +15692,6 @@ - Features used to "tune" a compiler for optimal use given a specific processor. The features are defined within the tune files and allow @@ -16180,7 +15725,6 @@ - The package architecture understood by the packaging system to define the architecture, ABI, and tuning of output packages. @@ -16211,7 +15755,6 @@ - An underlying Application Binary Interface (ABI) used by a particular tuning in a given toolchain layer. Providers that use prebuilt libraries can use the @@ -16239,7 +15782,6 @@ - If set, the OpenEmbedded system ignores the TUNEABI_WHITELIST variable. @@ -16266,7 +15808,6 @@ - A whitelist of permissible TUNEABI values. @@ -16294,7 +15835,6 @@ - Specifies CPU or Application Binary Interface (ABI) tuning features that conflict with feature. @@ -16320,7 +15860,6 @@ - Specifies a valid CPU or Application Binary Interface (ABI) tuning feature. The specified feature is stored as a flag. @@ -16350,7 +15889,6 @@ - Configures the UBOOT_MACHINE and can also define @@ -16393,7 +15931,6 @@ - Specifies the entry point for the U-Boot image. During U-Boot image creation, the UBOOT_ENTRYPOINT variable is passed @@ -16409,7 +15946,6 @@ - Specifies the load address for the U-Boot image. During U-Boot image creation, the UBOOT_LOADADDRESS variable is passed @@ -16425,11 +15961,10 @@ - Appends a string to the name of the local version of the U-Boot image. For example, assuming the version of the U-Boot image - built was "2013.10, the full version string reported by + built was "2013.10", the full version string reported by U-Boot would be "2013.10-yocto" given the following statement: @@ -16445,7 +15980,6 @@ - Specifies the value passed on the make command line when building a U-Boot image. @@ -16469,7 +16003,6 @@ - Specifies the target called in the Makefile. The default target is "all". @@ -16483,7 +16016,6 @@ - Points to the generated U-Boot extension. For example, u-boot.sb has a .sb extension. @@ -16502,7 +16034,6 @@ - Specifies the target used for building U-Boot. The target is passed directly as part of the "make" command (e.g. SPL and AIS). @@ -16519,7 +16050,6 @@ - Specifies a list of options that, if reported by the configure script as being invalid, should not generate a warning during the @@ -16557,7 +16087,6 @@ - For recipes inheriting the update-rc.d class, UPDATERCPN specifies @@ -16580,17 +16109,16 @@ - - When the - distrodata - class is enabled globally, you can perform a per-recipe - check for what the latest upstream source code version is - by calling + You can perform a per-recipe check for what the latest + upstream source code version is by calling bitbake -c checkpkg recipe. If the recipe source code is provided from Git repositories, the OpenEmbedded build system determines the latest upstream version by picking the latest tag from the list of all repository tags. + + + You can use the UPSTREAM_CHECK_GITTAGREGEX variable to provide a regular expression to filter only the @@ -16609,12 +16137,8 @@ - - When the - distrodata - class is enabled globally, use the - UPSTREAM_CHECK_REGEX variable to - specify a different regular expression instead of the + Use the UPSTREAM_CHECK_REGEX variable + to specify a different regular expression instead of the default one when the package checking system is parsing the page found using UPSTREAM_CHECK_URI. @@ -16631,13 +16155,9 @@ - - When the - distrodata - class is enabled globally, you can perform a per-recipe - check for what the latest upstream source code version is - by calling bitbake -c checkpkg - recipe. + You can perform a per-recipe check for what the latest + upstream source code version is by calling + bitbake -c checkpkg recipe. If the source code is provided from tarballs, the latest version is determined by fetching the directory listing where the tarball is and attempting to find a later tarball. @@ -16658,7 +16178,6 @@ - Determines if devtmpfs is used for /dev population. The default value used for USE_DEVFS @@ -16683,7 +16202,6 @@ - When using SysVinit, determines whether or not to run a @@ -16709,7 +16227,6 @@ - A list of classes to globally inherit. These classes are used by the OpenEmbedded build system to enable extra features (e.g. @@ -16733,18 +16250,20 @@ USERADD_ERROR_DYNAMIC - USERADD_ERROR_DYNAMIC[doc] = "If set to 'error', forces the OpenEmbedded build system to produce an error if the user identification (uid) and group identification (gid) values are not defined in files/passwd and files/group files. If set to 'warn', a warning will be issued instead." + USERADD_ERROR_DYNAMIC[doc] = "If set to 'error', forces the OpenEmbedded build system to produce an error if the user identification (uid) and group identification (gid) values are not defined in any of the files listed in USERADD_UID_TABLES and USERADD_GID_TABLES. If set to 'warn', a warning will be issued instead." - - If set to "error", forces the OpenEmbedded build system to - produce an error if the user identification - (uid) and group identification - (gid) values are not defined - in files/passwd - and files/group files. - If set to "warn", a warning will be issued instead. + + If set to error, forces the + OpenEmbedded build system to produce an error if the user + identification (uid) and group + identification (gid) values are not + defined in any of the files listed + in USERADD_UID_TABLES + and USERADD_GID_TABLES. If + set to warn, a warning will be issued + instead. @@ -16771,6 +16290,20 @@ USERADD_GID_TABLES variables. + + + There is a difference in behavior between + setting USERADD_ERROR_DYNAMIC + to error and setting it + to warn. When it is set + to warn, the build system will report a + warning for every undefined uid and + gid in any recipe. But when it is set + to error, it will only report errors + for recipes that are actually built. This saves you from + having to add static IDs for recipes that you know will + never be built. + @@ -16780,7 +16313,6 @@ - Specifies a password file to use for obtaining static group identification (gid) values when the OpenEmbedded build system adds a group to the @@ -16816,7 +16348,6 @@ - When inheriting the useradd class, this variable @@ -16853,7 +16384,6 @@ - When inheriting the useradd class, this variable @@ -16884,7 +16414,6 @@ - Specifies a password file to use for obtaining static user identification (uid) values when the OpenEmbedded build system adds a user to the @@ -16920,7 +16449,6 @@ - When set to "useradd-staticids", causes the OpenEmbedded build system to base all user and group additions on a static @@ -16973,7 +16501,6 @@ - Specifies the persistence of the target's /var/log directory, which is used to house postinstall target log files. @@ -16998,7 +16525,6 @@ - Specifies the quality assurance checks whose failures are reported as warnings by the OpenEmbedded build system. You set this variable in your distribution configuration @@ -17070,7 +16596,7 @@ "Creating Partitioned Images Using Wic" section in the Yocto Project Development Tasks Manual. For details on the kickstart file format, see the - "OpenEmbedded Kickstart (.wks) Reference + "OpenEmbedded Kickstart (.wks) Reference" Chapter. @@ -17082,7 +16608,6 @@ - The pathname of the work directory in which the OpenEmbedded build system builds a recipe. This directory is located within the @@ -17140,12 +16665,10 @@ XSERVER - XSERVER[doc] = "Specifies the packages that should be installed - to provide an X server and drivers for the current machine." + XSERVER[doc] = "Specifies the packages that should be installed to provide an X server and drivers for the current machine." - Specifies the packages that should be installed to provide an X server and drivers for the current machine, assuming your image directly includes diff --git a/external/poky/documentation/ref-manual/resources.xml b/external/poky/documentation/ref-manual/resources.xml index be046961..afe8e288 100644 --- a/external/poky/documentation/ref-manual/resources.xml +++ b/external/poky/documentation/ref-manual/resources.xml @@ -155,7 +155,7 @@ - BitBake User Manual: + BitBake User Manual: A comprehensive guide to the BitBake tool. If you want information on BitBake, see this manual. @@ -245,14 +245,6 @@ OpenEmbedded Build System, which uses BitBake, that reports build information. - - - Eclipse IDE Yocto Plug-in: - - Instructions that demonstrate how an application developer - uses the Eclipse Yocto Project Plug-in feature within - the Eclipse IDE. - FAQ: diff --git a/external/poky/documentation/sdk-manual/figures/sdk-eclipse-dev-flow.png b/external/poky/documentation/sdk-manual/figures/sdk-eclipse-dev-flow.png deleted file mode 100644 index 9f986e0d..00000000 Binary files a/external/poky/documentation/sdk-manual/figures/sdk-eclipse-dev-flow.png and /dev/null differ diff --git a/external/poky/documentation/sdk-manual/sdk-appendix-customizing.xml b/external/poky/documentation/sdk-manual/sdk-appendix-customizing.xml index 7454c90b..911658f9 100644 --- a/external/poky/documentation/sdk-manual/sdk-appendix-customizing.xml +++ b/external/poky/documentation/sdk-manual/sdk-appendix-customizing.xml @@ -503,7 +503,7 @@ have set SDK_EXT_TYPE to "minimal", which by default, excludes the toolchain. Also, it is helpful if you are building a small SDK for use with - an IDE, such as Eclipse, or some + an IDE or some other tool where you do not want to take extra steps to install a toolchain. diff --git a/external/poky/documentation/sdk-manual/sdk-appendix-neon.xml b/external/poky/documentation/sdk-manual/sdk-appendix-neon.xml deleted file mode 100644 index 0fb92985..00000000 --- a/external/poky/documentation/sdk-manual/sdk-appendix-neon.xml +++ /dev/null @@ -1,956 +0,0 @@ - %poky; ] > - - - Using <trademark class='trade'>Eclipse</trademark> Neon - - - This release of the Yocto Project supports both the Oxygen and Neon - versions of the Eclipse IDE. - This appendix presents information that describes how to obtain and - configure the Neon version of Eclipse. - It also provides a basic project example that you can work through - from start to finish. - For general information on using the Eclipse IDE and the Yocto - Project Eclipse Plug-In, see the - "Application Development Workflow Using Eclipse" - section. - - -
- Setting Up the Neon Version of the Eclipse IDE - - - To develop within the Eclipse IDE, you need to do the following: - - Install the Neon version of the Eclipse - IDE. - Configure the Eclipse IDE. - - Install the Eclipse Yocto Plug-in. - - Configure the Eclipse Yocto Plug-in. - - - - Do not install Eclipse from your distribution's package - repository. - Be sure to install Eclipse from the official Eclipse - download site as directed in the next section. - - - -
- Installing the Neon Eclipse IDE - - - Follow these steps to locate, install, and configure - Neon Eclipse: - - Locate the Neon Download: - Open a browser and go to - http://www.eclipse.org/neon/. - - Download the Tarball: - Click the "Download" button and look for the - "Eclipse IDE for C/C++ Developers" Neon 3 Package. - Select the correct platform download link listed at - the right. - For example, click on "64-bit" next to Linux if your - build host is running a 64-bit Linux distribution. - Click through the process to save the file. - - Unpack the Tarball: - Move to a directory and unpack the tarball. - The following commands unpack the tarball into the - home directory: - - $ cd ~ - $ tar -xzvf ~/Downloads/eclipse-cpp-neon-3-linux-gtk-x86_64.tar.gz - - Everything unpacks into a folder named "Eclipse". - - Launch Eclipse: - The following commands launch Eclipse assuming you - unpacked it in your home directory: - - $ cd ~/eclipse - $ ./eclipse - - Accept the default "workspace" once Eclipse launches. - - - -
- -
- Configuring the Neon Eclipse IDE - - - Follow these steps to configure the Neon Eclipse IDE. - Notes - - - Depending on how you installed Eclipse and what - you have already done, some of the options do - not appear. - If you cannot find an option as directed by the - manual, it has already been installed. - - - If you want to see all options regardless of - whether they are installed or not, deselect the - "Hide items that are already installed" - check box. - - - - - Be sure Eclipse is running and - you are in your workbench. - - Select "Install New Software" from - the "Help" pull-down menu. - - Select - "Neon - http://download.eclipse.org/releases/neon" - from the "Work with:" pull-down menu. - - Expand the box next to - "Linux Tools" and select the following - - C/C++ Remote (Over TCF/TE) Run/Debug Launcher - TM Terminal - - - Expand the box next to "Mobile and - Device Development" and select the following - boxes: - - C/C++ Remote (Over TCF/TE) Run/Debug Launcher - Remote System Explorer User Actions - TM Terminal - TCF Remote System Explorer add-in - TCF Target Explorer - - - Expand the box next to - "Programming Languages" and select the - following box: - - C/C++ Development Tools SDK - - - - Complete the installation by clicking through - appropriate "Next" and "Finish" buttons. - - - -
- -
- Installing or Accessing the Neon Eclipse Yocto Plug-in - - - You can install the Eclipse Yocto Plug-in into the Eclipse - IDE one of two ways: use the Yocto Project's Eclipse - Update site to install the pre-built plug-in or build and - install the plug-in from the latest source code. - - -
- Installing the Pre-built Plug-in from the Yocto Project Eclipse Update Site - - - To install the Neon Eclipse Yocto Plug-in from the update - site, follow these steps: - - Start up the Eclipse IDE. - - In Eclipse, select "Install New - Software" from the "Help" menu. - - Click "Add..." in the "Work with:" - area. - - Enter - &ECLIPSE_DL_PLUGIN_URL;/neon - in the URL field and provide a meaningful name - in the "Name" field. - - - Click "OK" to have the entry automatically - populate the "Work with:" field and to have - the items for installation appear in the window - below. - - Check the boxes next to the following: - - Yocto Project SDK Plug-in - Yocto Project Documentation plug-in - - - Complete the remaining software - installation steps and then restart the Eclipse - IDE to finish the installation of the plug-in. - - You can click "OK" when prompted about - installing software that contains unsigned - content. - - - - -
- -
- Installing the Plug-in Using the Latest Source Code - - - To install the Neon Eclipse Yocto Plug-in from the latest - source code, follow these steps: - - - Be sure your build host has JDK version 1.8 - or greater. - On a Linux build host you can determine the - version using the following command: - - $ java -version - - - install X11-related packages: - - $ sudo apt-get install xauth - - - In a new terminal shell, create a Git - repository with: - - $ cd ~ - $ git clone git://git.yoctoproject.org/eclipse-yocto - - - - Use Git to create the correct tag: - - $ cd ~/eclipse-yocto - $ git checkout -b neon/&DISTRO_NAME_NO_CAP; remotes/origin/neon/&DISTRO_NAME_NO_CAP; - - This creates a local tag named - neon/&DISTRO_NAME_NO_CAP; - based on the branch - origin/neon/&DISTRO_NAME_NO_CAP;. - You are put into a detached HEAD state, - which is fine since you are only going to - be building and not developing. - - Change to the - scripts - directory within the Git repository: - - $ cd scripts - - - Set up the local build environment - by running the setup script: - - $ ./setup.sh - - When the script finishes execution, - it prompts you with instructions on how to run - the build.sh script, which - is also in the scripts - directory of the Git repository created - earlier. - - - Run the build.sh - script as directed. - Be sure to provide the tag name, - documentation branch, and a release name. - - Following is an example: - - $ ECLIPSE_HOME=/home/scottrif/eclipse-yocto/scripts/eclipse ./build.sh -l neon/&DISTRO_NAME_NO_CAP; master yocto-&DISTRO; 2>&1 | tee build.log - - The previous example command adds the tag - you need for - neon/&DISTRO_NAME_NO_CAP; - to HEAD, then tells - the build script to use the local (-l) Git - checkout for the build. - After running the script, the file - org.yocto.sdk-release-date-archive.zip - is in the current directory. - - If necessary, start the Eclipse IDE - and be sure you are in the Workbench. - - Select "Install New Software" from - the "Help" pull-down menu. - - Click "Add". - - Provide anything you want in the - "Name" field. - - Click "Archive" and browse to the - ZIP file you built earlier. - This ZIP file should not be "unzipped", and must - be the *archive.zip file - created by running the - build.sh script. - - Click the "OK" button. - - Check the boxes that appear in - the installation window to install the - following: - - Yocto Project SDK Plug-in - Yocto Project Documentation plug-in - - - Finish the installation by clicking - through the appropriate buttons. - You can click "OK" when prompted about - installing software that contains unsigned - content. - - Restart the Eclipse IDE if - necessary. - - - - - - At this point you should be able to configure the - Eclipse Yocto Plug-in as described in the - "Configuring the Neon Eclipse Yocto Plug-in" - section. -
-
- -
- Configuring the Neon Eclipse Yocto Plug-In - - - Configuring the Neon Eclipse Yocto Plug-in involves setting the - Cross Compiler options and the Target options. - The configurations you choose become the default settings - for all projects. - You do have opportunities to change them later when - you configure the project (see the following section). - - - - To start, you need to do the following from within the - Eclipse IDE: - - - Choose "Preferences" from the - "Window" menu to display the Preferences Dialog. - - - Click "Yocto Project SDK" to display - the configuration screen. - - - The following sub-sections describe how to configure the - the plug-in. - - Throughout the descriptions, a start-to-finish example for - preparing a QEMU image for use with Eclipse is referenced - as the "wiki" and is linked to the example on the - Cookbook guide to Making an Eclipse Debug Capable Image - wiki page. - - - -
- Configuring the Cross-Compiler Options - - - Cross Compiler options enable Eclipse to use your specific - cross compiler toolchain. - To configure these options, you must select - the type of toolchain, point to the toolchain, specify - the sysroot location, and select the target - architecture. - - - Selecting the Toolchain Type: - Choose between "Standalone pre-built toolchain" - and - "Build system derived toolchain" for Cross Compiler - Options. - - - Standalone Pre-built Toolchain: - Select this type when you are using - a stand-alone cross-toolchain. - For example, suppose you are an - application developer and do not - need to build a target image. - Instead, you just want to use an - architecture-specific toolchain on - an existing kernel and target root - filesystem. - In other words, you have downloaded - and installed a pre-built toolchain - for an existing image. - - - Build System Derived Toolchain: - Select this type if you built the - toolchain as part of the - Build Directory. - When you select "Build system derived - toolchain", you are using the toolchain - built and bundled inside the Build - Directory. - For example, suppose you created a - suitable image using the steps in the - wiki. - In this situation, you would select - "Build system derived toolchain". - - - - - Specify the Toolchain Root Location: - If you are using a stand-alone pre-built - toolchain, you should be pointing to where it is - installed (e.g. - /opt/poky/&DISTRO;). - See the - "Installing the SDK" - section for information about how the SDK is - installed. - - If you are using a build system derived - toolchain, the path you provide for the - "Toolchain Root Location" field is the - Build Directory - from which you run the - bitbake command (e.g - /home/scottrif/poky/build). - For more information, see the - "Building an SDK Installer" - section. - - - Specify Sysroot Location: - This location is where the root filesystem for - the target hardware resides. - - - This location depends on where you - separately extracted and installed the - target filesystem when you either built - it or downloaded it. - - If you downloaded the root filesystem - for the target hardware rather than - built it, you must download the - sato-sdk image - in order to build any c/c++ projects. - - As an example, suppose you prepared an image - using the steps in the - wiki. - If so, the MY_QEMU_ROOTFS - directory is found in the - Build Directory - and you would browse to and select that directory - (e.g. /home/scottrif/build/MY_QEMU_ROOTFS). - - - For more information on how to install the - toolchain and on how to extract and install the - sysroot filesystem, see the - "Building an SDK Installer" - section. - - - Select the Target Architecture: - The target architecture is the type of hardware - you are going to use or emulate. - Use the pull-down "Target Architecture" menu - to make your selection. - The pull-down menu should have the supported - architectures. - If the architecture you need is not listed in - the menu, you will need to build the image. - See the - "Building a Simple Image" - section of the Yocto Project Development Tasks - Manual for more information. - You can also see the - wiki. - - - -
- -
- Configuring the Target Options - - - You can choose to emulate hardware using the QEMU - emulator, or you can choose to run your image on actual - hardware. - - - QEMU: - Select this option if you will be using the - QEMU emulator. - If you are using the emulator, you also need to - locate the kernel and specify any custom - options. - - If you selected the Build system derived - toolchain, the target kernel you built will be - located in the - Build Directory - in - tmp/deploy/images/machine - directory. - As an example, suppose you performed the steps in - the - wiki. - In this case, you specify your Build Directory path - followed by the image (e.g. - /home/scottrif/poky/build/tmp/deploy/images/qemux86/bzImage-qemux86.bin). - - - If you selected the standalone pre-built - toolchain, the pre-built image you downloaded is - located in the directory you specified when you - downloaded the image. - - Most custom options are for advanced QEMU - users to further customize their QEMU instance. - These options are specified between paired - angled brackets. - Some options must be specified outside the - brackets. - In particular, the options - serial, - nographic, and - kvm must all be outside the - brackets. - Use the man qemu command - to get help on all the options and their use. - The following is an example: - - serial ‘<-m 256 -full-screen>’ - - Regardless of the mode, Sysroot is already - defined as part of the Cross-Compiler Options - configuration in the "Sysroot Location:" field. - - - External HW: - Select this option if you will be using actual - hardware. - - - - - - Click the "Apply" and "OK" to save your plug-in - configurations. - -
-
-
- -
- Creating the Project - - - You can create two types of projects: Autotools-based, or - Makefile-based. - This section describes how to create Autotools-based projects - from within the Eclipse IDE. - For information on creating Makefile-based projects in a - terminal window, see the - "Makefile-Based Projects" - section. - - Do not use special characters in project names - (e.g. spaces, underscores, etc.). Doing so can - cause the configuration to fail. - - - - - To create a project based on a Yocto template and then display - the source code, follow these steps: - - - Select "C Project" from the "File -> New" menu. - - - Expand "Yocto Project SDK Autotools Project". - - - Select "Hello World ANSI C Autotools Projects". - This is an Autotools-based project based on a Yocto - template. - - - Put a name in the "Project name:" field. - Do not use hyphens as part of the name - (e.g. "hello"). - - - Click "Next". - - - Add appropriate information in the various fields. - - - Click "Finish". - - - If the "open perspective" prompt appears, - click "Yes" so that you are in the C/C++ perspective. - - - The left-hand navigation pane shows your project. - You can display your source by double clicking the - project's source file. - - - -
- -
- Configuring the Cross-Toolchains - - - The earlier section, - "Configuring the Neon Eclipse Yocto Plug-in", - sets up the default project configurations. - You can override these settings for a given project by following - these steps: - - - Select "Yocto Project Settings" from - the "Project -> Properties" menu. - This selection brings up the Yocto Project Settings - Dialog and allows you to make changes specific to an - individual project. - By default, the Cross Compiler Options and Target - Options for a project are inherited from settings you - provided using the Preferences Dialog as described - earlier in the - "Configuring the Neon Eclipse Yocto Plug-in" section. - The Yocto Project Settings Dialog allows you to override - those default settings for a given project. - - - Make or verify your configurations for the project and - click "OK". - - - Right-click in the navigation pane and select - "Reconfigure Project" from the pop-up menu. - This selection reconfigures the project by running - Autotools GNU utility programs - such as Autoconf, Automake, and so forth in the - workspace for your project. - Click on the "Console" tab beneath your source code - to see the results of reconfiguring your project. - - - -
- -
- Building the Project - - - To build the project select "Build All" from the - "Project" menu. - The console should update and you can note the cross-compiler - you are using. - - When building "Yocto Project SDK Autotools" projects, the - Eclipse IDE might display error messages for - Functions/Symbols/Types that cannot be "resolved", even when - the related include file is listed at the project navigator and - when the project is able to build. - For these cases only, it is recommended to add a new linked - folder to the appropriate sysroot. - Use these steps to add the linked folder: - - - Select the project. - - - Select "Folder" from the "File > New" menu. - - - In the "New Folder" Dialog, select "Link to alternate - location (linked folder)". - - - Click "Browse" to navigate to the include folder inside - the same sysroot location selected in the Yocto Project - configuration preferences. - - - Click "OK". - - - Click "Finish" to save the linked folder. - - - - -
- -
- Starting QEMU in User-Space NFS Mode - - - To start the QEMU emulator from within Eclipse, follow these - steps: - - See the - "Using the Quick EMUlator (QEMU)" - chapter in the Yocto Project Development Tasks Manual - for more information on using QEMU. - - - Expose and select "External Tools - Configurations ..." from the "Run -> External Tools" menu. - - - Locate and select your image in the navigation panel to - the left (e.g. qemu_i586-poky-linux). - - - Click "Run" to launch QEMU. - - The host on which you are running QEMU must have - the rpcbind utility running to be - able to make RPC calls on a server on that machine. - If QEMU does not invoke and you receive error messages - involving rpcbind, follow the - suggestions to get the service running. - As an example, on a new Ubuntu 16.04 LTS installation, - you must do the following in order to get QEMU to - launch: - - $ sudo apt-get install rpcbind - - After installing rpcbind, you - need to edit the - /etc/init.d/rpcbind file to - include the following line: - - OPTIONS="-i -w" - - After modifying the file, you need to start the - service: - - $ sudo service portmap restart - - - - If needed, enter your host root password in - the shell window at the prompt. - This sets up a Tap 0 connection - needed for running in user-space NFS mode. - - Wait for QEMU to launch. - - Once QEMU launches, you can begin operating - within that environment. - One useful task at this point would be to determine the - IP Address for the user-space NFS by using the - ifconfig command. - The IP address of the QEMU machine appears in the - xterm window. - You can use this address to help you see which particular - IP address the instance of QEMU is using. - - - -
- -
- Deploying and Debugging the Application - - - Once the QEMU emulator is running the image, you can deploy - your application using the Eclipse IDE and then use - the emulator to perform debugging. - Follow these steps to deploy the application. - - Currently, Eclipse does not support SSH port forwarding. - Consequently, if you need to run or debug a remote - application using the host display, you must create a - tunneling connection from outside Eclipse and keep - that connection alive during your work. - For example, in a new terminal, run the following: - - $ ssh -XY user_name@remote_host_ip - - Using the above form, here is an example: - - $ ssh -XY root@192.168.7.2 - - After running the command, add the command to be executed - in Eclipse's run configuration before the application - as follows: - - export DISPLAY=:10.0 - - Be sure to not destroy the connection during your QEMU - session (i.e. do not - exit out of or close that shell). - - - - Select "Debug Configurations..." from the - "Run" menu. - - In the left area, expand - "C/C++Remote Application". - - - Locate your project and select it to bring - up a new tabbed view in the Debug Configurations Dialog. - - - Click on the "Debugger" tab to see the - cross-tool debugger you are using. - Be sure to change to the debugger perspective in Eclipse. - - - Click on the "Main" tab. - - Create a new connection to the QEMU instance - by clicking on "new". - - Select "SSH", which means - Secure Socket Shell. - Optionally, you can select a TCF connection instead. - - - Click "Next". - - - Clear out the "Connection name" field and - enter any name you want for the connection. - - - Put the IP address for the connection in - the "Host" field. - For QEMU, the default is "192.168.7.2". - However, if a previous QEMU session did not exit - cleanly, the IP address increments (e.g. - "192.168.7.3"). - - You can find the IP address for the current QEMU - session by looking in the xterm that opens when - you launch QEMU. - - - - Enter "root", which - is the default for QEMU, for the "User" field. - Be sure to leave the password field empty. - - Click "Finish" to close the - New Connections Dialog. - - - If necessary, use the drop-down menu now in the - "Connection" field and pick the IP Address you entered. - - - Assuming you are connecting as the root user, - which is the default for QEMU x86-64 SDK images provided by - the Yocto Project, in the "Remote Absolute File Path for - C/C++ Application" field, browse to - /home/root/ProjectName - (e.g. /home/root/hello). - You could also browse to any other path you have write - access to on the target such as - /usr/bin. - This location is where your application will be located on - the QEMU system. - If you fail to browse to and specify an appropriate - location, QEMU will not understand what to remotely - launch. - Eclipse is helpful in that it auto fills your application - name for you assuming you browsed to a directory. - Tips - - - If you are prompted to provide a username - and to optionally set a password, be sure - you provide "root" as the username and you - leave the password field blank. - - - If browsing to a directory fails or times - out, but you can - ssh into your QEMU - or target from the command line and you - have proxies set up, it is likely that - Eclipse is sending the SSH traffic to a - proxy. - In this case, either use TCF , or click on - "Configure proxy settings" in the - connection dialog and add the target IP - address to the "bypass proxy" section. - You might also need to change - "Active Provider" from Native to Manual. - - - - - - Be sure you change to the "Debug" perspective in Eclipse. - - - Click "Debug" - - - Accept the debug perspective. - - - -
- -
- Using Linuxtools - - - As mentioned earlier in the manual, performance tools exist - (Linuxtools) that enhance your development experience. - These tools are aids in developing and debugging applications and - images. - You can run these tools from within the Eclipse IDE through the - "Linuxtools" menu. - - - - For information on how to configure and use these tools, see - http://www.eclipse.org/linuxtools/. - -
-
- diff --git a/external/poky/documentation/sdk-manual/sdk-appendix-obtain.xml b/external/poky/documentation/sdk-manual/sdk-appendix-obtain.xml index 2cadcc1e..86b6d7dd 100644 --- a/external/poky/documentation/sdk-manual/sdk-appendix-obtain.xml +++ b/external/poky/documentation/sdk-manual/sdk-appendix-obtain.xml @@ -216,12 +216,6 @@ TOOLCHAIN_TARGET_TASK_append = " libc-staticdev"
- - For additional information on building the - installer, see the - Cookbook guide to Making an Eclipse Debug Capable Image - wiki page. -
@@ -259,9 +253,6 @@ 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 @@ -306,8 +297,7 @@ arch is a string representing the target architecture: beaglebone-yocto, beaglebone-yocto-lsb, edgerouter, edgerouter-lsb, - genericx86, genericx86-64, genericx86-64-lsb, genericx86-lsb, - mpc8315e-rdb, mpc8315e-rdb-lsb, and qemu*. + genericx86, genericx86-64, genericx86-64-lsb, genericx86-lsb and qemu*. date_time is a date and time stamp. diff --git a/external/poky/documentation/sdk-manual/sdk-eclipse-project.xml b/external/poky/documentation/sdk-manual/sdk-eclipse-project.xml deleted file mode 100644 index 15a9ae75..00000000 --- a/external/poky/documentation/sdk-manual/sdk-eclipse-project.xml +++ /dev/null @@ -1,1248 +0,0 @@ - %poky; ] > - - - - Developing Applications Using <trademark class='trade'>Eclipse</trademark> - - - If you are familiar with the popular Eclipse IDE, you can use an - Eclipse Yocto Plug-in to allow you to develop, deploy, and test your - application all from within Eclipse. - This chapter describes general workflow using the SDK and Eclipse - and how to configure and set up Eclipse. - Notes - - - This chapter assumes development of applications on top of - an image prepared using the Yocto Project. - As such, inclusion of a pre-built image or the building of - an image is included in the workflow. - - - The chapter also assumes development on a build host that - is set up to use the Yocto Project. - Realize that you can easily use Eclipse and the Yocto - Project plug-in to develop an application for any number - of images developed and tested on different machines. - - - - - -
- Application Development Workflow Using <trademark class='trade'>Eclipse</trademark> - - - The following figure and supporting list summarize a - general workflow for application development that uses the - SDK within the Eclipse IDE. - The application developed runs on top of an image created using - the Yocto Project. - - - - - - - - - - Prepare the Host System for the Yocto Project: - Because this example workflow assumes development on a - system set up to use the Yocto Project, you need to be - sure your - build host - can use the Yocto Project. - See the - "Preparing the Build Host" - section in the Yocto Project Development Tasks Manual for - information on how to set up your build host. - - Be sure you install the "xterm" package, which is a - graphical and Eclipse plug-in extra - needed by Eclipse. - - - - Secure the Yocto Project Kernel Target Image: - This example workflow assumes application development on - top of an image built using the Yocto Project. - Depending on whether you are using a pre-built image - that matches your target architecture or you are using an - image you build using the - OpenEmbedded Build System - and where you are going to run the image while you - develop your application (QEMU or real hardware), the - area from which you get the image differs. - - - Download the image from - machines - if your target architecture is supported and - you are going to develop and test your - application on actual hardware. - - - Download the image from - - machines/qemu if - your target architecture is supported and you - are going to develop and test your application - using the - QEMU Emulator. - - - Build your image if you cannot find a pre-built - image that matches your target architecture. - If your target architecture is similar to a - supported architecture, you can modify the - kernel image before you build it. - See the - "Using devtool to Patch the Kernel" - section in the Yocto Project Linux Kernel - Development Manual for an example. - You can also see the - "Making a Suitable Qemux86 Image" - wiki for steps needed to build an image suitable - for QEMU and for debugging within the Eclipse IDE. - - - - - Install the SDK: - The SDK provides a target-specific cross-development - toolchain, the root filesystem, the QEMU emulator, and - other tools that can help you develop your application. - For information on how to install the SDK, see the - "Installing the SDK" - section. - - - Secure the Target Root Filesystem and the Cross-Development Toolchain: - You need to find and download the appropriate root - filesystem and the cross-development toolchain. - - You can find the tarballs for the root filesystem - in the same area used for the kernel image. - Depending on the type of image you are running, the - root filesystem you need differs. - For example, if you are developing an application that - runs on an image that supports Sato, you need to get a - root filesystem that supports Sato. - - You can find the cross-development toolchains at - toolchains. - Be sure to get the correct toolchain for your - development host and your target architecture. - See the "Locating Pre-Built SDK Installers" - section for information and the - "Installing the SDK" - section for installation information. - - As an alternative to downloading an SDK, you can - build the SDK installer. - For information on building the installer, see the - "Building an SDK Installer" - section. - Another helpful resource for building an installer - is the - "Cookbook guide to Making an Eclipse Debug Capable Image" - wiki page. - - - - Create and Build Your Application: - You need to have source files for your application. - Once you have the files, you can use the Eclipse IDE - to import them and build the project. - - - Deploy the Image With the Application: - Using the Eclipse IDE, you can deploy your image to the - hardware or to QEMU through the project's preferences. - You can also use Eclipse to load and test your image - under QEMU. - See the - "Using the Quick EMUlator (QEMU)" - chapter in the Yocto Project Development Tasks Manual - for information on using QEMU. - - - Test and Debug the Application: - Once your application is deployed, you need to test it. - Within the Eclipse IDE, you can use the debugging - environment along with supported performance enhancing - Linux Tools. - - - -
- -
- Working Within Eclipse - - - 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 as well - as actual target hardware. - You can also perform cross-debugging and profiling. - The environment also supports performance enhancing - tools - that allow you to perform remote profiling, tracing, - collection of power data, collection of latency data, and - collection of performance data. - - This release of the Yocto Project supports both the Oxygen - and Neon versions of the Eclipse IDE. - This section provides information on how to use the Oxygen - release with the Yocto Project. - For information on how to use the Neon version of Eclipse - with the Yocto Project, see - "Appendix D". - - - -
- Setting Up the Oxygen Version of the Eclipse IDE - - - To develop within the Eclipse IDE, you need to do the - following: - - - Install the Oxygen version of the Eclipse IDE. - - - Configure the Eclipse IDE. - - - Install the Eclipse Yocto Plug-in. - - - Configure the Eclipse Yocto Plug-in. - - - - Do not install Eclipse from your distribution's package - repository. - Be sure to install Eclipse from the official Eclipse - download site as directed in the next section. - - - -
- Installing the Oxygen Eclipse IDE - - - Follow these steps to locate, install, and configure - Oxygen Eclipse: - - - Locate the Oxygen Download: - Open a browser and go to - http://www.eclipse.org/oxygen/. - - - Download the Tarball: - Click through the "Download" buttons to - download the file. - - - Unpack the Tarball: - Move to a clean directory and unpack the - tarball. - Here is an example: - - $ cd ~ - $ tar -xzvf ~/Downloads/eclipse-inst-linux64.tar.gz - - Everything unpacks into a folder named - "eclipse-installer". - - - Launch the Installer: - Use the following commands to launch the - installer: - - $ cd ~/eclipse-installer - $ ./eclipse-inst - - - - Select Your IDE: - From the list, select the "Eclipse IDE for - C/C++ Developers". - - - Install the Software: - Click "Install" to begin the installation. - Accept all the certificates and any license - agreements. - Click "Install" again to finish the installation. - - - Launch Oxygen: - Accept the default "workspace" and click the - "Launch" button. - You should see the Eclipse welcome page from which - can click "workbench" to enter your workspace. - - The executable for Eclipse is located in the - eclipse/cpp-oxygen/eclipse - folder. - To launch Eclipse outside of the installation - process, simply execute that binary. - Here is an example: - - $ ~/eclipse/cpp-oxygen/eclipse/eclipse - - - - - -
- -
- Configuring the Oxygen Eclipse IDE - - - Follow these steps to configure the Oxygen Eclipse IDE. - Notes - - - Depending on how you installed Eclipse and what - you have already done, some of the options do - not appear. - If you cannot find an option as directed by the - manual, it has already been installed. - - - If you want to see all options regardless of - whether they are installed or not, deselect the - "Hide items that are already installed" - check box. - - - - - - Be sure Eclipse is running and you are in your - workbench. - Just click "workbench" if you are not in your - default workspace. - - - Select "Install New Software" from the "Help" - pull-down menu. - - - Select - "Oxygen - http://download.eclipse.org/releases/oxygen" - from the "Work with:" pull-down menu. - - - Expand the box next to "Linux Tools" and select - the following: - - C/C++ Remote (Over TCF/TE) Run/Debug Launcher - TM Terminal - - - - Expand the box next to "Mobile and Device - Development" and select the following - boxes: - - C/C++ Remote (Over TCF/TE) Run/Debug Launcher - Remote System Explorer User Actions - TM Terminal - TCF Remote System Explorer add-in - TCF Target Explorer - - - - Expand the box next to "Programming Languages" - and select the following box: - - C/C++ Development Tools SDK - - - - Complete the installation by clicking through - appropriate "Next" and "Finish" buttons and then - restart the Eclipse IDE. - - - -
- -
- Installing or Accessing the Oxygen Eclipse Yocto Plug-in - - - You can install the Eclipse Yocto Plug-in into the - Eclipse IDE one of two ways: use the Yocto Project's - Eclipse Update site to install the pre-built plug-in, - or build and install the plug-in from the latest - source code. - - -
- Installing the Pre-built Plug-in from the Yocto Project Eclipse Update Site - - - To install the Oxygen Eclipse Yocto Plug-in from the - update site, follow these steps: - - - Start up the Eclipse IDE. - - - In Eclipse, select "Install New - Software" from the "Help" menu. - - - Click "Add..." in the "Work with:" area. - - - Enter - &ECLIPSE_DL_PLUGIN_URL;/oxygen - in the URL field and provide a meaningful - name in the "Name" field. - - - Click "OK" to have the entry automatically - populate the "Work with:" field and to have - the items for installation appear in the window - below. - - - Check the boxes next to the following: - - Yocto Project SDK Plug-in - Yocto Project Documentation plug-in - - - - Complete the remaining software - installation steps and then restart the - Eclipse IDE to finish the installation of - the plug-in. - - You can click "OK" when prompted about - installing software that contains - unsigned content. - - - - -
- -
- Installing the Plug-in Using the Latest Source Code - - - To install the Oxygen Eclipse Yocto Plug-in from the - latest source code, follow these steps: - - - Be sure your build host has JDK version 1.8 - or greater. - On a Linux build host you can determine the - version using the following command: - - $ java -version - - - - Install X11-related packages: - - $ sudo apt-get install xauth - - - - In a new terminal shell, create a - Git repository with: - - $ cd ~ - $ git clone git://git.yoctoproject.org/eclipse-yocto - - - - Use Git to create the correct tag: - - $ cd ~/eclipse-yocto - $ git checkout -b oxygen/&DISTRO_NAME_NO_CAP; remotes/origin/oxygen/&DISTRO_NAME_NO_CAP; - - This creates a local tag named - oxygen/&DISTRO_NAME_NO_CAP; - based on the branch - origin/oxygen/&DISTRO_NAME_NO_CAP;. - You are put into a detached HEAD state, - which is fine since you are only going to - be building and not developing. - - - Change to the scripts - directory within the Git repository: - - $ cd scripts - - - - Set up the local build environment - by running the setup script: - - $ ./setup.sh - - When the script finishes execution, - it prompts you with instructions on how to - run the build.sh - script, which is also in the - scripts directory of - the Git repository created earlier. - - - Run the build.sh - script as directed. - Be sure to provide the tag name, - documentation branch, and a release name. - - - Following is an example: - - $ ECLIPSE_HOME=/home/scottrif/eclipse-yocto/scripts/eclipse ./build.sh -l oxygen/&DISTRO_NAME_NO_CAP; master yocto-&DISTRO; 2>&1 | tee build.log - - The previous example command adds the tag - you need for - oxygen/&DISTRO_NAME_NO_CAP; - to HEAD, then tells - the build script to use the local (-l) Git - checkout for the build. - After running the script, the file - org.yocto.sdk-release-date-archive.zip - is in the current directory. - - - If necessary, start the Eclipse IDE - and be sure you are in the Workbench. - - - Select "Install New Software" from - the "Help" pull-down menu. - - - Click "Add". - - - Provide anything you want in the - "Name" field. - - - Click "Archive" and browse to the - ZIP file you built earlier. - This ZIP file should not be "unzipped", and - must be the - *archive.zip file - created by running the - build.sh script. - - - Click the "OK" button. - - - Check the boxes that appear in - the installation window to install the - following: - - Yocto Project SDK Plug-in - Yocto Project Documentation plug-in - - - - Finish the installation by clicking - through the appropriate buttons. - You can click "OK" when prompted about - installing software that contains unsigned - content. - - - Restart the Eclipse IDE if necessary. - - - - - - At this point you should be able to configure the - Eclipse Yocto Plug-in as described in the - "Configuring the Oxygen Eclipse Yocto Plug-in" - section. - -
-
- -
- Configuring the Oxygen Eclipse Yocto Plug-In - - - Configuring the Oxygen Eclipse Yocto Plug-in involves - setting the Cross Compiler options and the Target - options. - The configurations you choose become the default - settings for all projects. - You do have opportunities to change them later when - you configure the project (see the following section). - - - - To start, you need to do the following from within the - Eclipse IDE: - - - Choose "Preferences" from the "Window" menu to - display the Preferences Dialog. - - - Click "Yocto Project SDK" to display - the configuration screen. - - - The following sub-sections describe how to configure - the plug-in. - - Throughout the descriptions, a start-to-finish - example for preparing a QEMU image for use with - Eclipse is referenced as the "wiki" and is linked - to the example on the - " Cookbook guide to Making an Eclipse Debug Capable Image" - wiki page. - - - -
- Configuring the Cross-Compiler Options - - - Cross Compiler options enable Eclipse to use your - specific cross compiler toolchain. - To configure these options, you must select - the type of toolchain, point to the toolchain, - specify the sysroot location, and select the target - architecture. - - - Selecting the Toolchain Type: - Choose between "Standalone pre-built toolchain" - and "Build system derived toolchain" for - Cross Compiler Options. - - - Standalone Pre-built Toolchain: - Select this type when you are using - a stand-alone cross-toolchain. - For example, suppose you are an - application developer and do not - need to build a target image. - Instead, you just want to use an - architecture-specific toolchain on - an existing kernel and target root - filesystem. - In other words, you have downloaded - and installed a pre-built toolchain - for an existing image. - - - Build System Derived Toolchain: - Select this type if you built the - toolchain as part of the - Build Directory. - When you select "Build system derived - toolchain", you are using the toolchain - built and bundled inside the Build - Directory. - For example, suppose you created a - suitable image using the steps in the - wiki. - In this situation, you would select - "Build system derived toolchain". - - - - - Specify the Toolchain Root Location: - If you are using a stand-alone pre-built - toolchain, you should be pointing to where - it is installed (e.g. - /opt/poky/&DISTRO;). - See the - "Installing the SDK" - section for information about how the SDK is - installed. - - If you are using a build system - derived toolchain, the path you provide for - the "Toolchain Root Location" field is the - Build Directory - from which you run the - bitbake command (e.g - /home/scottrif/poky/build). - - For more information, see the - "Building an SDK Installer" - section. - - - Specify Sysroot Location: - This location is where the root filesystem - for the target hardware resides. - - - This location depends on where you - separately extracted and installed the - target filesystem when you either built - it or downloaded it. - - If you downloaded the root filesystem - for the target hardware rather than - built it, you must download the - sato-sdk image - in order to build any c/c++ projects. - - As an example, suppose you prepared an - image using the steps in the - wiki. - If so, the - MY_QEMU_ROOTFS - directory is found in the Build Directory - and you would browse to and select that - directory (e.g. - /home/scottrif/poky/build/MY_QEMU_ROOTFS). - - - For more information on how to - install the toolchain and on how to extract - and install the sysroot filesystem, see the - "Building an SDK Installer" - section. - - - Select the Target Architecture: - The target architecture is the type of - hardware you are going to use or emulate. - Use the pull-down "Target Architecture" - menu to make your selection. - The pull-down menu should have the - supported architectures. - If the architecture you need is not listed - in the menu, you will need to build the - image. - See the - "Building a Simple Image" - section of the Yocto Project Development Tasks - Manual for more information. - You can also see the - wiki. - - - -
- -
- Configuring the Target Options - - - You can choose to emulate hardware using the QEMU - emulator, or you can choose to run your image on - actual hardware. - - - QEMU: - Select this option if you will be using the - QEMU emulator. - If you are using the emulator, you also - need to locate the kernel and specify any - custom options. - - If you selected the Build system derived - toolchain, the target kernel you built will be - located in the - Build Directory - in - tmp/deploy/images/machine - directory. - As an example, suppose you performed the - steps in the - wiki. - In this case, you specify your Build - Directory path followed by the image (e.g. - /home/scottrif/poky/build/tmp/deploy/images/qemux86/bzImage-qemux86.bin). - - - If you selected the standalone - pre-built toolchain, the pre-built image - you downloaded is located in the directory - you specified when you downloaded the - image. - - Most custom options are for advanced - QEMU users to further customize their QEMU - instance. - These options are specified between paired - angled brackets. - Some options must be specified outside the - brackets. - In particular, the options - serial, - nographic, and - kvm must all be - outside the brackets. - Use the man qemu - command to get help on all the options and - their use. - The following is an example: - - serial ‘<-m 256 -full-screen>’ - - Regardless of the mode, Sysroot is already - defined as part of the Cross-Compiler - Options configuration in the "Sysroot - Location:" field. - - - External HW: - Select this option if you will be using - actual hardware. - - - - - - Click "Apply and Close" to save your plug-in - configurations. - -
-
-
- -
- Creating the Project - - - You can create two types of projects: Autotools-based, or - Makefile-based. - This section describes how to create Autotools-based - projects from within the Eclipse IDE. - For information on creating Makefile-based projects in a - terminal window, see the - "Makefile-Based Projects" - section. - - Do not use special characters in project names - (e.g. spaces, underscores, etc.). Doing so can - cause configuration to fail. - - - - - To create a project based on a Yocto template and then - display the source code, follow these steps: - - - Select "C/C++ Project" from the "File -> New" menu. - - - Select "C Managed Build" from the available options and - click "Next". - - - Expand "Yocto Project SDK Autotools Project". - - - Select "Hello World ANSI C Autotools Projects". - This is an Autotools-based project based on a Yocto - template. - - - Put a name in the "Project name:" field. - Do not use hyphens as part of the name - (e.g. "hello"). - - - Click "Next". - - - Add appropriate information in the various fields. - - - Click "Finish". - - - If the "open perspective" prompt appears, - click "Yes" so that you in the C/C++ perspective. - - The left-hand navigation pane shows - your project. - You can display your source by double clicking the - project's source file. - - - -
- -
- Configuring the Cross-Toolchains - - - The earlier section, - "Configuring the Oxygen Eclipse Yocto Plug-in", - sets up the default project configurations. - You can override these settings for a given project by - following these steps: - - - Select "Yocto Project Settings" from - the "Project -> Properties" menu. - This selection brings up the Yocto Project Settings - Dialog and allows you to make changes specific to - an individual project. - By default, the Cross Compiler Options and - Target Options for a project are inherited from - settings you provided using the Preferences Dialog - as described earlier in the - "Configuring the Oxygen Eclipse Yocto Plug-in" - section. - The Yocto Project Settings Dialog allows you to - override those default settings for a given - project. - - - Make or verify your configurations for the - project and click "Apply and Close". - - - Right-click in the navigation pane and select - "Reconfigure Project" from the pop-up menu. - This selection reconfigures the project by running - Autotools GNU utility programs - such as Autoconf, Automake, and so forth in the - workspace for your project. - Click on the "Console" tab beneath your source code - to see the results of reconfiguring your project. - - - -
- -
- Building the Project - - To build the project select "Build All" from the - "Project" menu. - The console should update and you can note the - cross-compiler you are using (i.e. - i586-poky-linux-gcc in this example). - - When building "Yocto Project SDK Autotools" projects, - the Eclipse IDE might display error messages for - Functions/Symbols/Types that cannot be "resolved", - even when the related include file is listed at the - project navigator and when the project is able to - build. - For these cases only, it is recommended to add a new - linked folder to the appropriate sysroot. - Use these steps to add the linked folder: - - - Select the project. - - - Select "Folder" from the "File -> New" menu. - - - In the "New Folder" Dialog, click the "Advanced" - button and then activate "Link to - alternate location (linked folder)" button. - - - Click "Browse" to navigate to the include - folder inside the same sysroot location - selected in the Yocto Project - configuration preferences. - - - Click "Finish" to save the linked folder. - - - - -
- -
- Starting QEMU in User-Space NFS Mode - - - To start the QEMU emulator from within Eclipse, follow - these steps: - - See the - "Using the Quick EMUlator (QEMU)" - chapter in the Yocto Project Development Tasks Manual - for more information on using QEMU. - - - Expose and select "External Tools - Configurations ..." from the "Run -> External - Tools" menu. - - - Locate and select your image in the navigation - panel to the left - (e.g. qemu_i586-poky-linux). - - - Click "Run" to launch QEMU. - - The host on which you are running QEMU must - have the rpcbind utility - running to be able to make RPC calls on a - server on that machine. - If QEMU does not invoke and you receive error - messages involving - rpcbind, follow the - suggestions to get the service running. - As an example, on a new Ubuntu 16.04 LTS - installation, you must do the following in a new - shell in order to get QEMU to launch: - - $ sudo apt-get install rpcbind - - After installing rpcbind, - you need to edit the - /etc/init.d/rpcbind file - to include the following line: - - OPTIONS="-i -w" - - After modifying the file, you need to start the - service: - - $ sudo service portmap restart - - - - - If needed, enter your host root password in - the shell window at the prompt. - This sets up a Tap 0 - connection needed for running in user-space NFS - mode. - - - Wait for QEMU to launch. - - - Once QEMU launches, you can begin operating - within that environment. - One useful task at this point would be to determine - the IP Address for the user-space NFS by using the - ifconfig command. - The IP address of the QEMU machine appears in the - xterm window. - You can use this address to help you see which - particular - IP address the instance of QEMU is using. - - - -
- -
- Deploying and Debugging the Application - - - Once the QEMU emulator is running the image, you can deploy - your application using the Eclipse IDE and then use - the emulator to perform debugging. - Follow these steps to deploy the application. - - Currently, Eclipse does not support SSH port - forwarding. - Consequently, if you need to run or debug a remote - application using the host display, you must create a - tunneling connection from outside Eclipse and keep - that connection alive during your work. - For example, in a new terminal, run the following: - - $ ssh -XY user_name@remote_host_ip - - Using the above form, here is an example: - - $ ssh -XY root@192.168.7.2 - - After running the command, add the command to be - executed in Eclipse's run configuration before the - application as follows: - - export DISPLAY=:10.0 - - Be sure to not destroy the connection during your QEMU - session (i.e. do not - exit out of or close that shell). - - - - Select "Debug Configurations..." from the - "Run" menu. - - - In the left area, expand - "C/C++Remote Application". - - - Locate your project and select it to bring - up a new tabbed view in the Debug Configurations - Dialog. - - - Click on the "Debugger" tab to see the - cross-tool debugger you are using. - Be sure to change to the debugger perspective in - Eclipse. - - - Click on the "Main" tab. - - - Create a new connection to the QEMU instance - by clicking on "new". - Select "SSH", which - means Secure Socket Shell and then click "OK". - Optionally, you can select a TCF connection - instead. - - - Clear out the "Connection name" field and - enter any name you want for the connection. - - - Put the IP address for the connection in - the "Host" field. - For QEMU, the default is "192.168.7.2". - However, if a previous QEMU session did not exit - cleanly, the IP address increments (e.g. - "192.168.7.3"). - - You can find the IP address for the current - QEMU session by looking in the xterm that - opens when you launch QEMU. - - - - Enter "root", which - is the default for QEMU, for the "User" field. - Be sure to leave the password field empty. - - - Click "Finish" to close the New Connections Dialog. - - - If necessary, use the drop-down menu now in the - "Connection" field and pick the IP Address you - entered. - - - Assuming you are connecting as the root - user, which is the default for QEMU x86-64 SDK - images provided by the Yocto Project, in the - "Remote Absolute File Path for C/C++ Application" - field, browse to - /home/root/ProjectName - (e.g. /home/root/hello). - You could also browse to any other path you have - write access to on the target such as - /usr/bin. - This location is where your application will be - located on the QEMU system. - If you fail to browse to and specify an appropriate - location, QEMU will not understand what to remotely - launch. - Eclipse is helpful in that it auto fills your - application name for you assuming you browsed to a - directory. - Tips - - - If you are prompted to provide a username - and to optionally set a password, be sure - you provide "root" as the username and you - leave the password field blank. - - - If browsing to a directory fails or times - out, but you can - ssh into your QEMU - or target from the command line and you - have proxies set up, it is likely that - Eclipse is sending the SSH traffic to a - proxy. - In this case, either use TCF , or click on - "Configure proxy settings" in the - connection dialog and add the target IP - address to the "bypass proxy" section. - You might also need to change - "Active Provider" from Native to Manual. - - - - - - Be sure you change to the "Debug" perspective in - Eclipse. - - - Click "Debug" - - - Accept the debug perspective. - - - -
- -
- Using Linuxtools - - - As mentioned earlier in the manual, performance tools exist - (Linuxtools) that enhance your development experience. - These tools are aids in developing and debugging - applications and images. - You can run these tools from within the Eclipse IDE through - the "Linuxtools" menu. - - - - For information on how to configure and use these tools, - see - http://www.eclipse.org/linuxtools/. - -
-
-
- diff --git a/external/poky/documentation/sdk-manual/sdk-extensible.xml b/external/poky/documentation/sdk-manual/sdk-extensible.xml index 09f06088..94d2a241 100644 --- a/external/poky/documentation/sdk-manual/sdk-extensible.xml +++ b/external/poky/documentation/sdk-manual/sdk-extensible.xml @@ -27,8 +27,7 @@ In addition to the functionality available through devtool, you can alternatively make use of the - toolchain directly, for example from Makefile, Autotools, and - Eclipse-based projects. + toolchain directly, for example from Makefile and Autotools. See the "Using the SDK Toolchain Directly" chapter for more information. @@ -119,11 +118,6 @@ For information on building the installer, see the "Building an SDK Installer" section. - Another helpful resource for building an installer is the - Cookbook guide to Making an Eclipse Debug Capable Image - wiki page. - This wiki page focuses on development when using the Eclipse - IDE.
@@ -157,7 +151,7 @@ Poky (Yocto Project Reference Distro) Extensible SDK installer version 2.5 ========================================================================== Enter target directory for SDK (default: ~/poky_sdk): - You are about to install the SDK to "/home/scottrif/poky_sdk". Proceed[Y/n]? Y + You are about to install the SDK to "/home/scottrif/poky_sdk". Proceed [Y/n]? Y Extracting SDK..............done Setting it up... Extracting buildtools... @@ -624,7 +618,23 @@ The result is that the command sets up both the source code and an append file within the workspace while the recipe remains in its - original location. + original location.
+ + Additionally, if you have any non-patch + local files (i.e. files referred to with + file:// entries in + SRC_URI statement excluding + *.patch/ or + *.diff), these files are + copied to an + oe-local-files folder + under the newly created source tree. + Copying the files here gives you a convenient + area from which you can modify the files. + Any changes or additions you make to those + files are incorporated into the build the next + time you build the software just as are other + changes you might have made to the source. Middle: @@ -639,10 +649,10 @@ The following command tells - devtool what recipe with + devtool the recipe with which to work and, in this case, identifies a local area for the extracted source files that - is outside of the default + exists outside of the default devtool workspace: $ devtool modify recipe srctree @@ -656,8 +666,12 @@ the recipe's SRC_URI statements to locate the source files and any associated patch files. - Once the files are located, the command by - default extracts them into + Non-patch files are copied to an + oe-local-files folder + under the newly created source tree. + + Once the files are located, the command + by default extracts them into srctree. Within workspace, @@ -691,9 +705,21 @@
- Once the command finishes, it creates only - an append file for the recipe in the - devtool workspace. + If an oe-local-files + subdirectory happens to exist and it contains + non-patch files, the files are used. + However, if the subdirectory does not exist and + you run the devtool finish + command, any non-patch files that might exist + next to the recipe are removed because it + appears to devtool that + you have deleted those files. + + Once the + devtool modify command + finishes, it creates only an append file for + the recipe in the devtool + workspace. The recipe and the source code remain in their original locations. @@ -784,7 +810,12 @@ original recipe in the original layer or the command creates a .bbappend file in a different layer as provided by - layer. + layer. + Any work you did in the + oe-local-files directory is + preserved in the original files next to the recipe + during the devtool finish + command.
As a final process of the devtool finish command, the state @@ -831,7 +862,9 @@ versioning schemes, extract code into or out of the devtool workspace, - and work with any source file forms that the fetchers support. + and work with any source file forms that the + fetchers + support. @@ -902,7 +935,23 @@ files from other developers. The result is that the command sets up the source code, the new version of the recipe, and an append file - all within the workspace. + all within the workspace. + + Additionally, if you have any non-patch + local files (i.e. files referred to with + file:// entries in + SRC_URI statement excluding + *.patch/ or + *.diff), these files are + copied to an + oe-local-files folder + under the newly created source tree. + Copying the files here gives you a convenient + area from which you can modify the files. + Any changes or additions you make to those + files are incorporated into the build the next + time you build the software just as are other + changes you might have made to the source. Resolve any Conflicts created by the Upgrade: @@ -980,10 +1029,18 @@ Git repository, moves the new recipe to a more permanent layer, and then resets the recipe so that the recipe is built normally rather than from the - workspace. + workspace. + + Any work you did in the + oe-local-files directory is + preserved in the original files next to the recipe + during the devtool finish + command. + + If you specify a destination layer that is the same as the original source, then the old version of the - recipe and associated files will be removed prior to + recipe and associated files are removed prior to adding the new version. $ devtool finish recipe layer diff --git a/external/poky/documentation/sdk-manual/sdk-intro.xml b/external/poky/documentation/sdk-manual/sdk-intro.xml index 8642be61..9169fe9c 100644 --- a/external/poky/documentation/sdk-manual/sdk-intro.xml +++ b/external/poky/documentation/sdk-manual/sdk-intro.xml @@ -14,9 +14,6 @@ This manual provides information that explains how to use both the Yocto Project extensible and standard SDKs to develop applications and images. - Additionally, the manual also provides information on how to use - the popular Eclipse IDE as part - of your application development workflow within the SDK environment. Prior to the 2.0 Release of the Yocto Project, application development was primarily accomplished through the use of the @@ -112,21 +109,6 @@ However, QEMU plays an important role in the development process that revolves around use of the SDK. - - The Eclipse IDE Yocto Plug-in. - This plug-in is available for you if you are an Eclipse - user. - In the same manner as QEMU, the plug-in is not literally part - of the SDK but is rather available for use as part of the - development process. - - - Various performance-related - tools - that can enhance your development experience. - These tools are also separate from the actual SDK but can be - independently obtained and used in the development process. -
@@ -271,53 +253,6 @@
- -
- <trademark class='trade'>Eclipse</trademark> 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 many performance-related - tools - that enhance your development experience. - - Previous releases of the Eclipse Yocto Plug-in supported - "user-space tools" (i.e. LatencyTOP, PowerTOP, Perf, SystemTap, - and Lttng-ust) that also added to the development experience. - These tools have been deprecated with the release of the - Eclipse Yocto Plug-in. - - - - - 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 - "Developing Applications Using Eclipse" - Chapter. - -
- -
- Performance Enhancing Tools - - - Supported performance enhancing tools are available that let you - profile, debug, and perform tracing on your projects developed - using Eclipse. - For information on these tools see - http://www.eclipse.org/linuxtools/. - -
diff --git a/external/poky/documentation/sdk-manual/sdk-manual-eclipse-customization.xsl b/external/poky/documentation/sdk-manual/sdk-manual-eclipse-customization.xsl deleted file mode 100644 index 77ba5f57..00000000 --- a/external/poky/documentation/sdk-manual/sdk-manual-eclipse-customization.xsl +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/external/poky/documentation/sdk-manual/sdk-manual.xml b/external/poky/documentation/sdk-manual/sdk-manual.xml old mode 100644 new mode 100755 index d4f615f7..a557549e --- a/external/poky/documentation/sdk-manual/sdk-manual.xml +++ b/external/poky/documentation/sdk-manual/sdk-manual.xml @@ -22,11 +22,10 @@ - Scott Rifenbark - Scotty's Documentation Services, INC + &ORGNAME; - srifenbark@gmail.com + &ORGEMAIL; @@ -34,7 +33,7 @@ 2.1 April 2016 - Released with the Yocto Project 2.1 Release. + The initial document released with the Yocto Project 2.1 Release. 2.2 @@ -62,24 +61,29 @@ Released with the Yocto Project 2.6 Release. - 2.6.1 - February 2019 - Released with the Yocto Project 2.6.1 Release. + 2.7 + May 2019 + Released with the Yocto Project 2.7 Release. - 2.6.2 - April 2019 - Released with the Yocto Project 2.6.2 Release. + 3.0 + October 2019 + Released with the Yocto Project 3.0 Release. - 2.6.3 - August 2019 - Released with the Yocto Project 2.6.3 Release. + 3.1 + April 2020 + Released with the Yocto Project 3.1 Release. - 2.6.4 - November 2019 - Released with the Yocto Project 2.6.4 Release. + 3.1.1 + June 2020 + Released with the Yocto Project 3.1.1 Release. + + + 3.1.2 + &REL_MONTH_YEAR; + Released with the Yocto Project 3.1.2 Release. @@ -102,7 +106,7 @@ Yocto Project. To be sure you have the latest version of the manual for this release, go to the - Yocto Project documentation page + Yocto Project documentation page and select the manual from that site. Manuals from the site are more up-to-date than manuals derived from the Yocto Project released TAR files. @@ -119,18 +123,20 @@ page. If you need a version of this manual for a different Yocto Project release, visit the - Yocto Project documentation page + Yocto Project documentation page and select the manual set by using the "ACTIVE RELEASES DOCUMENTATION" or "DOCUMENTS ARCHIVE" pull-down menus. - + + To report any inaccuracies or problems with this - manual, send an email to the Yocto Project - discussion group at - yocto@yoctoproject.com or log into - the freenode #yocto channel. - + (or any other Yocto Project) manual, send an email to + the Yocto Project documentation mailing list at + docs@lists.yoctoproject.org or + log into the freenode #yocto channel. + + @@ -145,16 +151,12 @@ - - - -