summaryrefslogtreecommitdiffstats
path: root/agl-documentation/sdk-devkit/docs/part-1/1_5-Build-image-Porter.md
diff options
context:
space:
mode:
Diffstat (limited to 'agl-documentation/sdk-devkit/docs/part-1/1_5-Build-image-Porter.md')
-rw-r--r--agl-documentation/sdk-devkit/docs/part-1/1_5-Build-image-Porter.md175
1 files changed, 175 insertions, 0 deletions
diff --git a/agl-documentation/sdk-devkit/docs/part-1/1_5-Build-image-Porter.md b/agl-documentation/sdk-devkit/docs/part-1/1_5-Build-image-Porter.md
new file mode 100644
index 0000000..a13e9d3
--- /dev/null
+++ b/agl-documentation/sdk-devkit/docs/part-1/1_5-Build-image-Porter.md
@@ -0,0 +1,175 @@
+# Build an image for Porter board
+
+In this section, we will go on the image compilation for the Porter
+board within the Docker container.
+
+## Download Renesas proprietary drivers
+
+For the Porter board, we first need to download the proprietary drivers
+from Renesas web site. The evaluation version of these drivers can be
+found here:
+
+[http://www.renesas.com/secret/r_car_download/rcar_demoboard.jsp](http://www.renesas.com/secret/r_car_download/rcar_demoboard.jsp)
+
+under the **Target hardware: R-Car H2, M2 and E2** section:
+
+![renesas download](pictures/renesas_download.jpg)
+
+Note that you have to register with a free account on MyRenesas and
+accept the license conditions before downloading them. The operation is
+fast and simple but nevertheless mandatory to access evaluation of non
+open-source drivers for free.
+
+Once you register, you can download two zip files: store them in a
+directory visible from the container, for example in the directory
+`$MIRRORDIR/proprietary-renesas-r-car` (`$MIRRORDIR` was created
+previously in section [Start the container](#anchor-start-container) and adjust
+the permissions. The zip files should then be visible from the inside of the
+container in `/home/devel/mirror`:
+
+```bash
+$ chmod +r /home/devel/mirror/proprietary-renesas-r-car/*.zip
+$ ls -l /home/devel/mirror/proprietary-renesas-r-car/
+total 8220
+-rw-r--r-- 1 1000 1000 6047383 Jul 11 11:03 R-Car_Series_Evaluation_Software_Package_for_Linux-20151228.zip
+-rw-r--r-- 1 1000 1000 2394750 Jul 11 11:03 R-Car_Series_Evaluation_Software_Package_of_Linux_Drivers-20151228.zip
+```
+
+## Setup the build environment
+
+We should first prepare the environment to build images.
+
+This can be easily done thanks to a helper script named `prepare_meta`.
+This script does the following:
+
+- check for an updated version at
+ [https://github.com/iotbzh/agl-manifest](https://github.com/iotbzh/agl-manifest)
+- pull Yocto layers from git repositories, following a snapshot manifest
+- setup build configuration (build/conf files)
+
+The following options are available:
+
+```bash
+devel@bsp-devkit:~$ prepare_meta -h
+prepare_meta [options]
+
+Options:
+ -f|--flavour <flavour[/tag_or_revision]>
+ what flavour to us
+ default: 'iotbzh'
+ possible values: 'stable','unstable','testing', 'iotbzh' ... see agl-manifest git repository
+ -o|--outputdir <destination_dir>
+ output directory where subdirectories will be created: meta, build, ...
+ default: current directory (.)
+ -l|--localmirror <directory>
+ specifies a local mirror directory to initialize meta, download_dir or sstate-cache
+ default: none
+ -r|--remotemirror <url>
+ specifies a remote mirror directory to be used at build time for download_dir or sstate-cache
+ default: none
+ -p|--proprietary <directory>
+ Directory containing Renesas proprietary drivers for RCar platform (2 zip files)
+ default: none
+ -e|--enable <option>
+ enable a specific option
+ available options: ccache, upgrade
+ -d|--disable <option>
+ disable a specific option
+ available options: ccache, upgrade
+ -t|--target <name>
+ target platform
+ default: porter
+ valid options: intel-corei7-64, qemux86, qemux86-64, wandboard
+ -h|--help
+ get this help
+
+Example:
+ prepare_meta -f iotbzh/master -o /tmp/xdt -l /ssd/mirror -p /vol/xdt/proprietary-renesas-rcar/ -t porter
+```
+
+In our case, we can start it with the following arguments:
+
+- build in `/xdt` (-o /xdt)
+- build for porter board (`-t porter`)
+- build the 'iotbzh' flavour (`-f iotbzh`), which contains the standard
+ AGL layers + security and app framework. Flavours are stored in the
+ agl-manifest repository.
+- Use a local mirror (`-l <mirror path>`). This directory may
+ contain some directories generated in a previous build: `downloads`,
+ `sstate-cache`, `ccache`, `meta`. If found, the mirror directories
+ will be specified in configuration files.
+- specify proprietary drivers location (`-p <drivers path>`)
+
+So we can run the helper script:
+
+```bash
+devel@bsp-devkit:~$ prepare_meta -o /xdt -t porter -f rel2.0 -l /home/devel/mirror/ -p /home/devel/mirror/proprietary-renesas-r-car/ -e wipeconfig
+[...]
+=== setup build for porter
+Using proprietary Renesas drivers for target porter
+=== conf: build.conf
+=== conf: download caches
+=== conf: sstate caches
+=== conf: local.conf
+=== conf: bblayers.conf.inc -> bblayers.conf
+=== conf: porter_bblayers.conf.inc -> bblayers.conf
+=== conf: bblayers_proprietary.conf.inc is empty
+=== conf: porter_bblayers_proprietary.conf.inc is empty
+=== conf: local.conf.inc is empty
+=== conf: porter_local.conf.inc is empty
+=== conf: local_proprietary.conf.inc is empty
+=== conf: porter_local_proprietary.conf.inc is empty
+=====================================================================
+
+Build environment is ready. To use it, run:
+
+# source /xdt/meta/poky/oe-init-build-env /xdt/build
+
+then
+
+# bitbake agl-demo-platform
+```
+
+Now, the container shell is ready to build an image for Porter.
+
+## Launch the build
+
+To start the build, we can simply enter the indicated commands:
+
+```bash
+devel@bsp-devkit:~$ . /xdt/build/agl-init-build-env
+### Shell environment set up for builds. ###
+
+You can now run 'bitbake <target>'
+
+Common target are:
+
+ agl-demo-platform
+
+devel@bsp-devkit:/xdt/build$ bitbake agl-demo-platform
+[snip]
+NOTE: Tasks Summary: Attempted 5108 tasks of which 4656 didn't need to
+be rerun and all succeeded.
+
+Summary: There were 19 WARNING messages shown.
+```
+
+Without mirror, it will take a few hours to build all the required
+component of the AGL distribution, depending on: your host machine CPU,
+disk drives types and internet connection.
+
+## Updating the local mirror
+
+Optionally, at the end of the build, some directories may be synced to
+the mirror dir, for future usage:
+
+- `/xdt/meta`: contains all layers used to build AGL
+- `/xdt/downloads`: download cache (avoid fetching source from remote sites)
+- `/xdt/sstate-cache`: binary build results (avoid recompiling sources)
+
+This can be done with the following command:
+
+```bash
+$ for x in meta downloads sstate-cache; do rsync -Pav \
+ --delete /xdt/$x /home/devel/mirror/$x; done
+```