diff options
Diffstat (limited to 'docs/getting-started/source-code.md')
-rw-r--r-- | docs/getting-started/source-code.md | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/docs/getting-started/source-code.md b/docs/getting-started/source-code.md new file mode 100644 index 0000000..3c5d6f4 --- /dev/null +++ b/docs/getting-started/source-code.md @@ -0,0 +1,201 @@ +# Introduction: Building target AGL image with Yocto project + +The standard Yocto process is made of the following steps: + +* Setting up your operating system. +* Setting up the build environment for R-Car BSP. +* Downloading the proprietary drivers and installing them in the build environment (if needed). +* Build the image. +* Boot using SD-CARD. + * Create an SD-CARD. + * Configure to boot on SD-CARD. + * Copy the image to the SD-CARD. + * Boot the board on it. + +For convenience, the resulting development images are made available [Here][AGL snapshots master latest] + +If you want to bypass the build phase and quick boot the board, you can download the image tarball and the kernel then follow the installation procedure. + +## Setting up your operating system + +The very first step is to ensure that your system can run the build system of the Yocto Project. + +**Important**: it only runs on Linux + +* if your system is Windows© or iOS© you should use a virtualization solution (Virtualbox, VMWare ...) to run a Linux VM on your system. + +For AGL 6.0, Yocto Project 2.4, known as rocko, has been selected for the BSP and build system. + +Reference data for configuring your system can be found in the Yocto documentation [Here][yocto ref Manual] + +Here after an extract of this documentation for most common Linux distributions: + +* The build system should be able to run on any modern distributions that has the following versions for: + * Python + * Git 1.7.8 or greater + * tar 1.24 or greater + * GCC, … + +**Note**: + +* Python 2.7.3 or greater excluding Python 3.x, which is not supported. + +### Ubuntu and Debian + +The essential and graphical support packages you need for a supported Ubuntu or Debian distribution are shown in the following command: + +```bash +sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ + build-essential chrpath socat libsdl1.2-dev xterm cpio curl +``` + +**Note**: + +* Also note that for this tutorial, the utility 'curl' has been added to the list of packages to install. + +### Fedora + +The essential and graphical packages you need for a supported Fedora distribution are shown in the following command: + +```bash +sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \ + diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \ + ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue socat \ + SDL-devel xterm curl +``` + +### OpenSUSE + +The essential and graphical packages you need for a supported OpenSUSE distribution are shown in the following command: + +```bash +sudo zypper install python gcc gcc-c++ git chrpath make wget python-xml \ + diffstat texinfo python-curses patch socat libSDL-devel xterm curl \ + python3 python3-curses glibc-locale +``` + +### CentOS + +The essential and graphical packages you need for a supported CentOS distribution are shown in the following command: + +```bash +sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \ + diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \ + socat SDL-devel xterm curl +``` + +## Download AGL Source Code + +The AGL source code and Yocto layers are maintained on the AGL Gerrit server. +For information on how to create accounts for gerrit see [Getting Started with AGL][Getting Started with AGL]. + +### Setting up the build environment + +In the following, your top level directory is noted as “AGL_TOP”. +For example, we will set AGL_TOP to point to a directory “$HOME/workspace_agl”: + +```bash +export AGL_TOP=$HOME/workspace_agl +mkdir -p $AGL_TOP +``` + +### Prepare Repo Tool + +AGL Uses the 'repo' tool for managing repositories. +You need to setup layers of AGL. +You can use the commands below to prepare Repo: + +```bash +mkdir -p ~/bin +export PATH=~/bin:$PATH +curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo +chmod a+x ~/bin/repo +``` + +**Note**: + +* More information about the tool 'repo' [Here][repo info] + +### Download source + +You can choose your source release + +### Download Latest Stable Release + +To download all layers for the for the latest stable release, eel 5.0.3: + +```bash +cd $AGL_TOP +repo init -b eel -m eel_5.1.0.xml -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo +repo sync +``` + +### Download Master Branch + +To download all code from master: + +```bash +cd $AGL_TOP +repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo +repo sync +``` + +## Set up Build Environment Info + +AGL has created a set up script for defining the target build and desired optional features. + +To get a complete list of the options available run. + +```bash +cd $AGL_TOP +source meta-agl/scripts/aglsetup.sh -h +``` + +Once you run aglsetup.sh with your desired parameters, you can build any target desired. + +## Features supported by aglsetup + +Here is the list of features for AGL 2.1 that can be specified in the aglsetup.sh command line: + +* in **meta-agl** + * agl-all-features + * agl-appfw-smack: enables IoT.bzh Application Framework + SMACK + Cynara + * agl-archiver + * agl-ci + * agl-ci-change-features + * agl-ci-change-features-nogfx + * agl-ci-snapshot-features + * agl-ci-snapshot-features-nogfx + * agl-devel: activate development options (empty root password, debugger, strace, valgrind …) + * agl-gplv2 + * agl-isafw + * agl-netboot: enable network boot support through TFTP and NBD (see meta-netboot layer) + * agl-profile-graphical + * agl-profile-graphical-html5 + * agl-profile-graphical-qt5 + * agl-profile-hud + * agl-profile-telematics + * agl-ptest + * agl-sota: enable SOTA components and dependencies (meta-sota, meta-filesystems, meta-ruby, meta-rust are added) +* in **meta-agl-demo** + * agl-demo: enable layer meta-agl-demo and meta-qt5 - required to build * agl-demo-platform + * agl-iotivity + * agl-sdl +* in **meta-agl-devel** + * agl-audio-4a-framework + * agl-audio-soundmanager-framework + * agl-egvirt + * agl-hmi-framework + * agl-oem-extra-libs + * agl-renesas-kernel + * agl-telemetry +* in **meta-agl-extra** + * agl-localdev: add a local layer named “meta-localdev” in meta directory and a local.dev.inc conf file if present + * blsched + +For newer features or to get more details on a given feature, take a look at the configuration files stored for each feature and/or each machine in meta-agl/templates and meta-agl-extra/templates. + +[AGL snapshots master latest]: https://download.automotivelinux.org/AGL/snapshots/master/latest/ +[yocto ref Manual]: http://www.yoctoproject.org/docs/2.0/ref-manual/ref-manual.html#detailed-supported-distros +[Getting Started with AGL]: https://wiki.automotivelinux.org/start/getting-started +[repo info]: https://source.android.com/source/using-repo.html |