The starting point of layers for AGL Demo Platform
[AGL/meta-agl-demo.git] / README.md
1 meta-agl-demo, the Yocto layer for DEMO platform of Automotive Grade Linux
2 ==========================================================================
3
4 The yocto layer 'meta-agl-demo' provides a demo platform and applications
5 of AGL Distribution.
6
7 AGL is creating an automotive specific Linux distribution that unifies
8 the software that has been written in a number of places already,
9 such as GENIVI and Tizen IVI.
10
11 The AGL community appreciates feedback, ideas, suggestion, bugs and
12 documentation just as much as code. Please join the irc conversation
13 at the #automotive channel on irc.freenode.net and our mailing list.
14
15 For infomation for subscribing to the mailing list
16     [automotive-discussions](http://lists.linuxfoundation.org/mailman/listinfo/automotive-discussions)
17 For information about AGL Distribution, see the
18     [AGL Distribution](https://wiki.automotivelinux.org/agl-distro)
19 For information abount Getting started with AGL
20     [here](https://wiki.automotivelinux.org/start/getting-started)
21 For information about contributing to the AGL Distro
22     [here](https://wiki.automotivelinux.org/agl-distro/contributing)
23
24 Layer Dependencies
25 ------------------
26
27 URI: git://git.yoctoproject.org/poky
28 > branch:   dizzy
29 > revision: 5f0d25152bac2d3798663a4ebfdd2df24060f153
30
31 URI: git://git.openembedded.org/meta-openembedded
32 > layer:    meta-oe
33 > branch:   dizzy
34 > revision: 853dcfa0d618dc26bd27b3a1b49494b98d6eee97
35
36 URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl
37 > branch:   master
38 > revision: 56eb51bfe05a1dd7c3c49cb7465ed83b0a072c78
39 > (or later)
40
41 ## The Renesas R-Car Gen2 (Porter) board depends in addition on: ##
42
43 URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-renesas
44 > branch:   agl-1.0-bsp-1.8.0
45 > revision: 13a2551505942808752a1721c9a27ce7d35cec33
46 > (or later)
47
48 Packagegroups
49 -------------
50
51 AGL Demo Platform's package group design:
52
53 Top-level packagegroup,
54 > packagegroup-agl-appfw (all packages for demo platform)
55
56 This package group can contain sub-package groups like these.
57 > packagegroup-agl-appfw-graphics (for graphics subsystem)
58 > packagegroup-agl-appfw-agl (for AGL App Fw subystem)
59 > ...
60
61 The "packagegroups-agl-appfw-*" will contain packages for application and
62 frameworks.
63 > directory: meta-agl-demo/recipes-demo-platform/packagegroups
64 > recipes  : packagegroup-agl-appfw-[subsystem].bb
65
66 Supported Machine
67 -----------------
68
69 * QEMU (x86-64) - emulated machine: qemux86-64
70 * Renesas R-Car Gen2 (R-Car M2) - machine: porter
71
72 Supported Target of bitbake
73 ------------------------
74
75 * `agl-demo-platform` The full image of AGL Demo Platform and applications
76
77 Supposed Directory Trees of Layers to build
78 -------------------------------------------
79
80 * For QEMU
81
82       ${TOPDIR}/
83                 meta-agl/
84                 meta-agl-demo/
85                 meta-openembedded/
86                 poky/
87
88 * For R-Car M2
89
90       ${TOPDIR}/
91                 meta-agl/
92                 meta-agl-demo/
93                 meta-openembedded/
94                 meta-renesas/
95                 poky/
96
97 Build a QEMU image
98 ------------------
99
100 You can build a QEMU image using the following steps:
101
102 1. Export TEMPLATECONF to pick up correct configuration for the build
103         $ export TEMPLATECONF=/full/path/to/meta-agl-demo/conf
104
105 2. Run the following command:
106         $ source poky/oe-init-build-env
107
108 3. Build the full image of AGL Demo Platform and applications
109         $ bitbake agl-demo-platform
110
111 4. Run the emulator
112         $ cd $BUILD_DIR/tmp/deploy/images/qemex86-64
113         $ PATH_TO_POKY/poky/scripts/runqemu qemux86-64 bzImage-qemux86-64.bin \
114         agl-demo-platform-qemux86-64.ext3
115
116    For large screen:
117         $ PATH_TO_POKY/poky/scripts/runqemu qemux86-64 bzImage-qemux86-64.bin \
118         agl-demo-platform-qemux86-64.ext3 \
119         bootparams="uvesafb.mode_option=1280x720-32"
120
121 5. Some weston samples are available from weston terminal.
122
123 Build a R-Car M2 (porter) image
124 -------------------------------
125
126 ### Software setup
127
128 NOTE: These instructions are based on GENIVI wiki, [here](http://wiki.projects.genivi.org/index.php/Hardware_Setup_and_Software_Installation/koelsch%26porter). If these didn't work correctly especially around Renesas Binary Packages, please check there and updated instructions.
129
130 #### Getting Source Code and Build image
131
132 1. Create a directory for working, then go to there.
133         $ mkdir -p $HOME/ANYWHERE_YOU_WANT_TO_WORK_THERE
134         $ cd $HOME/ANYWHERE_YOU_WANT_TO_WORK_THERE
135         $ export AGL_TOP=`pwd`
136
137 2. Get the meta data and checkout
138         $ git clone git://git.yoctoproject.org/poky
139         $ cd poky
140         $ git checkout 5f0d25152bac2d3798663a4ebfdd2df24060f153
141         $ cd -
142         $ git clone git://git.openembedded.org/meta-openembedded
143         $ cd meta-openembedded
144         $ git checkout 853dcfa0d618dc26bd27b3a1b49494b98d6eee97
145         $ cd -
146         $ git clone https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl
147         $ cd meta-agl
148         $ git checkout 56eb51bfe05a1dd7c3c49cb7465ed83b0a072c78
149         $ cd -
150         $ git clone https://gerrit.automotivelinux.org/gerrit/AGL/meta-renesas
151         $ cd meta-renesas
152         $ git checkout c28172567a6325f5692e5d33b1ae1c1e64e59ddf
153         $ cd -
154         $ git clone https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl
155
156 #### Obtain and Install Renesas Graphics Drivers
157
158 1. Download packages from Renesas
159
160   The graphics and multimedia acceleration packages for the R-Car M2 Porter board
161   can be download directory from [here](http://www.renesas.com/secret/r_car_download/rcar_demoboard.jsp).
162
163   There are 2 ZIP files can be downloaded.
164     * Multimedia and Graphics library which require registeration and click through license
165     > r-car_series_evaluation_software_package_for_linux-*.zip
166     * Related Linux drivers
167     > r-car_series_evaluation_software_package_of_linux_drivers-*.zip
168
169 2. Unzip the two downloads into a temporary directory.
170         $ cd $AGL_TOP
171         $ mkdir binary-tmp
172         $ cd binary-tmp
173         $ unzip PATH_TO_DOWNLOAD/r-car_series_evaluation_software_package_for_linux-*.zip
174         $ unzip PATH_TO_DOWNLOAD/r-car_series_evaluation_software_package_of_linux_drivers-*.zip
175
176    After this step there should be two files in binary-tmp:
177    * Multimedia and Graphics library
178    > R-Car_Series_Evaluation_Software_Package_for_Linux-*.tar.gz
179    * Related Linux drivers
180    > R-Car_Series_Evaluation_Software_Package_of_Linux_Drivers-*.tar.gz
181
182 3. Extract 2 tar archives
183         $ tar xf R-Car_Series_Evaluation_Software_Package_for_Linux-*.tar.gz
184         $ tar xf R-Car_Series_Evaluation_Software_Package_of_Linux_Drivers-*.tar.gz
185
186 4. Copy 2 files manually
187    1. Locate `EVA_r8a7791_linux_sgx_binaries_gles2.tar.bz2` in the Multimedia and Graphics library deliverable and copy it into the BSP layer.
188           $ cd $AGL_TOP
189           $ cp <path_to_file>/EVA_r8a7791_linux_sgx_binaries_gles2.tar.bz2 \
190           meta-renesas/meta-rcar-gen2/recipes-graphics/gles-module/\
191           gles-user-module/r8a7791_linux_sgx_binaries_gles2.tar.bz2
192
193    2. Locate `SGX_KM_M2.tar.bz2` in the related linux drivers deliverable and copy it into the BSP layer.
194           $ cp <path_to_file>SGX_KM_M2.tar.bz2 \
195           $ meta-renesas/meta-rcar-gen2/recipes-kernel/gles-module/gles-kernel-module
196
197 #### Build from the Source code
198
199 You can build a R-Car2 M2 (porter) image using the following steps:
200
201 1. Export TEMPLATECONF to pick up correct configuration for the build
202         $ export TEMPLATECONF=$AGL_TOP/meta-renesas/meta-rcar-gen2/conf
203
204 2. Run the following command:
205         $ cd $AGL_TOP
206         $ source poky/oe-init-build-env
207
208 3. Build the full image of AGL Demo Platform and applications
209         $ bitbake agl-demo-platform
210
211 ### Deployment (SDCARD)
212
213 NOTE: These instructions are based on GENIVI wiki, [here](http://wiki.projects.genivi.org/index.php/Hardware_Setup_and_Software_Installation/koelsch%26porter#Deployment_.28SDCARD.29).
214
215 #### Instructions on the host
216
217 1. Format SD-Card and then, create single EXT3 partition on it.
218
219 2. Mount the SD-Card, for example `/media/$SDCARD_LABEL`.
220
221 3. Copy AGL root file system onto the SD-Card
222    1. Go to build directory
223            $ cd $AGL_TOP/build/tmp/deploy/images/porter
224    2. Extract the root file system into the SD-Card
225            $ sudo tar --extract --numeric-owner --preserve-permissions --preserve-order \
226            --totals --directory=/media/$SDCARD_LABEL --file=agl-demo-platform-porter.tar.bz2
227    3. Copy kernel and DTB into the `/boot` of the SD-Card
228            $ sudo cp uImage uImage-r8a7791-porter.dtb /media/$SDCARD_LABEL
229
230 4. After the copy finished, unmount SD-Card and insert it into the SD-Card slot of the porter board.
231
232 #### Instructions on the host
233
234 NOTE: There is details about porter board [here](http://elinux.org/R-Car/Boards/Porter).
235
236 NOTE: To boot weston on porter board, we need keyboard and mouse. (USB2.0 can be use for this)
237
238 ##### Change U-Boot parameters to boot from SD card
239
240 1. Power up the board and, using your preferred terminal emulator, stop the board's autoboot by hitting any key.
241
242   > Debug serial settings are 38400 8N1. Any standard terminal emulator program can be used.
243
244 2. Set the follow environment variables and save them
245         => setenv bootargs_console console=ttySC6,${baudrate}
246         => setenv bootargs_video vmalloc=384M video=HDMI-A-1:1024x768-32@60
247         => setenv bootcmd_sd 'ext4load mmc 0:1 0x40007fc0 boot/uImage;ext4load mmc 0:1 0x40f00000 boot/uImage-r8a7791-porter.dtb'
248         => setenv bootcmd 'setenv bootargs ${bootargs_console} ${bootargs_video} root=/dev/mmcblk0p1 rw rootfstype=ext3;run bootcmd_sd;bootm 0x40007fc0 - 0x40f00000'
249         => saveenv
250
251 ##### Boot from SD card
252
253 1. After board reset, U-Boot is started and after a countdown, ...
254    Linux boot message should be displayed. Please wait a moment.
255 2. Then weston is booted automatically, and weston-terminal appears.
256
257 3. Have fun! :)