Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jwinarske/meta-flutter
Yocto meta layer for recipes related to using Google Flutter Engine
https://github.com/jwinarske/meta-flutter
bitbake flutter flutter-engine meta-flutter pugixml wayland yocto yocto-layer yocto-meta-layer
Last synced: 3 months ago
JSON representation
Yocto meta layer for recipes related to using Google Flutter Engine
- Host: GitHub
- URL: https://github.com/jwinarske/meta-flutter
- Owner: jwinarske
- License: mit
- Archived: true
- Created: 2020-03-28T23:53:23.000Z (over 4 years ago)
- Default Branch: dunfell
- Last Pushed: 2021-10-21T15:55:44.000Z (about 3 years ago)
- Last Synced: 2024-07-22T20:11:09.372Z (4 months ago)
- Topics: bitbake, flutter, flutter-engine, meta-flutter, pugixml, wayland, yocto, yocto-layer, yocto-meta-layer
- Language: BitBake
- Homepage:
- Size: 2.84 MB
- Stars: 44
- Watchers: 7
- Forks: 22
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-flutter-linux - meta-flutter - Yocto meta layer for recipes related to using Google Flutter Engine (Projects)
README
# meta-flutter
# _Notice: Layer has moved to https://github.com/meta-flutter/meta-flutter. Redirection will be automatic in the next couple of weeks._
Yocto Layer for Flutter related artifacts.
Recommended development flow starts with making an embedder run on desktop, then target. This approach will save you a good deal of time and aggrevation.
Note: In theory Swift Shader (CPU render) engine builds should work with the right build flags. Be warned it won't work out of the box. Select a SoC with a GPU that supports OpenGL 3.0+ and save yourself the Engineering NRE.
Note: If you get a gray screen running the Gallery app, chances are you don't have `LC_ALL` set. Check `/usr/share/locale/` on your target for available locale, and set LC_ALL appropriately. Example: `export LC_ALL=en_GB`
## Layers dependencies
* meta-clang Toyota and Sony embedders
## Overview
Target BSP is expected to have a GPU with OpenGLES v3.0+ support.
This layer includes recipes to build
* flutter-engine (channel selection, default is beta)
* flutter-sdk (channel selection, default is beta)
* fltter-gallery Application (interpreted and AOT - requires master channel override)
* flutter-pi (DRM w/VSync)
* flutter-wayland (basic POC) / waylandpp/ipugxml (archived)
* Toyota ivi-homescreen (Recommended)
* Sony embedders## Notes
Targets flutter-engine is known to work on
* AGL QEMU images - x86_64
* DragonBoard 410c - aarch64
* Intel MinnowBoard Max (BayTrail) - intel-icore7-64
* NVIDIA Nano Dev Kit - aarch64
* NVIDIA Xavier NX Dev Kit - aarch64
* Raspberry Pi 3 / Compute - aarch64 / armv7hf
* Raspberry Pi 4 / Compute - aarch64
* Renesas R-Car m3ulcb - aarch64
* STM32MP157x - cortexa7t2hf
* etc, etcBuilding for ARM (32-bit) has an outstanding P4 bug on this: https://github.com/flutter/flutter/issues/83765
### NVIDIA Xavier/Nano
local.conf changes
TARGET_GCC_VERSION = "8.3.0"
FLUTTER_CHANNEL = "master"
IMAGE_INSTALL_append = " flutter-drm-eglstream-backend"
IMAGE_INSTALL_append = " flutter-gallery"OR
TARGET_GCC_VERSION = "8.3.0"
FLUTTER_CHANNEL = "master"
CORE_IMAGE_EXTRA_INSTALL += "\
flutter-drm-eglstream-backend \
flutter-gallery \
"Build EGL image
bitbake demo-image-egl
Run Flutter application on target (defaults to AOT)
FLUTTER_DRM_DEVICE=/dev/dri/card0 flutter-drm-eglstream-backend -b /usr/share/flutter-gallery/sony
### NXP i.MX 8QuadXPlus MEK
```
repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-gatesgarth -m imx-5.10.9-1.0.0.xml
repo sync -j20
DISTRO=fslc-wayland MACHINE=imx8qxpmek source setup-environment build
pushd ../sources
git clone -b dunfell https://github.com/jwinarske/meta-flutter.git
popd
bitbake-layers add-layer ../sources/meta-clang ../sources/meta-flutter
echo -e 'TARGET_GCC_VERSION = "10.2.0"' >> conf/local.conf
echo -e 'FLUTTER_CHANNEL = "dev"' >> conf/local.conf
echo -e 'IMAGE_INSTALL_append = " flutter-wayland"' >> conf/local.conf
echo -e 'IMAGE_INSTALL_append = " flutter-gallery"' >> conf/local.conf
bitbake fsl-image-multimedia
...
Build Configuration:
BB_VERSION = "1.48.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "universal"
TARGET_SYS = "aarch64-fslc-linux"
MACHINE = "imx8qxpmek"
DISTRO = "fslc-wayland"
DISTRO_VERSION = "3.2-snapshot-20210616"
TUNE_FEATURES = "aarch64 armv8a crc cortexa35 crypto"
TARGET_FPU = ""
```### Raspberry PI 3/4 (aarch64)
```
export MACHINE=raspberrypi4-64
```
or
```
export MACHINE=raspberrypi3-64
``````
mkdir rpi_yocto && cd rpi_yocto
repo init -u https://github.com/jwinarske/manifests.git -m rpi64.xml -b dunfell
repo sync -j20
source ./setup-environment $MACHINE
bitbake-layers add-layer ../sources/meta-clang ../sources/meta-flutter
echo -e 'FLUTTER_CHANNEL = "dev"' >> conf/local.conf
echo -e 'IMAGE_INSTALL_append = " flutter-pi"' >> conf/local.conf
echo -e 'IMAGE_INSTALL_append = " flutter-gallery"' >> conf/local.conf
bitbake core-image-minimal
```
Note: you may want/need to increase the `GPU_MEM` value. It's defaulting to 64.### STM32MP157x Discovery Board (doesn't include build hack)
Setup Ubuntu 16.04 for building Yocto images. envsetup.sh will complain if you're missing a package.
```
mkdir openstlinux-5.10-dunfell-mp1-21-03-31 && cd openstlinux-5.10-dunfell-mp1-21-03-31
repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.10-dunfell-mp1-21-03-31
repo sync -j20
DISTRO=openstlinux-eglfs MACHINE=stm32mp1-disco source layers/meta-st/scripts/envsetup.sh
pushd ../layers
git clone -b dunfell https://github.com/jwinarske/meta-flutter.git
git clone -b dunfell https://github.com/kraj/meta-clang.git
popd
bitbake-layers add-layer ../layers/meta-flutter ../layers/meta-clang
echo -e 'MACHINE_FEATURES_remove = "fip"\n' >> conf/local.conf
echo -e 'DISTRO_FEATURES_remove = "wayland"\n' >> conf/local.conf
echo -e 'DISTRO_FEATURES_remove = "x11"\n' >> conf/local.conf
echo -e 'FLUTTER_CHANNEL = "master"\n' >> conf/local.conf
echo -e 'CORE_IMAGE_EXTRA_INSTALL += " \' >> conf/local.conf
echo -e ' flutter-pi \' >> conf/local.conf
echo -e ' flutter-drm-gbm-backend \' >> conf/local.conf
echo -e ' flutter-gallery \' >> conf/local.conf
echo -e '"' >> conf/local.conf
cat conf/local.conf
bitbake st-image-core
...
TARGET_SYS = "arm-ostl-linux-gnueabi"
MACHINE = "stm32mp1-disco"
DISTRO = "openstlinux-eglfs"
DISTRO_VERSION = "3.1-snapshot-20210602"
TUNE_FEATURES = "arm vfp cortexa7 neon vfpv4 thumb callconvention-hard"
TARGET_FPU = "hard"
```See release notes regarding "fip": https://wiki.st.com/stm32mpu/wiki/STM32MP15_OpenSTLinux_release_note
Build EGL image
bitbake demo-image-egl
Run Flutter application on target (defaults to AOT)
FLUTTER_DRM_DEVICE=/dev/dri/card0 flutter-drm-eglstream-backend -b /usr/share/flutter-gallery/sony
### General Yocto Notes
When building on systems with GCC version > than uninative in Yocto distro add the following to conf/local.conf
INHERIT_remove = "uninative"