公開日:2025/02/18
組込みLinuxでGUIアプリを開発する場合、ミドルウェアや開発ツールの選択で悩まれたことはありませんか?
Linuxでは、様々なGUIライブラリやフレームワーク(Qt, GTK, DirectFB etc)がオープンソースで提供されています。しかし、ライセンスやメンテナンスの継続性、リソースサイズなどで、なかなかフィットするものが見つからないケースも多いと思います。
今回は、そのような悩みを解決するため、当社の製品であるGUI統合開発環境「GEAL2」をご紹介いたします。
1. 概要
1) 「GEAL2」とは
GUI統合開発環境「GEAL2」は、組込み機器の画面(GUI)デザインを行うための統合開発環境です。Windows®上でGUI画面を簡単かつ迅速にデザインすることのできる「GEAL Editor」と、ターゲット上で高速に描画・イベント処理を行う「GEAL Engine」で構成されています。
これまでは、ベアメタル(OSレス)およびRTOSに対応していましたが、新たに組込みLinuxにも対応しました。
「GEAL2」に関しては「技術コラム Vol.7 「GEAL2」で簡単!GUIアプリ開発」でも紹介しておりますので、併せてご覧ください。
2) 対応MCU
「GEAL2」はルネサス エレクトロニクス社の「RZ/G」シリーズおよび「RZ/V」シリーズの組込みLinuxに対応(または対応予定)しています。
今回、本コラム内で使用するCPUボードは、RZ/G2UL搭載「AP-RZG2-0A」です。
大容量で高速アクセスが可能なDDR3Lメモリを搭載し、Gigabit Ethernet、USB、microSD、CAN FD、シリアルI/Fなどの汎用インタフェースに加え、Pmodコネクタと拡張コネクタを搭載しており、様々な機能を拡張することができます。

CPU | R9A07G043U11GBG(361Pin BGA) Arm® Cortex®-A55 最大 1.0GHz Arm Cortex-M33 最大 200MHz |
---|---|
ROM |
|
RAM |
|
I/F |
|
寸法 | 100 x 80 mm |
2. Linux対応
「GEAL2」の動作イメージを簡単に説明します。
Linuxのメモリ空間は、下記の図のようにユーザー空間とカーネル空間に分かれています。
「GEAL2」をLinuxにて動作させる場合、Linuxのフレームバッファはデバイスファイル(/dev/fbXX)を通して、タッチパネルドライバはデバイスファイル(/dev/input/eventXX)を通してアクセスします。
Linux側では標準的なドライバの用意のみとなり、「GEAL2」のための特別なデバイスドライバは必要ありません。

3. アプリケーションのビルドから実行
以下にアプリケーションのビルドから実行までの手順を記載します。
なお、ビルドにはAP-RZG2-0AのLinux開発キット(LK-RZG2-A01)が必要になります。Linux開発キットの開発環境につきましては、開発キット付属のドキュメントにてご確認ください。
1) プログラムのビルド
プログラムのビルド手順を以下に記載します。
なお、詳細につきましては「GEAL2」付属のドキュメントをご確認ください。
① GUIデザインのエクスポート
GEAL Editorを使用して、GUIデザインデータをエクスポートします。
② GUIデザインデータの組込み
手順①でエクスポートしたデータをLinuxアプリケーションのソースに組込みます。
③ ビルド環境の設定
Linux開発キットにてインストールしたSDKの環境設定をします。
$
. /opt/poky/3.1.31/environment-setup-aarch64-poky-linux
④ アプリケーションのビルド
AP-RZG2-0A用の提供プログラムでは、Makefileを用意していますのでmakeコマンドにて
ビルドします。
$
make
上記で生成した実行ファイルとGEAL Engineライブラリをターゲットボードにコピーします。
2) 接続
Linuxコマンドを入力するためのPCと、「GEAL2」表示用にタッチパネルLCDキットを用意し、以下のように接続します。

3) 実行
Fig.3の環境が用意できましたら、以下の手順で「GEAL2」を実行できます。
① Linuxの起動
AP-RZG2-0Aの電源を入れてLinuxを起動し、rootユーザーにてログインします。
② ライブラリのパス追加
GEAL Engineライブラリのパスを追加して、動作環境を設定します。
#
export LD_LIBRARY_PATH=./
③ 実行
作成した「GEAL2」アプリケーションを実行します。
#
./geal_sample_wvga
※ ターミナルで「q」を入力するとアプリケーションが終了します。

4. 「GEAL2」の特長
1) 組込み機器に最適化
「GEAL2」は組込み機器向けにカスタマイズされており、高速な処理とコンパクトな使用リソースサイズを実現しています。
2) 移植性
GEAL Engineで用意されているAPI仕様は、OSレスでもLinuxでもすべて同じのため、マイコンやOS環境が変わっても移植の手間を最小に抑えることができます。
3) メンテナンス
オープンソースの一番のメリットは無償で使用できることですが、その一方でメンテナンスが保証されておらず、また有償サポート契約を結ばない限りサポートは皆無です。
「GEAL2」では「ボードライセンス版」と「製品版」の2つのライセンスを提供しており、「ボードライセンス版」は弊社の対応ボードをご使用いただく場合に限り無償でご利用いただけます。
また、定期的にバージョンアップとメンテナンスを実施しており、「製品版」はライセンス期間中、「ボードライセンス版」は有償にてサポートしております。
4) ライセンス
GPLライセンスが適用されているオープンソースを採用した場合は、ソースコードの開示義務を負う必要があります。
「GEAL2」はGPLライセンスと分離されていますので、アプリケーションに組込んだ場合でもソースコードの開示義務はなく、安心してご利用いただけます。
5. まとめ
今回は、組込みLinuxでも利用できるようになった「GEAL2」をご紹介いたしました。
組込みLinuxでは、作成できるアプリケーションの高度化と比例して、GUIもリッチかつ複雑化しています。
そのため、GUIツールは必須アイテムといえるでしょう。
これからRTOSベースのシステムから組込みLinuxへの移行を検討されている方や、組込みLinuxのGUIツールでお悩みの方は、ぜひ「GEAL2」をご検討ください。
製品のご案内
本コラム以外にも開発にお役立ていただける技術情報をアプリケーションノートとして公開しております。
ご興味のある方は、ぜひ製品をご利用ください。
- ※記載されている会社名、製品名は、各社の商標または登録商標です。
- ※記載の内容は改良のため、予告なく変更する場合がございます。