技術コラム Vol.25

GUI開発を加速!組込みLinux向け開発ツール

開発部 エンジニア / 袴田

公開日:2025/02/18

組込みLinuxでGUIアプリを開発する場合、ミドルウェアや開発ツールの選択で悩まれたことはありませんか?
Linuxでは、様々なGUIライブラリやフレームワーク(Qt, GTK, DirectFB etc)がオープンソースで提供されています。しかし、ライセンスやメンテナンスの継続性、リソースサイズなどで、なかなかフィットするものが見つからないケースも多いと思います。

今回は、そのような悩みを解決するため、当社の製品であるGUI統合開発環境「GEAL2」をご紹介いたします。

  1. 概要
  2. Linux対応
  3. アプリケーションのビルドから実行
  4. 「GEAL2」の特長
  5. まとめ

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コネクタと拡張コネクタを搭載しており、様々な機能を拡張することができます。

AP-RZG2-0A
Fig.1 AP-RZG2-0A
Table.1 AP-RZG2-0Aの仕様
CPU R9A07G043U11GBG(361Pin BGA)
Arm® Cortex®-A55 最大 1.0GHz
Arm Cortex-M33 最大 200MHz
ROM
QSPI Flash
64MByte
EEPROM
2KByte
RAM
DDR3L-1333(666MHz)
1GByte
データバス
16bit
I/F
Gigabit Ethernet
×1
microSDカードスロット
×1
USB2.0 Host(High/Full/Low-Speed対応)
×2
USB2.0 Function(High/Full-Speed対応)
×1
UART
×6
CAN FD
×2
LCD
×1
MIPI CSI-2(4lane)
×1
Pmod
×2
A/D
×2
GPIO
×59
兼用端子含む
寸法 100 x 80 mm

2. Linux対応

「GEAL2」の動作イメージを簡単に説明します。

Linuxのメモリ空間は、下記の図のようにユーザー空間とカーネル空間に分かれています。
「GEAL2」をLinuxにて動作させる場合、Linuxのフレームバッファはデバイスファイル(/dev/fbXX)を通して、タッチパネルドライバはデバイスファイル(/dev/input/eventXX)を通してアクセスします。
Linux側では標準的なドライバの用意のみとなり、「GEAL2」のための特別なデバイスドライバは必要ありません。

Linux構成イメージ
Fig.2 「GEAL2」のLinux構成イメージ

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キットを用意し、以下のように接続します。

動作確認時の接続例
Fig.3 「GEAL2」動作確認時の接続例

3) 実行

Fig.3の環境が用意できましたら、以下の手順で「GEAL2」を実行できます。

① Linuxの起動
AP-RZG2-0Aの電源を入れてLinuxを起動し、rootユーザーにてログインします。

② ライブラリのパス追加
GEAL Engineライブラリのパスを追加して、動作環境を設定します。

# export LD_LIBRARY_PATH=./

③ 実行
作成した「GEAL2」アプリケーションを実行します。

# ./geal_sample_wvga

※ ターミナルで「q」を入力するとアプリケーションが終了します。

動作例
Fig.4 「GEAL2」動作例

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」をご検討ください。

製品のご案内

本コラム以外にも開発にお役立ていただける技術情報をアプリケーションノートとして公開しております。
ご興味のある方は、ぜひ製品をご利用ください。

  • ※記載されている会社名、製品名は、各社の商標または登録商標です。
  • ※記載の内容は改良のため、予告なく変更する場合がございます。