Flutter tools for embedded Linux (eLinux)

Overview

Flutter for Embedded Linux (eLinux)

Analysis

This software is a non-official extension to the Flutter SDK to build Flutter apps for Embedded Linux devices.

Objective

Our objective is to use Flutter in embedded systems. We're developing this embedder to use Flutter in embedded products. We would be grateful if you could give us feedback on bugs and new feature requests. We would like to cover the specifications of general-purpose embedded systems.

Features

  • Flutter optimized for Embedded Systems
    • Minimal dependent libraries
    • Lightweight than Flutter desktop for Linux (Not using X11 and GTK)
    • arm64/x64 devices support
  • Display backend support
  • 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

If you want to know more details, see also flutter-embedded-linux, which is flutter embedder for eLinux.

Documentation

See https://github.com/sony/flutter-elinux/wiki

Contributing

See CONTRIBUTING.md.

Quick start

Install flutter-elinux

$ git clone https://github.com/sony/flutter-elinux.git
$ sudo mv flutter-elinux /opt/
$ export PATH=$PATH:/opt/flutter-elinux/bin

Install required tools

$ sudo apt install curl clang cmake pkg-config

Run Flutter sample app in Weston

You need to install a Wayland compositor such as Weston and launch it before launching your Flutter apps. Note that if you use Weston, Weston version 8.0 or above recommended. See also: Support status

$ sudo apt install weston
$ weston &
$ flutter-elinux devices
2 connected devices:

eLinux (desktop) • elinux-wayland • flutter-tester • Ubuntu 20.04.2 LTS 5.8.0-63-generic
eLinux (desktop) • elinux-x11     • flutter-tester • Ubuntu 20.04.2 LTS 5.8.0-63-generic
$ flutter-elinux create sample
$ cd sample
$ flutter-elinux run -d elinux-wayland

If you want to run your flutter app in X11, use elinux-x11 instead of elinux-wayland:

$ flutter-elinux run -d elinux-x11

Companion repos

Repo Purpose
flutter-elinux Flutter tools for eLinux
flutter-elinux-plugins Flutter plugins for eLinux
flutter-embedded-linux eLinux embedding for Flutter
meta-flutter Yocto recipes of eLinux embedding for Flutter

Base software

This software was created based on the flutter-tizen (branched from this version). Special thanks to the flutter-tizen team.

Comments
  • Pressing the 'q' key does not terminate the application on the remote device

    Pressing the 'q' key does not terminate the application on the remote device

    Hello

    I am trying the following commands on host pc(x86):

    $ flutter-elinux run -d target_device_arm64
    (snip)
    
    Flutter run key commands.
    r Hot reload. 🔥🔥🔥
    R Hot restart.
    h List all available interactive commands.
    d Detach (terminate "flutter run" but leave application running).
    c Clear the screen
    q Quit (terminate the application on the device).
    
    💪 Running with sound null safety 💪
    
    An Observatory debugger and profiler on eLinux is available at:
    http://127.0.0.1:37541/kkd7NI14PDo=/
    The Flutter DevTools debugger and profiler on eLinux is available at:
    http://127.0.0.1:9100?uri=http://127.0.0.1:37541/kkd7NI14PDo=/
    

    The application starts correctly on the remote target device(arm64). But, pressing the q key does not terminate the application.

    How do I terminate an application on a remote target device?

    enhancement 
    opened by makotosato-at 2
  • Not running in AOT mode but could not resolve the kernel binary.

    Not running in AOT mode but could not resolve the kernel binary.

    run with x11 flutter-elinux run -d elinux-x11 its work but when i try to get flutter-elinux build elinux --debug --target-backend-type=x11 it gives this error

    embedder.cc (1218): 'FlutterEngineInitialize' returned 'kInvalidArguments'. Not running in AOT mode but could not resolve the kernel binary. [ERROR][RunWithEntrypoint(255)] Failed to start Flutter engine: error 2 Failed to create view controller.

    flutter-elinux doctor seems fine. Device is Jetson nano jetpack 4.6

    the other backend types gives error too /dev/dri/card0 Failed to connect to the Wayland display.

    arm64 
    opened by Lynchez 2
  • Improve artifacts download warnings

    Improve artifacts download warnings

    Hello. I tried to install the new release of e-linux. I have create a new project with flutter-elinux to verify if it's my project but not. I have this error when i run the build :

    Downloading an artifact that may not be reachable in some environments (e.g. firewalled environments): https://github.com/sony/flutter-embedded-linux/releases/download/c08d7d5efc/elin ux-common.zip This should not have happened. This is likely a Flutter SDK bug. Please file an issue at https://github.com/flutter/flutter/issues/new?template=1_activation.md Downloading elinux-common tools... ⣯Downloading elinux-common tools... 6,0s Downloading an artifact that may not be reachable in some environments (e.g. firewalled environments): https://github.com/sony/flutter-embedded-linux/releases/download/c08d7d5efc/elin ux-arm64-debug.zip This should not have happenedDownloading an artifact that may not be reachable in some environments (e.g. firewalled environments): https://github.com/sony/flutter-embedded-linux/releases/download/c08d7d5efc/elin ux-common.zip This should not have happened. This is likely a Flutter SDK bug. Please file an issue at https://github.com/flutter/flutter/issues/new?template=1_activation.md Downloading elinux-common tools... ⣯Downloading elinux-common tools... 6,0s Downloading an artifact that may not be reachable in some environments (e.g. firewalled environments): https://github.com/sony/flutter-embedded-linux/releases/download/c08d7d5efc/elin ux-arm64-debug.zip This should not have happened. This is likely a Flutter SDK bug. Please file an issue at https://github.com/flutter/flutter/issues/new?template=1_activation.md Downloading elinux-arm64-debug tools... ⣯Downloading elinux-arm64-debug tools... 8,4s Downloading an artifact that may not be reachable in some environments (e.g. firewalled environments): https://github.com/sony/flutter-embedded-linux/releases/download/c08d7d5efc/elin ux-arm64-profile.zip This should not have happened. This is likely a Flutter SDK bug. Please file an issue at https://github.com/flutter/flutter/issues/new?template=1_activation.md Downloading elinux-arm64-profile tools... ⣯Downloading elinux-arm64-profile tools... 4,3s Downloading an artifact that may not be reachable in some environments (e.g. firewalled environments): https://github.com/sony/flutter-embedded-linux/releases/download/c08d7d5efc/elin ux-arm64-release.zip This should not have happened. This is likely a Flutter SDK bug. Please file an issue at https://github.com/flutter/flutter/issues/new?template=1_activation.md Downloading elinux-arm64-release tools... ⣯Downloading elinux-arm64-release tools... 3,4s Downloading an artifact that may not be reachable in some environments (e.g. firewalled environments): https://github.com/sony/flutter-embedded-linux/releases/download/c08d7d5efc/elin ux-x64-debug.zip This should not have happened. This is likely a Flutter SDK bug. Please file an issue at https://github.com/flutter/flutter/issues/new?template=1_activation.md Downloading elinux-x64-debug tools... ⣯Downloading elinux-x64-debug tools... 7,6s Downloading an artifact that may not be reachable in some environments (e.g. firewalled environments): https://github.com/sony/flutter-embedded-linux/releases/download/c08d7d5efc/elin ux-x64-profile.zip This should not have happened. This is likely a Flutter SDK bug. Please file an issue at https://github.com/flutter/flutter/issues/new?template=1_activation.md Downloading elinux-x64-profile tools... ⣯Downloading elinux-x64-profile tools... 3,2s Downloading an artifact that may not be reachable in some environments (e.g. firewalled environments): https://github.com/sony/flutter-embedded-linux/releases/download/c08d7d5efc/elin ux-x64-release.zip . This is likely a Flutter SDK bug. Please file an issue at https://github.com/flutter/flutter/issues/new?template=1_activation.md Downloading elinux-arm64-debug tools... ⣯Downloading elinux-arm64-debug tools... 8,4s Downloading an artifact that may not be reachable in some environments (e.g. firewalled environments): https://github.com/sony/flutter-embedded-linux/releases/download/c08d7d5efc/elin ux-arm64-profile.zip This should not have happened. This is likely a Flutter SDK bug. Please file an issue at https://github.com/flutter/flutter/issues/new?template=1_activation.md Downloading elinux-arm64-profile tools... ⣯Downloading elinux-arm64-profile tools... 4,3s Downloading an artifact that may not be reachable in some environments (e.g. firewalled environments): https://github.com/sony/flutter-embedded-linux/releases/download/c08d7d5efc/elin ux-arm64-release.zip This should not have happened. This is likely a Flutter SDK bug. Please file an issue at https://github.com/flutter/flutter/issues/new?template=1_activation.md Downloading elinux-arm64-release tools... ⣯Downloading elinux-arm64-release tools... 3,4s Downloading an artifact that may not be reachable in some environments (e.g. firewalled environments): https://github.com/sony/flutter-embedded-linux/releases/download/c08d7d5efc/elin ux-x64-debug.zip This should not have happened. This is likely a Flutter SDK bug. Please file an issue at https://github.com/flutter/flutter/issues/new?template=1_activation.md Downloading elinux-x64-debug tools... ⣯Downloading elinux-x64-debug tools... 7,6s Downloading an artifact that may not be reachable in some environments (e.g. firewalled environments): https://github.com/sony/flutter-embedded-linux/releases/download/c08d7d5efc/elin ux-x64-profile.zip This should not have happened. This is likely a Flutter SDK bug. Please file an issue at https://github.com/flutter/flutter/issues/new?template=1_activation.md Downloading elinux-x64-profile tools... ⣯Downloading elinux-x64-profile tools... 3,2s Downloading an artifact that may not be reachable in some environments (e.g. firewalled environments): https://github.com/sony/flutter-embedded-linux/releases/download/c08d7d5efc/elin ux-x64-release.zip

    Can you help me about this issue ?

    Thank you. Regards

    enhancement question 
    opened by thomtomdup 8
  • Full screen flag doesn't work (X11)

    Full screen flag doesn't work (X11)

    Hello,

    I am running my app under X11 and i have managed to make it run at a specific width / height using the -w and the -h flags. However, my app has a title app with my flutter app name.

    I would like to remove this title bar, so i have checked and i saw that there is a full screen flag -f but it's not working i have a half sized window (because i don't use the -w and -h flags along with the -f)

    enhancement 
    opened by Tom3652 2
  • [Question] Should keyboard show up under X11 ?

    [Question] Should keyboard show up under X11 ?

    Hello !

    Is the soft keyboard something that should be implemented by this plugin or i should install some packages myself ? When i touch a TextField in my flutter app on my debian 11 under Openbox - X11, no keyboard is showing up.

    Note : I am asking here because i saw you made some changes to support it for Wayland in another issue. Thanks a lot in advance !

    question 
    opened by Tom3652 5
  • App crashes on any touch input

    App crashes on any touch input

    First of all, thank you for your amazing work!

    Steps to Reproduce

    1. Build and launch any Flutter app with flutter-elinux run on Wayland (Ubuntu 20.04 LTS)
    2. Touch the screen
    3. App crashes

    Error message

    [FATAL:flutter/lib/ui/window/pointer_data_packet_converter.ccc(188)] Check failed: iter != states_.end().

    Additional infos

    This crash won't occur with classic Linux build of the same app, and I can reproduce it with the Flutter demo app (Counter app).

    Thank you for your help!

    opened by lionelmennig 9
