sony/flutter-elinux を使ってみた。

動機

以前、以下のような記事を書いてましたが、あれから2年。より簡単に使えるようになってるみたいだったので再度触ってみました。

sony/flutter-embedded-linux を使ってみる - bamchoh’s diary

sony/flutter-embedded-linux を使ってみた Raspberry Pi 4 (arm64) 編 - bamchoh’s diary

環境

Windows 11 (64bit) に Virtual Box 7.0 をインストールして 仮想環境に Debian 12 を使って weston が使える最小構成をインストールしています。

※ weston の最小構成は昨日の記事を参照してください。

Virtual Box を使って最小構成の Debian と Wayland / Weston をインストールするときの問題点 - bamchoh’s diary

sony/flutter-elinux

GitHub - sony/flutter-elinux: Flutter tools for embedded Linux (eLinux)

SONYの中の方が作成されている flutter を embed linux 環境で簡単に使えるようにしてくださっているようです。

リポジトリの README.md に記載の Quick Start をするだけで簡単に flutter が linux で起動できるので便利。

以下のように flutter-elinux をインストール

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

次に flutter-elinux で使うツール群をインストール

$ sudo apt install unzip curl clang cmake pkg-config

Weston をインストールして起動

$ sudo apt install weston
$ weston &

weston-desktop上でターミナルを起動してデバイスを作成(?)

$ flutter-elinux devices

Flutter のサンプルを実行

$ flutter-elinux create sample
$ cd sample
$ flutter-elinux run -d elinux-wayland

するとこんな感じで画面が表示されるかと思います。

KIOSKモード (フルスクリーンモード) で表示

weston には KIOSKモードというものがあるらしいのですが、それだとうまく動かなかったのでデフォルトのshellを使ってflutterのサンプルアプリを起動します。そのための weston.ini が以下のものです。

[core]
use-pixman=true
idle-time=0

[keyboard]
keymap_layout=jp

[shell]
client=/home/bamchoh/run.sh
locking=false
animation=fade
allow-zap=true

色々設定していますが、重要なのは client の行で、ここに直接 sample コマンドを記述すると、なぜかコマンドライン引数がコマンドの一部と認識されてしまい起動できなかったので、シェルスクリプトを間に噛ましています。

シェルスクリプトは以下のように sample コマンドを実行するだけのシンプルなものです。

#!/usr/bin/bash
/home/bamchoh/sample/build/elinux/x64/release/bundle/sample --bundle=/home/bamchoh/sample/build/elinux/x64/release/bundle

一応これで起動はするのですが、なぜか初回描画位置がおかしく頭に巨大なスペースが開いた状態で描画されてしまいます。この問題はまだ解決していないのですがマウスを動かすと治ります。謎です。

なぜか頭に巨大なスペースが入る・・・謎・・・

そして、マウスをホバーすると治る。

まとめ

Virtual Box 上の Debian 12 に対して sony/flutter-elinux をインストールして weston 上で キオスク表示してみました。 以前やった工程よりだいぶ楽に表示できた気がします。

Flutterは何もわからないですが、Raspberry Piとかと組み合わせると何か面白いことができそうな予感がします。