shimomura2025
2025年5月26日 11時38分
いつもお世話になっております。下村と申します。
現在、Armadillo-X2上でGUIアプリケーションの開発を進めており、アプリケーション上で動的にコントラストおよび輝度の変更を実現したいと考えております。つきましては、以下の点についてご教示いただけますと幸いです。
1. Armadillo-X2におけるHDMI接続ディスプレイのコントラスト・輝度設定について
Armadilloの別のバージョンでは、輝度設定に使用するsysfsファイルの変更が可能であったと認識しております。Armadillo-X2においても、HDMI接続されたディスプレイのコントラストや輝度を変更するためのsysfsファイルや設定項目が存在するか、またはそれらを利用する方法があるかについてご教示いただけますでしょうか。
2. weston.iniの設定変更が反映されない原因について
以下のようにweston.iniにgamma設定を追加しましたが、画面上での変化が確認できませんでした。
[core] idle-time=0 use-g2d=1 xwayland=true repaint-window=16 [shell] panel-position=none [output] name=HDMI-A-1 mode=1920x1080 ; 追加 gamma=0.8,0.8,0.8 [output] name=LVDS-1 mode=off
そもそも輝度およびコントラストの変更はgammaであっているのでしょうか。また、weston.iniの設定変更が反映されない原因として、考えられるご見解をお聞かせいただけますでしょうか。
3. Waylandにおけるコントラスト・輝度の動的変更方法について
weston.iniの設定変更が変更できたとしても、コンテナ起動時のみweston.iniを参照しないため、動的に輝度やコントラストを変更できないように感じます。Wayland環境において、コントラストや輝度を動的に変更するための手段として、gamma-controlプロトコルの利用が考えられます。このプロトコルを使用した実装方法や、Armadillo-X2での対応状況についてご教示いただけますでしょうか。また、別の方法がある場合は、ご教示いただけますでしょうか。
お忙しいところ恐れ入りますが、上記の点についてご確認の上、ご回答いただけますと幸いです。
何卒よろしくお願い申し上げます。
コメント
shimomura2025
佐藤様
丁寧なご回答ありがとうございます。
1. に関しまして
ご案内いただいた通り、画面の輝度制御は、sysfs による操作制御ができないことを承知いたしました。
そこで、armadillo-x2の取り扱い説明書(https://manual.atmark-techno.com/armadillo-x2/armadillo-x2_product_manu…)3.6.5.2.を確認すると、HDMIの画面出力の停止について
echo 1 > /sys/class/graphics/fb0/blank
コマンドを実行するとの記載があります。しかしながら、このコマンドでは映像出力が停止しない現象が発生しております。HDMI接続されたディスプレイに関しては、sysfs経由での制御が本質的に不可能であるのか、詳細をご教示いただけますでしょうか。
2.に関しまして
回答いただいたとおり、本質的な制御ではないため、ディスプレイの設定を制御する方向で開発を進めております。
3.に関しまして
DDC/CIプロトコルを用いたディスプレイの輝度制御に関して、armadillo-x2に、ddcutilというモジュールをインストールしたところ、ディスプレイ情報の取得は成功したものの、輝度の制御がうまくいかない状況です。armadillo-X2において、今後の実装において輝度を制御する機能追加などあればご教授いただければ幸いです。
お手数をおかけいたしますが、上記の点についてご確認の上、ご回答いただけますようお願い申し上げます。
at_makoto.sato
佐藤です。
> そこで、armadillo-x2の取り扱い説明書(https://manual.atmark-techno.com/armadillo-x2/armadillo-x2_product_manu…)3.6.5.2.を確認すると、HDMIの画面出力の停止について
> echo 1 > /sys/class/graphics/fb0/blank
> コマンドを実行するとの記載があります。しかしながら、このコマンドでは映像出力が停止しない現象が発生しております。HDMI接続されたディスプレイに関しては、sysfs経由での制御が本質的に不可能であるのか、詳細をご教示いただけますでしょうか。
何度やっても映像出力は停止しないのでしょうか、それとも停止するときもあるし停止しないときもあるのでしょうか。
> 3.に関しまして
> DDC/CIプロトコルを用いたディスプレイの輝度制御に関して、armadillo-x2に、ddcutilというモジュールをインストールしたところ、ディスプレイ情報の取得は成功したものの、輝度の制御がうまくいかない状況です。armadillo-X2において、今後の実装において輝度を制御する機能追加などあればご教授いただければ幸いです。
大変申し訳ありません。現状では輝度を制御する機能の追加は予定しておりません。
shimomura2025
> 何度やっても映像出力は停止しないのでしょうか、それとも停止するときもあるし停止しないときもあるのでしょうか。
現状何度試しても、映像出力を停止できていません。
> 大変申し訳ありません。現状では輝度を制御する機能の追加は予定しておりません。
承知いたしました。
at_makoto.sato
佐藤です。
> > 何度やっても映像出力は停止しないのでしょうか、それとも停止するときもあるし停止しないときもあるのでしょうか。
> 現状何度試しても、映像出力を停止できていません。
すいません。
flutterアプリケーションはfbに直接描画してるわけではないので、 "echo 1 > /sys/class/graphics/fb0/blank" 実行しても効果ありません。
こちらに類似のフォーラムがありますので、これが参考になるかもしれません。
https://armadillo.atmark-techno.com/forum/armadillo/25523#comment-19836
> HDMI接続されたディスプレイに関しては、sysfs経由での制御が本質的に不可能であるのか、
はい、不可能です。
DRMを通して行う必要があります。
shimomura2025
佐藤様
お世話になっております。度々申し訳ございません。
>>こちらに類似のフォーラムがありますので、これが参考になるかもしれません。
https://armadillo.atmark-techno.com/forum/armadillo/25523#comment-19836
HDMIのディスプレイ出力停止に関して、類似フォーラムを参考にして、armadillo-x2の環境でもwestonに--backend=fbdev-backend.soを指定して、コンテナを起動してみました。
起動したところ、以下のような挙動になり、うまくwestonを起動し、qtのアプリケーションを実行することができなかったです。
「fbdevデバイスは認識されているが、Waylandソケットが生成されていない(またはアクセスできない)ため、Qtアプリが起動できない」(Failed to create wl_display (No such file or directory))というようなログが出て、qtのアプリがWaylandサーバにつながらないため、アプリを実行できない。そのため、westonコンテナ上でecho 1 > /sys/class/graphics/fb0/blankを実行するまでに至ってないです。
コンテナのログに関して抜粋したものを添付いたします。
コンテナ上でwestonをバックエンドで起動し、HDMI出力をコンテナ上から停止できる方法についてご教授いただければ幸いです。
よろしくお願いいたします。
※以下は設定
at-weston-launch
exec weston-launch --tty "$TTY" --user "$ATUSER" -- --backend=fbdev-backend.so ←バックエンドを指定 # exec weston-launch --tty "$TTY" --user "$ATUSER" ←通常時
app.conf
add_volumes /run/udev:/run/udev:ro add_hotplugs input add_devices /dev/tty7 add_args --cap-add=SYS_TTY_CONFIG add_devices /dev/fb0 ←追加 add_devices /dev/tty0 ←追加
ファイル | ファイルの説明 |
---|---|
fbdev-backend_bk.txt |
at_makoto.sato
佐藤です。
--backend=fbdev-backend.so を付けた場合、
westonは起動するがqtアプリが起動しないということでしょうか。
それとも weston も起動しないということでしょうか。
at_makoto.sato
佐藤です。
https://github.com/akhilharihar/Weston-kiosk-shell-DPMS でディスプレイの on / off ができましたので、
以下の手順で試してみたください。
1. ATDE上で添付ファイル(weston_dpms.tar.gz)をダウンロードして展開してください。
2.flutterアプリプロジェクトディレクトリにある
container/resources_flutter/etc/xdg/weston/weston.ini に以下を追加
[core] idle-time=0 use-g2d=1 xwayland=true repaint-window=16 modules=systemd-notify.so,weston-shell-dpms.so # ★これを追加
3.flutterアプリプロジェクト下で追加のディレクトリ作成
[ATDE]$ mkdir -p container/resources_flutter/usr/bin [ATDE]$ mkdir -p container/resources_flutter/usr/lib/aarch64-linux-gnu/weston
4. 添付ファイル内の "weston-shell-dpms.so" を container/resources_flutter/usr/lib/aarch64-linux-gnu/weston にコピー
添付ファイル内の "weston-dpms" を container/resources_flutter/usr/bin にコピー
5. [Generate development/release swu] を実行して swu を作成し、armadilloへインストール
6. armadillo上でflutterアプリが起動したら、コンソールからログインして以下を実行
[container]# weston-dpms -m off # ★これでディスプレイが off になります [container]# weston-dpms -m on # ★これでディスプレイが on になります
コマンドでの手動確認がとれましたら、
flutterアプリ内で "weston-dpms -m off" を実行するようにすると良いかと思います。
at_makoto.sato
at_makoto.sato
2025年5月28日 12時27分
佐藤です。
1. に関しまして、
A640やA610などの製品での sysfs による操作は HDMI を使っていなかったため固定のデバイスに対してそういった設定ファイルができていましたが、
HDMIの場合はできません。
2. に関しまして、
現在使用している weston のバージョンは sdr/hdr-gamma の weston.ini 設定を対応していません。
最新の weston でも gamma-control プロトコルは対応してないので実装する必要があります。
しかしながら実装したとしても gamma-control による輝度設定は暗くするフィルターであり、実際のディスプレイの輝度設定を操作しているわけではないため
期待通りの動きにならないと思います。
HDMIで接続されているディスプレイの輝度設定をLinuxから設定するスタンダードな方法はありません。
3. に関しまして、
申し訳ありません、動的なコントラストや輝度の変更について
こちらでは情報を持ち合わせておりません。
もしかしたら「DDC/CI」というプロトコルできる可能性はありますが Armadillo X2 で操作した実績はありませんのでサポートできない状態です。