Releases(3.3.10)
  • 3.3.10(Dec 16, 2022)

    Version: Flutter 3.3.10

    • https://github.com/sony/flutter-embedded-linux/releases/tag/3316dd8728
    • https://github.com/flutter/flutter/tree/3.3.10
    Source code(tar.gz)
    Source code(zip)
  • 3.3.9(Nov 25, 2022)

    Version: Flutter 3.3.9

    • https://github.com/sony/flutter-embedded-linux/releases/tag/8f2221fbef
    • https://github.com/flutter/flutter/tree/3.3.9
    Source code(tar.gz)
    Source code(zip)
  • 3.3.8(Nov 12, 2022)

    Version: Flutter 3.3.8

    • https://github.com/sony/flutter-embedded-linux/releases/tag/857bd6b74c
    • https://github.com/flutter/flutter/tree/3.3.8
    Source code(tar.gz)
    Source code(zip)
  • 3.3.7(Nov 7, 2022)

    Version: Flutter 3.3.7

    • https://github.com/sony/flutter-embedded-linux/releases/tag/857bd6b74c
    • https://github.com/flutter/flutter/tree/3.3.7
    Source code(tar.gz)
    Source code(zip)
  • 3.3.5(Oct 21, 2022)

    Version: Flutter 3.3.5

    • https://github.com/sony/flutter-embedded-linux/releases/tag/3ad69d7be3
    • https://github.com/flutter/flutter/tree/3.3.5
    Source code(tar.gz)
    Source code(zip)
  • 3.3.4(Oct 12, 2022)

    Version: Flutter 3.3.4

    • https://github.com/sony/flutter-embedded-linux/releases/tag/c08d7d5efc
    • https://github.com/flutter/flutter/tree/3.3.4
    Source code(tar.gz)
    Source code(zip)
  • 3.3.3(Sep 28, 2022)

    Version: Flutter 3.3.3

    • https://github.com/sony/flutter-embedded-linux/releases/tag/5c984c26eb
    • https://github.com/flutter/flutter/tree/3.3.3
    Source code(tar.gz)
    Source code(zip)
  • 3.3.2(Sep 14, 2022)

    Version: Flutter 3.3.2

    • https://github.com/sony/flutter-embedded-linux/releases/tag/a4ff2c53d8
    • https://github.com/flutter/flutter/tree/3.3.2
    Source code(tar.gz)
    Source code(zip)
  • 3.3.1(Sep 7, 2022)

    Version: Flutter 3.3.1

    • https://github.com/sony/flutter-embedded-linux/releases/tag/3efdf03e73
    • https://github.com/flutter/flutter/tree/3.3.1
    Source code(tar.gz)
    Source code(zip)
  • 3.3.0(Sep 2, 2022)

    Version: Flutter 3.3.0

    • https://github.com/sony/flutter-embedded-linux/releases/tag/5e9e0e0aa8
    • https://github.com/flutter/flutter/tree/3.3.0
    Source code(tar.gz)
    Source code(zip)
  • 3.0.5(Jul 15, 2022)

    Version: Flutter 3.0.5 See:

    • https://github.com/sony/flutter-embedded-linux/releases/tag/e85ea0e79c
    • https://github.com/flutter/flutter/tree/3.0.5
    Source code(tar.gz)
    Source code(zip)
  • 3.0.4(Jul 2, 2022)

    Version: Flutter 3.0.4 See:

    • https://github.com/sony/flutter-embedded-linux/releases/tag/6ba2af10bb
    • https://github.com/flutter/flutter/tree/3.0.4
    Source code(tar.gz)
    Source code(zip)
  • 3.0.3(Jun 23, 2022)

    Version: Flutter 3.0.3 See also:

    • https://github.com/sony/flutter-embedded-linux/releases/tag/ffe7b86a1e
    • https://github.com/flutter/flutter/tree/3.0.3
    Source code(tar.gz)
    Source code(zip)
  • 3.0.2(Jun 11, 2022)

    Version: Flutter 3.0.2 See also:

    • https://github.com/sony/flutter-embedded-linux/releases/tag/f15f824b57
    • https://github.com/flutter/flutter/tree/3.0.2
    Source code(tar.gz)
    Source code(zip)
  • 3.0.1(May 20, 2022)

    Version: Flutter 3.0.1 See also:

    • https://github.com/sony/flutter-embedded-linux/releases/tag/caaafc5604
    • https://github.com/flutter/flutter/tree/3.0.1
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0(May 14, 2022)

    Version: Flutter 3.0.0 See also:

    • https://github.com/sony/flutter-embedded-linux/releases/tag/d1b9a6938a
    • https://github.com/flutter/flutter/tree/3.0.0
    Source code(tar.gz)
    Source code(zip)
  • 2.10.3(Mar 4, 2022)

    Version: Flutter 2.10.3 See also:

    • https://github.com/sony/flutter-embedded-linux/releases/tag/bd539267b4
    • https://github.com/flutter/flutter/tree/2.10.3
    Source code(tar.gz)
    Source code(zip)
  • 2.10.2(Feb 21, 2022)

    Version: Flutter 2.10.2 See also:

    • https://github.com/sony/flutter-embedded-linux/releases/tag/a83ed0e5e3
    • https://github.com/flutter/flutter/tree/2.10.2
    Source code(tar.gz)
    Source code(zip)
  • 2.8.1(Dec 17, 2021)

    Version: Flutter 2.8.1 See also:

    • https://github.com/sony/flutter-embedded-linux/releases/tag/890a5fca2e
    • https://github.com/flutter/flutter/tree/2.8.1
    Source code(tar.gz)
    Source code(zip)
  • 2.8.0(Dec 10, 2021)

    Version: Flutter 2.8.0 See also:

    • https://github.com/sony/flutter-embedded-linux/releases/tag/40a99c5951
    • https://github.com/flutter/flutter/tree/2.8.0
    Source code(tar.gz)
    Source code(zip)
  • 2.5.3(Oct 18, 2021)

    Version: Flutter 2.5.3 See also:

    • https://github.com/sony/flutter-embedded-linux/releases/tag/d3ea636dc5
    • https://github.com/flutter/flutter/tree/2.5.3
    Source code(tar.gz)
    Source code(zip)
  • 2.5.2(Oct 1, 2021)

    Version: Flutter 2.5.2 See also:

    • https://github.com/sony/flutter-embedded-linux/releases/tag/6ac856380f
    • https://github.com/flutter/flutter/tree/2.5.2
    Source code(tar.gz)
    Source code(zip)
  • 2.5.1(Sep 21, 2021)

    Version: Flutter 2.5.1 See also:

    • https://github.com/sony/flutter-embedded-linux/releases/tag/b3af521a05
    • https://github.com/flutter/flutter/tree/2.5.1
    Source code(tar.gz)
    Source code(zip)
  • 2.5.0(Sep 13, 2021)

    Version: Flutter 2.5.0 See also:

    • https://github.com/sony/flutter-embedded-linux/releases/tag/f0826da7ef
    • https://github.com/flutter/flutter/tree/2.5.0
    Source code(tar.gz)
    Source code(zip)
  • 2.5.0-5.3.pre(Sep 3, 2021)

  • 2.5.0-5.2.pre(Aug 20, 2021)

  • 2.5.0-5.1.pre(Aug 19, 2021)

  • 2.4.0-4.2.pre(Aug 13, 2021)

