警告メッセージ

Howtoは、Armadilloシリーズを有効に活用するための参考資料です。使用ソフトウェアのバージョンなど諸条件の差異によって、記載内容と実際の動作が異なる場合があります。また、すべての機能検証や長期の動作試験を行ったものではありませんので、必ずご使用目的に適合した検証・試験を行ってください。

Howto : HDMIで特定の信号を出力したい

対象製品: Armadillo-840

本Howtoは参考情報です。
HDMIのシンク機器は、表示できるディスプレイモードをEDIDに格納しています。ソース機器はこれを読み出すことにより、シンク機器が表示可能なディスプレイモードのリストを生成します。従って、通常は/sys/class/graphics/fb*/modesに格納されているビデオモードを設定します。

fbset を使用する事で実現できます。

fbset - show and modify frame buffer device settings

例えば 1440×480iの信号を設定するコマンドは以下のようになります。

[armadillo ~]# fbset -xres 1440 -yres 480 -t 37037 114 38 30 8 124 6

タイミングを指定している -t オプションの意味は、以下の通りです。

-t <pixclock> <left margin> <right margin> <upper margin> <lower margin> <horizontal sync length> <vertical sync length>

正しく値が設定されているかについてもfbsetコマンドで確認できます。

[armadillo ~]# fbset

mode "1440x480-30"
        # D: 27.000 MHz, H: 15.734 kHz, V: 30.027 Hz
        geometry 1440 480 1920 1920 32
        timings 37037 114 38 30 8 124 6
        accel false
        rgba 8/16,8/8,8/0,8/24
endmode

ArmadilloがHDMIに出力する事ができるピクセルクロックは、594MHzを分周したクロックとなります。 fbsetのオプション-tで指定する<pixclock>に、594MHzから生成できない値を指定すると、内部的には 近似値が使われます。その場合、HDMIディスプレイが正しく表示できない可能性がありますので、注意してください。

また、当然ですが HDMIディスプレイがサポートしていないモードでは、表示されません。

設定する値は、modedb.c に登録されているものを使用しました。 (この modedb.chttps://users.atmark-techno.com/node/945 のパッチが当ったものです)

        /* #6/7: 720(1440)x480iH@59.94/60Hz */
        [6] = {
                NULL, 60, 1440, 480, 37037, 114, 38, 30, 8, 124, 6, 0,
                FB_VMODE_INTERLACED, 0,
        },

fbset のオプションの詳細は fbset の man page を参照してください。

カテゴリ: