1 meta-agl-demo, the Yocto layer for DEMO platform of Automotive Grade Linux
2 ==========================================================================
4 The yocto layer 'meta-agl-demo' provides a demo platform and applications
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.
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.
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)
27 URI: git://git.yoctoproject.org/poky
29 > revision: 5f0d25152bac2d3798663a4ebfdd2df24060f153
31 URI: git://git.openembedded.org/meta-openembedded
34 > revision: 853dcfa0d618dc26bd27b3a1b49494b98d6eee97
36 URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl
38 > revision: 4d71b6fbe454ff51342ab1eb6791fad66ba98c3e
41 ## The Renesas R-Car Gen2 (Porter) board depends in addition on: ##
43 URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-renesas
44 > branch: agl-1.0-bsp-1.8.0
45 > revision: bf30de66badcac7ef82d3758aa44c116ee791a28
51 AGL Demo Platform's package group design:
53 Top-level packagegroup,
54 > packagegroup-agl-appfw (all packages for demo platform)
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)
61 The "packagegroups-agl-appfw-*" will contain packages for application and
63 > directory: meta-agl-demo/recipes-demo-platform/packagegroups
64 > recipes : packagegroup-agl-appfw-[subsystem].bb
69 * QEMU (x86-64) - emulated machine: qemux86-64
70 * Renesas R-Car Gen2 (R-Car M2) - machine: porter
72 Supported Target of bitbake
73 ------------------------
75 * `agl-demo-platform` The full image of AGL Demo Platform and applications
77 Supposed Directory Trees of Layers to build
78 -------------------------------------------
100 You can build a QEMU image using the following steps:
102 1. Export TEMPLATECONF to pick up correct configuration for the build
103 $ export TEMPLATECONF=/full/path/to/meta-agl-demo/conf
105 2. Run the following command:
106 $ source poky/oe-init-build-env
108 3. Build the full image of AGL Demo Platform and applications
109 $ bitbake agl-demo-platform
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
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"
121 5. Some weston samples are available from weston terminal.
123 Build a R-Car M2 (porter) image
124 -------------------------------
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.
130 #### Getting Source Code and Build image
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`
137 2. Get the meta data and checkout
138 $ git clone git://git.yoctoproject.org/poky
140 $ git checkout 5f0d25152bac2d3798663a4ebfdd2df24060f153
142 $ git clone git://git.openembedded.org/meta-openembedded
143 $ cd meta-openembedded
144 $ git checkout 853dcfa0d618dc26bd27b3a1b49494b98d6eee97
146 $ git clone https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl
148 $ git checkout 4d71b6fbe454ff51342ab1eb6791fad66ba98c3e
150 $ git clone https://gerrit.automotivelinux.org/gerrit/AGL/meta-renesas
152 $ git checkout bf30de66badcac7ef82d3758aa44c116ee791a28
154 $ git clone https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl
156 #### Obtain and Install Renesas Graphics/Multimedia Drivers
158 1. Download packages from Renesas
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).
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
169 2. Unzip the two downloads into a temporary directory.
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
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
182 3. Copy the graphics acceleration drivers by shell script.
183 $ cd $AGL_TOP/meta-renesas/meta-rcar-gen2
184 $ ./copy_gfx_software_porter.sh ../../binary-tmp
186 4. Copy the multimedia acceleration drivers by shell script.
187 $ cd $AGL_TOP/meta-renesas/meta-rcar-gen2
188 $ ./copy_mm_software_lcb.sh ../../binary-tmp
190 #### Build from the Source code
192 You can build a R-Car2 M2 (porter) image using the following steps:
194 1. Export TEMPLATECONF to pick up correct configuration for the build
195 $ export TEMPLATECONF=$AGL_TOP/meta-renesas/meta-rcar-gen2/conf
197 2. (Optional) If you want to use multimedia accelerations, uncomment
198 manually 4 `IMAGE_INSTALL_append_porter` in conf/local.conf.
199 #IMAGE_INSTALL_append_porter = " \
200 # gstreamer1.0-plugins-bad-waylandsink \
203 #IMAGE_INSTALL_append_porter = " \
204 # gstreamer1.0-plugins-base-videorate \
208 #IMAGE_INSTALL_append_porter = " \
209 # libegl libegl-dev libgbm-dev \
213 #IMAGE_INSTALL_append_porter = " \
214 # packagegroup-rcar-gen2-multimedia \
218 Also it is needed to uncomment this,
219 #MACHINE_FEATURES_append = " multimedia"
221 This `multimedia` enables meta-renesas's multimedia configuration.
222 The version of GStreamer1.0 which AGL distro use, will be changed
223 to 1.2.3 (meta-renesas prefers) from 1.4.1(meta-agl default) by this switch.
225 3. Run the following command:
227 $ source poky/oe-init-build-env
229 (Optional) If you want to use multimedia accelerations, confirm your
230 conf/bblayer.conf has a entry of `meta-openembedded/meta-multimedia`
231 in BBLAYERS because packagegroup-rcar-gen2-multimedia needs some extra
234 4. Build the full image of AGL Demo Platform and applications
235 $ bitbake agl-demo-platform
237 ### Deployment (SDCARD)
239 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).
241 #### Instructions on the host
243 1. Format SD-Card and then, create single EXT3 partition on it.
245 2. Mount the SD-Card, for example `/media/$SDCARD_LABEL`.
247 3. Copy AGL root file system onto the SD-Card
248 1. Go to build directory
249 $ cd $AGL_TOP/build/tmp/deploy/images/porter
250 2. Extract the root file system into the SD-Card
251 $ sudo tar --extract --numeric-owner --preserve-permissions --preserve-order \
252 --totals --directory=/media/$SDCARD_LABEL --file=agl-demo-platform-porter.tar.bz2
253 3. Copy kernel and DTB into the `/boot` of the SD-Card
254 $ sudo cp uImage uImage-r8a7791-porter.dtb /media/$SDCARD_LABEL
256 4. After the copy finished, unmount SD-Card and insert it into the SD-Card slot of the porter board.
258 #### Instructions on the host
260 NOTE: There is details about porter board [here](http://elinux.org/R-Car/Boards/Porter).
262 NOTE: To boot weston on porter board, we need keyboard and mouse. (USB2.0 can be use for this)
264 ##### Change U-Boot parameters to boot from SD card
266 1. Power up the board and, using your preferred terminal emulator, stop the board's autoboot by hitting any key.
268 > Debug serial settings are 38400 8N1. Any standard terminal emulator program can be used.
270 2. Set the follow environment variables and save them
271 => setenv bootargs_console console=ttySC6,${baudrate}
272 => setenv bootargs_video vmalloc=384M video=HDMI-A-1:1024x768-32@60
273 => setenv bootcmd_sd 'ext4load mmc 0:1 0x40007fc0 boot/uImage;ext4load mmc 0:1 0x40f00000 boot/uImage-r8a7791-porter.dtb'
274 => setenv bootcmd 'setenv bootargs ${bootargs_console} ${bootargs_video} root=/dev/mmcblk0p1 rw rootfstype=ext3;run bootcmd_sd;bootm 0x40007fc0 - 0x40f00000'
277 ##### Boot from SD card
279 1. After board reset, U-Boot is started and after a countdown, ...
280 Linux boot message should be displayed. Please wait a moment.
281 2. Then weston is booted automatically, and weston-terminal appears.
285 4. (Optional) This is how to test and play multimedia contents with acceleration.
287 1. Boot porter without mouse and keyboard, it avoid to boot weston automatically.
288 For now, when running weston, V4L2 deosn't work correctly, so we have to
289 stop weston first (GST plugin `waylandsink` also doesn't work correctly for now).
291 2. Execute these instructions:
292 $ export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib:"
295 $ amixer set "LINEOUT Mixer DACL" on
296 $ amixer set "DVC Out" 10
298 $ modprobe -a mmngr mmngrbuf s3ctl uvcs_cmn vspm fdpm
300 $ media-ctl -d /dev/media0 -r
301 $ media-ctl -d /dev/media0 -l '"vsp1.2 rpf.0":1 -> "vsp1.2 uds.0":0 [1]'
302 $ media-ctl -d /dev/media0 -l '"vsp1.2 uds.0":1 -> "vsp1.2 wpf.0":0 [1]'
303 $ media-ctl -d /dev/media0 -l '"vsp1.2 wpf.0":1 -> "vsp1.2 lif":0 [1]'
304 $ media-ctl -d /dev/media0 -V '"vsp1.2 rpf.0":0 [fmt:AYUV32/1920x1080]'
305 $ media-ctl -d /dev/media0 -V '"vsp1.2 rpf.0":1 [fmt:AYUV32/1920x1080]'
306 $ media-ctl -d /dev/media0 -V '"vsp1.2 uds.0":0 [fmt:AYUV32/1920x1080]'
307 $ media-ctl -d /dev/media0 -V '"vsp1.2 uds.0":1 [fmt:AYUV32/640x480]'
308 $ media-ctl -d /dev/media0 -V '"vsp1.2 wpf.0":0 [fmt:AYUV32/640x480]'
309 $ media-ctl -d /dev/media0 -V '"vsp1.2 wpf.0":1 [fmt:ARGB32/640x480]'
310 $ media-ctl -d /dev/media0 -V '"vsp1.2 lif":0 [fmt:ARGB32/640x480]'
312 # in caes R-Car M2 (HDMI - DU1 - vspd0)
313 $ modetest -M rcar-du -s 10@8:1280x720@AR24 -d -P '8@19:640x480+100+200@XR24' &
315 After these command, Test pattern will show on display connected to
318 Then, you can play H264(MP4) movie like these,
319 $ gst-launch-1.0 filesrc location=./sample.mp4 ! qtdemux name=d d. ! \
320 queue ! omxh264dec no-copy=true ! v4l2sink device=/dev/video1 \
321 io-mode=userptr d. ! queue ! faad ! alsasink device=hw:0,0