e-yamada
2015年5月28日 15時39分
お世話になっております。
armadillo-840にて「1920x540」の解像度での表示を行いたいと考えております。
https://armadillo.atmark-techno.com/forum/armadillo/1004
https://armadillo.atmark-techno.com/forum/armadillo/1415
上記のトピックの内容も確認させていただきましたが、
modedb.cには「1920x540」の設定がなく、fbsetコマンド実行時のパラメータが不明です。
fbset -xres 1920 -yres 540 -t ? ? ? ? ? ? ?
恐れ入りますが、パラメータの値もしくは算出方法をご教示いただけますでしょうか。
以上よろしくお願いいたします。
コメント
e-yamada
at_daisuke.sasaki
佐々木大輔です。
ちょっと説明が不足しているかと思いましたので、自己フォローで追記させて頂きます。
(フォーラムなどいろいろ、ご確認いただいているようなので、 既にご理解頂いている事かもしれません)
これも、一般論でなのですが、、、
HDMIディスプレイとの接続時、ArmadilloはHDMIディスプレイと通信し、
そのディスプレイが対応する解像度の一覧情報をEDIDのファイルフォーマットで受信する事で
ビデオモードを生成します。
そのため、ご使用の「1920x540」という横長のディスプレイも
それに対応するビデオモードを返しているのではないか?と思っています。
先ほど添付した以下の情報もディスプレイから受けたEDIDのデータをパースしたものです。
http://www.mikrocontroller.net/attachment/248330/EDID_HDMI.txt
そのため、本来は、以下コマンドで出力される解像度の一覧に、
このディスプレイが対応する1920x540の解像度の設定があるべきだと考えています。
[armadillo ~]# cat /sys/class/graphics/fb0/modes
前回の回答に記載したように、ディスプレイによっては、
1920x540の解像度にも関わらず、1920x1080を入力するものもあるようです。
その場合は、/sys/class/graphics/fb0/modesには、
1920x540とは違う形で見えている場合があるかもしれません。
製品マニュアル 「8.3.9.1. ビデオモードの変更」の手順を参考に
ビデオモードを変更し、試してみると良いかもしれません。
http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…
また、/sys/class/graphics/fb0/modesから見えるビデオモードの一覧は、
HDMIディスプレイから取得したビデオモードの一覧から、
Armadilloが出力できないビデオモードを間引いたものになります。
たとえば、HDMIディスプレイが要求するピクセルクロックを
Armadilloが出せない場合などには、一覧から削除してしまいます。
この辺りを踏まえ、HDMIディスプレイのマニュアルや、実機での動作確認していただくと良いと思います。
e-yamada
e-yamada
お世話になっております。
「1920x540」の解像度での表示について、確認を実施しました。
仕様上、ディスプレイからArmadilloへのEDIDの受け渡しは無く、
Armadillo側にてfbsetコマンドにて解像度の設定を行っております。
その為、下記コマンドでは何も出力されない状態です。
cat /sys/class/graphics/fb0/mode
cat /sys/class/graphics/fb0/modes
画面上には同じ画像が縦並びで表示されており、現状では正しい表示ができていない状況です。。
なお、fbsetコマンドには先日ご教示いただいた下記のパラメータを設定しております。
---------------------------------------------------------------
fbset -xres 1920 -yres 540 -t 13468 148 88 30 4 44 10
mode "1920x540-58"
# D: 74.250 MHz, H: 33.750 kHz, V: 57.791 Hz
geometry 1920 540 1920 2160 16
timings 13468 148 88 30 4 44 10
accel false
rgba 5/11,6/5,5/0,0/0
endmode
---------------------------------------------------------------
fbset -xres 1920 -yres 540 -t 13468 148 88 15 2 44 5
mode "1920x540-60"
# D: 74.250 MHz, H: 33.750 kHz, V: 60.053 Hz
geometry 1920 540 1920 2160 16
timings 13468 148 88 15 2 44 5
accel false
rgba 5/11,6/5,5/0,0/0
endmode
---------------------------------------------------------------
ディプレイの仕様書を一部抜粋したもの(AC_Timing_Characteristics.jpg)を添付させていただきますので、
お手数ですが、fbsetのパラメータにつきまして適切な設定がございましたらご教示いただけますでしょうか。
表示についてはノーインターレースにて行いたいと思います。
以上よろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
AC_Timing_Characteristics.jpg |
at_daisuke.sasaki
佐々木大輔です。
> 仕様上、ディスプレイからArmadilloへのEDIDの受け渡しは無く、
> Armadillo側にてfbsetコマンドにて解像度の設定を行っております。
> 画面上には同じ画像が縦並びで表示されており、現状では正しい表示ができていない状況です。。
> なお、fbsetコマンドには先日ご教示いただいた下記のパラメータを設定しております。
HDMIのドライバは、EDIDの受信が行えない場合、
DisplayをONする状態にできないのですが、画面上には、画像が描画されているとの事ですので、
DisplayはONできているようですね。
> ディプレイの仕様書を一部抜粋したもの(AC_Timing_Characteristics.jpg)を添付させていただきますので、
> お手数ですが、fbsetのパラメータにつきまして適切な設定がございましたらご教示いただけますでしょうか。
> 表示についてはノーインターレースにて行いたいと思います。
Atmark Distに含まれるBusyBoxのfbsetコマンドは、
インターレース/ノンインターレスを設定するためのlacedオプションが使えません。
EDIDで受信したインターレースのVideo Mode または ノンインターレースのVideo Modeを
ベースにタイミングの変更をする場合には良いのですが、
今回のように空のVideo Modeからタイミングを生成するには、意図した設定にできない場合がありますね。
対策として、Debianのパッケージ([1]のURLからダウンロード)から
以下([2])の手順にて取り出した、fbsetを使う方法があります。
[1]:https://packages.debian.org/wheezy/fbset
[2]:http://armadillo.atmark-techno.com/howto/use-debian-binary
取り出したバイナリファイルをArmadilloに転送し、以下のようなコマンドで
タイミング設定を行うと、先の投稿で添付していただいた「AC_Timing_Characteristics.jpg」を満たす
タイミングの波形を生成できます。
./fbset -xres 1920 -yres 540 -t 1346 8 148 88 30 4 44 10 -laced false
以上です。
e-yamada
佐々木大輔様
情報のご教示、誠にありがとうございます。
ご教示いただきましたとおり、Debianのパッケージから取り出した「fbset」の使用と、
「-laced false」のパラメータ追加にて「1920x540」のディスプレイに正しく表示できる事を確認できました。
「./fbset -xres 1920 -yres 540 -t 13468 148 88 15 2 44 5 -laced false」
(※ディスプレイに合わせてパラメータを変更しております。)
お忙しい中ご対応いただきありがとうございました。
今後とも何卒よろしくお願いいたします。
at_hanada
花田です。
一応、Atmark Distにfbsetを追加するパッチを作ってみました。
一時的にDebianから持ってくるだけで問題なければそのままで構いませんが、恒常的にromイメージに入れるようでしたら利用してみてください。
ファイル | ファイルの説明 |
---|---|
atmark-dist-20150618_fbset.patch |
e-yamada
at_daisuke.sasaki
2015年5月28日 16時31分
佐々木大輔です。
> 上記のトピックの内容も確認させていただきましたが、
> modedb.cには「1920x540」の設定がなく、fbsetコマンド実行時のパラメータが不明です。
CEA Standard(CEA-861-D)などには、「1920 x 540」の解像度は定義されていません。
一般的なタイミングとしては、以下のような例があるようです。
http://www.mikrocontroller.net/attachment/248330/EDID_HDMI.txt
この例とfbsetのコマンドリファレンスに従うと、以下のようなコマンドとなります。
※上記例のディスプレイはインターレースとなっています。
この場合fbsetに設定するVSYNCに関するタイミング(upper,lower,vslen)は
2倍の値にしておく必要があるので、ご注意ください。
fbsetについては以下を参照してください。
http://manpages.debian.org/cgi-bin/man.cgi?&query=fbset
尚、DVIのタイミングですが、以下のようなものもあるようです。
http://www.mikrocontroller.net/attachment/248331/EDID_DVI.txt
また、ディスプレイによっては、「1920x1080」の解像度を入力し
ディスプレイ内で半分に間引き「1920x540」の解像度で出力する仕様のものもあります。
そのため、一度、ディスプレイのマニュアルや仕様書を ご確認頂いた方がいいと思います。
以上です。