xrandrへの回答を保留にすると、アンプがモニターとして検出されます 可能な回避策は、特定の [〜#〜] edid [〜# 〜] s。残念ながら xrandr --verbose
は、解析するのが面倒で、単一のデバイスのクエリをサポートしない形式ですべてを出力し、 get-edid
の出力は、xrandr
のモニターID(DVI-1
など)に簡単にマップできないようです。
単一のモニターの簡単に解析可能なEDIDを取得する方法はありますか?
私はEDIDとモニターについてはそうではありませんが、このツールを見つけましたmonitor-edid
これは、あなたにも役立つかもしれません。
それがベースから外れている場合は許してください。このトピックについてあなたが尋ねるさまざまな質問を考慮して、私はこのスペースについても詳しく学ぼうとしています。
$ monitor-edid
EISA ID: LEN4036
EDID version: 1.3
EDID extension blocks: 0
Screen size: 30.3 cm x 19.0 cm (14.08 inches, aspect ratio 16/10 = 1.59)
Gamma: 2.2
Digital signal
# Monitor preferred modeline (60.0 Hz vsync, 55.8 kHz hsync, ratio 16/10, 120 dpi)
ModeLine "1440x900" 114.06 1440 1488 1520 2044 900 903 909 930 -hsync -vsync
# Monitor supported modeline (50.0 Hz vsync, 51.8 kHz hsync, ratio 16/10, 120 dpi)
ModeLine "1440x900" 114.06 1440 1488 1520 2204 900 903 909 1035 -hsync -vsync
私が遭遇した別のツール ddccontrol
がありました。これは、あなたが探している情報を取得するのに役立つかもしれません。
最後に/sys
さまざまなビデオインターフェースからぶら下がっているリーフノードがあることに気付きました。
$ Sudo find . |grep -i edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-1/edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-2/edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-3/edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-VGA-1/edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-LVDS-1/edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-1/edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-2/edid
./devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-3/edid
./module/drm/parameters/edid_fixup
./module/drm_kms_helper/parameters/edid_firmware
しかし、私のLenovoラップトップでは、これらの「ファイル」は空でした。おそらく、システム上で異なるものです。 VGA EDIDからのサンプル出力を示すこのフォーラムスレッドを見つけました。
$ lspci | grep VGA
01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 440 Go 64M] (rev a3)
$ xxd /sys/devices/pci0000:00/0000:00:0b.0/0000:01:00.0/drm/card0/card0-VGA-1/edid
0000000: 00ff ffff ffff ff00 5a63 0213 0101 0101 ........Zc......
0000010: 2b0a 0103 1c25 1bb0 eb00 b8a0 5749 9b26 +....%......WI.&
0000020: 1048 4cff ff80 8199 8159 714f 6159 4559 .HL......YqOaYEY
0000030: 3159 a94f 0101 863d 00c0 5100 3040 40a0 1Y.O...=..Q.0@@.
0000040: 1300 680e 1100 001e 0000 00ff 0033 3139 ..h..........319
0000050: 3030 3433 3030 3737 330a 0000 00fd 0032 004300773......2
0000060: a01e 6114 000a 2020 2020 2020 0000 00fc ..a... ....
0000070: 0047 3930 6d62 0a20 2020 2020 2020 00ba .G90mb. ..
出典:抽出モニターのシリアル番号/製造日EDIDを使用していますか? 。
xrandr --props
の出力には、接続されている各ディスプレイの16進数のEDID文字列がより簡潔な方法で含まれています。これは simple Python script これを利用して特定の接続されたモニターのEDIDを取得するものです。
NVidiaベースのシステムでEDID抽出に機能する他のディストリビューションパッケージのCLIツールは見つかりませんでしたが、バイナリEDIDを解析するためのほとんどのツールは正常に機能しているようです。
X86またはpowerpc Archを使用している場合は、read-edid
を使用できます。 debianではこれが利用可能です here 。
使い方は簡単です(ルートである必要があります):
$ Sudo get-edid > /tmp/edid
次に、構造を解析します。
$ parse-edid < /tmp/edid
Checksum Correct
Section "Monitor"
Identifier "HP v220"
ModelName "HP v220"
VendorName "HWP"
# Monitor Manufactured week 13 of 2008
# EDID version 1.3
# Analog Display
DisplaySize 470 300
Gamma 2.20
Option "DPMS" "true"
Horizsync 30-81
VertRefresh 56-76
# Maximum pixel clock is 160MHz
#Not giving standard mode: 1152x720, 60Hz
#Not giving standard mode: 1280x960, 60Hz
#Not giving standard mode: 1280x1024, 60Hz
#Not giving standard mode: 1440x900, 60Hz
#Not giving standard mode: 1600x1000, 60Hz
#Not giving standard mode: 1680x1050, 60Hz
Modeline "Mode 0" -hsync +vsync
EndSection
多くの場合、これは次のように組み合わされます。
$ Sudo get-edid | parse-edid
次のいずれかを使用してこのカスタムedidファイルをグラフィックカードに渡す方法については、 こちら も参照してください。
バイナリ形式では、EDIDは/sys/class/drm/card%d-%s/edid
で入手できます。ここで、%d
はDRMデバイスインデックス(おそらくGPUインデックス)を表し、%s
はxrandr
に表示されるコネクタIDです出力。
利用可能なすべてのリストを表示するには、ls -1 /sys/class/drm/*/edid
を実行します
GPUドライバーがDRMをサポートしていない場合、この方法でEDIDを取得することはできません。
16進形式で表示するには、その上でhexdump
を実行します。
人間が読める形式にする場合は、edid-decode
に渡します。例:
edid-decode < /sys/class/drm/card0-eDP-1/edid
(Ubuntuの場合は、パッケージマネージャーSudo apt install edid-decode
を使用してインストールする必要がある場合があります)
Edid-decodeと呼ばれるツールの最近のバージョンは、EDID情報を解析でき、テキストおよびバイナリEDIDファイルの読み取りと書き込みができます。 xrandr --verbose
の出力でうまく機能します。たとえば、EDIDをバイナリファイルに保存するために使用できます。
xrandr --verbose | edid-decode - /file/to/save
Fedora 27に付属しているedid-decodeのバージョン(パッケージ:xorg-x11-utils)は古すぎて完全に動作しません。私は 最近のバージョン を最も使用しました。