EmbeddedWizard V15.0におけるRasPiOS対応については、当初RasPiOSの32bitOS対応にとどまっていたが、現時点で64bitOSにも対応が拡張されている。RasPi5の64bitOSで様々なアプリケーションを構築しているので、その環境をベースにEmbeddedWizard V15.0で設計したGUIアプリを展開してみる。RasPi5でかつ64bitOSでEmbeddedWizardアプリのGUI動作が可能かのアプローチである。
Windows上のEmbeddedWizard V15.0でGUI設計をしてbuildし、Windows上のEmbeddedWizardのTarget用ディレクトリをRasPi5にてmountし、そのディレクトリ/mnt/xxx/Aplication/Projectでmakeを実行してGUIアプリを生成する。
EmbeddedWizardアプリとRasPi5のGUIであるWaylandは簡潔に述べると競合するので、『Waylandは不要』を基本コンセプトにすべきである。Waylandが起動しているとEmbeddedWizardアプリはGUIのルートを確保できないのである。EmbeddedWizardアプリがGUIのルートを取得する方法は、構築するアプリケーションのコンセプトによりいくつか方式が想定できる。アプリを起動するための環境移行という観点ではいくつかの方式が考えられることになる。以下の二つの方法についてアプローチをする。
①起動時からWaylandを立ち上げない方法
これは起動後すぐにEmbeddedWizardアプリを起動する場合である。
②Waylandで起動して他のGUIアプリを起動し、必要な時にWaylandをstopする方法
これは起動後Waylandを必要とする他のGUIアプリを起動し、その後必要に応じてEmbeddedWizardアプリを起動する場合である。
①のWayland を一切使わずに描画する流れは以下の通りとなる。
[ Embedded Wizard ]※GUIアプリケーション
↓
[ OpenGL ES 2.0 ]※軽量でGPUに近い描画 API
↓
[ EGL ]※GPU コンテキスト作成やフレームバッファ割当やDSI選択
↓
[ DRM / KMS ]※(Direct Rendering Manager)(Kernel Mode Setting)
↓
[ GPU (VideoCore / V3D) ]※Embedded Wizard が描いた画面はすべて V3D が処理
↓
[ DSI / HDMI ディスプレイ ]
※結果的に①と②のどちらのアプローチもRasPi5の64bitOSにて実現ができている。実現にあたってはWaylandとの関係をよく認識する必要があり、どの時点でWaylandを関係づけるかあるいは一切起動しないかという選択と設定とコード埋め込みが
