X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=README.md;h=dd08bc21dc809bb2276c1546b117a7188a3ec4e3;hb=54c89a006a0dea9d4460cba8c16c3ed57af4e5d9;hp=04ef1671f6bce4527faf883488ddff940a15ff7b;hpb=a520f91e5192f553f93b684529b1d2bec45d1ecb;p=AGL%2Fmeta-agl-demo.git diff --git a/README.md b/README.md index 04ef1671f..dd08bc21d 100644 --- 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 + => setenv serverip + => 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 with a proper IP address for the board, like 192.168.30.60. + Replace 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! :)