Armadilloフォーラム

G4 HDMI出力の解像度について

kitamura-a

2022年8月2日 19時53分

Armadillo-IoTG4にて解像度の変更を行うことは可能でしょうか。
設定可能なファイル等がありましたら教えてください。
1920 * 1080で出力を行いたいと考えています。

状況
Qtにてウインドウサイズ1920 * 1080(setGeometry にて)のアプリケーションを作成し、G4にファイルを転送し実行しました。
接続したディスプレイは3840 * 2160まで出力が可能なのですが、アプリケーションを起動すると800 * 600で認識されていました。

よろしくお願いします。

コメント

at_akihito.irie

2022年8月3日 15時20分

入江です。

お使いのウィンドウシステム(Wayland/weston, X Window system, フレームバッ
ファに直接描画など…)は何でしょうか?

おそらく環境変数QT_QPA_PLATFORMで設定しているか、Qtアプリケーション実行時に
-platformオプションで指定していると思われますのでご確認ください。

[container]# echo $QT_QPA_PLATFORM

回答ありがとうございます。

環境変数の設定が必要とのことで、
QT_QPA_PLATFORM=linuxfb
これを実行しています。
(実行後に、echo $QT_QPA_PLATFORMを実行すると linuxfb)
適切な引数が、表示方法によって必要ということでしょうか。
組み込みlinuxでの経験が無く、この辺の表示方法について適切な表示方法や書き方があれば教えてください。

よろしくお願いいたします。

at_akihito.irie

2022年8月5日 10時22分

入江です。

フレームバッファに直接描画されているようですね。

fbsetというコマンドを使用することで、フレームバッファ描画時の解像度を
指定できます。
デフォルトでは入っていないので、debianコンテナならば以下のコマンドでイ
ンストールできます。

[container]# apt update && apt install -y fbset

FHD(1920x1080)に設定する場合は以下のようコマンドを実行します。

[container]# fbset -xres 1920 -yres 1080

> 適切な引数が、表示方法によって必要ということでしょうか。

Armadillo-IoT ゲートウェイ G4において画面表示を行なう際に、アットマー
クテクノが手順として公開している方法として、
- Waylandを用いた方法
- X window systemを用いた方法
- フレームバッファに直接描画する方法
の3つがあります。
それぞれの使い方は製品マニュアルの「9.1.9. 画面表示を行う」を参照して
ください。
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…

環境変数QT_QPA_PLATFORMによって、Qtアプリケーションが上記の(それ以外の
選択肢もありますが)どれを用いてGUIの描画を行なうかを選択できます。
(linuxfbはフレームバッファへの直接描画)

それぞれ利点や制約がありますので、色々試してお客様に合った方法を探して
みてください。

at_akihito.irie

2022年8月5日 11時36分

入江です。

追記ですが、フレームバッファ直接描画または、X Window systemを使用した
際にはGPUによるアクセラレーションがかかりません。

waylandを使用することで、描画時にGPUの恩恵を受けることができる点から、
waylandの使用を推奨します。

使用用途次第ではアクセラレーションなしでも描画できると思いますが、wayland
の使用も視野に入れてお試しください。

回答ありがとうございます。
> [container]# fbset -xres 1920 -yres 1080

コンテナ上を起動して、fbsetをインストールし、上記コマンドを試しましたが、 Invalid argument になり、
fbset -xres 1024 -yres 768 この数値以下であると、エラーが出ない。
fbset コマンドを試した時にこの数値以下ならばmodeが反映されているように見えます。
この環境下では対応していない?ということでしょうか。調べる方法がもしあれば教えてください。

・環境設定の際は、
podman pull docker.io/debian:bullseye
このコマンドで対応しました。

・[9.1.3. アットマークテクノが提供するイメージを使う]
 ここからのイメージを使用する必要があるのでしょうか。

よろしくお願いいたします。

at_akihito.irie

2022年8月15日 11時42分

入江です。

一度、以下のコマンドの出力をいただけますでしょうか。

[container]# fbset -a -i -v

> ・[9.1.3. アットマークテクノが提供するイメージを使う]
>  ここからのイメージを使用する必要があるのでしょうか。

NPUやVPUを使用する場合は、アットマークテクノが提供するイメージの使用を
お勧めしています。

アットマークテクノが提供するイメージ以外において、特定のdebianパッケー
ジを使用する際に、アットマークテクノのリポジトリから取得しなければ正常
に動作しないものがあるなどの制約がありますが、今回のようなフレームバッ
ファへの描画については問題ないはずです。

fbset -xres 1920 -yres 1080 で変更できることを確認できました。
(原因については、今の段階ではわかりません。変更点としては8月まで御社のレンタル品でテストしていたものを今回新規で購入した程度です。)

ただし、Armadilloログイン時や、アプリの起動時にディスプレイの最大解像度 3840 * 2160で表示されてしまいます。
①ログイン画面時から、②あるいはアプリ起動時だけ1920 * 1080に設定する方法はありますか。

fbset -a -i -v を試した結果は下記のとおりです。
Linux Frame Buffer Device Configuration Version 2.1 (23/06/1999)
(C) Copyright 1995-1999 by Geert Uytterhoeven

Opening frame buffer device `/dev/fb0'
Using current video mode from `/dev/fb0'

mode "1920x1080"
geometry 1920 1080 3840 2160 32
timings 0 0 0 0 0 0 0
accel true
rgba 8/16,8/8,8/0,0/0
endmode

Getting further frame buffer information
Frame buffer device information:
Name : imx-drmdrmfb
Address : 0
Size : 33177600
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 1
YPanStep : 1
YWrapStep : 0
LineLength : 15360
Accelerator : No

at_akihito.irie

2022年9月28日 11時29分

入江です。

強制的に任意のEDIDを読み込ませて解像度を固定する方法があります。
詳しくは以下の記事にまとまっていますのでお試しください。
https://qiita.com/tkomagata/items/74a026f5cada3da21d6a

Armadilloのカーネルのビルド方法については、製品マニュアルを参照してください。
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…