Owner
Sony
Sony Group Corporation
Sony
A starter project guide to learn Flutter and its tools.

flutter_catalog A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

null 2 Sep 21, 2021
Tools for Dart package maintainers

Cider (CI for Dart. Efficient Release) A command-line utility to automate package maintenance. Manipulates the changelog and pubspec.yaml. This tool a

Alexey 69 Dec 14, 2022
A tutorial for creating an Ubuntu Linux Flutter app, using the yaru theme

Building a Yaru app with Flutter Summary URL https://github.com/ubuntu/user_manager Category Environment Linux Status Feedback Link Author Frederik Fe

Ubuntu 22 Dec 21, 2022
A curated list of awesomeness for Flutter Linux.

Awesome Flutter Linux ?? A curated list of awesomeness for Flutter Linux. Packages Adwaita Icons - Package that contains all icons built for the Adwai

J-P Nurmi 111 Dec 26, 2022
A cross-platform (Android/Windows/macOS/Linux) USB plugin for Flutter

quick_usb A cross-platform (Android/Windows/macOS/Linux) USB plugin for Flutter Usage List devices List devices with additional description Get device

Woodemi Co., Ltd 39 Oct 1, 2022
A Flutter plugin to read 🔖 metadata of 🎵 media files. Supports Windows, Linux & Android.

