X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=README.md;h=fc6a06967ab2efb2eb05c7aaad73138b8712ddd4;hb=refs%2Fheads%2Feel;hp=fd129dde02e1f43e0bce265fbaa851a6c6fe769f;hpb=de6fe68f84d70057c7e089e07b513511faf2881c;p=AGL%2Fmeta-agl.git diff --git a/README.md b/README.md index fd129dde0..fc6a06967 100644 --- a/README.md +++ b/README.md @@ -1,244 +1,157 @@ -meta-agl, the Yocto layer for Automotive Grade Linux Distribution -================================================================= +**README.md for the 'meta-agl' layer.** -This layer's purpose is ... [TBD] +**See README-AGL.md for general information about Automotive Grade Linux.** -Layer Dependencies ------------------- - -URI: git://git.yoctoproject.org/poky -> branch: dizzy -> revision: 5f0d25152bac2d3798663a4ebfdd2df24060f153 -URI: git://git.openembedded.org/meta-openembedded -> layer: meta-oe -> branch: dizzy -> revision: 853dcfa0d618dc26bd27b3a1b49494b98d6eee97 +meta-agl, the core layer for Automotive Grade Linux Distribution +================================================================ -## The Renesas R-Car Gen2 (Porter) board depends in addition on: ## +AGL is creating an automotive specific Linux distribution that unifies +the software that has been written in a number of places already, +such as GENIVI and Tizen IVI. -URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-renesas -> branch: agl-1.0-bsp-1.8.0 -> revision: 0a69b07cfca17d1435f2bc7bf779139c5fac09a3 - -Layers ------- +The layer 'meta-agl' provides a minimal set of software +to boot system of AGL Distribution. 'meta-agl' is the minimal +core which is used build AGL profiles on top of it. -There are 2 sub-layers in top-level `meta-agl`. +Especially there is no reference UI included which is part of 'meta-agl-demo'. -`meta-agl` is a layer which contains AGL common and middleware packages. -> meta-agl/meta-agl +Additional components like the security framework are part of 'meta-agl-extra'. -`meta-agl-bsp` is a layer which contains required packages to boot AGL distribution on an emulated machine(QEMU). -> meta-agl/meta-agl-bsp +The AGL community appreciates feedback, ideas, suggestion, bugs and +documentation just as much as code. Please join the irc conversation +at the #automotive channel on irc.freenode.net and our mailing list. -Packagegroups -------------- +For infomation for subscribing to the mailing list + [automotive-discussions](http://lists.linuxfoundation.org/mailman/listinfo/automotive-discussions) +For information about AGL Distribution, see the + [AGL Distribution](https://wiki.automotivelinux.org/agl-distro) +For information abount Getting started with AGL + [here](https://wiki.automotivelinux.org/start/getting-started) +For information about contributing to the AGL Distro + [here](https://wiki.automotivelinux.org/agl-distro/contributing) -AGL package group design: - -These are the top-level packagegroups for AGL Distribution. -> packagegroup-agl-core (basic/common packages out of oe-core) -> packagegroup-agl-ivi (middlewares for AGL IVI) - -Each package group can contain sub-package groups like these. -> packagegroup-agl-core-multimedia -> packagegroup-agl-core-connectivity -> ... -> packagegroup-agl-ivi-multimedia -> packagegroup-agl-ivi-connectivity -> ... - -The recipe for `packagegroup-agl-core-*.bb` will contain common packages between meta-agl, meta-ivi and meta-tizen. -> directory: meta-agl/meta-agl/recipes-core/packagegroups -> recipes : packagegroup-agl-core-[subsystem].bb - -The "packagegroups-agl-ivi-*" will contain AGL specific middleware packages. -> directory: meta-agl/meta-agl/recipes-ivi/packagegroups -> recipes : packagegroup-agl-ivi-[subsystem].bb - -Supported Machine +Quick start guide ----------------- +See README-AGL.md -* QEMU (x86-64) - emulated machine: qemux86-64 -* Renesas R-Car Gen2 (R-Car M2) - machine: porter - -Supported Target of bitbake ------------------------- - -* `agl-image-ivi` The baseline image of AGL Distributions - -* `agl-image-minimal` For internal use to develop distribution (experimental) -* `agl-image-weston` For internal use to develop distribution (experimental) - -Supposed Directory Trees of Layers to build -------------------------------------------- - -* For QEMU - - ${TOPDIR}/ - meta-agl/ - meta-openembedded/ - poky/ - -* For R-Car M2 - - ${TOPDIR}/ - meta-agl/ - meta-openembedded/ - meta-renesas/ - poky/ - -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/meta-agl/conf - -2. Run the following command: - > $ source poky/oe-init-build-env - -3. Build the minimal image of AGL Distribution - > $ bitbake agl-image-ivi -4. Run the emulator - > $ PATH_TO_POKY/poky/scripts/runqemu agl-image-ivi qemux86-64 +'meta-agl' Layer Dependencies +----------------------------- +* poky +> URI: git://git.yoctoproject.org/poky +> branch : jethro +> tested revision: 40376446904ae3529be41737fed9a0b650ed167d - For large screen: - > $ PATH_TO_POKY/poky/scripts/runqemu agl-image-ivi qemux86-64 bootparams="uvesafb.mode_option=1280x720-32" +* meta-openembedded +> URI: git://git.openembedded.org/meta-openembedded +> layer : meta-openembedded +> branch : jethro +> tested revision: 8ab04afbffb4bc5184cfe0655049de6f44269990 -5. Some weston samples are available from weston terminal. + Specifically out of meta-openembedded these sub-layers are used: + * meta-openembedded/meta-oe + * meta-openembedded/meta-multimedia + * meta-openembedded/meta-efl + * meta-openembedded/meta-networking + * meta-openembedded/meta-python -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-renesas - $ cd meta-renesas - $ git checkout 0a69b07cfca17d1435f2bc7bf779139c5fac09a3 - $ cd - - $ git clone https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl - -#### Obtain and Install Renesas Graphics Drivers - -1. Download packages from Renesas - - The graphics and multimedia acceleration packages for the R-Car M2 Porter board - can be download directory from [here](http://www.renesas.com/secret/r_car_download/rcar_demoboard.jsp). - - There are 2 ZIP files can be downloaded. - * Multimedia and Graphics library which require registeration and click through license - > r-car_series_evaluation_software_package_for_linux-*.zip - * 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 - -#### 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 minimal image of AGL Distribution - $ bitbake agl-image-ivi - -### Deployment (SDCARD) - -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). +Layers +------ -#### Instructions on the host +There are 5 layers in top-level `meta-agl`. -1. Format SD-Card and then, create single EXT3 partition on it. +* `meta-agl/meta-ivi-common` +`meta-ivi-common` is a layer which contains common packages to AGL +Distribution and other platforms for In-Vehicle Infotainment system. -2. Mount the SD-Card, for example `/media/$SDCARD_LABEL`. +* `meta-agl/meta-agl` +`meta-agl` is a layer which contains AGL common and middleware packages. -3. Copy AGL root file system onto the SD-Card - 1. Go to build directory - $ cd $AGL_TOP/build/tmp/deploy/images/porter - 2. Extract the root file system into the SD-Card - $ sudo tar --extract --numeric-owner --preserve-permissions --preserve-order \ - --totals --directory=/media/$SDCARD_LABEL --file=agl-image-ivi-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 +* `meta-agl/meta-agl-bsp` +`meta-agl-bsp` is a layer which contains required packages to boot AGL +distribution on an emulated machine(QEMU). -4. After the copy finished, unmount SD-Card and insert it into the SD-Card slot of the porter board. +* `meta-agl/meta-netboot` +`meta-netboot` contains the netboot initrd support recipes. This is needed +in case of booting over the network as NFS does not support the securitylabels. -#### Instructions on the host +Packagegroups +------------- -NOTE: There is details about porter board [here](http://elinux.org/R-Car/Boards/Porter). +AGL package group design: -NOTE: To boot weston on porter board, we need keyboard and mouse. (USB2.0 can be use for this) +* packagegroup-agl-image-minimal + + packagegroup-agl-core-automotive.bb + packagegroup-agl-core-connectivity.bb + packagegroup-agl-core-graphics.bb + packagegroup-agl-core-kernel.bb + packagegroup-agl-core-multimedia.bb + packagegroup-agl-core-navi-lbs.bb + packagegroup-agl-core-os-commonlibs.bb + packagegroup-agl-core-security.bb + packagegroup-agl-core-speech-services.bb + +These are for making image ``agl-image-minimal`` which is small image just +capable of allowing a device to boot. + +Subsystem should maintain packagegroup-agl-core-[subsystem].bb which should +hold sufficient packages to build ``agl-image-minimal``. + +* packagegroup-agl-image-ivi + + packagegroup-agl-ivi-automotive.bb + packagegroup-agl-ivi-connectivity.bb + packagegroup-agl-ivi-graphics.bb + packagegroup-agl-ivi-kernel.bb + packagegroup-agl-ivi-multimedia.bb + packagegroup-agl-ivi-navi-lbs.bb + packagegroup-agl-ivi-os-commonlibs.bb + packagegroup-agl-ivi-security.bb + packagegroup-agl-ivi-speech-services.bb + +These are for making image ``agl-image-ivi`` which is baseline for the profiles +of AGL distro. 'Baseline' means Service Layer and Operating System Layer defined +in AGL Spec v1.0. + +* packagegroup-agl-test.bb + +Additional tools used in QA tests (for agl-image*-qa). + +* packagegroup-ivi-common* + + packagegroup-ivi-common-core-automotive.bb + packagegroup-ivi-common-core.bb + packagegroup-ivi-common-core-connectivity.bb + packagegroup-ivi-common-core-graphics.bb + packagegroup-ivi-common-core-kernel.bb + packagegroup-ivi-common-core-multimedia.bb + packagegroup-ivi-common-core-navi-lbs.bb + packagegroup-ivi-common-core-os-commonlibs.bb + packagegroup-ivi-common-core-security.bb + packagegroup-ivi-common-core-speech-services.bb + packagegroup-ivi-common-test.bb + +These are for picking up some packages from upstreams like GENIVI/Tizen/Others. +The layer of ``meta-ivi-common`` has no image to build, all packagegroups are +aggregated to ``packagegroup-ivi-common-core' and it is included by images, +``agl-image-ivi.bb`` and ``agl-demo-platform.bb``. + + +Supported Machines +------------------ -##### Change U-Boot parameters to boot from SD card +See README-AGL.md -1. Power up the board and, using your preferred terminal emulator, stop the board's autoboot by hitting any key. - > Debug serial settings are 38400 8N1. Any standard terminal emulator program can be used. +Supported Target for bitbake +---------------------------- -2. Set the follow environment variables and save them - => setenv bootargs_console console=ttySC6,${baudrate} - => setenv bootargs_video vmalloc=384M video=HDMI-A-1:1024x768-32@60 - => setenv bootcmd_sd 'ext4load mmc 0:1 0x40007fc0 boot/uImage;ext4load mmc 0:1 0x40f00000 boot/uImage-r8a7791-porter.dtb' - => setenv bootcmd 'setenv bootargs ${bootargs_console} ${bootargs_video} root=/dev/mmcblk0p1 rw rootfstype=ext3;run bootcmd_sd;bootm 0x40007fc0 - 0x40f00000' - => saveenv +meta-agl: -##### Boot from SD card +* `agl-image-ivi` The baseline image of AGL Distributions (console only) +* `agl-image-minimal` For internal use to develop distribution (experimental) +* `agl-image-weston` For internal use to develop distribution (experimental) -1. After board reset, U-Boot is started and after a countdown, ... - Linux boot message should be displayed. Please wait a moment. -2. Then weston is booted automatically, and weston-terminal appears. -3. Have fun! :)