diff options
author | Ronan Le Martret <ronan.lemartret@iot.bzh> | 2018-07-30 13:59:07 +0200 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2018-08-01 12:18:09 +0000 |
commit | dd4fe1c7ba8da1ca8da0df46049811537e569188 (patch) | |
tree | c78829a3c7b72027c32263e8d3471803425a21a0 | |
parent | 12c569634e5fbb1e4d29316dafba8bde783953c3 (diff) |
Remove porter reference from meta-agl
* Remove, from recipes, reference to porter, gen2, krogoth.
* cleanup mardown from reference to porter.
* cleanup markdown (markdownlint score 0).
Change-Id: I70b9880fc52ef3c848da588d3a256fa8eee48606
Signed-off-by: Ronan Le Martret <ronan.lemartret@iot.bzh>
13 files changed, 100 insertions, 1360 deletions
diff --git a/README-AGL.md b/README-AGL.md index 146d6ff16..9ae0ee1e9 100644 --- a/README-AGL.md +++ b/README-AGL.md @@ -1,7 +1,7 @@ ?README-AGL.md: The Automotive Grade Linux Distribution ====================================================== -AGL is creating an automotive specific Linux distribution (AGL UCB) +[AGL](https://www.automotivelinux.org/) 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. @@ -26,411 +26,6 @@ For information abount Getting started with AGL For information about contributing to the AGL Distro [here](https://wiki.automotivelinux.org/agl-distro/contributing) -Quick start guide ------------------ - -The latest version is available at [AGL wiki](https://wiki.automotivelinux.org/agl-distro/source-code) for the following targets: -* [QEMU](https://wiki.automotivelinux.org/agl-distro/source-code) -* [Renesas Porter board](https://wiki.automotivelinux.org/start/building_for_the_renesas_r-car_m2) -* [Raspberry Pi 2/3](https://wiki.automotivelinux.org/agl-distro/agl-raspberrypi) - -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 += "wic.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.wic.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=ext4;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! :) - -### 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! :) +For more documentation about AGL: +* [docs.automotivelinux.org](http://docs.automotivelinux.org) @@ -1,10 +1,8 @@ -**README.md for the 'meta-agl' layer.** +# **README.md for the 'meta-agl' layer** **See README-AGL.md for general information about Automotive Grade Linux.** - -meta-agl, the core layer for Automotive Grade Linux Distribution -================================================================ +## 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, @@ -31,52 +29,47 @@ For information abount Getting started with AGL For information about contributing to the AGL Distro [here](https://wiki.automotivelinux.org/agl-distro/contributing) -Quick start guide ------------------ +## Quick start guide + See README-AGL.md +## 'meta-agl' Layer Dependencies -'meta-agl' Layer Dependencies ------------------------------ * poky -> URI: git://git.yoctoproject.org/poky -> branch : jethro -> tested revision: 40376446904ae3529be41737fed9a0b650ed167d + > URI: git://git.yoctoproject.org/poky + > branch : jethro + > tested revision: 40376446904ae3529be41737fed9a0b650ed167d * meta-openembedded -> URI: git://git.openembedded.org/meta-openembedded -> layer : meta-openembedded -> branch : jethro -> tested revision: 8ab04afbffb4bc5184cfe0655049de6f44269990 + > URI: git://git.openembedded.org/meta-openembedded + > layer : meta-openembedded + > branch : jethro + > tested revision: 8ab04afbffb4bc5184cfe0655049de6f44269990 - Specifically out of meta-openembedded these sub-layers are used: - * meta-openembedded/meta-oe - * meta-openembedded/meta-multimedia - * meta-openembedded/meta-networking - * meta-openembedded/meta-python +Specifically out of meta-openembedded these sub-layers are used: -Layers ------- - -There are 5 layers in top-level `meta-agl`. +* meta-openembedded/meta-oe +* meta-openembedded/meta-multimedia +* meta-openembedded/meta-networking +* meta-openembedded/meta-python -* `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. +## Layers -* `meta-agl/meta-agl` -`meta-agl` is a layer which contains AGL common and middleware packages. - -* `meta-agl/meta-agl-bsp` -`meta-agl-bsp` is a layer which contains required packages to boot AGL -distribution on an emulated machine(QEMU). +There are 5 layers in top-level `meta-agl`. -* `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. +* `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-agl`\ + `meta-agl` is a layer which contains AGL common and middleware packages. +* `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-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 -------------- +## Packagegroups AGL package group design: @@ -137,20 +130,6 @@ 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 -Supported Machines ------------------- - -See README-AGL.md - - -Supported Target for 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) - - +See [docs.automotivelinux.org](http://docs.automotivelinux.org) diff --git a/docs/profiles.md b/docs/profiles.md index 6c7e76730..287b8190a 100644 --- a/docs/profiles.md +++ b/docs/profiles.md @@ -1,90 +1,104 @@ # AGL Profiles -The AGL Profiles cover the different use-cases that the AGL platform serves. This ranges from minimal systems without display, telematic systems, HUD, IVI, ADAS and more. Common to all of them is the use of the AGL APIs (agl-service-*). +The AGL Profiles cover the different use-cases that the AGL platform serves.\ +This ranges from minimal systems without display, telematic systems, HUD, IVI, ADAS and more.\ +Common to all of them is the use of the AGL APIs (agl-service-*). -All systems have the 'core' profile in common. This small set of libraries and binaries is the essential set including the AGL APIs that every AGL system needs. All other profiles reuse the 'core' profile. +All systems have the 'core' profile in common.\ +This small set of libraries and binaries is the essential set including the AGL APIs that every AGL system needs.\ +All other profiles reuse the 'core' profile. The other profiles and their dependencies are currently: - * agl-profile-core - * agl-profile-telematics - * agl-profile-hud - * agl-profile-graphical - * agl-profile-graphical-html5 - * agl-profile-graphical-qt5 - * agl-demo-platform - - +* agl-profile-core + * agl-profile-telematics + * agl-profile-hud + * agl-profile-graphical + * agl-profile-graphical-html5 + * agl-profile-graphical-qt5 + * agl-demo-platform ## agl-profile-core + This profile contains the following images: + * agl-image-boot - * agl-image-minimal - * agl-image-minimal-crosssdk + * agl-image-minimal + * agl-image-minimal-crosssdk ### agl-image-boot -This image is only meant to boot the target device and provide network, package-management and a shell. + +This image is only meant to boot the target device and provide network, package-management and a shell.\ All other functionality needs to be installed at runtime through 'dnf' using the provided package feeds and package-groups (e.g. dnf install profile-graphical-qt5) ### agl-image-minimal + This is the smallest image that includes all (non-graphical) AGL APIs. ### agl-image-minimal-crosssdk + This is the SDK for systems without display including the AGL APIs. ## agl-profile-telematics + N.N. ## agl-profile-hud + N.N. ## agl-profile-graphical -This profile contains a basic graphical system with wayland/weston. It is used as a base for the more targeted profiles: + +This profile contains a basic graphical system with wayland/weston.\ +It is used as a base for the more targeted profiles: + * agl-profile-graphical-html5 * agl-profile-graphical-qt5 Part of this layer are the following images: + * agl-image-weston ### agl-image-weston + Pure wayland + weston image but with all AGL service APIs. ## agl-profile-graphical-html5 -This profile contains all components to build a html5 / web-based system and should be used as a base layer for further projects. + +This profile contains all components to build a html5 / web-based system and should be used as a base layer for further projects.\ All AGL APIs are included. ## agl-profile-graphical-qt5 -This profile is used as base for all projects that build on qt5 like the agl-demo-platform. -Part of this layer are the ffollowing images: -* agl-image-graphical-qt5 -* agl-image-graphical-qt5-crosssdk (THIS IS THE SDK TARGET WE AIM TO USE FOR AGL-DEMO-PLATFORM IN THE END) -All AGL APIs are included. +This profile is used as base for all projects that build on qt5 like the agl-demo-platform.\ +Part of this layer are the ffollowing images: +* agl-image-graphical-qt5 +* agl-image-graphical-qt5-crosssdk\ + (THIS IS THE SDK TARGET WE AIM TO USE FOR AGL-DEMO-PLATFORM IN THE END) All AGL APIs are included. ### agl-image-graphical-qt5 + Image with wayland/weston and the qt5 packages installed. ### agl-image-graphical-qt5-crosssdk -SDK based on agl-image-graphical-qt5 suitable for development under qt5. - +SDK based on agl-image-graphical-qt5 suitable for development under qt5. ## agl-demo-platform -This layer builds on-top of agl-profile-graphical-qt5 and builds the full AGL demonstrator image. + +This layer builds on-top of agl-profile-graphical-qt5 and builds the full AGL demonstrator image.\ It hosts these images: + * agl-demo-platform * agl-demo-platform-crosssdk * agl-demo-platform-qa - - - TLDR: -``` +```tree meta-agl/meta-agl-profile-core/recipes-platform |-- images | |-- agl-image-boot.bb @@ -131,4 +145,3 @@ meta-agl/meta-agl-profile-core/recipes-platform |-- packagegroup-agl-profile-graphical-qt5.bb `-- packagegroup-qt5-toolchain-target.bbappend ``` - diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase_%.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase_%.bbappend index d568b1284..e939fa35a 100644 --- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase_%.bbappend +++ b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtbase_%.bbappend @@ -1,9 +1,5 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -DEPENDS_append_koelsch = " libegl" -#DEPENDS_append_porter = " libegl" -DEPENDS_append_porter = " ${@base_conditional('PREFERRED_PROVIDER_virtual/egl', 'mesa', 'mesa', 'libegl', d)}" - PACKAGECONFIG_WAYLAND = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}" PACKAGECONFIG_GL = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2', '', d)}" PACKAGECONFIG_append = " ${PACKAGECONFIG_WAYLAND} icu accessibility" diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0001-Implement-initial-IVI-shell-support-with-shell-integ.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0001-Implement-initial-IVI-shell-support-with-shell-integ.patch deleted file mode 100644 index 9495dcc88..000000000 --- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0001-Implement-initial-IVI-shell-support-with-shell-integ.patch +++ /dev/null @@ -1,693 +0,0 @@ -From f41ceb82b1adb1bae15d36a426bf39ea0e75cb68 Mon Sep 17 00:00:00 2001 -From: Nobuhiko Tanibata <ntanibata@jp.adit-jv.com> -Date: Thu, 5 Nov 2015 20:13:26 +0900 -Subject: [PATCH 1/2] Implement initial IVI-shell support with shell - integration. - -QApplication can set numeric surface ID to its surface by -following steps -------------------------------------------------------- -#include <QApplication> -#include <QQuickView> - -int main(int argc, char *argv[]) -{ - QGuiApplication app(argc, argv); - QQuickView view(QUrl(QStringLiteral("qrc:/main.qml"))); - - view.setProperty("IVI-Surface-ID", 8000); - view.show(); - return app.exec(); -} -------------------------------------------------------- - -If QApplication doesn't set the surface ID by itself, the ID is -automatically assigned by qtwayland from 8000. When the application creates -several surfaces, the ID is incremented like 8001,8002,,,,. - -Additionally, qtwayland now supports shell integration Framework. So -The enviromental value QT_WAYLAND_SHELL_INTEGRATION=ivi-shell are required for -Qt application. - -Signed-off-by: Nobuhiko Tanibata <ntanibata@jp.adit-jv.com> ---- - .gitignore | 6 ++ - src/3rdparty/protocol/ivi-application.xml | 99 +++++++++++++++++++ - src/client/client.pro | 3 +- - src/plugins/plugins.pro | 3 +- - .../shellintegration/ivi-shell/ivi-shell.json | 3 + - .../shellintegration/ivi-shell/ivi-shell.pro | 30 ++++++ - src/plugins/shellintegration/ivi-shell/main.cpp | 69 +++++++++++++ - .../ivi-shell/qwaylandivishellintegration.cpp | 109 +++++++++++++++++++++ - .../ivi-shell/qwaylandivishellintegration.h | 79 +++++++++++++++ - .../ivi-shell/qwaylandivisurface.cpp | 71 ++++++++++++++ - .../ivi-shell/qwaylandivisurface_p.h | 76 ++++++++++++++ - src/plugins/shellintegration/shellintegration.pro | 3 + - 12 files changed, 549 insertions(+), 2 deletions(-) - create mode 100644 src/3rdparty/protocol/ivi-application.xml - create mode 100644 src/plugins/shellintegration/ivi-shell/ivi-shell.json - create mode 100644 src/plugins/shellintegration/ivi-shell/ivi-shell.pro - create mode 100644 src/plugins/shellintegration/ivi-shell/main.cpp - create mode 100644 src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp - create mode 100644 src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h - create mode 100644 src/plugins/shellintegration/ivi-shell/qwaylandivisurface.cpp - create mode 100644 src/plugins/shellintegration/ivi-shell/qwaylandivisurface_p.h - create mode 100644 src/plugins/shellintegration/shellintegration.pro - -diff --git a/.gitignore b/.gitignore -index b33ca90..924afb2 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -61,6 +61,12 @@ src/plugins/hardwareintegration/*/*/qwayland*.h - src/plugins/hardwareintegration/*/*/*-server-protocol.h - src/plugins/hardwareintegration/*/*/*-client-protocol.h - src/plugins/hardwareintegration/*/*/*-protocol.c -+src/plugins/shellintegration/ivi-shell/qwayland-ivi-application.h -+src/plugins/shellintegration/ivi-shell/qwayland-ivi-application.cpp -+src/plugins/shellintegration/ivi-shell/qwayland-ivi-controller.h -+src/plugins/shellintegration/ivi-shell/qwayland-ivi-controller.cpp -+src/plugins/shellintegration/*/*-client-protocol.h -+src/plugins/shellintegration/*/*-protocol.c - tests/auto/client/tst_client - tests/auto/compositor/tst_compositor - *~ -diff --git a/src/3rdparty/protocol/ivi-application.xml b/src/3rdparty/protocol/ivi-application.xml -new file mode 100644 -index 0000000..61ec7d2 ---- /dev/null -+++ b/src/3rdparty/protocol/ivi-application.xml -@@ -0,0 +1,99 @@ -+<?xml version="1.0" encoding="UTF-8"?> -+<protocol name="ivi_application"> -+ -+ <copyright> -+ Copyright (C) 2013 DENSO CORPORATION -+ Copyright (c) 2013 BMW Car IT GmbH -+ -+ Permission to use, copy, modify, distribute, and sell this software and -+ its documentation for any purpose is hereby granted without fee, provided -+ that the above copyright notice appear in all copies and that both that -+ copyright notice and this permission notice appear in supporting -+ documentation, and that the name of the copyright holders not be used in -+ advertising or publicity pertaining to distribution of the software -+ without specific, written prior permission. The copyright holders make -+ no representations about the suitability of this software for any -+ purpose. It is provided "as is" without express or implied warranty. -+ -+ THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS -+ SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -+ FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY -+ SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER -+ RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF -+ CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -+ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ </copyright> -+ -+ <interface name="ivi_surface" version="1"> -+ <description summary="application interface to surface in ivi compositor"/> -+ -+ <request name="destroy" type="destructor"> -+ <description summary="destroy ivi_surface"> -+ This removes link from ivi_id to wl_surface and destroys ivi_surface. -+ The ID, ivi_id, is free and can be used for surface_create again. -+ </description> -+ </request> -+ -+ <event name="configure"> -+ <description summary="suggest resize"> -+ The configure event asks the client to resize its surface. -+ -+ The size is a hint, in the sense that the client is free to -+ ignore it if it doesn't resize, pick a smaller size (to -+ satisfy aspect ratio or resize in steps of NxM pixels). -+ -+ The client is free to dismiss all but the last configure -+ event it received. -+ -+ The width and height arguments specify the size of the window -+ in surface local coordinates. -+ </description> -+ <arg name="width" type="int"/> -+ <arg name="height" type="int"/> -+ </event> -+ </interface> -+ -+ <interface name="ivi_application" version="1"> -+ <description summary="create ivi-style surfaces"> -+ This interface is exposed as a global singleton. -+ This interface is implemented by servers that provide IVI-style user interfaces. -+ It allows clients to associate a ivi_surface with wl_surface. -+ </description> -+ -+ <enum name="error"> -+ <entry name="role" value="0" summary="given wl_surface has another role"/> -+ <entry name="ivi_id" value="1" summary="given ivi_id is assigned to another wl_surface"/> -+ </enum> -+ -+ <request name="surface_create"> -+ <description summary="create ivi_surface with numeric ID in ivi compositor"> -+ This request gives the wl_surface the role of an IVI Surface. Creating more than -+ one ivi_surface for a wl_surface is not allowed. Note, that this still allows the -+ following example: -+ -+ 1. create a wl_surface -+ 2. create ivi_surface for the wl_surface -+ 3. destroy the ivi_surface -+ 4. create ivi_surface for the wl_surface (with the same or another ivi_id as before) -+ -+ surface_create will create a interface:ivi_surface with numeric ID; ivi_id in -+ ivi compositor. These ivi_ids are defined as unique in the system to identify -+ it inside of ivi compositor. The ivi compositor implements business logic how to -+ set properties of the surface with ivi_id according to status of the system. -+ E.g. a unique ID for Car Navigation application is used for implementing special -+ logic of the application about where it shall be located. -+ The server regards following cases as protocol errors and disconnects the client. -+ - wl_surface already has an nother role. -+ - ivi_id is already assigned to an another wl_surface. -+ -+ If client destroys ivi_surface or wl_surface which is assigne to the ivi_surface, -+ ivi_id which is assigned to the ivi_surface is free for reuse. -+ </description> -+ <arg name="ivi_id" type="uint"/> -+ <arg name="surface" type="object" interface="wl_surface"/> -+ <arg name="id" type="new_id" interface="ivi_surface"/> -+ </request> -+ -+ </interface> -+ -+</protocol> -diff --git a/src/client/client.pro b/src/client/client.pro -index 0c13a4a..ca48cce 100644 ---- a/src/client/client.pro -+++ b/src/client/client.pro -@@ -6,7 +6,8 @@ MODULE=waylandclient - MODULE_PLUGIN_TYPES = \ - wayland-graphics-integration-client \ - wayland-inputdevice-integration \ -- wayland-decoration-client -+ wayland-decoration-client \ -+ wayland-shell-integration - - CONFIG += generated_privates - -diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro -index a1a8a5b..9b66b85 100644 ---- a/src/plugins/plugins.pro -+++ b/src/plugins/plugins.pro -@@ -2,4 +2,5 @@ TEMPLATE=subdirs - SUBDIRS += \ - platforms \ - hardwareintegration \ -- decorations -+ decorations \ -+ shellintegration -diff --git a/src/plugins/shellintegration/ivi-shell/ivi-shell.json b/src/plugins/shellintegration/ivi-shell/ivi-shell.json -new file mode 100644 -index 0000000..c48528e ---- /dev/null -+++ b/src/plugins/shellintegration/ivi-shell/ivi-shell.json -@@ -0,0 +1,3 @@ -+{ -+ "Keys":[ "ivi-shell" ] -+} -diff --git a/src/plugins/shellintegration/ivi-shell/ivi-shell.pro b/src/plugins/shellintegration/ivi-shell/ivi-shell.pro -new file mode 100644 -index 0000000..ac12858 ---- /dev/null -+++ b/src/plugins/shellintegration/ivi-shell/ivi-shell.pro -@@ -0,0 +1,30 @@ -+PLUGIN_TYPE = wayland-shell-integration -+load(qt_plugin) -+ -+QT += waylandclient-private -+CONFIG += wayland-scanner -+ -+!contains(QT_CONFIG, no-pkg-config) { -+ PKGCONFIG += wayland-client wayland-cursor -+ CONFIG += link_pkgconfig -+ contains(QT_CONFIG, glib): PKGCONFIG_PRIVATE += glib-2.0 -+} else { -+ LIBS += -lwayland-client -lwayland-cursor $$QT_LIBS_GLIB -+} -+ -+WAYLANDCLIENTSOURCES += \ -+ ../../../3rdparty/protocol/ivi-application.xml -+ -+include(../../../../include/QtWaylandClient/headers.pri) -+ -+HEADERS += \ -+ qwaylandivishellintegration.h \ -+ qwaylandivisurface_p.h -+ -+SOURCES += \ -+ main.cpp \ -+ qwaylandivishellintegration.cpp \ -+ qwaylandivisurface.cpp -+ -+OTHER_FILES += \ -+ ivi-shell.json -diff --git a/src/plugins/shellintegration/ivi-shell/main.cpp b/src/plugins/shellintegration/ivi-shell/main.cpp -new file mode 100644 -index 0000000..2382ff7 ---- /dev/null -+++ b/src/plugins/shellintegration/ivi-shell/main.cpp -@@ -0,0 +1,69 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2015 ITAGE Corporation, author: <yusuke.binsaki@itage.co.jp> -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the config.tests of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 3.0 as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU General Public License version 3.0 requirements will be -+** met: http://www.gnu.org/copyleft/gpl.html. -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include <QtWaylandClient/private/qwaylandshellintegrationplugin_p.h> -+#include "qwaylandivishellintegration.h" -+ -+QT_BEGIN_NAMESPACE -+ -+namespace QtWaylandClient { -+ -+class QWaylandIviShellIntegrationPlugin : public QWaylandShellIntegrationPlugin -+{ -+ Q_OBJECT -+ Q_PLUGIN_METADATA(IID QWaylandShellIntegrationFactoryInterface_iid FILE "ivi-shell.json") -+ -+public: -+ virtual QWaylandShellIntegration *create(const QString &key, const QStringList ¶mList) Q_DECL_OVERRIDE; -+}; -+ -+QWaylandShellIntegration *QWaylandIviShellIntegrationPlugin::create(const QString &key, const QStringList ¶mList) -+{ -+ Q_UNUSED(key); -+ Q_UNUSED(paramList); -+ return new QWaylandIviShellIntegration(); -+} -+ -+} -+ -+QT_END_NAMESPACE -+ -+#include "main.moc" -diff --git a/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp -new file mode 100644 -index 0000000..763fafb ---- /dev/null -+++ b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp -@@ -0,0 +1,109 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2015 ITAGE Corporation, author: <yusuke.binsaki@itage.co.jp> -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the config.tests of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 3.0 as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU General Public License version 3.0 requirements will be -+** met: http://www.gnu.org/copyleft/gpl.html. -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include <sys/types.h> -+#include <unistd.h> -+#include <stdint.h> -+#include <stdlib.h> -+ -+#include <QtWaylandClient/private/qwayland-wayland.h> -+#include <QtWaylandClient/private/qwaylanddisplay_p.h> -+#include <QtWaylandClient/private/qwaylandwindow_p.h> -+#include <QtWaylandClient/private/qwaylandabstractdecoration_p.h> -+#include "qwaylandivishellintegration.h" -+#include "qwaylandivisurface_p.h" -+#include "qwayland-ivi-application.h" -+ -+QT_BEGIN_NAMESPACE -+ -+namespace QtWaylandClient { -+ -+QWaylandIviShellIntegration::QWaylandIviShellIntegration() -+ : m_iviApplication(Q_NULLPTR) -+{ -+} -+ -+QWaylandIviShellIntegration::~QWaylandIviShellIntegration() -+{ -+ delete m_iviApplication; -+} -+ -+bool QWaylandIviShellIntegration::initialize(QWaylandDisplay *display) -+{ -+ display->addRegistryListener(registryIvi, this); -+ -+ return true; -+} -+ -+QWaylandShellSurface *QWaylandIviShellIntegration::createShellSurface(QWaylandWindow *window) -+{ -+ const int IVI_SURFACE_ID = 8000; -+ if (!m_iviApplication) -+ return Q_NULLPTR; -+ -+ uint32_t id = 0; -+ QVariant value = window->property("IVI-Surface-ID"); -+ if (value.isValid()) { -+ id = value.toUInt(); -+ } else { -+ id = IVI_SURFACE_ID + getpid(); -+ } -+ -+ struct ivi_surface *surface = m_iviApplication->surface_create(id, window->object()); -+ -+ return new QWaylandIviSurface(surface, window); -+} -+ -+void QWaylandIviShellIntegration::registryIvi(void *data, -+ struct wl_registry *registry, -+ uint32_t id, -+ const QString &interface, -+ uint32_t version) -+{ -+ QWaylandIviShellIntegration *shell = static_cast<QWaylandIviShellIntegration *>(data); -+ -+ if (interface == QStringLiteral("ivi_application")) -+ shell->m_iviApplication = new QtWayland::ivi_application(registry, id, version); -+} -+ -+} -+ -+QT_END_NAMESPACE -diff --git a/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h -new file mode 100644 -index 0000000..4856ec6 ---- /dev/null -+++ b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h -@@ -0,0 +1,79 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2015 ITAGE Corporation, author: <yusuke.binsaki@itage.co.jp> -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the config.tests of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 3.0 as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU General Public License version 3.0 requirements will be -+** met: http://www.gnu.org/copyleft/gpl.html. -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QWAYLANDIVIINTEGRATION_H -+#define QWAYLANDIVIINTEGRATION_H -+ -+#include <QtWaylandClient/private/qwaylandshellintegration_p.h> -+ -+QT_BEGIN_NAMESPACE -+ -+namespace QtWayland { -+ struct wl_registry; -+ class ivi_application; -+} -+ -+namespace QtWaylandClient { -+ -+class QWaylandWindow; -+class QWaylandDisplay; -+ -+class Q_WAYLAND_CLIENT_EXPORT QWaylandIviShellIntegration : public QWaylandShellIntegration -+{ -+public: -+ QWaylandIviShellIntegration(); -+ ~QWaylandIviShellIntegration(); -+ bool initialize(QWaylandDisplay *display); -+ QWaylandShellSurface *createShellSurface(QWaylandWindow *window); -+ -+private: -+ static void registryIvi(void *data, struct wl_registry *registry -+ , uint32_t id, const QString &interface, uint32_t version); -+ -+private: -+ QtWayland::ivi_application *m_iviApplication; -+}; -+ -+} -+ -+QT_END_NAMESPACE -+ -+#endif // QWAYLANDIVIINTEGRATION_H -diff --git a/src/plugins/shellintegration/ivi-shell/qwaylandivisurface.cpp b/src/plugins/shellintegration/ivi-shell/qwaylandivisurface.cpp -new file mode 100644 -index 0000000..3ce3b4e ---- /dev/null -+++ b/src/plugins/shellintegration/ivi-shell/qwaylandivisurface.cpp -@@ -0,0 +1,71 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the config.tests of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 3.0 as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU General Public License version 3.0 requirements will be -+** met: http://www.gnu.org/copyleft/gpl.html. -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include <QtWaylandClient/private/qwaylanddisplay_p.h> -+#include <QtWaylandClient/private/qwaylandwindow_p.h> -+#include <QtWaylandClient/private/qwaylandinputdevice_p.h> -+#include <QtWaylandClient/private/qwaylandscreen_p.h> -+#include "qwaylandivisurface_p.h" -+ -+QT_BEGIN_NAMESPACE -+ -+namespace QtWaylandClient { -+ -+QWaylandIviSurface::QWaylandIviSurface(struct ::ivi_surface *ivi_surface, QWaylandWindow *window) -+ : QtWayland::ivi_surface(ivi_surface) -+ , QWaylandShellSurface(window) -+ , m_window(window) -+{ -+} -+ -+QWaylandIviSurface::~QWaylandIviSurface() -+{ -+ ivi_surface::destroy(); -+} -+ -+void QWaylandIviSurface::ivi_surface_configure(int32_t width, int32_t height) -+{ -+ this->m_window->configure(0, width, height); -+} -+ -+} -+ -+QT_END_NAMESPACE -diff --git a/src/plugins/shellintegration/ivi-shell/qwaylandivisurface_p.h b/src/plugins/shellintegration/ivi-shell/qwaylandivisurface_p.h -new file mode 100644 -index 0000000..d8331c5 ---- /dev/null -+++ b/src/plugins/shellintegration/ivi-shell/qwaylandivisurface_p.h -@@ -0,0 +1,76 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). -+** Contact: http://www.qt-project.org/legal -+** -+** This file is part of the config.tests of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Digia. For licensing terms and -+** conditions see http://qt.digia.com/licensing. For further information -+** use the contact form at http://qt.digia.com/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Digia gives you certain additional -+** rights. These rights are described in the Digia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 3.0 as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU General Public License version 3.0 requirements will be -+** met: http://www.gnu.org/copyleft/gpl.html. -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QWAYLANDIVISURFACE_H -+#define QWAYLANDIVISURFACE_H -+ -+#include <wayland-client.h> -+ -+#include <QtWaylandClient/private/qwaylandclientexport_p.h> -+#include <QtWaylandClient/private/qwaylandshellsurface_p.h> -+#include "qwayland-ivi-application.h" -+ -+QT_BEGIN_NAMESPACE -+ -+namespace QtWaylandClient { -+ -+class QWaylandWindow; -+ -+class Q_WAYLAND_CLIENT_EXPORT QWaylandIviSurface : public QtWayland::ivi_surface -+ , public QWaylandShellSurface -+{ -+public: -+ QWaylandIviSurface(struct ::ivi_surface *shell_surface, QWaylandWindow *window); -+ virtual ~QWaylandIviSurface(); -+ -+private: -+ virtual void ivi_surface_configure(int32_t width, int32_t height); -+ -+ QWaylandWindow *m_window; -+ -+ friend class QWaylandWindow; -+}; -+ -+} -+ -+QT_END_NAMESPACE -+ -+#endif // QWAYLANDIVISURFACE_H -diff --git a/src/plugins/shellintegration/shellintegration.pro b/src/plugins/shellintegration/shellintegration.pro -new file mode 100644 -index 0000000..7abd6cc ---- /dev/null -+++ b/src/plugins/shellintegration/shellintegration.pro -@@ -0,0 +1,3 @@ -+TEMPLATE=subdirs -+ -+SUBDIRS += ivi-shell --- -1.8.3.1 diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0002-Fix-multiple-QWindow.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0002-Fix-multiple-QWindow.patch deleted file mode 100644 index 177710516..000000000 --- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/0002-Fix-multiple-QWindow.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 23534d35587a8b62c945fef1adb29109e5c01bfa Mon Sep 17 00:00:00 2001 -From: Nobuhiko Tanibata <ntanibata@jp.adit-jv.com> -Date: Fri, 6 Nov 2015 09:59:48 +0900 -Subject: [PATCH 2/2] Fix multiple QWindow - -Signed-off-by: Nobuhiko Tanibata <ntanibata@jp.adit-jv.com> ---- - .../ivi-shell/qwaylandivishellintegration.cpp | 16 ++++++++++------ - .../ivi-shell/qwaylandivishellintegration.h | 1 + - 2 files changed, 11 insertions(+), 6 deletions(-) - -diff --git a/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp -index 763fafb..c42f283 100644 ---- a/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp -+++ b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.cpp -@@ -58,6 +58,7 @@ namespace QtWaylandClient { - - QWaylandIviShellIntegration::QWaylandIviShellIntegration() - : m_iviApplication(Q_NULLPTR) -+ , m_surfaceId(0) - { - } - -@@ -79,15 +80,18 @@ QWaylandShellSurface *QWaylandIviShellIntegration::createShellSurface(QWaylandWi - if (!m_iviApplication) - return Q_NULLPTR; - -- uint32_t id = 0; -- QVariant value = window->property("IVI-Surface-ID"); -- if (value.isValid()) { -- id = value.toUInt(); -+ if (m_surfaceId == 0) { -+ QVariant value = window->property("IVI-Surface-ID"); -+ if (value.isValid()) { -+ m_surfaceId = value.toUInt(); -+ } else { -+ m_surfaceId = IVI_SURFACE_ID + getpid(); -+ } - } else { -- id = IVI_SURFACE_ID + getpid(); -+ m_surfaceId++; - } - -- struct ivi_surface *surface = m_iviApplication->surface_create(id, window->object()); -+ struct ivi_surface *surface = m_iviApplication->surface_create(m_surfaceId, window->object()); - - return new QWaylandIviSurface(surface, window); - } -diff --git a/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h -index 4856ec6..1d10e91 100644 ---- a/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h -+++ b/src/plugins/shellintegration/ivi-shell/qwaylandivishellintegration.h -@@ -70,6 +70,7 @@ private: - - private: - QtWayland::ivi_application *m_iviApplication; -+ uint32_t m_surfaceId; - }; - - } --- -1.8.3.1 diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/disable_xcomposite_egl_qt_wayland_client_buffer_integration.patch b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/disable_xcomposite_egl_qt_wayland_client_buffer_integration.patch deleted file mode 100644 index f113266e4..000000000 --- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland/disable_xcomposite_egl_qt_wayland_client_buffer_integration.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: git/qtwayland.pro -=================================================================== ---- git.orig/qtwayland.pro 2014-09-18 12:01:23.883582734 +0300 -+++ git/qtwayland.pro 2014-09-18 12:05:49.743574961 +0300 -@@ -7,7 +7,6 @@ - qtCompileTest(egl) - qtCompileTest(brcm_egl) - qtCompileTest(glx) --qtCompileTest(xcomposite) - qtCompileTest(drm_egl_server) - - load(qt_parts) diff --git a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland_%.bbappend b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland_%.bbappend index 9807840ca..33874cf44 100644 --- a/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland_%.bbappend +++ b/meta-agl-profile-graphical-qt5/recipes-qt/qt5/qtwayland_%.bbappend @@ -23,14 +23,5 @@ FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" SRC_URI_append = "\ file://0010-Added-manifest-file-according-to-smack-3-domain-mode.patch \ " -SRC_URI_append_checkforkrogoth = "\ - file://disable_xcomposite_egl_qt_wayland_client_buffer_integration.patch \ - file://0001-Implement-initial-IVI-shell-support-with-shell-integ.patch \ - file://0002-Fix-multiple-QWindow.patch \ - " - - -DEPENDS_append_koelsch = " libegl gles-user-module" -DEPENDS_append_porter = " ${@base_conditional('PREFERRED_PROVIDER_virtual/egl', 'mesa', 'mesa', 'libegl gles-user-module', d)}" SRC_URI_append = " file://0099_qtwayland_no_evdev.patch " diff --git a/meta-app-framework/recipes-core/af-main/af-main_1.0.bb b/meta-app-framework/recipes-core/af-main/af-main_1.0.bb index c1f85bd5d..8e3b1e835 100644 --- a/meta-app-framework/recipes-core/af-main/af-main_1.0.bb +++ b/meta-app-framework/recipes-core/af-main/af-main_1.0.bb @@ -96,10 +96,6 @@ do_install_append_class-target() { echo "QT_WAYLAND_SHELL_INTEGRATION=ivi-shell" > ${D}${afm_confdir}/unit.env.d/qt-for-ivi-shell } -do_install_append_porter() { - echo "LD_PRELOAD=/usr/lib/libEGL.so" > ${D}${afm_confdir}/unit.env.d/preload-libEGL -} - pkg_postinst_${PN}() { if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then chgrp ${afm_name} $D${systemd_units_root}/system diff --git a/meta-netboot/README b/meta-netboot/README index c1bb6a164..b571186ba 100644 --- a/meta-netboot/README +++ b/meta-netboot/README @@ -40,29 +40,8 @@ On the server side (assuming that the build dir is stored in $BUILD) we can run: Target side ----------- -On the target board, a specific setup should also be done. For example, for Renesas Porter board, the following U-boot environment could be used (adjust IP addresses !): - ------------------------------------------------------------------- -setenv 'bootkfile' 'uImage+dtb' -setenv 'bootkaddr' '0x40007fc0' -setenv 'bootifile' 'initramfs-netboot-image-porter.ext4.gz.u-boot' -setenv 'bootiaddr' '0x50000000' -setenv 'ipaddr' '<board_IP>' -setenv 'serverip' '<server_IP>' - -setenv 'bootargs_console' 'console=ttySC6,38400 ignore_loglevel' -setenv 'bootargs_video' 'vmalloc=384M video=HDMI-A-1:1280x960-32@60' -setenv 'bootargs_extra' 'rw rootfstype=ext4 rootwait rootdelay=2' -setenv 'bootargs_root' 'root=/dev/ram0 ramdisk_size=16384 ip=dhcp' -setenv 'bootkload_net' 'tftp ${bootkaddr} porter/${bootkfile}' -setenv 'bootiload_net' 'tftp ${bootiaddr} porter/${bootifile}' -setenv 'bootcmd' 'setenv bootargs ${bootargs_console} ${bootargs_video} ${bootargs_root} ${bootargs_extra} nbd.server=${serverip}; run bootkload_net; run bootiload_net; bootm ${bootkaddr} ${bootiaddr}' - -saveenv # optional: saves env in flash -run bootcmd # boots the board, executed automatically after power up ------------------------------------------------------------------- - -About Renesas Gen3 board, u-boot is updated and environment is more like : +On the target board, a specific setup should also be done.\ +For Renesas Gen3 board, u-boot is updated and environment is more like : ------------------------------------------------------------------ setenv bootargs_console 'console=ttySC0,115200 ignore_loglevel' diff --git a/meta-netboot/README.renesas-porter b/meta-netboot/README.renesas-porter deleted file mode 100644 index 7ab0803fb..000000000 --- a/meta-netboot/README.renesas-porter +++ /dev/null @@ -1,41 +0,0 @@ -Below are the environment variables that can be set in the u-boot console to boot the porter board in various configurations - -################## Common options ##################### -# these options are common to all configurations: - -setenv 'bootkfile' 'uImage+dtb' -setenv 'bootkaddr' '0x40007fc0' - -setenv 'bootifile' 'initramfs-netboot-image-porter.ext4.gz.u-boot' -setenv 'bootiaddr' '0x50000000' - -setenv 'bootargs_console' 'console=ttySC6,38400 ignore_loglevel' -setenv 'bootargs_video' 'vmalloc=384M video=HDMI-A-1:1280x960-32@60' -setenv 'bootargs_extra' 'rw rootfstype=ext4 rootwait rootdelay=2' - -################ Boot on MMC (SDcard) ################# - -setenv 'bootargs_root' 'root=/dev/mmcblk0p1' -setenv 'bootmmc' '1:1' -setenv 'bootkload_sd' 'ext4load mmc ${bootmmc} ${bootkaddr} boot/${bootkfile}' -setenv 'bootcmd' 'setenv bootargs ${bootargs_console} ${bootargs_video} ${bootargs_root} ${bootargs_extra}; run bootkload_sd; bootm ${bootkaddr}' - -################ Boot on MMC (SDcard) with initrd ###### - -setenv 'bootargs_root' 'root=/dev/ram0 ramdisk_size=16384' -setenv 'bootmmc' '1:1' -setenv 'bootkload_sd' 'ext4load mmc ${bootmmc} ${bootkaddr} boot/${bootkfile}' -setenv 'bootiload_sd' 'ext4load mmc ${bootmmc} ${bootiaddr} boot/${bootifile}' -setenv 'bootcmd' 'setenv bootargs ${bootargs_console} ${bootargs_video} ${bootargs_root} ${bootargs_extra}; run bootkload_sd; run bootiload_sd; bootm ${bootkaddr} ${bootiaddr}' - -################ Netboot through TFTP+NBD ################## -# replace <IP> addresses by appropriate addresses - -setenv 'ipaddr' '<board_IP>' -setenv 'serverip' '<server_IP>' - -setenv 'bootargs_root' 'root=/dev/ram0 ramdisk_size=16384 ip=dhcp' -setenv 'bootkload_net' 'tftp ${bootkaddr} porter/${bootkfile}' -setenv 'bootiload_net' 'tftp ${bootiaddr} porter/${bootifile}' -setenv 'bootcmd' 'setenv bootargs ${bootargs_console} ${bootargs_video} ${bootargs_root} ${bootargs_extra} nbd.server=${serverip}; run bootkload_net; run bootiload_net; bootm ${bootkaddr} ${bootiaddr}' - diff --git a/scripts/README-mkefi-agl.md b/scripts/README-mkefi-agl.md index db95f5ded..2262fb129 100644 --- a/scripts/README-mkefi-agl.md +++ b/scripts/README-mkefi-agl.md @@ -1,7 +1,8 @@ -## Introduction +# Introduction + This script will install the AGL distribution on a removable device to boot on Intel UEFI-based computer. -In particular it can create a USB or SD bootable support for (MinnowBoard)[www.minnowboard.org]. +In particular it can create a USB or SD bootable support for [MinnowBoard](www.minnowboard.org). Usage: mkefi-agl.sh [-v] IDSK_IMAGE REMOVABLE_DEVICE -v: Verbose debug @@ -13,4 +14,5 @@ ex: mkefi-agl.sh agl-demo-platform-intel-corei7-64.wic.xz /dev/sdd ## Documentation -Additional documentation: https://wiki.automotivelinux.org/agl-distro/developer_resources_intel + +[Additional documentation](https://wiki.automotivelinux.org/agl-distro/developer_resources_intel) diff --git a/templates/feature/agl-devel/agl-devel.md b/templates/feature/agl-devel/agl-devel.md index 85a2b9177..389dcba30 100644 --- a/templates/feature/agl-devel/agl-devel.md +++ b/templates/feature/agl-devel/agl-devel.md @@ -1,5 +1,4 @@ -The features of agl-devel -========================= +# The features of agl-devel Activation of the agl-devel features turns on features needed for developping and debugging @@ -7,34 +6,32 @@ agl distribution. This includes: - - adding to images some useful packages - - - adding to images the package group 'packagegroup-agl-devel' - - - definition of a contionnal the tag 'agl-devel' +* adding to images some useful packages +* adding to images the package group 'packagegroup-agl-devel' +* definition of a contionnal the tag 'agl-devel' for conditionnal building - - definition of the distro feature 'agl-devel' - - - adds packages for development in SDK + * definition of the distro feature 'agl-devel' + * adds packages for development in SDK - -How to use agl-devel in conditionnal builds ? ---------------------------------------------- +## How to use agl-devel in conditionnal builds The following example shows how to activate C/C++ code specific to agl-devel: - CPPFLAGS_append_agl-devel = " -DAGL_DEVEL" +```yocto +CPPFLAGS_append_agl-devel = " -DAGL_DEVEL" +``` Using this, any code enclosed in - #ifdef AGL_DEVEL - ...my code specific to agl-devel... - #endif +```yocto +#ifdef AGL_DEVEL +...my code specific to agl-devel... +#endif +``` will normaly be effective only if agl-devel is set on. At this time, it is recommended to use AGL_DEVEL as tag within C/C++ code. - |