flutter_media_metadata A Flutter plugin to read metadata of media files. A part of Harmonoid open source project ?? Install Add in your pubspec.yaml.

Harmonoid 60 Dec 2, 2022
Flutter window blur & transparency effects for on Windows & Linux. 💙

flutter_acrylic Window blur & transparency effects for Flutter on Windows & Linux Installation Mention in your pubspec.yaml. dependencies: ... flu

Hitesh Kumar Saini 438 Jan 2, 2023
🎞 Flutter media playback, broadcast & recording library for Windows, Linux & macOS. Written in C++ using libVLC & libVLC++. (Both audio & video)

dart_vlc Flutter media playback, broadcast, recording & chromecast library for Windows, Linux & macOS. Written in C++ using libVLC & libVLC++. Install

Hitesh Kumar Saini 417 Dec 29, 2022
A Flutter plugin for handling Connectivity and REAL Connection state in the mobile, web and desktop platforms. Supports iOS, Android, Web, Windows, Linux and macOS.

cross_connectivity A Flutter plugin for handling Connectivity and REAL Connection state in the mobile, web and desktop platforms. Supports iOS, Androi

MarchDev Toolkit 29 Nov 15, 2022
A clean front-end to Volumio, the Linux distribution for music playback. DigiPlayer is written in Flutter.

