Rewrite and restructure readme files 09/6309/5
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Wed, 3 Aug 2016 20:27:33 +0000 (22:27 +0200)
committerGerrit Code Review <gerrit@172.30.200.200>
Fri, 5 Aug 2016 14:06:56 +0000 (14:06 +0000)
This changeset updates the outdated README.md in meta-agl.

We also introduce a split between the README.md
which describes the layer itself and a README-AGL.md which
contains the information on the AGL distribution.

v2: Format in markdown editor - proper markdown now.

Change-Id: I4cbe539ffd668c3e1d64df5c40092d5864c1d2ea
Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
README-AGL.md [new file with mode: 0644]
README.md

diff --git a/README-AGL.md b/README-AGL.md
new file mode 100644 (file)
index 0000000..6263053
--- /dev/null
@@ -0,0 +1,472 @@
+?README-AGL.md: The Automotive Grade Linux Distribution
+======================================================
+
+AGL is creating an automotive specific Linux distribution (AGL UCB)
+that unifies the software that has been written in a number of places already,
+such as GENIVI and Tizen IVI.
+
+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.
+
+The reference UI is part of 'meta-agl-demo'.
+
+Additional components like the security framework are part of 'meta-agl-extra'.
+
+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.
+
+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)
+
+Quick start guide
+-----------------
+(latest version here: https://wiki.automotivelinux.org/agl-distro/source-code)
+To build an image from 'meta-agl'
+
+1. Prepare repo:
+     >      $ mkdir ~/bin
+     >      $ export PATH=~/bin:$PATH
+     >      $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
+     >      $ chmod a+x ~/bin/repo
+
+2. Get all layers:
+     >      $ repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo
+     >      $ repo sync
+
+3. Check available targets and extensions, select target machine:
+     >      $ source meta-agl/scripts/aglsetup.sh -h
+     >      $ source meta-agl/scripts/aglsetup.sh -m porter
+
+4. Build agl-image-ivi
+     >      $ bitbake agl-image-ivi
+
+To build the agl-demo-platform (as demo'ed @ALS) replace 3. and 4. with:
+3. Check available targets and extensions, select target machine:
+     >      $ source meta-agl/scripts/aglsetup.sh -h
+     >      $ source meta-agl/scripts/aglsetup.sh -m porter agl-demo [agl-appfw-smack] [agl-devel] [agl-netboot]
+
+4. Build agl-demo-platform
+     >      $ bitbake agl-demo-platform
+Note: this uses more layers and not only meta-agl
+
+AGL Layers and dependencies:
+----------------------------
+Check the README.md of the respective layers:
+- meta-agl              (= core, no UI)
+- meta-agl-demo    (= reference UI)
+- meta-agl-extra     (= extra components)
+
+In addition, the reference hardware (Renesas R-Car Gen2 / porter) has this dependency:
+
+URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-renesas
+> branch:   agl-1.0-bsp-1.8.0
+> tested revision: 82611ccadef36ab0b8a6fd6fb1cf055e115f1ef5
+
+
+Supported Machines
+------------------
+
+Reference hardware:
+
+* QEMU (x86-64) - emulated machine: qemux86-64
+* Renesas R-Car Gen2 (R-Car M2) - machine: porter
+
+Community contributed hardware:
+
+* See: https://wiki.automotivelinux.org/agl-distro#supported_hardware
+
+
+Supported Target of bitbake
+---------------------------
+
+meta-agl:
+
+* `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)
+
+meta-agl-demo:
+
+* `agl-demo-platform` The demo/reference image (with graphical UI)
+
+Run this command for a full list of machines, features and targets:
+     >       $ source ./meta-agl/scripts/aglsetup.sh -h
+
+
+Supposed Directory Tree of Layers to build
+-------------------------------------------
+
+     >      $ repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo
+     >      $ repo sync
+     >      $ tree -L 1
+       .
+       |-- meta-agl
+       |-- meta-agl-demo
+       |-- meta-agl-devel
+       |-- meta-agl-extra
+       |-- meta-amb
+       |-- meta-fsl-arm
+       |-- meta-fsl-arm-extra
+       |-- meta-intel
+       |-- meta-intel-iot-security
+       |-- meta-openembedded
+       |-- meta-qcom
+       |-- meta-qt5
+       |-- meta-raspberrypi
+       |-- meta-renesas
+       |-- meta-rust
+       |-- meta-security-isafw
+       |-- meta-ti
+       `-- poky
+       18 directories, 0 files
+
+
+Build a QEMU image
+------------------
+
+You can build a QEMU image using the following steps:
+
+(latest version here: https://wiki.automotivelinux.org/agl-distro/source-code)
+To build an image from 'meta-agl'
+
+1. Prepare repo:
+     >      $ mkdir ~/bin
+     >      $ export PATH=~/bin:$PATH
+     >      $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
+     >      $ chmod a+x ~/bin/repo
+
+2. Get all layers:
+     >      $ repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo
+     >      $ repo sync
+
+3. Check available targets and extensions, select target machine:
+     >      $ source meta-agl/scripts/aglsetup.sh -h
+     >      $ source meta-agl/scripts/aglsetup.sh -m qemux86-64
+
+  Alternatively, to enable the reference UI feature ('agl-demo'):
+     >      $ source meta-agl/scripts/aglsetup.sh -m qemux86-64 agl-demo
+
+  Alternatively, to also enable also the security framework ('agl-appfw-smack'):
+     >      $ source meta-agl/scripts/aglsetup.sh -m qemux86-64 agl-demo agl agl-appfw-smack
+
+  Alternatively, to also enable debugging tools ('agl-devel') and the network-boot (nbd) capabilities ('agl-netboot'):
+     >      $ source meta-agl/scripts/aglsetup.sh -m qemux86-64 agl-demo agl agl-appfw-smack agl-devel agl-netboot
+
+4. Build agl-image-ivi
+     >      $ bitbake agl-image-ivi
+
+  or alternatively, if you enabled the 'agl-demo' feature:
+     >      $ bitbake agl-demo-platform
+
+ - 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"
+
+5. Run in the emulator
+     >      $ runqemu agl-image-ivi qemux86-64
+     >      or
+     >      $ runqemu agl-demo-platform qemux86-64
+
+   For a large screen:
+     >      $ runqemu agl-image-ivi qemux86-64 bootparams="uvesafb.mode_option=1280x720-32"
+
+   To extend the amount of memory, add to runqemu:
+     qemuparams="-m 512"
+     >      $ runqemu agl-image-ivi qemux86-64 qemuparame="-m 512" bootparams="uvesafb.mode_option=1280x720-32"
+
+
+   To separate console from VGA screen (to avoid corrupt screen while booting),
+   add to runqemu:
+     serial
+     >      $ runqemu agl-image-ivi qemux86-64 bootparams="uvesafb.mode_option=1280x720-32" serial
+
+       **Or use the virtual disk in Virtual Box from this location:**
+       > tmp/deploy/images/qemux86-64/agl-demo-platform-qemux86-64.vmdk
+
+6.  Some weston samples are available from weston terminal (click top left icon).
+   Check the folder `/opt/AGL/ALS2016`.
+
+Build a R-Car M2 (porter) image
+-------------------------------
+
+### Software setup
+
+NOTE: You will need to download the matching binary driver package from renesas.
+      As of this writing, the version from 20151228.
+      The main URL to retrieve these is:
+
+ -   https://www.renesas.com/en-eu/solutions/automotive/rcar-demoboard.html
+
+      As of this writing, the necessary libary and driver packages linked to
+      by above site are:
+      - The subpage for the library is:
+             - https://www.renesas.com/en-eu/software/D3017410.html (registration/login required)
+
+      - The sub-page for the driver is:
+             - https://www.renesas.com/en-eu/media/secret/solutions/automotive/rcar-demoboard/R-Car_Series_Evaluation_Software_Package_of_Linux_Drivers-20151228.zip
+
+      !!! The files need to be in `${HOME}/Downloads` ( `$XDG_DOWNLOAD_DIR` ) !!!
+
+#### Getting Source Code and Build image
+
+(latest version here: https://wiki.automotivelinux.org/agl-distro/source-code)
+To build an image from 'meta-agl' only:
+
+1. Prepare repo:
+     >      $ mkdir ~/bin
+     >      $ export PATH=~/bin:$PATH
+     >      $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
+     >      $ chmod a+x ~/bin/repo
+
+2. Get all layers:
+     >      $ repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo
+     >      $ repo sync
+
+3. Check available targets and extensions, select target machine:
+     >      $ source meta-agl/scripts/aglsetup.sh -h
+     >      $ source meta-agl/scripts/aglsetup.sh -m porter
+
+  Alternatively, to enable the reference UI:
+     >      $ source meta-agl/scripts/aglsetup.sh -m porter agl-demo
+
+  Alternatively, to also enable also the security framework:
+     >      $ source meta-agl/scripts/aglsetup.sh -m porter agl-demo agl agl-appfw-smack
+
+  Alternatively, to also enable debugging tools and the network-boot (nbd) capabilities:
+     >      $ source meta-agl/scripts/aglsetup.sh -m porter agl-demo agl agl-appfw-smack agl-devel agl-netboot
+
+4. (optional) edit conf/local.conf   )* see below
+     >        $ vi conf/local.conf
+
+5. Build agl-image-ivi
+     >        $ bitbake agl-image-ivi
+
+  or alternatively, if you enabled the 'agl-demo' feature:
+     >      $ bitbake agl-demo-platform
+
+
+)* :
+
+ 4 .  Optional edits to conf/local.conf
+
+ *  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` MACHINE_FEATURES enables the meta-renesas's specific multimedia configuration.
+   The version of GStreamer1.0 which AGL distro will use is changed
+   to 1.2.3 (meta-renesas prefers it) over 1.4.1 (meta-agl default)
+   by this switch.
+
+* 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 <command>``.
+>        If not, programs should not launch by error,
+>        'EGL not available'.
+
+
+### Deployment (SDCARD)
+
+#### Instructions on the host
+
+1. Format SD-Card and then, create single EXT4 partition on it.
+
+2. Mount the SD-Card, for example `/media/$SDCARD_LABEL`.
+
+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/boot
+
+4. After the copy finished, unmount SD-Card and insert it into the SD-Card slot of the porter board.
+
+#### Instructions on the target
+
+NOTE: There is details about porter board [here](http://elinux.org/R-Car/Boards/Porter).
+
+NOTE: To boot weston on porter board, we need keyboard and mouse. (USB2.0 can be use for this)
+
+##### Change U-Boot parameters to boot from SD card
+
+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.**
+
+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
+
+##### Boot from SD card
+
+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! :)
+
+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
+
+            # Set the mixer
+>     $ 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 case 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 this:
+
+>     $ 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
+
+
+### Deployment (TFTP/NFS)
+
+NOTE: These instructions are based on Embedded Linux Wiki, [here](http://www.elinux.org/R-Car/Boards/Yocto#Loading_kernel_via_TFTP_and_rootfs_via_NFS). And a Debian (wheezy, ip: 192.168.30.70) is used as the host for this instructions.
+
+#### Instructions on the host
+1. Setup a TFTP server
+   1. Install necessary packages
+         >     $ sudo apt-get install tftp tftpd-hpa
+
+   2. Go to build directory, and copy kernel and DTB into TFTP server root (default server dir: /srv/tftp)
+         >     $cd  $AGL_TOP/build/tmp/deploy/images/porter
+         >     $ sudo cp uImage uImage-r8a7791-porter.dtb /srv/tftp
+
+   3. Verify TFTP server is working
+         >     $ ls uImage
+           ls: cannot access uImage: No such file or directory
+
+         >     $ cd /tmp/
+         >     $ tftp 192.168.30.70
+         >     tftp> get uImage
+         >     Received 3583604 bytes in 0.2 seconds
+         >     tftp> q
+         >     $ ls uImage
+         >     uImage
+
+2. set NFS server
+   1. Install necessary packages
+         >     $ sudo apt-get install nfs-kernel-server nfs-common
+
+   2. Go to build directory, and extract the root file system into a dedicated directory (here we use /nfs/porter)
+         >     $ cd $AGL_TOP/build/tmp/deploy/images/porter
+         >     $ sudo mkdir -p /nfs/porter
+         >      $ sudo tar --extract --numeric-owner --preserve-permissions --preserve-order \
+         >       --totals --directory=/nfs/porter --file=agl-demo-platform-porter.tar.bz2
+
+   3. Edit /etc/exports
+         >     $ sudo vi /etc/exports
+         Add
+         >
+         >     /nfs/porter     *(rw,no_subtree_check,sync,no_root_squash,no_all_squash)
+         >
+       Save the file and exit.
+
+   4. Restart nfs service
+         >     $ sudo service nfs-kernel-server restart
+
+   5. Verify NFS server is working
+         >     $ sudo mount -t nfs 192.168.30.70:/nfs/porter /tmp/
+         >     $ ls /tmp
+         >     bin  boot  dev  etc  home  lib  media  mnt  proc  run  sbin  sys  tmp  usr  var
+
+#### Instructions on the target board
+
+NOTE: There is details about porter board [here](http://elinux.org/R-Car/Boards/Porter).
+
+NOTE: To boot weston on porter board, we need keyboard and mouse. (USB2.0 can be use for this)
+
+##### Change U-Boot parameters to boot from TFTP/NFS
+
+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.
+
+2. Set the follow environment variables and save them
+>     => setenv ipaddr <board-ip>
+>     => setenv serverip <host-ip>
+>     => setenv bootargs_console console=ttySC6,${baudrate}
+>     => setenv bootargs_video vmalloc=384M video=HDMI-A-1:1024x768-32@60
+>     => setenv bootcmd_net 'tftp 0x40007fc0 uImage; tftp 0x40f00000 uImage-r8a7791-porter.dtb'
+>     => setenv bootcmd 'setenv bootargs ${bootargs_console} ${bootargs_video} ip=${ipaddr} root=/dev/nfs nfsroot=${serverip}:/nfs/porter,vers=3;run bootcmd_net;bootm 0x40007fc0 - 0x40f00000'
+>     => saveenv
+
+    Replace <board-ip> with a proper IP address for the board, like 192.168.30.60.
+    Replace <host-ip> with the IP address of the host, here we use 192.168.30.70.
+
+##### Boot from TFTP/NFS
+
+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! :)
+
index 3fc7b98..b95b54c 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,13 +1,23 @@
-meta-agl, the Yocto layer for Automotive Grade Linux Distribution
-=================================================================
+**README.md for the 'meta-agl' layer.**
 
-The yocto layer 'meta-agl' provides a minimal set of software
-to boot system of AGL Distribution.
+**See README-AGL.md for general information about Automotive Grade Linux.**
+
+
+meta-agl, the core layer for Automotive Grade Linux Distribution
+================================================================
 
 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.
 
+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.
+
+Especially there is no reference UI included which is part of 'meta-agl-demo'.
+
+Additional components like the security framework are part of 'meta-agl-extra'.
+
 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.
@@ -21,40 +31,54 @@ For information abount Getting started with AGL
 For information about contributing to the AGL Distro
     [here](https://wiki.automotivelinux.org/agl-distro/contributing)
 
-Layer Dependencies
-------------------
+Quick start guide
+-----------------
+See README-AGL.md
 
-URI: git://git.yoctoproject.org/poky
-> branch:   dizzy
-> revision: df87cb27efeaea1455f20692f9f1397c6fcab254
 
-URI: git://git.openembedded.org/meta-openembedded
-> layer:    meta-oe
-> branch:   dizzy
-> revision: 9efaed99125b1c4324663d9a1b2d3319c74e7278
+'meta-agl' Layer Dependencies
+-----------------------------
+* poky
+> URI: git://git.yoctoproject.org/poky
+> branch         : jethro
+> tested revision: 40376446904ae3529be41737fed9a0b650ed167d
 
-## The Renesas R-Car Gen2 (Porter) board depends in addition on: ##
+* meta-openembedded
+> URI: git://git.openembedded.org/meta-openembedded
+> layer          : meta-openembedded
+> branch         : jethro
+> tested revision: 8ab04afbffb4bc5184cfe0655049de6f44269990
 
-URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-renesas
-> branch:   agl-1.0-bsp-1.8.0
-> revision: bf30de66badcac7ef82d3758aa44c116ee791a28
-> (or later)
+ 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
 
 Layers
 ------
 
-There are 3 layers in top-level `meta-agl`.
+There are 5 layers in top-level `meta-agl`.
 
+* `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.
-> meta-agl/meta-ivi-common
 
+* `meta-agl/meta-agl`
 `meta-agl` is a layer which contains AGL common and middleware packages.
-> meta-agl/meta-agl
 
+* `meta-agl/meta-agl-bsp`
 `meta-agl-bsp` is a layer which contains required packages to boot AGL
 distribution on an emulated machine(QEMU).
-> meta-agl/meta-agl-bsp
+
+* `meta-agl/meta-agl-security`
+`meta-agl-security` is a layer which contains dependencies
+required by the security framework(s) - not the framework(s) itself.
+
+* `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.
 
 Packagegroups
 -------------
@@ -63,6 +87,17 @@ AGL package group design:
 
 * packagegroup-agl-core*
 
+        packagegroup-agl-core-automotive.bb
+        packagegroup-agl-core.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.
 
@@ -71,268 +106,58 @@ hold sufficient packages to build ``agl-image-minimal``.
 
 * packagegroup-agl-ivi*
 
-These are for making image ``agl-image-ivi`` which is baseline for IVI profile
+        packagegroup-agl-ivi-automotive.bb
+        packagegroup-agl-ivi.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. I think this is the same as GENIVI baseline.
-All packages which belong to AppHMI and Application Framework should be put
-into ``meta-agl-demo``.
-
-* packagegroup-ivi-common*
-
-These are for picking up some packages from GENIVI/Tizen/Others. The layer of
-``meta-ivi-common`` has no image to build, all packagegroups are aggregated
-to ``packagegrou-ivi-common-core' and it is included by images,
-``agl-image-ivi.bb`` and ``agl-demo-platform.bb``.
-
-Supported Machine
------------------
-
-* 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)
+in AGL Spec v1.0.
 
-Supposed Directory Trees of Layers to build
--------------------------------------------
+* packagegroup-agl-test.bb
 
-* For QEMU
+Additional tools used in QA tests (for agl-image*-qa).
 
-      ${TOPDIR}/
-                meta-agl/
-                meta-openembedded/
-                poky/
+* packagegroup-ivi-common*
 
-* For R-Car M2
+        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``.
 
-      ${TOPDIR}/
-                meta-agl/
-                meta-openembedded/
-                meta-renesas/
-                poky/
 
-Build a QEMU image
+Supported Machines
 ------------------
 
-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
-
-   For large screen:
-   > $ PATH_TO_POKY/poky/scripts/runqemu agl-image-ivi qemux86-64 bootparams="uvesafb.mode_option=1280x720-32"
-
-5. 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 df87cb27efeaea1455f20692f9f1397c6fcab254
-        $ cd -
-        $ git clone git://git.openembedded.org/meta-openembedded
-        $ cd meta-openembedded
-        $ git checkout 9efaed99125b1c4324663d9a1b2d3319c74e7278
-        $ cd -
-        $ git clone https://gerrit.automotivelinux.org/gerrit/AGL/meta-renesas
-        $ cd meta-renesas
-        $ git checkout bf30de66badcac7ef82d3758aa44c116ee791a28
-        $ 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
+See README-AGL.md
 
-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
+Supported Target for bitbake
+----------------------------
 
-3. Copy the graphics acceleration drivers by shell script.
-        $ cd $AGL_TOP/meta-renesas/meta-rcar-gen2
-        $ ./copy_gfx_software_porter.sh ../../binary-tmp
+meta-agl:
 
-4. Copy the multimedia acceleration drivers by shell script.
-        $ cd $AGL_TOP/meta-renesas/meta-rcar-gen2
-        $ ./copy_mm_software_lcb.sh ../../binary-tmp
-
-#### 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
-
-   Edit conf/bblayers.conf then remove this line.
-        ##OEROOT##/../meta-agl-demo \
-
-   (Optional) If you want to use multimedia accelerations, confirm your
-   conf/bblayer.conf has a entry of `meta-openembedded/meta-multimedia`
-   in BBLAYERS because packagegroup-rcar-gen2-multimedia needs some extra
-   packages there.
-
-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 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).
-
-#### Instructions on the host
-
-1. Format SD-Card and then, create single EXT3 partition on it.
-
-2. Mount the SD-Card, for example `/media/$SDCARD_LABEL`.
-
-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/boot
-
-4. After the copy finished, unmount SD-Card and insert it into the SD-Card slot of the porter board.
-
-#### Instructions on the host
-
-NOTE: There is details about porter board [here](http://elinux.org/R-Car/Boards/Porter).
-
-NOTE: To boot weston on porter board, we need keyboard and mouse. (USB2.0 can be use for this)
-
-##### Change U-Boot parameters to boot from SD card
-
-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.
-
-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
-
-##### Boot from SD card
-
-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! :)
-
-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' &
+* `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)
 
-    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