動機
以前、以下のような記事を書いてましたが、あれから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とかと組み合わせると何か面白いことができそうな予感がします。