Cleanup of recipes for CESdemo
[AGL/meta-agl-demo.git] / README.md
index 04ef167..dd08bc2 100644 (file)
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@ URI: git://git.yoctoproject.org/poky
 > revision: df87cb27efeaea1455f20692f9f1397c6fcab254
 
 URI: git://git.openembedded.org/meta-openembedded
-> layer:    meta-oe
+> layer:    meta-oe, meta-multimedia, meta-ruby
 > branch:   dizzy
 > revision: 9efaed99125b1c4324663d9a1b2d3319c74e7278
 
@@ -39,7 +39,7 @@ URI: https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl
 > (or later)
 
 URI: https://github.com/meta-qt5/meta-qt5.git
-> branch:   dizzy
+> branch:   jethro (b/c of qt-5.5.x)
 > revision: adeca0db212d61a933d7952ad44ea1064cfca747
 
 ## The Renesas R-Car Gen2 (Porter) board depends in addition on: ##
@@ -72,18 +72,18 @@ 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.
 
-Subsystems also can maintain thier own packagegroups under appropriate
+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 ``pacakgegroup-agl-demo-qt-examples``
+``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
-``pacakgegroup-agl-appfw-native`` because Qt5 belongs to native application
+``packagegroup-agl-appfw-native`` because Qt5 belongs to native application
 framework of AGL Distro.
 
-The ``pacakgegroup-agl-demo-qt-examples`` is added to local.conf if needed
+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.
 
@@ -120,69 +120,73 @@ Supposed Directory Trees of Layers to build
                 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. 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"
+
+  2b. 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"
+
+   To separate console from VGA screen (to avoid corrupt screen while booting),
+   add to runqemu:
+        serial
+
+   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 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-agl
-        $ cd meta-agl
-        $ git checkout 4d71b6fbe454ff51342ab1eb6791fad66ba98c3e
-        $ cd -
-        $ git clone https://github.com/meta-qt5/meta-qt5.git
-        $ cd meta-qt5
-        $ git checkout adeca0db212d61a933d7952ad44ea1064cfca747
-        $ 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-demo
-
 #### Obtain and Install Renesas Graphics/Multimedia Drivers
 
 1. Download packages from Renesas
@@ -196,64 +200,16 @@ 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. Copy the graphics acceleration drivers by shell script.
-        $ cd $AGL_TOP/meta-renesas/meta-rcar-gen2
-        $ ./copy_gfx_software_porter.sh ../../binary-tmp
-
-4. Copy the multimedia acceleration drivers by shell script.
-        $ cd $AGL_TOP/meta-renesas/meta-rcar-gen2
-        $ ./copy_mm_software_lcb.sh ../../binary-tmp
+  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
-
-   (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. Add 2 layers to bblayer.conf,
-   > meta-openembedded/meta-ruby
-   > meta-qt5
-
-   So it looks something like,
-        BBLAYERS ?= " \
-        ##OEROOT##/meta \
-        ##OEROOT##/meta-yocto \
-        ##OEROOT##/meta-yocto-bsp \
-        ##OEROOT##/../meta-agl/meta-ivi-common \
-        ##OEROOT##/../meta-agl/meta-agl \
-        ##OEROOT##/../meta-openembedded/meta-oe \
-        ##OEROOT##/../meta-openembedded/meta-multimedia \
-        ##OEROOT##/../meta-openembedded/meta-ruby \
-        ##OEROOT##/../meta-qt5 \
-        ##OEROOT##/../meta-renesas \
-        ##OEROOT##/../meta-renesas/meta-rcar-gen2 \
-        ##OEROOT##/../meta-agl-demo \
-        "
+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]
 
-4. (Optional) If you want to install various Qt5 examples, add below
+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 \
@@ -266,7 +222,7 @@ You can build a R-Car2 M2 (porter) image using the following steps:
         If not, programs should not launch by error,
         'EGL not available'.
 
-5. (Optional) If you want to use multimedia accelerations, uncomment
+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 \
@@ -294,7 +250,7 @@ You can build a R-Car2 M2 (porter) image using the following steps:
    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.
 
-6. Build the full image of AGL Demo Platform and applications
+4. Build the full image of AGL Demo Platform and applications
         $ bitbake agl-demo-platform
 
 ### Deployment (SDCARD)
@@ -318,7 +274,7 @@ NOTE: These instructions are based on GENIVI wiki, [here](http://wiki.projects.g
 
 4. After the copy finished, unmount SD-Card and insert it into the SD-Card slot of the porter board.
 
-#### Instructions on the host
+#### Instructions on the target board
 
 NOTE: There is details about porter board [here](http://elinux.org/R-Car/Boards/Porter).
 
@@ -383,3 +339,76 @@ NOTE: To boot weston on porter board, we need keyboard and mouse. (USB2.0 can be
             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  sh-thd-430987335390  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! :)