rewrote quickstart, build-process
[AGL/documentation.git] / docs / 0_Getting_Started / 2_Building_AGL_Image / 1_Preparing_Your_Build_Host.md
diff --git a/docs/0_Getting_Started/2_Building_AGL_Image/1_Preparing_Your_Build_Host.md b/docs/0_Getting_Started/2_Building_AGL_Image/1_Preparing_Your_Build_Host.md
new file mode 100644 (file)
index 0000000..74877b0
--- /dev/null
@@ -0,0 +1,78 @@
+---
+title: Preparing Your Build Host
+---
+
+Preparing your build host so that it can build an AGL image means
+making sure your system is set up to use the
+[Yocto Project](https://yoctoproject.org) OpenEmbedded build system,
+which is based on
+[BitBake](https://yoctoproject.org/docs/3.1.2/bitbake-user-manual/bitbake-user-manual.html).
+
+This section presents minimal information so you can prepare the build host
+to use the "Dunfell" version of the Yocto Project (i.e. version 3.1.2).
+If you want more details on how the Yocto Project works, you can reference
+the Yocto Project documentation
+[here](https://www.yoctoproject.org/docs/).
+
+**NOTE:** This entire section presumes you want to build an image.
+You can skip the entire build process if you want to use a ready-made
+development image.
+The [supported images](https://download.automotivelinux.org/AGL/snapshots/master/latest/) exist for several boards as
+well as for the Quick EMUlator (QEMU).
+See the
+"[Quickstart](../1_Quickstart/Quickstart.md)"
+section for more information on the ready-made images.
+
+1. **Use a Supported Linux Distribution:** To use the AGL software, it is
+   recommended that your build host is a native Linux machine that runs a
+   Yocto Project supported distribution as described by the
+   "[Supported Linux Distributions](https://www.yoctoproject.org/docs/3.1.2/ref-manual/ref-manual.html#detailed-supported-distros)"
+   section in the Yocto Project Reference Manual.
+   Basically, you should be running a recent version of Ubuntu, Fedora, openSUSE,
+   CentOS, or Debian.
+
+   If you must use a build host that is not a native Linux machine, you can
+   install and use Docker to create a container that allows you to work as
+   if you are using a Linux-based host.
+   The container contains the same development environment (i.e. distros, packages,
+   and so forth) as would a properly prepared build host running a supported
+   Linux distribution.
+   For information on how to install and set up this Docker container, see the
+   "[Setting Up a Docker Container -- FIX ME](./docker-container-setup.html)"
+   section.
+
+2. **Be Sure Your Build Host Has Enough Free Disk Space:**
+   Your build host should have at least 100 Gbytes.
+
+3. **Be Sure Tools are Recent:**  You need to have recent versions for
+   the following tools:
+
+   * Git 1.8.3.1 or greater
+   * Tar 1.27 or greater
+   * Python 3.4.0 or greater
+
+   If your distribution does not meet these minimal requirements, see the
+   "[Required Git, tar, and Python Versions](https://www.yoctoproject.org/docs/3.1.2/ref-manual/ref-manual.html#required-git-tar-and-python-versions)"
+   section in the Yocto Project Reference Manual for steps that you can
+   take to be sure you have these tools.
+
+4. **Install Essential, Graphical, and Eclipse Plug-in Build Host Packages:**
+   Your build host needs certain host packages.
+   Depending on the Linux distribution you are using, the list of
+   host packages differ.
+   See
+   "[The Build Host Packages](https://www.yoctoproject.org/docs/3.1.2/yocto-project-qs/yocto-project-qs.html#packages)"
+   section of the Yocto Project Quick Start for information on the packages you need.
+
+   **NOTE:** If you are using the CentOS distribution, you need to
+   separately install the epel-release package and run the `makecache` command as
+   described in
+   "[The Build Host Packages](https://www.yoctoproject.org/docs/3.1.2/yocto-project-qs/yocto-project-qs.html#packages)"
+   section of the Yocto Project Quick Start.
+
+   Aside from the packages listed in the previous section, you need the following:
+
+   * **Ubuntu and Debian:** curl
+   * **Fedora:** curl
+   * **OpenSUSE:** glibc-locale curl
+   * **CentOS:** curl