tic-hirano
2019年12月2日 16時54分
お世話になっております,平野と申します.
Armadillo-840のHDMI出力を液晶ディスプレイに表示するシステムで利用しています.
液晶ディスプレイによってはArmadillo-840は利用できる解像度の情報が得られていても映像が表示がされないことがあります.
何か解決策はありますでしょうか?
●環境
液晶ディスプレイ:LCD-AS172-B5(NEC)
接続ケーブル:HDMI-DVIケーブル(メーカー不明)
ATDE5 i386(20160225)
linux-3.4-at17.tar.gz
atmark-dist-20160527.tar.gz
●再現テスト
・液晶ディスプレイのACを接続し電源オンしたあと"SELECT"などボタン操作をしない.
・Qtを使った自作アプリではなくGstreamerで確認.(rc.localで起動)
gst-launch-1.0 videotestsrc ! "video/x-raw,width=1280,height=1024" ! fbdevsink device=/dev/fb0 &
●結果
・Gstreamer動作後に下記が出力されその後"WARNING"からの5行が繰り返される.
(gst-plugin-scanner:3404): GStreamer-WARNING **: Failed to load plugin '/usr/lib/gstreamer-1.0/libgstvideo4linux2.so': libX11.so.6: cannot open shared object file: No such file or directory Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock WARNING: from element /GstPipeline:pipeline0/GstFBDEVSink:fbdevsink0: A lot of buffers are being dropped. Additional debug info: gstbasesink.c(2683): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstFBDEVSink:fbdevsink0: There may be a timestamping problem, or this computer is too slow. sh_hdmi_hotplug: 51 callbacks suppressed
・液晶ディスプレイはパワーマネージメント動作のオレンジ色となる.
・"SELECT"ボタンを操作すると映像が映るようになる.
以上,よろしくお願いいたします.
コメント
tic-hirano
お世話になっております,平野と申します.
> 最新のカーネルとユーザーランドでも発生するか確認できますでしょうか。
[snip]
> 加えて以下の点も確認できますでしょうか。
> Armadillo-840 を複数お持ちであればその全てで発生するか
> 他のディスプレイでも発生するか
> ケーブルを変更しても発生するか
試験用のArmadillo-840に最新のカーネルとユーザーランドでも発生しました.
他のディスプレイでは発生しませんでした.
表示ブランクが発生する液晶ディスプレイではケーブルを変更しても発生しました.
前回投稿で利用したものではないArmadillo-840に下記を書き込んで動作確認をしてみました.
ブートローダー:loader-armadillo840-nor-v3.11.0.bin
Linuxカーネル :linux-a840-v1.22.bin.gz
ユーザーランド:romfs-a840-v1.15.img.gz
液晶ディスプレイは連続動作試験をしていたため同型番のものを利用したところ下記のような結果となりました.
・最新カーネル・ユーザーランド
HDMI-DVIケーブルで映像は表示されない.入力切替など液晶ディスプレイの操作をしても変化なし.
対応している解像度は下記の通りで推奨解像度の1280x1024が現れない.
[root@armadillo840-0 (ttySC2) ~]# cat /sys/class/graphics/fb0/modes V:1024x768p-70 V:1024x768p-60 U:832x624p-75 V:800x600p-75 V:800x600p-72 V:800x600p-60 V:800x600p-56 V:640x480p-75 V:640x480p-72 U:640x480p-67 V:640x480p-60 U:720x400p-70
HDMIケーブルにDVI変換アダプタを利用した接続に変更しても映像は表示されない.入力切替など液晶ディスプレイの操作をしても変化なし.
フルHD対応の液晶ディスプレイでは画像ビューア アプリが表示される.
・利用しているカスタムしたカーネル・ユーザーランド
カーネルおよびユーザーランドを書き換え
HDMIケーブルにDVI変換アダプタを利用した接続で映像は表示されない.入力切替など液晶ディスプレイの操作をしても変化なし.
対応している解像度は下記の通りで推奨解像度の1280x1024が現れる.
[root@armadillo840-0 (ttySC2) ~]# cat /sys/class/graphics/fb0/modes U:1280x960p-75 V:1152x864p-75 V:1280x1024p-75 V:1024x768p-75 V:1024x768p-70 V:1024x768p-60 U:832x624p-75 V:800x600p-75 V:800x600p-72 V:800x600p-60 V:800x600p-56 V:640x480p-75 V:640x480p-72 U:640x480p-67 V:640x480p-60 U:720x400p-70 D:1280x1024p-60
・WindowsPCでの動作確認
Armadillo-840からPCへの接続切替は電源オンのまま作業
フルHDの液晶ディスプレイで動作させていたが1280x1024で表示される
接続ケーブルはDVI-Dケーブルを利用
・再度Armadillo-840を液晶ディスプレイに接続
映像が表示される
・Armadillo-840・液晶ディスプレイを電源オフから確認
ACアダプタなどを外して1分程度放置してから接続
液晶ディスプレイを電源オン
Armadillo-840を電源オン
HDMIケーブルにDVI変換アダプタを利用した接続で映像は表示されない(LEDは青点灯[信号あり])
推奨解像度に設定するも映像は表示されない
Gstreamerを停止したところ少し時間が経つと映像が表示される
・再度電源ケーブルを抜き放置してから起動
Gstreamerを自動実行せず起動
手動でGstreamerを実行.映像は出ない
Gstreamerを停止し推奨解像度に設定するも映像は出ない
何度かGstreamerを起動・停止しても映像は出ない
haltを実行したら表示された
at_makoto.sato
tic-hirano
お世話になっております,平野と申します.
> drivers/video/sh_mobile_hdmi.c の冒頭部分に #define DEBUG
> と追加すると、
> dmesg
> にログが出力されるようになるので確認してみてもらえますでしょうか。
コンソールのログと/var/log/messagesを添付します.
dmesgではすぐに初期の内容が無くなっていたので/var/log/messagesを選択しました.
機器の電源を入れる順番で動作が異なっています.
以下は液晶ディスプレイをAS172,Armadillo-840をa840とします.
●a840起動後にAS172の電源オン:正常に表示
条件:AS172,a840をAC切断放置
・a840が起動し終わったらログイン
・AS172のAC接続(ログ:echo monitor opower on)
・AS172の電源オン(ログ:echo monitor switch on)
・カラーバー表示(ログ:echo color bar success)
20191206_a840_hdmi_debug_4.log
20191206-1130_message.txt
●AS172のAC接続しておきa840起動後にAS172の電源オン:正常に表示
条件:AS172,a840をAC切断放置
・AS172のAC接続
・a840電源オン
・AS172の電源オン(ログ:echo monitor poswitch on)
・カラーバー表示(ログ:echo color bar success)
20191206_a840_hdmi_debug_5.log
20191206-1136_messages.txt
●AS172のAC接続し電源オン,a840起動:表示しない
条件:AS172,a840をAC切断放置
・AS172のAC接続
・AS172の電源オン
・AS172のスタンバイを確認
・a840電源オン
・AS172はスタンバイのまま
・AS172の入力切替押下(ログ:echo monitor input select)
・コンソールへの空行出力が止まる
・カラーバーが表示できない(ログ:echo color bar faild)
・Gstreamer停止して少し時間が経ってから表示された(砂嵐は静止)(ログ:echo color bar displayed)
20191206_a840_hdmi_debug_6.log
20191206-1143_messages.txt
●AS172電源オン,a840halt停止中:正常に表示
条件:AS172,a840ともに通電
・液晶ディスプレイにはカラーバーが止まって表示されている
・a840リセット
・カラーバー表示(ログ:echo color bar success)
ログ:20191206_a840_hdmi_debug_7.log
20191206-1152_messages.txt
◆参考:Dura Vision FDX1203(EIZO)
●FDX1203の電源オン,a840起動:正常に表示
・FDX1203の電源オン
・FDX1203のスタンバイを確認
・a840電源オン
・FDX1203はDVI認識
・カラーバー表示(ログ:echo color bar success)
20191206_a840_hdmi_debug_7.log
20191206-1318_messages.txt
ファイル | ファイルの説明 |
---|---|
20191206_a840_hdmi_debug_4.log | コンソールのログ1 |
20191206-1130_message.txt | /var/log/messages 1 |
20191206_a840_hdmi_debug_5.log | コンソールのログ2 |
20191206-1136_messages.txt | /var/log/messages 2 |
20191206_a840_hdmi_debug_6.log | コンソールのログ3 |
20191206-1143_messages.txt | /var/log/messages 3 |
20191206_a840_hdmi_debug_7.log | コンソールのログ4 |
20191206-1152_messages.txt | /var/log/messages 4 |
20191206_a840_hdmi_debug_8.log | コンソールのログ5 |
20191206-1318_messages.txt | /var/log/messages 5 |
at_makoto.sato
tic-hirano
お世話になっております,平野と申します.
> すいません。 /var/log/kern.log というファイルをいただけますでしょうか。
> kern.log.1 や kern.log.(数字).gz となっているファイルがあればそれもお願いします。
「/var/log/kern.log」は存在しませんでした.
[root@armadillo840-0 (ttySC2) /var]# ls /var/* /var/cache: /var/empty: /var/lib: /var/lock: /var/log: messages wtmp /var/run: avahi-daemon/ ifstate lighttpd.pid udhcpc.eth0.pid fb0.mode inetd.pid syslogd.pid utmp /var/spool: /var/tmp:
確認中のカーネルはdrivers/video/sh_mobile_hdmi.cには下記を追加しmakeのみ実施しています.
#define DEBUG 1
「/var/log/kern.log」が出力されるにはカーネルの設定が必要でしょうか?
ファイル | ファイルの説明 |
---|---|
sh_mobile_hdmi_edit.png | drivers/video/sh_mobile_hdmi.c への追記内容 |
at_makoto.sato
tic-hirano
お世話になっております,平野と申します.
> linux起動時に以下のようにすることで、コンソールにデバッグログが表示されると思います。
> それをいただけますでしょうか。
Hermitでコンソールにデバッグ ログが出るよう設定をしてみました.
hermit> setenv 1: console=ttySC2,115200 2: loglevel=8
●AS172のAC接続し電源オン,a840起動:表示しない
ログ ファイル:20191210_a840_hdmi_debug_0.log
条件:AS172,a840をAC切断放置
・AS172のAC接続
・AS172の電源オン
・AS172のスタンバイを確認
・a840電源オン
・AS172はスタンバイのまま
・解像度の認識は『U:832x624p-75』[l.5112]
・AS172の入力切替押下(ログ:echo monitor input select)[l.6638]
・コンソールへの空行出力が止まる
・解像度の認識は『V:1024x768p-70』[l.6645]
・カラーバーが表示できない(ログ:echo color bar faild)[l.6667]
・Gstreamerを停止したところ少し時間が経つと映像が表示される(ログ:echo color bar is displayed)[l.6673]
・解像度の認識は『V:1024x768p-70』(変化なし)[l.6675]
ファイル | ファイルの説明 |
---|---|
20191210_a840_hdmi_debug_0.log | 入力切替するまで表示できないときのログ |
at_makoto.sato
佐藤です。
何度も申し訳ありません。
#define DEBUG 1 を入れる位置を sh_mobile_hdmi.c ファイルの先頭にして再度ログを確認してもらえますでしょうか。
... * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #define DEBUG 1 #include <linux/clk.h> #include <linux/console.h> ...
tic-hirano
お世話になっております,平野と申します.
> #define DEBUG 1 を入れる位置を sh_mobile_hdmi.c ファイルの先頭にして再度ログを確認してもらえますでしょうか。
入れる位置を変更し「make clean; make dep; make」でイメージを作成ししたところ「setenv console=ttySC2,115200 loglevel=8」の有無で挙動がかわりました.
コンソールに出力していないため「/var/log/messages」を残っている分だけ添付します.
・「setenv console=ttySC2,115200 loglevel=8がある」
ブート途中で映像信号が検出される
20191210_a840_hdmi_debug_success.log
20191210-1307_messages.txt
・「setenv console=ttySC2,115200 loglevel=8がない」
ログイン手前まで進んでも「sh_hdmi_hotplug: XX callbacks suppressed」が出力される
映像信号は検出されずスタンバイ状態のまま
20191210_a840_hdmi_debug_faild.log
20191210-1300_messages.txt
ファイル | ファイルの説明 |
---|---|
20191210_a840_hdmi_debug_success.log | コンソール:デバッグ出力あり(映像出力成功) |
20191210-1307_messages.txt | 成功時の /var/log/messages |
20191210_a840_hdmi_debug_faild.log | コンソール:デバッグ出力なし(映像出力失敗) |
20191210-1300_messages.txt | 失敗時の /var/log/messages |
at_makoto.sato
佐藤です。
ログからは成功時と失敗時で以下の個所で差があるようです。
成功時
Jan 1 00:17:28 (none) user.debug kernel: sh-mobile-hdmi sh-mobile-hdmi: 148-1920-88-44 x 30-1080-4-10 Jan 1 00:17:28 (none) user.debug kernel: sh-mobile-hdmi sh-mobile-hdmi: @74250000(+/-0)Hz, e=0 / 1000, r=60Hz, p=594000000Hz Jan 1 00:17:28 (none) user.debug kernel: sh-mobile-hdmi sh-mobile-hdmi: Using default external mode 1920x1080i@60Hz (74250000Hz), clock error 0Hz Jan 1 00:17:28 (none) user.debug kernel: sh-mobile-hdmi sh-mobile-hdmi: H: 2200, 280, 192, 44; V: 1124, 44, 40, 10; sync 0xe
失敗時
Jan 1 00:16:21 (none) user.debug kernel: sh-mobile-hdmi sh-mobile-hdmi: 144-1024-24-136 x 29-768-3-6 Jan 1 00:16:21 (none) user.debug kernel: sh-mobile-hdmi sh-mobile-hdmi: @75001000(+/-751000)Hz, e=10 / 1000, r=70Hz, p=594000000Hz Jan 1 00:16:21 (none) user.debug kernel: sh-mobile-hdmi sh-mobile-hdmi: Using default external mode 1024x768@70Hz (75001000Hz), clock error 751000Hz Jan 1 00:16:21 (none) user.debug kernel: sh-mobile-hdmi sh-mobile-hdmi: H: 1328, 304, 280, 136; V: 806, 38, 35, 6; sync 0x0
このログの個所は sh_mobile_hdmi.c の sh_hdmi_read_edid 関数ですので、そこを重点的に調べるとよいかもしれません。
at_makoto.sato
2019年12月3日 10時44分
佐藤です。
最新のカーネルとユーザーランドでも発生するか確認できますでしょうか。
https://users.atmark-techno.com/armadillo-840/software
加えて以下の点も確認できますでしょうか。
Armadillo-840 を複数お持ちであればその全てで発生するか
他のディスプレイでも発生するか
ケーブルを変更しても発生するか