ishiz_iwy
2024年3月26日 11時38分
Armadillo-X2にて、Flutterの表示画面を縦画面で使用するため、weston.iniにて画面回転設定を行い使用しています。ディスプレイの電源を切ったり、HDMIケーブルの再接続を行ったりすると、画面設定が元に戻るのか、縦画面表示が解除されてしまいます。対処方法はありますでしょうか。
以下現状の[weston.ini]です。
[core] idle-time=0 use-g2d=1 xwayland=true repaint-window=16 [shell] panel-position=none [output] name=HDMI-A-1 mode=preferred transform=rotate-270 [output] name=LVDS-1 mode=off
コメント
at_makoto.sato
at_makoto.sato
at_makoto.sato
ishiz_iwy
at_makoto.sato
佐藤です。
> アップデートおよびflutterアプリの再ビルドにより、抜き差し時でも画面が維持できることを確認しました。
> ご対応ありがとうございます。
直ったようで、こちらとしても安心しました。
> 一方、当方の環境ではディスプレイを接続しない状態で起動した場合、設定した解像度での出力ができない(解像度が640x480になる?)のですが、こちらについて対処・対策などはありますか?
> weston.ini
の設定はmode=preffered
からmode=1920x1080
に変更しています。
> よろしくお願いいたします。
「ディスプレイを接続しない状態で起動」とはarmadillo本体の起動ということでしょうか、またはflutterアプリの起動ということでしょうか。
ishiz_iwy
at_makoto.sato
ishiz_iwy
> flutterアプリはどのように起動していますでしょうか。
> VSCodeから起動していますでしょうか、
> それともarmadilloにログインしてpodman_startでアプリの入ったコンテナを起動していますでしょうか。
ご返信ありがとうございます。
どちらから行っても同じような状況なのですが、詳細に検証したところ、ディスプレイの環境依存の可能性が高いことがわかりました。(別種類のモニタでは同時性は発生しない)
再接続時に使用できる解像度(video mode)の認識自体が800x600推奨値へ変更される(もともとは1920x1080)ために発生しているようでした。
Armadillo自体の問題ではないため恐縮ですが、対策として強制的に出力解像度を固定する等が行えないでしょうか?
よろしくお願いいたします。
at_makoto.sato
佐藤です。
> Armadillo自体の問題ではないため恐縮ですが、対策として強制的に出力解像度を固定する等が行えないでしょうか?
> よろしくお願いいたします。
解像度を固定する方法ではないのですが、ディスプレイを接続したときに接続を検出してコンテナを再起動するという方法はどうでしょうか。
これであれば以下の方法で実現できます。
1. 実行用スクリプトを作ります
ファイル名やファイルパス、
<コンテナ名> の部分はご自身のものに置き換えてください。
armadillo:~# vi /root/app_start.sh #!/bin/sh status=$(cat /sys/class/drm/card1-HDMI-A-1/status) if [ "$status" = "connected" ]; then export PATH; podman_start <コンテナ名> & fi armadillo:~# chmod +x /root/app_start.sh armadillo:~# persist_file /root/app_start.sh
2. udevのrulesファイルを作ります
armadillo:~# vi /etc/udev/rules.d/10-monitor-hotplug.rules ACTION=="change", SUBSYSTEM=="drm", RUN+="/root/app_start.sh" armadillo:~# persist_file /etc/udev/rules.d/10-monitor-hotplug.rules
これで、ディスプレイを接続した時にコンテナが起動するようになると思います。
at_makoto.sato
2024年3月26日 17時13分
佐藤です。
こちらでも現象が発生することを確認しました。対応を検討します。
大変申し訳ありませんが修正されるまでは、ディスプレイをつなぎ直した場合は、アプリの再起動、またはarmadillo自体の再起動をお願いします。