Armadilloフォーラム

HDMIディスプレイから音声が出力されない

ce_fono

2019年9月10日 13時32分

本田と申します。

Armadilloに組み込んだアプリケーションで再生する音声が、HDMIディスプレイから出力されない場合があります。

環境:
Armadillo-840 量産ボード (1GB版) A8430-U00Z
Atmark-dist-20180330
linux-3.4-at26
Armadillo-840とHDMIディスプレイをHDMIケーブルで接続しています。
アプリケーション: Qtで作成し、rc.localから起動するよう設定しています。
音声再生方法: アプリケーションからQProcessでaplayを実行しています。

現象:
Armadilloを起動すると、ディスプレイにアプリケーションの画面は表示されるのですが、音声が出力されません。
ディスプレイのOSDにHDMI/DVIモードの表示機能があるのですが、現象発生時はDVIモードと表示されます。
OSDにHDMIモードと表示される場合はディスプレイから音声が出力されます。
発生頻度は20回に1回程度です。

linux-3.4-at26/drivers/video/sh_mobile_hdmi.c の sh_hdmi_update_vic()に以下のデバッグログを仕込んで採取した現象発生時の起動ログを添付致します。

  hdmi->preprogrammed_vic = 0;
  hdmi->aspect_ratio_16_9 = 0;
  if (hdmi->monitor_type == MONITOR_DVI)
  {
     dev_dbg(hdmi->dev, "\n*** monitor_type == MONITOR_DVI ***\n");
     dev_dbg(hdmi->dev, "refresh %u ", found->refresh );
     dev_dbg(hdmi->dev, "xres %u ", found->xres );
     dev_dbg(hdmi->dev, "yres %u ", found->yres );
     dev_dbg(hdmi->dev, "pixclock %u ", found->pixclock );
     dev_dbg(hdmi->dev, "left_margin %u ", found->left_margin );
     dev_dbg(hdmi->dev, "right_margin %u ", found->right_margin );
     dev_dbg(hdmi->dev, "upper_margin %u ", found->upper_margin );
     dev_dbg(hdmi->dev, "lower_margin %u ", found->lower_margin );
     dev_dbg(hdmi->dev, "hsync_len %u ", found->hsync_len );
     dev_dbg(hdmi->dev, "vsync_len %u ", found->vsync_len );
     dev_dbg(hdmi->dev, "sync %u ", found->sync );
     dev_dbg(hdmi->dev, "vmode %u ", found->vmode );
     dev_dbg(hdmi->dev, "flag %u \n", found->flag );
 
     return 0;
  }
ファイル ファイルの説明
hdmi_dvi_boot_20190910A.txt HDMI接続で音声が出なかった際の起動ログ
コメント

佐藤です。

お手数ですが、正常に HDMI として認識された場合のログもいただけますでしょうか。

佐藤です。

いただいたログを確認する限り、DVI として認識されてしまうケースでは EDID の値が正常時とは違っているように見えます。

以下の観点でも発生するかどうか確認できますでしょうか。
・別のHDMIディスプレイを A840 に接続しても発生するか
・該当ディスプレイを、別個体の A840 に接続しても発生するか

> 佐藤です。
>
> いただいたログを確認する限り、DVI として認識されてしまうケースでは EDID の値が正常時とは違っているように見えます。
>
> 以下の観点でも発生するかどうか確認できますでしょうか。
> ・別のHDMIディスプレイを A840 に接続しても発生するか
> ・該当ディスプレイを、別個体の A840 に接続しても発生するか

本田です。

> ・該当ディスプレイを、別個体の A840 に接続しても発生するか

今回A8430-U00Zを14台購入しましたが、その内2台を開梱し2台とも発生を確認しています。

佐藤です。

こちらでも再現確認を行いたいと思いますのでもう一点ほど確認させてください。
A840を起動したまま HDMI の挿抜でも発生しますでしょうか。

> 佐藤です。
>
> こちらでも再現確認を行いたいと思いますのでもう一点ほど確認させてください。
> A840を起動したまま HDMI の挿抜でも発生しますでしょうか。
>

本田です。

> A840を起動したまま HDMI の挿抜でも発生しますでしょうか。

画面、音声とも出力されるようになります。
今のところHDMI挿抜後の現象再現はありません。

佐藤です。

ありがとうございます。

現象発生時のA840の起動方法についても確認させてください。
reboot コマンドによる再起動でも発生しますでしょうか。
電源ケーブルの挿抜による起動でのみで発生する現象でしょうか。

> 佐藤です。
>
> ありがとうございます。
>
> 現象発生時のA840の起動方法についても確認させてください。
> reboot コマンドによる再起動でも発生しますでしょうか。
> 電源ケーブルの挿抜による起動でのみで発生する現象でしょうか。

電源OFF→ONとリセットスイッチによる再起動のみ確認していました。
rebootコマンドは、これから確認します。

