Vine6.2で1400x1050液晶ディスプレイを設定する方法を教えてください

726 views
Skip to first unread message

てっぽ

unread,
Feb 21, 2014, 6:34:54 PM2/21/14
to vine-use...@googlegroups.com
こんにちは。
Linux初心者で申し訳ございませんが、この度古いPCにVine6.2をインストールいたしました。
このPCの液晶画面が1400x1050なのですが、インストール終了までは問題なく表示できましたが、Vineをブートさせると画面が白く滲む形で何も映らない状態になります。
別の外部LCD(1920x1080)をつなげたところ、問題なく表示されビデオカードの設定も正しいことが確認できました。
いろいろ調べてみるとこの液晶にあった設定を行う必要があるらしいのですが、Webで検索できる方法はハードウェアの自動設定のあるVine6.2には対応していないようです。
お手数ですが、本件についてよいアドバイスをお持ちの方がいらっしゃいましたら、ご教授頂ますようお願いいたします。

hasu

unread,
Jul 20, 2015, 11:45:40 AM7/20/15
to vine-use...@googlegroups.com

2014年2月22日土曜日 8時34分54秒 UTC+9 てっぽ:

> こんにちは。
> Linux初心者で申し訳ございませんが、この度古いPCにVine6.2をインストール
> いたしました。 このPCの液晶画面が1400x1050なのですが、インストール終了までは
> 問題なく表示できましたが、Vineをブートさせると画面が白く滲む形で何も
> 映らない状態になります。
> 別の外部LCD(1920x1080)をつなげたところ、問題なく表示されビデオカードの設定も
> 正しいことが確認できました。
> いろいろ調べてみるとこの液晶にあった設定を行う必要があるらしいのですが、
> Webで検索できる方法はハードウェアの自動設定のあるVine6.2には対応して
> いないようです。 お手数ですが、本件についてよいアドバイスをお持ちの方が
> いらっしゃいましたら、ご教授頂ますようお願いいたします。


こんにちは、半年ほど前から Vine Linuxを使わせてもらっています。
(現在は、Vine Linux 6.3、 カーネル 3.4.108-2vl6 です。)
ディスプレイの表示は できていたのですが、
インストールした当初に、dmesgの出力内容に、
  i915 0000:00:02.0: VGA-1: EDID block 0 invalid.
  [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 128
  Raw EDID:
      ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
      ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
というエラーが出ていて、
このエラーを消したくて、色々と調べているうちに、
時間は かかりましたが、下記の方法を見つけました。
確証はないのですが、PCの液晶画面が映らないという現象も
下記の方法で解決できるのではないかと思い、
投稿させていただきました。


本題に入る前に、「EDID」や「KMS」が 何の事なのか
知っていただいた方が よいと思いますので、
それらを説明しているWebページのURLを載せます。

「VESA DDC(EDID)ってなんだ?」
    http://blogs.yahoo.co.jp/linear_pcm0153/35170391.html

「Kernel Mode Setting - ArchWiki」
    https://archlinuxjp.kusakata.com/wiki/Kernel_Mode_Setting?rdfrom=https%3A%2F%2Fwiki.archlinux.org%2Findex.php%3Ftitle%3DKernel_Mode_Setting_%28%25E6%2597%25A5%25E6%259C%25AC%25E8%25AA%259E%29%26redirect%3Dno


本題に入ります。
英語のWebページですが、私が書きたい主旨は、
このWebページの内容の事です。

「Kernel Mode Setting (KMS) is great, but may not work as expected」
    https://www.osadl.org/Single-View.111+M5ec938a7b3b.0.html

EDIDのデータは、本来 ディスプレイからの通信で送られてきますが、
ディスプレイとの通信は やめることにして、
EDIDのデータをファイル化して
/lib/firmware/edid/のディレクトリに置き、
grub等のカーネル起動時のパラメーターで
  drm_kms_helper.edid_firmware=edid/1280x1024.bin
などと指定することにより、
カーネルが そのファイルから EDIDのデータを読み取るようにする
という事が、このWebページに書かれています。


そのWebページから、次の2つのURLが リンクで載っています。
EDIDのデータをファイルを 自分で作る方法が書かれています。

「root/Documentation/EDID  - linux.git」
    http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/EDID?id=be53bfdb8088e9d1924199cc1a96e113756b1075

「root/Documentation/EDID/HOWTO.txt」
    http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/EDID/HOWTO.txt?id=be53bfdb8088e9d1924199cc1a96e113756b1075

1280x1024.S などのファイルの内容を
自分で修正をかけて、
makeコマンドで コンパイルすることで、
1280x1024.bin などの EDIDのデータファイルを作り出します。

1280x1024.S などのファイルで、
どこの箇所に 修正をかければよいのかですが、
「HOWTO.txt」の中の文章を抜き出してみます。

  If you want to create your own EDID file, copy the file 1024x768.S,
  replace the settings with your own data and add a new target to the
  Makefile. Please note that the EDID data structure expects the timing
  values in a different way as compared to the standard X11 format.

  X11:
  HTimings:  hdisp hsyncstart hsyncend htotal
  VTimings:  vdisp vsyncstart vsyncend vtotal

  EDID:
  #define XPIX     hdisp
  #define XBLANK   htotal-hdisp
  #define XOFFSET  hsyncstart-hdisp
  #define XPULSE   hsyncend-hsyncstart

  #define YPIX     vdisp
  #define YBLANK   vtotal-vdisp
  #define YOFFSET  (63+(vsyncstart-vdisp))
  #define YPULSE   (63+(vsyncend-vsyncstart))

「X11:」の「HTimings:」「VTimings:」というのは、
少し古い情報になりますが、XFree86で言うところの
/etc/XF86Config という設定ファイルに書かれているような内容
の事です。

「XF86Config」
    http://yang.amp.i.kyoto-u.ac.jp/~yyama/FreeBSD/X/XF86Config-j.html
このwebページの Section "Monitor" のところを見てください。

その設定ファイルの HTimings、VTimings もしくは Modeline の行から、
  hdisp、hsyncstart、hsyncend、htotal、
  vdisp、vsyncstart、vsyncend、vtotal
の 値を得ます。

それらの値を使って計算して、
1280x1024.S などのファイルの中に書かれている、変数の
  XPIX、XBLANK、XOFFSET、XPULSE、
  YPIX、YBLANK、YOFFSET、YPULSE
を 数値で指定します。

例えば、ディスプレイのメーカー、型番が
EIZO Flex Scan L360だとした場合、
インターネット検索で、
「XF86Config EIZO Flex Scan L360」のように
XF86Configと ディスプレイのメーカー、型番を
検索のキーワードに指定することで、
お持ちのディスプレイのデータが得られるのではないかと思います。


また、HOWTO.txtの中には、次の文章も書かれています。
  The CRC value in the last line
    #define CRC 0x55
  also is a bit tricky. After a first version of the binary data set is
  created, it must be checked with the "edid-decode" utility which will
  most probably complain about a wrong CRC. Fortunately, the utility also
  displays the correct CRC which must then be inserted into the source
  file. After the make procedure is repeated, the EDID data set is ready
  to be used.

edid-decodeというコマンドで、
できあがったバイナリファイルの1280x1024.binなどの
内容を表示させることができます。
チェックサムのCRCについても、そのコマンドが計算し直して、
表示してくれます。
その正しいCRCの値を、1280x1024.S などのファイルの
#define CRC の行に書き込み、
makeコマンドをかけ直します。


ちなみに、私のgrubのカーネル起動時のパラメーターは、
次のようになっています。
  kernel /vmlinuz ro root=LABEL=/vine6 resume=swap:/dev/sda6
    drm_kms_helper.edid_firmware=edid/1024x768.bin video=VGA-1:e


これまで書いてきた情報で、
ディスプレイの解像度の話については終わりです。
補足として、ディスプレイのガンマ値の話を書きます。
ガンマ値は ディスプレイの明るさの特性を表す値です。

「ガンマ補正」
    http://w3.kcua.ac.jp/~fujiwara/infosci/gamma.html

edid.S の ファイルの中に、次の行が あります。
  /* Display gamma, minus 1, times 100 (range 1.00-3.5 */
  gamma:          .byte   120

標準的なガンマ値は、2.2だとの事ですが、
 ( 2.2 - 1 ) * 100 という計算をして、
その数値を gammaの項目の指定に使いなさい とのことです。

私の場合は、何回も試行錯誤して、
自分の好みで ガンマ値 1.87ということにしました。

EDIDのデータファイルを変更するという やり方以外にも、
ガンマ値は xrandr や xgamma というコマンドを使っても
変更できるようです。


Message has been deleted

hasu

unread,
Jul 31, 2016, 9:58:12 AM7/31/16
to Vine Linux ユーザーフォーラム
前のメールは、1年ほど前に書いたのですが、
文章の中からリンクで張っているURLアドレスが 微妙に違うところに
繋がるようになっていたので、
その箇所を訂正して、再度 お送りします。

また、ディスプレイの水平同期、垂直同期の関連の数値を
自力で計算する方法について、14行ほど書き加えました。

(メールソフトで、直に受信されている方(かた)へ、
 2回 送り直しまして、申し訳ありません。)

Googleグループのホームページ上で、表示させると、
前の投稿メーセージの文章と
同じ文章が 現行のメッセージの中に出てくると、
前のメッセージの引用の部分だと見なされて、
デフォルトでは その部分が非表示の状態になってしまうようです。

なので、文章を 添付ファイルでお送りすることにしました。
添付ファイルの文字コードは utf-8で、
改行コードは LFです。



HowToSetLinuxVideoResolution.txt

hasu

unread,
Apr 21, 2017, 10:33:33 AM4/21/17
to Vine Linux ユーザーフォーラム
次のWebページのリンクが切れていたので、
新しいURLを載せておきます。


「Kernel Mode Setting (KMS) is great, but may not work as expected」

hasu

unread,
Oct 25, 2017, 6:14:49 AM10/25/17
to Vine Linux ユーザーフォーラム
次のWebページのリンクが切れていました。

「Kernel Mode Setting (KMS) is great, but may not work as expected」

「OSADL」というサイトの中にあるWebページなのですが、
このサイトの中のWebページは、よく URLアドレスが変わるようなので、
次のような方法で探してもらえたらと思います。

Google検索のホームページを開きます。
検索のキーワードに 次の文字列を入力して、検索します。
「OSADL Build your own EDID data」

検索結果の上位の方に、
「Kernel Mode Setting (KMS) is great, but may not work as ... - OSADL」
のように 表示されるだろうと思います。



Reply all
Reply to author
Forward
0 new messages