Yocto/OpenEmbedded recipes for Mali devices
BitBake Shell SourcePawn C++ Batchfile PHP
Latest commit 80742f2 Jun 16, 2016 Grzegorz Prajsner committed with gtucker-arm Update README with Wayland instructions
Update README file with Wayland flavour build instructions. Remove
references to Yocto.

Signed-off-by: Guillaume Tucker <guillaume.tucker@arm.com>

README

ARM Mali BSP layer
==================

These recipes provide a BSP layer for ARM development platforms with
ARM Mali technology enabled.  To build a minimal image using
OpenEmbedded (OE) for ODROID-XU3 which features a Mali-T62x GPU:

Initial setup
-------------

* Get OE meta-data with:
    git clone -b jethro git://git.openembedded.org/openembedded-core

* Prepare the build environment:
    cd openembedded-core && \
    git clone -b 1.28 git://git.openembedded.org/bitbake && \
    source oe-init-build-env

* Add path to meta-mali in openembedded-core/build/conf/bblayers.conf

* Set MACHINE to odroidxu3 in openembedded-core/build/conf/local.conf

* Add DEFAULTTUNE = "armv7athf" to openembedded-core/build/conf/local.conf

Building
--------

Once you've initialised your build environment the following commands can
be run to build and flash a basic image without the Mali drivers:

* Run this command to build a basic image:
    bitbake core-image-minimal

* If you get this error:
    Please use a umask which allows a+rx and u+rwx

  then run this command and try again:
    umask 022

* When the build is complete, a full SD card image will be ready to be
  written to an SD card to boot the ODROID-XU3:
    tmp-glibc/deploy/images/odroidxu3/core-image-minimal-odroidxu3.sdcard

  For example, if your SD card device is /dev/sdX (adjust as appropriate):
    dd if=core-image-minimal-odroidxu3.sdcard of=/dev/sdX bs=1M

ARM Mali GPU User-side drivers
==============================

The recipes-graphics directory contains recipes to download user-side
Mali GPU proprietary binary drivers which are distributed under an
End-User License Agreement (EULA).  This agreement needs to be read
and accepted prior to running the recipes.  The full text of the EULA
is included in the EULA file.

Standard binary user-side drivers are automatically downloaded by the
recipes from the official website:

    http://malideveloper.arm.com/develop-for-mali/drivers/

To add the user-side binary to your build, add this line to local.conf:

    IMAGE_INSTALL_append = " mali-userspace-t62x"

Because the Mali recipes can provide support only for one windowing at
a time, user needs to specify DISTRO_FEATURES before building the image.

For core-image-minimal (fbdev), please use:
    DISTRO_FEATURES_append = " directfb sysvinit"
    DISTRO_FEATURES_remove = " x11 wayland"

For core-image-weston (Wayland), please use:
    DISTRO_FEATURES_append = " wayland opengl"
    DISTRO_FEATURES_remove = " x11 directfb"

With these modifications done in local.conf, building the image will
produce a new SD card image with the Mali GPU drivers enabled. When
creating image supporting Wayland, Mesa will be built as well. This is
needed by some of the dependancies.

Resizing root filesystem on SD card
===================================

Root filesystem created on SD card image can be resized using custom
script called resize-rootfs. To include this script in your build, add
resize-rootfs to IMAGE_INSTALL_append list in local.conf, e.g.:

    IMAGE_INSTALL_append += " resize-rootfs"

Script requires invoking twice (once for every step) on the device.
Step 1 ends with automatic system reboot. Keep in mind this is
experimental feature and it can destroy all data on the SD card. It
should be used only during development process.

Known issues
============

* when building with mali-userspace-t62x drivers final rootfs image
  will fail to create when PACKAGE_CLASSES = "package_rpm" is set, to
  avoid that please use ipk or deb;