> 佐藤です。
>
> ありがとうございます。
>
> 現象発生時のA840の起動方法についても確認させてください。
> reboot コマンドによる再起動でも発生しますでしょうか。
> 電源ケーブルの挿抜による起動でのみで発生する現象でしょうか。

rebootコマンドでも現象が発生しました。
接続したモニターはiiyama ProLite XB2472です。
正常時と現象発生時の起動ログを添付致します。

ファイル ファイルの説明
iiyama_ProLite_XB2472H_rebootcmd_normal_20190913A.log iiyama ProLite XB2472H rebootコマンド 正常時 起動ログ
iiyama_ProLite_XB2472H_rebootcmd_dvi_20190913A.log iiyama ProLite XB2472H rebootコマンド 現象発生時 起動ログ

佐藤です。

reboot コマンドでも再現する件、承知しました。

加えて、使用している HDMI ケーブルについても確認させてください。
・現象が発生する際に使用しているケーブルの型番と長さ
・ケーブルをいくつか変えてみた場合の再現性

> 佐藤です。
>
> reboot コマンドでも再現する件、承知しました。
>
> 加えて、使用している HDMI ケーブルについても確認させてください。
> ・現象が発生する際に使用しているケーブルの型番と長さ
> ・ケーブルをいくつか変えてみた場合の再現性
>

本田です。

以下の2種類のケーブルを使用しています。
1) ELECOM DH-HD14E 5.0m
2) TFTEC JAPAN 2.0m HDMI Ver1.4の表記があります。型番は失念しました。
どちらも同じ頻度で現象が発生しています。

佐藤です。

こちらでも現象再現することを確認しました。
原因解析を進めます。

> 佐藤です。
>
> こちらでも現象再現することを確認しました。
> 原因解析を進めます。

本田です。

その後、進展ありましたでしょうか。
情報があれば、お知らせ下さい。

佐藤です。

ご報告が遅くなり大変申し訳ありません。
頂いたログから正常な場合と異常な場合で読み出した EDID に差があり、このため DVI として認識されてしまうことがわかりました。
このことから、現在は EDID 読み出し処理部分を中心に解析を勧めております。

本田です。

10/31にArmadillo-840の製品アップデートが行われましたが、本件は対応済でしょうか。
接続するHDMIモニターの機種を限定すれば解決するのでしょうか。

以上、よろしくお願いします。

佐藤です。

ご報告が遅くなり大変申し訳ありません。
> 10/31にArmadillo-840の製品アップデートが行われましたが、本件は対応済でしょうか。
こちらに対する対応は入っておりません。
https://armadillo.atmark-techno.com/news/20191031/software-update-a800

> 接続するHDMIモニターの機種を限定すれば解決するのでしょうか。
こちらで動作確認した限りでは、IODATA製 EX-LD2381DB では発生しませんでした。

本件、解析状況はいかがでしょうか?。
EDID読出しが異常とのことですが、ディスプレイモードを固定にしてしまうなどの対策をすれば
この本題は回避されるのでしょうか?。
※もっともディスプレイの汎用性はなくなりますが、それを承知でのハナシです。

> 佐藤です。
>
> ご報告が遅くなり大変申し訳ありません。
> 頂いたログから正常な場合と異常な場合で読み出した EDID に差があり、このため DVI として認識されてしまうことがわかりました。
> このことから、現在は EDID 読み出し処理部分を中心に解析を勧めております。

佐藤です。

> EDID読出しが異常とのことですが、ディスプレイモードを固定にしてしまうなどの対策をすれば
> この本題は回避されるのでしょうか?。
> ※もっともディスプレイの汎用性はなくなりますが、それを承知でのハナシです。
正常に認識されたときの EDID をダンプし、EDID を read している処理で強制的に正常な EDID を返すようにするとよいかもしれません。

本田です。

採取したログを見直したところ、DVIモードになっている場合、EDID読み出しの2回目でCEA861 Extensionが読み出されるはすが、BASE EDIDと全く同じ内容が読み出されている事が分かりました。今までに報告した全てのディスプレイで同じ現象が起きています。
EDIDのI2C読み出し開始アドレスがリセットされる場合があるのではないでしょうか。

本田です。

他のモニターやTVでも現象が再現しましたのでログを送ります。
1)iiyama ProLite XB2472H
2) Panasonic TH-42C300

よろしくお願いします。

ファイル ファイルの説明
iiyama_ProLite_XB2472H_hdmi_normal_boot_20190912A.log iiyama ProLite XB2472H 正常時 起動ログ
iiyama_ProLite_XB2472H_hdmi_dvi_boot_20190912A.log iiyama ProLite XB2472H 現象発生時 起動ログ
Panasonic_TH-42C300_hdmi_normal_boot_20190912A.log Panasonic TH-42C300 正常時 起動ログ
Panasonic_TH-42C300_hdmi_dvi_boot_20190912A.log Panasonic TH-42C300 現象発生時 起動ログ