EN | 中文 DigiPlayer - A Clean Touch UI for Volumio 3 DigiPlayer is a clean touch UI for Volumio 3, written in Flutter for the Raspberry Pi Touch Displa

Feng Zhou 5 Jul 26, 2022
Front-end of multiplayer web3 games implemented with Flutter to run on all platforms (Web, Android, iOS, Linux, Window, macOS, TV-OS)

Front-end of multiplayer web3 games implemented with Flutter to run on all platforms (Web, Android, iOS, Linux, Window, macOS, TV-OS)

R-Team 5 Nov 15, 2022
🎵 Elegant music app to play local music & YouTube music. Distributes music into albums & artists. Has playlists & lyrics. Windows + Linux + Android.

Harmonoid Elegant music app to play local music & YouTube music. Download Now ?? Windows, Linux & Android. Feel free to report bugs & issues. Loving t

Harmonoid 1.9k Aug 10, 2022
Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Pawan Kumar 1.5k Jan 8, 2023
a project for learning all Flutter Widgets , sync from flutter.dev the officia website.

Flutter Widgets Catalog (WIP) 计划 1、使用Flutter开发一个全平台的Flutter Widgets Catalog APP,并且开源。在这个APP中可以通过图形化的方式查看所有Widgets的介绍,示例,视频教程。 2、所有文档内容由前一天从flutter.dev

ezshine 32 Aug 3, 2022
A low-cost Flutter screen adaptation solution(一个极低成本的 Flutter 屏幕适配方案)

A low-cost Flutter screen adaptation solution(一个极低成本的 Flutter 屏幕适配方案) 100% 还原 UI,只需要按照设计图写的宽高写即可 先看图片,设置的标准宽度是 360 iPhone 8 --------------------------

聂志洋 108 Sep 27, 2022
Flutter 2.0 (Null safety) Basic, Dynamic & Silver style Staggered Grid views made using flutter staggered grid view package. 🦺

Staggered Grid View Developement Stack Getting Started This project is a starting point for a Flutter application. A few resources to get you started

Nakshatra Singh 9 Oct 28, 2022
A Flutter package that makes it easy to customize and work with your Flutter desktop app's system tray.

system_tray A Flutter package that that enables support for system tray menu for desktop flutter apps. on Windows, macOS and Linux. Features: - Modify

AnTler 140 Dec 30, 2022
Email and Password Authentication In Flutter & Firebase in Flutter 2.2

Email and Password Authentication In Flutter & Firebase in Flutter 2.2

BackSlash Flutter 43 Nov 23, 2022