X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=README.md;h=2925e5b92fe19aca63d77148118d7191b44d9861;hb=refs%2Fchanges%2F99%2F4399%2F1;hp=d78ecab298d29eacfa50e011a019f42193f1a70f;hpb=0e21ecf93c045f120ea100bf28a7a9199f1ae521;p=AGL%2Fmeta-agl-demo.git diff --git a/README.md b/README.md index d78ecab29..2925e5b92 100644 --- a/README.md +++ b/README.md @@ -26,23 +26,27 @@ Layer Dependencies URI: git://git.yoctoproject.org/poky > branch: dizzy -> revision: 5f0d25152bac2d3798663a4ebfdd2df24060f153 +> revision: df87cb27efeaea1455f20692f9f1397c6fcab254 URI: git://git.openembedded.org/meta-openembedded > layer: meta-oe > branch: dizzy -> revision: 853dcfa0d618dc26bd27b3a1b49494b98d6eee97 +> revision: 9efaed99125b1c4324663d9a1b2d3319c74e7278 URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl > branch: master -> revision: 56eb51bfe05a1dd7c3c49cb7465ed83b0a072c78 +> revision: 4d71b6fbe454ff51342ab1eb6791fad66ba98c3e > (or later) +URI: https://github.com/meta-qt5/meta-qt5.git +> branch: jethro (b/c of qt-5.5.x) +> revision: adeca0db212d61a933d7952ad44ea1064cfca747 + ## The Renesas R-Car Gen2 (Porter) board depends in addition on: ## URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-renesas > branch: agl-1.0-bsp-1.8.0 -> revision: 13a2551505942808752a1721c9a27ce7d35cec33 +> revision: bf30de66badcac7ef82d3758aa44c116ee791a28 > (or later) Packagegroups @@ -50,18 +54,38 @@ Packagegroups AGL Demo Platform's package group design: -Top-level packagegroup, -> packagegroup-agl-appfw (all packages for demo platform) +* packagegroup-agl-demo-platform + +This is for making image 'agl-demo-platform' which is full image +for IVI profile of AGL distro. + +As meta-agl's design of packagegroups, ``agl-demo-platform.bb`` contains +only ``packagegroup-agl-demo-platform`` and packages of DEMO apps. + +``packagegroup-agl-demo-platform`` has 4 packagegroups in it, +``packagegroup-agl-core``, ``packagegroup-agl-ivi``, +``packagegroup-agl-ivi-common-core``, and ``packagegroup-agl-appfw``. + +* packagegroup-agl-appfw* -This package group can contain sub-package groups like these. -> packagegroup-agl-appfw-graphics (for graphics subsystem) -> packagegroup-agl-appfw-agl (for AGL App Fw subystem) -> ... +These packagegroups contains packages for application framework of AGL Distro. +Subsystem should maintain ``packagegroup-agl-appfw-[subsystem].bb`` which +should hold sufficient packages for application framework of AGL Distro. -The "packagegroups-agl-appfw-*" will contain packages for application and -frameworks. -> directory: meta-agl-demo/recipes-demo-platform/packagegroups -> recipes : packagegroup-agl-appfw-[subsystem].bb +Subsystems also can maintain their own packagegroups under appropriate +``recipes-*/``. + +For example, Qt5 has 2 packagegroups in ``meta-agl-demo``, +``packagegroup-agl-appfw-native-qt5`` and ``packagegroup-agl-demo-qt-examples`` +which are under ``recipes-qt/``. + +The ``packagegroup-agl-appfw-native-qt5`` is included by +``packagegroup-agl-appfw-native`` because Qt5 belongs to native application +framework of AGL Distro. + +The ``packagegroup-agl-demo-qt-examples`` is added to local.conf if needed +because they are not mandatory for AGL application framework and AGL Demo +Platform. Supported Machine ----------------- @@ -83,6 +107,7 @@ Supposed Directory Trees of Layers to build meta-agl/ meta-agl-demo/ meta-openembedded/ + meta-qt5/ poky/ * For R-Car M2 @@ -91,69 +116,77 @@ Supposed Directory Trees of Layers to build meta-agl/ meta-agl-demo/ meta-openembedded/ + meta-qt5/ meta-renesas/ poky/ +Downloading the Source +-------------------- +You can use repo tool to get all layers which are needed to build AGL Distribution. + +1. Installing Repo. Make sure you have a bin/ in your $HOME and it's included in your $PATH. + $ mkdir ~/bin + $ export PATH=~/bin:$PATH + + Download the repo tool. + $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo + $ chmod a+x ~/bin/repo + +2. Preparing download. Create an empty directory to hold all recipes and build environment. You can make it as any name you like. + $ mkdir WORKING-DIRECTORY + $ cd WORKING-DIRECTORY + +3. Getting all layers. + $ repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo + $ repo sync + Build a QEMU image ------------------ You can build a QEMU image using the following steps: -1. Export TEMPLATECONF to pick up correct configuration for the build - $ export TEMPLATECONF=/full/path/to/meta-agl-demo/conf - -2. Run the following command: - $ source poky/oe-init-build-env +1. Set up environment: You can specify any name for directory which storing all stuffs to build. + $ source meta-agl/scripts/envsetup.sh qemux86-64 [BUILD_DIR] -3. Build the full image of AGL Demo Platform and applications +2. Build the full image of AGL Demo Platform and applications $ bitbake agl-demo-platform -4. Run the emulator - $ cd $BUILD_DIR/tmp/deploy/images/qemex86-64 - $ PATH_TO_POKY/poky/scripts/runqemu qemux86-64 bzImage-qemux86-64.bin \ - agl-demo-platform-qemux86-64.ext3 + 2a. Specifically If you are building the CES2016 demos you will want to add the following to your "conf/local.conf" file to install the demo code in the image: +IMAGE_INSTALL_append = " CES2016-demo" + + 2b. If you want to run QEMU directly as VM in Virtual Box or your other favorite VM software then add this line to your "conf/local.conf" file. +IMAGE_FSTYPES += "vmdk" + + 2c. The Weston IVI-Shell always gets built ; it will not be started, however, unless you specify the following in your "conf/local.conf" file : + +IMAGE_INSTALL_append = " \ + weston-ivi-shell-config \ + " + or you manually overwrite the "/etc/xdg/weston/weston.ini" file with a correct one. + +3. Run the emulator. The path for the emulator (runqemu) was added during the envsetup. + $ cd tmp/deploy/images/qemex86-64 + $ runqemu bzImage-qemux86-64.bin agl-demo-platform-qemux86-64.ext3 For large screen: - $ PATH_TO_POKY/poky/scripts/runqemu qemux86-64 bzImage-qemux86-64.bin \ - agl-demo-platform-qemux86-64.ext3 \ + $ runqemu bzImage-qemux86-64.bin agl-demo-platform-qemux86-64.ext3 \ bootparams="uvesafb.mode_option=1280x720-32" -5. Some weston samples are available from weston terminal. + To extend the amount of memory, add to runqemu: + qemuparams="-m 512" + + or use the virtual disk in Virtual Box from this location: + tmp/deploy/images/qemux86-64/agl-demo-platform-qemux86-64.vmdk + +4. Some weston samples are available from weston terminal. + + + Build a R-Car M2 (porter) image ------------------------------- -### Software setup - -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. - -#### Getting Source Code and Build image - -1. Create a directory for working, then go to there. - $ mkdir -p $HOME/ANYWHERE_YOU_WANT_TO_WORK_THERE - $ cd $HOME/ANYWHERE_YOU_WANT_TO_WORK_THERE - $ export AGL_TOP=`pwd` - -2. Get the meta data and checkout - $ git clone git://git.yoctoproject.org/poky - $ cd poky - $ git checkout 5f0d25152bac2d3798663a4ebfdd2df24060f153 - $ cd - - $ git clone git://git.openembedded.org/meta-openembedded - $ cd meta-openembedded - $ git checkout 853dcfa0d618dc26bd27b3a1b49494b98d6eee97 - $ cd - - $ git clone https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl - $ cd meta-agl - $ git checkout 56eb51bfe05a1dd7c3c49cb7465ed83b0a072c78 - $ cd - - $ git clone https://gerrit.automotivelinux.org/gerrit/AGL/meta-renesas - $ cd meta-renesas - $ git checkout c28172567a6325f5692e5d33b1ae1c1e64e59ddf - $ cd - - $ git clone https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl - -#### Obtain and Install Renesas Graphics Drivers +#### Obtain and Install Renesas Graphics/Multimedia Drivers 1. Download packages from Renesas @@ -166,46 +199,57 @@ NOTE: These instructions are based on GENIVI wiki, [here](http://wiki.projects.g * Related Linux drivers > r-car_series_evaluation_software_package_of_linux_drivers-*.zip -2. Unzip the two downloads into a temporary directory. - $ cd $AGL_TOP - $ mkdir binary-tmp - $ cd binary-tmp - $ unzip PATH_TO_DOWNLOAD/r-car_series_evaluation_software_package_for_linux-*.zip - $ unzip PATH_TO_DOWNLOAD/r-car_series_evaluation_software_package_of_linux_drivers-*.zip - - After this step there should be two files in binary-tmp: - * Multimedia and Graphics library - > R-Car_Series_Evaluation_Software_Package_for_Linux-*.tar.gz - * Related Linux drivers - > R-Car_Series_Evaluation_Software_Package_of_Linux_Drivers-*.tar.gz - -3. Extract 2 tar archives - $ tar xf R-Car_Series_Evaluation_Software_Package_for_Linux-*.tar.gz - $ tar xf R-Car_Series_Evaluation_Software_Package_of_Linux_Drivers-*.tar.gz - -4. Copy 2 files manually - 1. Locate `EVA_r8a7791_linux_sgx_binaries_gles2.tar.bz2` in the Multimedia and Graphics library deliverable and copy it into the BSP layer. - $ cd $AGL_TOP - $ cp /EVA_r8a7791_linux_sgx_binaries_gles2.tar.bz2 \ - meta-renesas/meta-rcar-gen2/recipes-graphics/gles-module/\ - gles-user-module/r8a7791_linux_sgx_binaries_gles2.tar.bz2 - - 2. Locate `SGX_KM_M2.tar.bz2` in the related linux drivers deliverable and copy it into the BSP layer. - $ cp SGX_KM_M2.tar.bz2 \ - $ meta-renesas/meta-rcar-gen2/recipes-kernel/gles-module/gles-kernel-module + These 2 files from Renesas should be store in your download directory in $HOME. (e.g. $HOME/Downloads) If not, envsetup.sh in below will stop and show some instruction, then please follow it. #### Build from the Source code You can build a R-Car2 M2 (porter) image using the following steps: -1. Export TEMPLATECONF to pick up correct configuration for the build - $ export TEMPLATECONF=$AGL_TOP/meta-renesas/meta-rcar-gen2/conf - -2. Run the following command: - $ cd $AGL_TOP - $ source poky/oe-init-build-env - -3. Build the full image of AGL Demo Platform and applications +1. Set up environment: You can specify any name for directory which storing all stuffs to build. + $ source meta-agl/scripts/envsetup.sh porter [BUILD_DIR] + +2. (Optional) If you want to install various Qt5 examples, add below + configuration to your local.conf. + IMAGE_INSTALL_append = " \ + packagegroup-agl-demo-qt-examples \ + " + PACKAGECONFIG_append_pn-qtbase = " examples" + + IMPORTANT NOTE: + To run examples with wayland-egl plugin, + use ``LD_PRELOAD=/usr/lib/libEGL.so ``. + If not, programs should not launch by error, + 'EGL not available'. + +3. (Optional) If you want to use multimedia accelerations, uncomment + manually 4 `IMAGE_INSTALL_append_porter` in conf/local.conf. + #IMAGE_INSTALL_append_porter = " \ + # gstreamer1.0-plugins-bad-waylandsink \ + # " + + #IMAGE_INSTALL_append_porter = " \ + # gstreamer1.0-plugins-base-videorate \ + ... + #" + + #IMAGE_INSTALL_append_porter = " \ + # libegl libegl-dev libgbm-dev \ + ... + # " + + #IMAGE_INSTALL_append_porter = " \ + # packagegroup-rcar-gen2-multimedia \ + ... + # " + + Also it is needed to uncomment this, + #MACHINE_FEATURES_append = " multimedia" + + This `multimedia` enables meta-renesas's multimedia configuration. + The version of GStreamer1.0 which AGL distro use, will be changed + to 1.2.3 (meta-renesas prefers) from 1.4.1(meta-agl default) by this switch. + +4. Build the full image of AGL Demo Platform and applications $ bitbake agl-demo-platform ### Deployment (SDCARD) @@ -225,7 +269,7 @@ NOTE: These instructions are based on GENIVI wiki, [here](http://wiki.projects.g $ sudo tar --extract --numeric-owner --preserve-permissions --preserve-order \ --totals --directory=/media/$SDCARD_LABEL --file=agl-demo-platform-porter.tar.bz2 3. Copy kernel and DTB into the `/boot` of the SD-Card - $ sudo cp uImage uImage-r8a7791-porter.dtb /media/$SDCARD_LABEL + $ sudo cp uImage uImage-r8a7791-porter.dtb /media/$SDCARD_LABEL/boot 4. After the copy finished, unmount SD-Card and insert it into the SD-Card slot of the porter board. @@ -255,3 +299,42 @@ NOTE: To boot weston on porter board, we need keyboard and mouse. (USB2.0 can be 2. Then weston is booted automatically, and weston-terminal appears. 3. Have fun! :) + +4. (Optional) This is how to test and play multimedia contents with acceleration. + + 1. Boot porter without mouse and keyboard, it avoid to boot weston automatically. + For now, when running weston, V4L2 deosn't work correctly, so we have to + stop weston first (GST plugin `waylandsink` also doesn't work correctly for now). + + 2. Execute these instructions: + $ export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib:" + + # Set the mixer + $ amixer set "LINEOUT Mixer DACL" on + $ amixer set "DVC Out" 10 + + $ modprobe -a mmngr mmngrbuf s3ctl uvcs_cmn vspm fdpm + + $ media-ctl -d /dev/media0 -r + $ media-ctl -d /dev/media0 -l '"vsp1.2 rpf.0":1 -> "vsp1.2 uds.0":0 [1]' + $ media-ctl -d /dev/media0 -l '"vsp1.2 uds.0":1 -> "vsp1.2 wpf.0":0 [1]' + $ media-ctl -d /dev/media0 -l '"vsp1.2 wpf.0":1 -> "vsp1.2 lif":0 [1]' + $ media-ctl -d /dev/media0 -V '"vsp1.2 rpf.0":0 [fmt:AYUV32/1920x1080]' + $ media-ctl -d /dev/media0 -V '"vsp1.2 rpf.0":1 [fmt:AYUV32/1920x1080]' + $ media-ctl -d /dev/media0 -V '"vsp1.2 uds.0":0 [fmt:AYUV32/1920x1080]' + $ media-ctl -d /dev/media0 -V '"vsp1.2 uds.0":1 [fmt:AYUV32/640x480]' + $ media-ctl -d /dev/media0 -V '"vsp1.2 wpf.0":0 [fmt:AYUV32/640x480]' + $ media-ctl -d /dev/media0 -V '"vsp1.2 wpf.0":1 [fmt:ARGB32/640x480]' + $ media-ctl -d /dev/media0 -V '"vsp1.2 lif":0 [fmt:ARGB32/640x480]' + + # in caes R-Car M2 (HDMI - DU1 - vspd0) + $ modetest -M rcar-du -s 10@8:1280x720@AR24 -d -P '8@19:640x480+100+200@XR24' & + + After these command, Test pattern will show on display connected to + porter's HDMI port. + + Then, you can play H264(MP4) movie like these, + $ gst-launch-1.0 filesrc location=./sample.mp4 ! qtdemux name=d d. ! \ + queue ! omxh264dec no-copy=true ! v4l2sink device=/dev/video1 \ + io-mode=userptr d. ! queue ! faad ! alsasink device=hw:0,0 +