From 841458c70c75a407d9c481753f9f9068058db62c Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Thu, 22 Feb 2018 12:34:05 -0800 Subject: getting-started: Added Host Development Section Section to describe the key nature of the host development system and its role and preparation requirements for use in the Yocto Project development environment. (From yocto-docs rev: 379659af343ba84f9c8fc2f47474659e06219c53) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- .../getting-started-development-environment.xml | 375 ++++++++++++++------- 1 file changed, 254 insertions(+), 121 deletions(-) (limited to 'documentation/getting-started') diff --git a/documentation/getting-started/getting-started-development-environment.xml b/documentation/getting-started/getting-started-development-environment.xml index 54a607f6ab..f7d646c2b7 100644 --- a/documentation/getting-started/getting-started-development-environment.xml +++ b/documentation/getting-started/getting-started-development-environment.xml @@ -15,9 +15,8 @@ - Specifically, this chapter addresses open source philosophy, workflows, - Git, source repositories, licensing, and development - syntax. + Specifically, this chapter addresses open source philosophy, source + repositories, workflows, Git, and licensing.
@@ -66,8 +65,256 @@
-
- Workflows +
+ The Development Host + + + A development host or build host is key to using the Yocto Project. + Because the goal of the Yocto Project is to develop images or + applications that run on embedded hardware, development of those + images and applications generally takes place on a system not + intended to run the software - the development host. + + + + You need to set up a development host in order to use it with the + Yocto Project. + Most find that it is best to have a native Linux machine function as + the development host. + However, it is possible to use a system that does not run Linux + as its operating system as your development host. + When you have a Mac or Windows-based system, you can set it up + as the development host by using + CROPS, + which leverages + Docker Containers. + Once you take the steps to set up a CROPS machine, you effectively + have access to a shell environment that is similar to what you see + when using a Linux-based development host. + For the steps needed to set up a system using CROPS, see the + "Setting Up to Use CROss PlatformS (CROPS)" + section in the Yocto Project Development Tasks Manual. + + + + If your development host is going to be a system that runs a Linux + distribution, steps still exist that you must take to prepare the + system for use with the Yocto Project. + You need to be sure that the Linux distribution on the system is + one that supports the Yocto Project. + You also need to be sure that the correct set of host packages are + installed that allow development using the Yocto Project. + For the steps needed to set up a development host that runs Linux, + see the + "Setting Up a Native Linux Host" + section in the Yocto Project Development Tasks Manual. + + + + Once your development host is set up to use the Yocto Project, + several methods exist for you to do work in the Yocto Project + environment: + + + Command Lines, BitBake, and Shells: + Traditional development in the Yocto Project involves using + OpenEmbedded build system, which uses BitBake, in a + command-line environment from a shell on your development + host. + You can accomplish this from a host that is a native Linux + machine or from a host that has been set up with CROPS. + Either way, you create, modify, and build images and + applications all within a shell-based environment using + components and tools available through your Linux distribution + and the Yocto Project. + + For a general flow of the build procedures, see the + "Building an Image" + section in the Yocto Project Development Tasks Manual. + + + Board Support Package (BSP) Development: + Development of BSPs involves using the Yocto Project to + create and test layers that allow easy development of + images and applications targeted for specific hardware. + To development BSPs, you need to take some additional steps + beyond what was described in setting up a development host. + + + The + Yocto Project Board Support Package (BSP) Developer's Guide' + provides BSP-related development information. + For specifics on development host preparation, see the + "Preparing Your Build Host to Work With BSP Layers" + section in the Yocto Project Board Support Package (BSP) + Developer's Guide. + + + Kernel Development: + If you are going to be developing kernels using the Yocto + Project you likely will be using devtool. + A workflow using devtool makes kernel + development quicker by reducing iteration cycle times. + + The + Yocto Project Linux Kernel Development Manual + provides kernel-related development information. + For specifics on development host preparation, see the + "Preparing the Build Host to Work on the Kernel" + section in the Yocto Project Linux Kernel Development Manual. + + + Using the Eclipse IDE: + One of two Yocto Project development methods that involves an + interface that effectively puts the Yocto Project into the + background is the popular Eclipse IDE. + This method of development is advantageous if you are already + familiar with working within Eclipse. + Development is supported through a plugin that you install + onto your development host. + + For steps that show you how to set up your development + host to use the Eclipse Yocto Project plugin, see the + "Developing Applications Using Eclipse" + Chapter in the Yocto Project Application Development and the + Extensible Software Development Kit (eSDK) manual. + + + Using the Toaster: + The other Yocto Project development method that involves an + interface that effectively puts the Yocto Project into the + background is Toaster. + Toaster provides an interface to the OpenEmbedded build system. + The interface enables you to configure and run your builds. + Information about builds is collected and stored in a database. + You can use Toaster to configure and start builds on multiple + remote build servers. + + For steps that show you how to set up your development + host to use Toaster and on how to use Toaster in general, + see the + Toaster User Manual. + + + +
+ +
+ Yocto Project Source Repositories + + + The Yocto Project team maintains complete source repositories for all + Yocto Project files at + . + This web-based source code browser is organized into categories by + function such as IDE Plugins, Matchbox, Poky, Yocto Linux Kernel, and + so forth. + From the interface, you can click on any particular item in the "Name" + column and see the URL at the bottom of the page that you need to clone + a Git repository for that particular item. + Having a local Git repository of the + Source Directory, + which is usually named "poky", allows + you to make changes, contribute to the history, and ultimately enhance + the Yocto Project's tools, Board Support Packages, and so forth. + + + + For any supported release of Yocto Project, you can also go to the + Yocto Project Website and + select the "Downloads" tab and get a released tarball of the + poky repository or any supported BSP tarballs. + Unpacking these tarballs gives you a snapshot of the released + files. + Notes + + + The recommended method for setting up the Yocto Project + Source Directory + and the files for supported BSPs + (e.g., meta-intel) is to use + Git to create a local copy of + the upstream repositories. + + + Be sure to always work in matching branches for both + the selected BSP repository and the + Source Directory + (i.e. poky) repository. + For example, if you have checked out the "master" branch + of poky and you are going to use + meta-intel, be sure to checkout the + "master" branch of meta-intel. + + + + + + + In summary, here is where you can get the project files needed for + development: + + + + Source Repositories: + + This area contains IDE Plugins, Matchbox, Poky, Poky Support, + Tools, Yocto Linux Kernel, and Yocto Metadata Layers. + You can create local copies of Git repositories for each of + these areas. + + + + For steps on how to view and access these upstream Git + repositories, see the + "Accessing Source Repositories" + Section in the Yocto Project Development Tasks Manual. + + + + Index of /releases: + + This is an index of releases such as + the Eclipse + Yocto Plug-in, miscellaneous support, Poky, Pseudo, installers + for cross-development toolchains, and all released versions of + Yocto Project in the form of images or tarballs. + Downloading and extracting these files does not produce a local + copy of the Git repository but rather a snapshot of a + particular release or image. + + + + For steps on how to view and access these files, see the + "Accessing Index of Releases" + section in the Yocto Project Development Tasks Manual. + + + "Downloads" page for the + Yocto Project Website: + + + This section will change due to + reworking of the YP Website. + + The Yocto Project website includes a "Downloads" tab + that allows you to download any Yocto Project + release and Board Support Package (BSP) in tarball form. + The tarballs are similar to those found in the + Index of /releases: area. + + + + For steps on how to use the "Downloads" page, see the + "Using the Downloads Page" + section in the Yocto Project Development Tasks Manual. + + + +
+ +
+ Git Workflows and the Yocto Project This section provides workflow concepts using the Yocto Project and @@ -298,8 +545,8 @@ As mentioned briefly in the previous section and also in the - "Workflows" section, - the Yocto Project maintains source repositories at + "Git Workflows and the Yocto Project" + section, the Yocto Project maintains source repositories at . If you look at this web-interface of the repositories, each item is a separate Git repository. @@ -622,120 +869,6 @@
-
- Yocto Project Source Repositories - - - The Yocto Project team maintains complete source repositories for all - Yocto Project files at - . - This web-based source code browser is organized into categories by - function such as IDE Plugins, Matchbox, Poky, Yocto Linux Kernel, and - so forth. - From the interface, you can click on any particular item in the "Name" - column and see the URL at the bottom of the page that you need to clone - a Git repository for that particular item. - Having a local Git repository of the - Source Directory, - which is usually named "poky", allows - you to make changes, contribute to the history, and ultimately enhance - the Yocto Project's tools, Board Support Packages, and so forth. - - - - For any supported release of Yocto Project, you can also go to the - Yocto Project Website and - select the "Downloads" tab and get a released tarball of the - poky repository or any supported BSP tarballs. - Unpacking these tarballs gives you a snapshot of the released - files. - Notes - - - The recommended method for setting up the Yocto Project - Source Directory - and the files for supported BSPs - (e.g., meta-intel) is to use - Git to create a local copy of - the upstream repositories. - - - Be sure to always work in matching branches for both - the selected BSP repository and the - Source Directory - (i.e. poky) repository. - For example, if you have checked out the "master" branch - of poky and you are going to use - meta-intel, be sure to checkout the - "master" branch of meta-intel. - - - - - - - In summary, here is where you can get the project files needed for - development: - - - - Source Repositories: - - This area contains IDE Plugins, Matchbox, Poky, Poky Support, - Tools, Yocto Linux Kernel, and Yocto Metadata Layers. - You can create local copies of Git repositories for each of - these areas. - - - - For steps on how to view and access these upstream Git - repositories, see the - "Accessing Source Repositories" - Section in the Yocto Project Development Tasks Manual. - - - - Index of /releases: - - This is an index of releases such as - the Eclipse - Yocto Plug-in, miscellaneous support, Poky, Pseudo, installers - for cross-development toolchains, and all released versions of - Yocto Project in the form of images or tarballs. - Downloading and extracting these files does not produce a local - copy of the Git repository but rather a snapshot of a - particular release or image. - - - - For steps on how to view and access these files, see the - "Accessing Index of Releases" - section in the Yocto Project Development Tasks Manual. - - - "Downloads" page for the - Yocto Project Website: - - - This section will change due to - reworking of the YP Website. - - The Yocto Project website includes a "Downloads" tab - that allows you to download any Yocto Project - release and Board Support Package (BSP) in tarball form. - The tarballs are similar to those found in the - Index of /releases: area. - - - - For steps on how to use the "Downloads" page, see the - "Using the Downloads Page" - section in the Yocto Project Development Tasks Manual. - - - -
-
Licensing -- cgit v1.2.3-54-g00ecf