rewrote quickstart, build-process
[AGL/documentation.git] / docs / 0_Getting_Started / 2_Building_AGL_Image / 1_Preparing_Your_Build_Host.md
1 ---
2 title: Preparing Your Build Host
3 ---
4
5 Preparing your build host so that it can build an AGL image means
6 making sure your system is set up to use the
7 [Yocto Project](https://yoctoproject.org) OpenEmbedded build system,
8 which is based on
9 [BitBake](https://yoctoproject.org/docs/3.1.2/bitbake-user-manual/bitbake-user-manual.html).
10
11 This section presents minimal information so you can prepare the build host
12 to use the "Dunfell" version of the Yocto Project (i.e. version 3.1.2).
13 If you want more details on how the Yocto Project works, you can reference
14 the Yocto Project documentation
15 [here](https://www.yoctoproject.org/docs/).
16
17 **NOTE:** This entire section presumes you want to build an image.
18 You can skip the entire build process if you want to use a ready-made
19 development image.
20 The [supported images](https://download.automotivelinux.org/AGL/snapshots/master/latest/) exist for several boards as
21 well as for the Quick EMUlator (QEMU).
22 See the
23 "[Quickstart](../1_Quickstart/Quickstart.md)"
24 section for more information on the ready-made images.
25
26 1. **Use a Supported Linux Distribution:** To use the AGL software, it is
27    recommended that your build host is a native Linux machine that runs a
28    Yocto Project supported distribution as described by the
29    "[Supported Linux Distributions](https://www.yoctoproject.org/docs/3.1.2/ref-manual/ref-manual.html#detailed-supported-distros)"
30    section in the Yocto Project Reference Manual.
31    Basically, you should be running a recent version of Ubuntu, Fedora, openSUSE,
32    CentOS, or Debian.
33
34    If you must use a build host that is not a native Linux machine, you can
35    install and use Docker to create a container that allows you to work as
36    if you are using a Linux-based host.
37    The container contains the same development environment (i.e. distros, packages,
38    and so forth) as would a properly prepared build host running a supported
39    Linux distribution.
40    For information on how to install and set up this Docker container, see the
41    "[Setting Up a Docker Container -- FIX ME](./docker-container-setup.html)"
42    section.
43
44 2. **Be Sure Your Build Host Has Enough Free Disk Space:**
45    Your build host should have at least 100 Gbytes.
46
47 3. **Be Sure Tools are Recent:**  You need to have recent versions for
48    the following tools:
49
50    * Git 1.8.3.1 or greater
51    * Tar 1.27 or greater
52    * Python 3.4.0 or greater
53
54    If your distribution does not meet these minimal requirements, see the
55    "[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)"
56    section in the Yocto Project Reference Manual for steps that you can
57    take to be sure you have these tools.
58
59 4. **Install Essential, Graphical, and Eclipse Plug-in Build Host Packages:**
60    Your build host needs certain host packages.
61    Depending on the Linux distribution you are using, the list of
62    host packages differ.
63    See
64    "[The Build Host Packages](https://www.yoctoproject.org/docs/3.1.2/yocto-project-qs/yocto-project-qs.html#packages)"
65    section of the Yocto Project Quick Start for information on the packages you need.
66
67    **NOTE:** If you are using the CentOS distribution, you need to
68    separately install the epel-release package and run the `makecache` command as
69    described in
70    "[The Build Host Packages](https://www.yoctoproject.org/docs/3.1.2/yocto-project-qs/yocto-project-qs.html#packages)"
71    section of the Yocto Project Quick Start.
72
73    Aside from the packages listed in the previous section, you need the following:
74
75    * **Ubuntu and Debian:** curl
76    * **Fedora:** curl
77    * **OpenSUSE:** glibc-locale curl
78    * **CentOS:** curl