Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
06e7ef9
Fix DRM backend dimension scaling
lhoward Dec 18, 2025
87bc683
publish release scripts
martinetd Jan 29, 2026
95f56d9
fix: add missing cstdint header
FredeHoey Jan 23, 2026
a76cdea
flutter-elinux fork: update most URLs to github.com/flutter-elinux
martinetd Jan 27, 2026
37d1fc0
Merge pull request #2 from flutter-elinux/gcc15
martinetd Jan 29, 2026
91b7fda
Merge pull request #3 from PADL/lhoward/hidpi
martinetd Jan 29, 2026
7a7cdff
Merge pull request #1 from flutter-elinux/rename
martinetd Feb 2, 2026
7668680
Merge pull request #5 from flutter-elinux/release
martinetd Feb 2, 2026
3ac3f1a
drm: add DRM_MODE_CONNECTOR_USB define for old releases
martinetd Feb 4, 2026
fc14b42
release: use old bullseye container for release build
martinetd Feb 5, 2026
bf29354
use platform display
wang-bin May 17, 2025
09dfdfd
wayland: add support for text input type
jbbjarnason Oct 31, 2025
27b0659
release: strip flutter engine .so again
martinetd Feb 6, 2026
0992ffc
includes: Add missing dependent headers
martinetd Feb 6, 2026
1e485df
Merge pull request #7 from martinetd/keypad
martinetd Feb 9, 2026
02069c1
Merge pull request #12 from martinetd/headers
martinetd Feb 9, 2026
5ea15b9
Merge pull request #9 from martinetd/bullseye
martinetd Feb 9, 2026
bbdb32a
Merge pull request #11 from martinetd/release_size
martinetd Feb 9, 2026
7247697
Fix drm build on bullseye (again)
martinetd Feb 9, 2026
8341f58
Fix cursor_info_.pointer dangling pointer on device disconnect
fredrikbmx Feb 19, 2026
66b1e71
Remove superfluous trace log messages.
fredrikbmx Feb 20, 2026
c8db0ac
Merge pull request #13 from fredrikbmx/fix/wayland-pointer-release-da…
martinetd Feb 21, 2026
5261ebe
fix: check CreateRenderSurface() return value
lhoward Feb 23, 2026
9456b9d
Merge pull request #15 from flutter-elinux/lhoward/11
martinetd Feb 23, 2026
6d12397
Fix grammar in README
04cb Mar 2, 2026
b5b937d
fix: repair three memory issues contributing to animated image leak (…
aki1770-del Apr 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
# unzip linux-x64-embedder
# mv libflutter_engine.so ${{github.workspace}}/build
run: |
curl -L https://github.com/sony/flutter-embedded-linux/releases/latest/download/elinux-x64-release.zip > elinux-x64-release.zip
curl -L https://github.com/flutter-elinux/flutter-embedded-linux/releases/latest/download/elinux-x64-release.zip > elinux-x64-release.zip
unzip elinux-x64-release.zip
mv libflutter_engine.so ${{github.workspace}}/build

Expand Down
5 changes: 5 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,8 @@ Sebastian Urban <surban@surban.net>
Athaariq Ardhiansyah <foss@athaariq.my.id>
Anton Sakhon <kofhein@gmail.com>
Bari Rao <bari.rao@gmail.com>
Frede Emil Hoey Braendstrup <frederikbraendstrup@gmail.com>
Dominique Martinet <dominique.martinet@atmark-techno.com>
Wang Bin <wbsecg1@gmail.com>
Jón Bjarni Bjarnason <jon@centroid.is>
Fredrik Magnussen <fredrik.magnussen@biomerieux.com>
26 changes: 15 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# Embedded Linux (eLinux) embedding for Flutter
![image](https://github.com/sony/flutter-elinux/blob/main/doc/images/overview.png)
![image](https://github.com/flutter-elinux/flutter-elinux/blob/main/doc/images/overview.png)

[![build-test](https://github.com/sony/flutter-embedded-linux/actions/workflows/build-test.yml/badge.svg)](https://github.com/sony/flutter-embedded-linux/actions/workflows/build-test.yml)
[![build-test](https://github.com/flutter-elinux/flutter-embedded-linux/actions/workflows/build-test.yml/badge.svg)](https://github.com/flutter-elinux/flutter-embedded-linux/actions/workflows/build-test.yml)

This project was created to develop **non-official** embedded Linux embeddings of [Flutter](https://flutter.dev/). This embedder is focusing on embedded Linux (eLinux) system use cases. It is also implemented based on Flutter desktop for Windows and has some unique features to use it in embedded systems.

If you develop flutter apps for eLinux, use [flutter-elinux](https://github.com/sony/flutter-elinux), which is a non-official extension to the [Flutter SDK](https://github.com/flutter/flutter) to build and debug Flutter apps for embedded Linux devices.
If you develop flutter apps for eLinux, use [flutter-elinux](https://github.com/flutter-elinux/flutter-elinux), which is a non-official extension to the [Flutter SDK](https://github.com/flutter/flutter) to build and debug Flutter apps for embedded Linux devices.

### Repositories

- [flutter-elinux](https://github.com/sony/flutter-elinux): Flutter tools for eLinux
- [flutter-elinux-plugins](https://github.com/sony/flutter-elinux-plugins): Flutter plugins for eLinux
- [flutter-embedded-linux](https://github.com/sony/flutter-embedded-linux): eLinux embedding for Flutter
- [meta-flutter](https://github.com/sony/meta-flutter): Yocto recipes of eLinux embedding for Flutter
- [flutter-elinux](https://github.com/flutter-elinux/flutter-elinux): Flutter tools for eLinux
- [flutter-elinux-plugins](https://github.com/flutter-elinux/flutter-elinux-plugins): Flutter plugins for eLinux
- [flutter-embedded-linux](https://github.com/flutter-elinux/flutter-embedded-linux): eLinux embedding for Flutter
- [meta-flutter](https://github.com/flutter-elinux/meta-flutter): Yocto recipes of eLinux embedding for Flutter

## Objective & Goal
Our objective is to use Flutter in embedded systems. We're developing this embedder to use Flutter in embedded products. Ultimately we would like to propose and contribute this software to the mainline of [Flutter Engine](https://github.com/flutter/engine), which means we would like to add an embedded systems version into the Flutter repo for all embedded developers. Please note that this is just our ideal, not the official opinion of the Flutter community.
Expand All @@ -21,7 +21,7 @@ We would be grateful if you could give us feedback on bugs and new feature reque

## Features
- Flutter embedder optimized for Embedded Systems
- Lightweight than Flutter desktop for Linux (Not using X11 and GTK)
- Lighter than Flutter desktop for Linux (Not using X11 and GTK)
- Minimal dependent libraries
- The main target of this embedder is Arm64 devices. We haven't confirmed in Arm 32bit (ARMv7, armhf) devices
- Display backend support
Expand All @@ -34,10 +34,14 @@ We would be grateful if you could give us feedback on bugs and new feature reque
- Keyboard, mouse and touch inputs support
- Equivalent quality to Flutter desktops
- API compatibility with Flutter desktop for Windows and GLFW
- APIs such as MethodChannel and EventChannel are completely the same with them
- APIs such as MethodChannel and EventChannel are completely the same as those in Flutter desktop for Windows and GLFW

## Documentation
Documentation for this software can be found at [Wiki](https://github.com/sony/flutter-embedded-linux/wiki).
Documentation for this software can be found at [Wiki](https://github.com/flutter-elinux/flutter-embedded-linux/wiki).

## Supported platforms
This embedder supports x64 and Arm64 (aarch64, ARMv8) architectures on Linux which supports either Wayland backend or DRM backend. See [Support status](https://github.com/sony/flutter-elinux/wiki/Support-status) for details.
This embedder supports x64 and Arm64 (aarch64, ARMv8) architectures on Linux which supports either Wayland backend or DRM backend. See [Support status](https://github.com/flutter-elinux/flutter-elinux/wiki/Support-status) for details.

## Thanks

This repository was previously hosted on [sony/flutter-embedded-linux](https://github.com/sony/flutter-embedded-linux). Thanks to sony for creating this fork and maintaining it for 4 years.
12 changes: 6 additions & 6 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
These are an example of how to use embedded Linux embedding for Flutter.

## Each backend examples
- [flutter-wayland-client](https://github.com/sony/flutter-embedded-linux/tree/master/examples/flutter-wayland-client): Wayland client app
- [flutter-drm-gbm-backend](https://github.com/sony/flutter-embedded-linux/tree/master/examples/flutter-drm-gbm-backend): Fullscreen app on DRM backend with GBM
- [flutter-drm-eglstream-backend](https://github.com/sony/flutter-embedded-linux/tree/master/examples/flutter-drm-eglstream-backend): Fullscreen app on DRM backend with EGLStream
- [flutter-x11-client](https://github.com/sony/flutter-embedded-linux/tree/master/examples/flutter-x11-client): X11 client app
- [flutter-wayland-client](https://github.com/flutter-elinux/flutter-embedded-linux/tree/master/examples/flutter-wayland-client): Wayland client app
- [flutter-drm-gbm-backend](https://github.com/flutter-elinux/flutter-embedded-linux/tree/master/examples/flutter-drm-gbm-backend): Fullscreen app on DRM backend with GBM
- [flutter-drm-eglstream-backend](https://github.com/flutter-elinux/flutter-embedded-linux/tree/master/examples/flutter-drm-eglstream-backend): Fullscreen app on DRM backend with EGLStream
- [flutter-x11-client](https://github.com/flutter-elinux/flutter-embedded-linux/tree/master/examples/flutter-x11-client): X11 client app

## Examples using Flutter Plugins
- [flutter-video-player-plugin](https://github.com/sony/flutter-embedded-linux/tree/master/examples/flutter-video-player-plugin): Flutter video player plugin
- [flutter-external-texture-plugin](https://github.com/sony/flutter-embedded-linux/tree/master/examples/flutter-external-texture-plugin): Flutter external texture plugin
- [flutter-video-player-plugin](https://github.com/flutter-elinux/flutter-embedded-linux/tree/master/examples/flutter-video-player-plugin): Flutter video player plugin
- [flutter-external-texture-plugin](https://github.com/flutter-elinux/flutter-embedded-linux/tree/master/examples/flutter-external-texture-plugin): Flutter external texture plugin
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.10)

# Flutter embedder configurations.
# See: https://github.com/sony/flutter-embedded-linux/wiki/Building-Embedded-Linux-embedding-for-Flutter#user-configuration-parameters-cmake-options
# See: https://github.com/flutter-elinux/flutter-embedded-linux/wiki/Building-Embedded-Linux-embedding-for-Flutter#user-configuration-parameters-cmake-options
set(BACKEND_TYPE DRM-EGLSTREAM)
set(USE_GLES3 OFF)
2 changes: 1 addition & 1 deletion examples/flutter-drm-gbm-backend/cmake/user_config.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.10)

# Flutter embedder configurations.
# See: https://github.com/sony/flutter-embedded-linux/wiki/Building-Embedded-Linux-embedding-for-Flutter#user-configuration-parameters-cmake-options
# See: https://github.com/flutter-elinux/flutter-embedded-linux/wiki/Building-Embedded-Linux-embedding-for-Flutter#user-configuration-parameters-cmake-options
set(BACKEND_TYPE DRM-GBM)
set(USE_GLES3 OFF)
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.10)

# Flutter embedder configurations.
# See: https://github.com/sony/flutter-embedded-linux/wiki/Building-Embedded-Linux-embedding-for-Flutter#user-configuration-parameters-cmake-options
# See: https://github.com/flutter-elinux/flutter-embedded-linux/wiki/Building-Embedded-Linux-embedding-for-Flutter#user-configuration-parameters-cmake-options
set(BACKEND_TYPE WAYLAND)
set(USE_GLES3 OFF)
2 changes: 1 addition & 1 deletion examples/flutter-video-player-plugin/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Overview
Flutter video player example using video player plugin for Embedded Linux. The interface of the plugin is compatible with [the Flutter official video player plugin](https://github.com/flutter/plugins/tree/master/packages/video_player/video_player).

Note that this is just example for eLinux embedder, so please use [sony/flutter-elinux-plugins/packages/video_player](https://github.com/sony/flutter-elinux-plugins/tree/main/packages/video_player)
Note that this is just example for eLinux embedder, so please use [sony/flutter-elinux-plugins/packages/video_player](https://github.com/flutter-elinux/flutter-elinux-plugins/tree/main/packages/video_player)

![image](https://user-images.githubusercontent.com/62131389/124210378-43f06400-db26-11eb-8723-40dad0eb67b0.png)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.10)

# Flutter embedder configurations.
# See: https://github.com/sony/flutter-embedded-linux/wiki/Building-Embedded-Linux-embedding-for-Flutter#user-configuration-parameters-cmake-options
# See: https://github.com/flutter-elinux/flutter-embedded-linux/wiki/Building-Embedded-Linux-embedding-for-Flutter#user-configuration-parameters-cmake-options
set(BACKEND_TYPE WAYLAND)
set(USE_GLES3 OFF)
2 changes: 1 addition & 1 deletion examples/flutter-wayland-client/cmake/user_config.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.10)

# Flutter embedder configurations.
# See: https://github.com/sony/flutter-embedded-linux/wiki/Building-Embedded-Linux-embedding-for-Flutter#user-configuration-parameters-cmake-options
# See: https://github.com/flutter-elinux/flutter-embedded-linux/wiki/Building-Embedded-Linux-embedding-for-Flutter#user-configuration-parameters-cmake-options
set(BACKEND_TYPE WAYLAND)
set(USE_GLES3 OFF)
2 changes: 1 addition & 1 deletion examples/flutter-x11-client/cmake/user_config.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.10)

# Flutter embedder configurations.
# See: https://github.com/sony/flutter-embedded-linux/wiki/Building-Embedded-Linux-embedding-for-Flutter#user-configuration-parameters-cmake-options
# See: https://github.com/flutter-elinux/flutter-embedded-linux/wiki/Building-Embedded-Linux-embedding-for-Flutter#user-configuration-parameters-cmake-options
set(BACKEND_TYPE X11)
set(USE_GLES3 OFF)
5 changes: 5 additions & 0 deletions release/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/home
/build-embedder
/depot_tools
/output*
/work-*
55 changes: 55 additions & 0 deletions release/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Build releases with the oldest possible supported target
# The built binaries will depend on symbols from the libc used here,
# so this should work on newer OS but might not work on older OS

# Recommended version should be kept in sync with the wiki:
# https://github.com/flutter-elinux/flutter-elinux/wiki/flutter-elinux-install
FROM debian:bullseye-slim

ENV DEBIAN_FRONTEND noninteractive

RUN <<EOF
dpkg --add-architecture arm64

apt-get update
apt-get -y -q upgrade

apt-get -y install \
build-essential \
clang \
cmake \
crossbuild-essential-arm64 \
curl \
equivs \
git \
libdrm-dev \
libdrm-dev:arm64 \
libegl1-mesa-dev \
libegl1-mesa-dev:arm64 \
libgbm-dev \
libgbm-dev:arm64 \
libgles2-mesa-dev \
libgles2-mesa-dev:arm64 \
libinput-dev \
libinput-dev:arm64 \
libsystemd-dev \
libsystemd-dev:arm64 \
libudev-dev \
libudev-dev:arm64 \
libuv1-dev:arm64 \
libwayland-dev \
libwayland-dev:arm64 \
libxkbcommon-dev \
libxkbcommon-dev:arm64 \
pkgconf \
wayland-protocols \
wayland-protocols:arm64 \
xxhash \
xz-utils \
zip

# not needed for trixie
apt-get -y install libstdc++-10-dev:arm64

apt-get clean
EOF
22 changes: 22 additions & 0 deletions release/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
This directory contains scripts used to build the releases.

To run with docker:

```
# build container
docker build -t flutter-build .
# build flutter engine and flutter-elinux variants
./run-docker.sh ./build-all.sh [build-all options]
# check build is complete and output instructions to make release
./prepare-release.sh output
```

build-all.sh by default builds the latest stable release, but a flutter
commit id can be passed with --flutter-rev=xxxxxx

The flutter engine takes time to build 6 times (debug profile release * x64 arm64),
so expect this to take about 1h on a fast machine, and a few hours on anything slower.

The first build will fetch various source directories including flutter
source dependency tree, following builds will re-use what's available and
only update as necessary depending on build-all.sh options.
Loading