Как получить бинарный файл с EDID для монитора?

nVidia, ATI, SIS, VIA и др.

Модератор: Модераторы разделов

Ответить
pol01
Сообщения: 94

Как получить бинарный файл с EDID для монитора?

Сообщение pol01 »

Монитор возвращает неправильные данные EDID. В логах xorg есть вот такие строчки:

Код: Выделить всё

 [ 16447.638] (WW) NVIDIA(GPU-0): The EDID read for display device DFP-0 is invalid: the
 [ 16447.638] (WW) NVIDIA(GPU-0):     checksum for EDID version 1 extension is invalid.
 [ 16447.638] (--) NVIDIA(GPU-0):
 [ 16447.638] (--) NVIDIA(GPU-0): Raw EDID bytes:
 [ 16447.638] (--) NVIDIA(GPU-0):
 [ 16447.638] (--) NVIDIA(GPU-0):   00 ff ff ff ff ff ff 00  04 68 fa 00 00 00 00 00
 [ 16447.638] (--) NVIDIA(GPU-0):   28 15 01 03 a5 3c 22 78  22 6f b1 a7 55 4c 9e 25
 [ 16447.638] (--) NVIDIA(GPU-0):   0c 50 54 00 00 00 01 01  01 01 01 01 01 01 01 01
 [ 16447.638] (--) NVIDIA(GPU-0):   01 01 01 01 01 01 56 5e  00 a0 a0 a0 29 50 30 20
 [ 16447.638] (--) NVIDIA(GPU-0):   35 00 55 50 21 00 00 1a  00 00 00 fc 00 51 48 44
 [ 16447.638] (--) NVIDIA(GPU-0):   32 37 30 0a 20 20 20 20  20 20 00 00 00 fc 00 51
 [ 16447.638] (--) NVIDIA(GPU-0):   48 44 32 37 30 0a 20 20  20 20 20 20 00 00 00 fc
 [ 16447.638] (--) NVIDIA(GPU-0):   00 51 48 44 32 37 30 0a  20 20 20 20 20 20 01 b0
 [ 16447.638] (--) NVIDIA(GPU-0):   00 ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
 [ 16447.638] (--) NVIDIA(GPU-0):   ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
 [ 16447.638] (--) NVIDIA(GPU-0):   ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
 [ 16447.638] (--) NVIDIA(GPU-0):   ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
 [ 16447.638] (--) NVIDIA(GPU-0):   ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
 [ 16447.638] (--) NVIDIA(GPU-0):   ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
 [ 16447.638] (--) NVIDIA(GPU-0):   ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
 [ 16447.638] (--) NVIDIA(GPU-0):   ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
 [ 16447.638] (--) NVIDIA(GPU-0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 [ 16447.638] (--) NVIDIA(GPU-0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 [ 16447.638] (--) NVIDIA(GPU-0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 [ 16447.638] (--) NVIDIA(GPU-0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 [ 16447.638] (--) NVIDIA(GPU-0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 [ 16447.638] (--) NVIDIA(GPU-0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 [ 16447.638] (--) NVIDIA(GPU-0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 [ 16447.638] (--) NVIDIA(GPU-0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
 [ 16447.638] (--) NVIDIA(GPU-0):


Как из этих значений получить бинарный файл с данными EDID?
Спасибо сказали:
flank'er
Сообщения: 496
Статус: слаковщик
ОС: Slackware64

Re: Как получить бинарный файл с EDID для монитора?

Сообщение flank'er »

nvidia-settings там есть кнопка "Acquire EDID" в свойствах монитора
Спасибо сказали:
pol01
Сообщения: 94

Re: Как получить бинарный файл с EDID для монитора?

Сообщение pol01 »

flank'er писал(а):
28.09.2012 09:24
nvidia-settings там есть кнопка "Acquire EDID" в свойствах монитора


Посмотрел у себя, установлены: nv-control v.1.27, nvidia-drivers-295.71. Не нашел такой кнопки. Можно скриншот выложить?
Спасибо сказали:
flank'er
Сообщения: 496
Статус: слаковщик
ОС: Slackware64

Re: Как получить бинарный файл с EDID для монитора?

Сообщение flank'er »

скриншот
Вложения
edid.png
Спасибо сказали:
pol01
Сообщения: 94

Re: Как получить бинарный файл с EDID для монитора?

Сообщение pol01 »

flank'er писал(а):
28.09.2012 23:00
скриншот

Какая у вас версия nv-control? (на вкладке X Server Information)

У меня версия 1.27. Такой кнопки в ней нет. Может быть потому, что у меня EDID правильно не читается?
Спасибо сказали:
flank'er
Сообщения: 496
Статус: слаковщик
ОС: Slackware64

Re: Как получить бинарный файл с EDID для монитора?

Сообщение flank'er »

в феврале я ставил драйвер NVIDIA-Linux-x86_64-295.20.run и там эта опция была.
Спасибо сказали:
pol01
Сообщения: 94

Re: Как получить бинарный файл с EDID для монитора?

Сообщение pol01 »

А другие способы существуют? Если у нас есть текстовый файл, в котором записаны байты данных EDID, его можно конвертировать в бинарный файл, ссылку на который затем укажем в xorg.conf?
Спасибо сказали:
flank'er
Сообщения: 496
Статус: слаковщик
ОС: Slackware64

Re: Как получить бинарный файл с EDID для монитора?

Сообщение flank'er »

только не понятно зачем. если edid не проходит, указываешь модлайн и все дела.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Как получить бинарный файл с EDID для монитора?

Сообщение drBatty »

pol01 писал(а):
27.09.2012 23:45
Как из этих значений получить бинарный файл с данными EDID?

ну например так:

Код: Выделить всё

#!/usr/bin/php
<?php

$fd = fopen("text.txt", "r");
$ofd = fopen("text.bin", "w");
if(!$fd || !$ofd)
    exit("Can't open file.");



while(($s = fgets($fd)) !== FALSE)
{
    if(preg_match("/([[:xdigit:]]{2}\s+){15}[[:xdigit:]]{2}\s*$/", $s))
    {
        $s = preg_replace("/.*(([[:xdigit:]]{2}\s+){15}[[:xdigit:]]{2})\s*$/", "$1", $s);
        $a = explode(" ", $s);
        $os = '';
        foreach($a as $b)
        {
            $b = trim($b);
            if($b == '')
                continue;
            $os .= chr("0x$b");
        }
        fwrite($ofd, $os);
    }
}

fclose($ofd);
fclose($fd);
?>
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
pol01
Сообщения: 94

Re: Как получить бинарный файл с EDID для монитора?

Сообщение pol01 »

drBatty писал(а):
29.09.2012 12:51
pol01 писал(а):
27.09.2012 23:45
Как из этих значений получить бинарный файл с данными EDID?

ну например так:

Код: Выделить всё

#!/usr/bin/php
<?php

$fd = fopen("text.txt", "r");
$ofd = fopen("text.bin", "w");
if(!$fd || !$ofd)
    exit("Can't open file.");



while(($s = fgets($fd)) !== FALSE)
{
    if(preg_match("/([[:xdigit:]]{2}\s+){15}[[:xdigit:]]{2}\s*$/", $s))
    {
        $s = preg_replace("/.*(([[:xdigit:]]{2}\s+){15}[[:xdigit:]]{2})\s*$/", "$1", $s);
        $a = explode(" ", $s);
        $os = '';
        foreach($a as $b)
        {
            $b = trim($b);
            if($b == '')
                continue;
            $os .= chr("0x$b");
        }
        fwrite($ofd, $os);
    }
}

fclose($ofd);
fclose($fd);
?>



Сделал бинарный файл с помощью вашего скрипта. Бинарный файл прописал в опциях xorg. В логе всё равно пишет, что не совпадает контрольная сумма:

Код: Выделить всё

[  6818.585] (**) NVIDIA(0): Option "CustomEDID" "DFP-0:/etc/X11/text.bin"
  122 [  6818.586] (**) NVIDIA(0): Enabling 2D acceleration
  123 [  6820.090] (WW) NVIDIA(GPU-0): The EDID read for display device DFP-0 is invalid: the
  124 [  6820.090] (WW) NVIDIA(GPU-0):     checksum for EDID version 1 extension is invalid.


Вот сами файлы (у бинарного файла расширение .txt удалите):
text.bin.txt
(384 байт) 30 скачиваний
text.txt
(1.15 КБ) 25 скачиваний


Проверку с помощью parse-edid text.bin проходит:

Код: Выделить всё

$ parse-edid < text.bin
parse-edid: parse-edid version 2.0.0
parse-edid: EDID checksum passed.


Но xserver с ним не работает.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Как получить бинарный файл с EDID для монитора?

Сообщение drBatty »

pol01 писал(а):
01.10.2012 23:41
checksum for EDID version 1 extension is invalid.

ну тут я не в курсе...
если сравнить, то вот как оно

Код: Выделить всё

00000000  00 ff ff ff ff ff ff 00  04 68 fa 00 00 00 00 00  |.........h......|
00000010  28 15 01 03 a5 3c 22 78  22 6f b1 a7 55 4c 9e 25  |(....<"x"o..UL.%|
00000020  0c 50 54 00 00 00 01 01  01 01 01 01 01 01 01 01  |.PT.............|
00000030  01 01 01 01 01 01 56 5e  00 a0 a0 a0 29 50 30 20  |......V^....)P0 |
00000040  35 00 55 50 21 00 00 1a  00 00 00 fc 00 51 48 44  |5.UP!........QHD|
00000050  32 37 30 0a 20 20 20 20  20 20 00 00 00 fc 00 51  |270.      .....Q|
00000060  48 44 32 37 30 0a 20 20  20 20 20 20 00 00 00 fc  |HD270.      ....|
00000070  00 51 48 44 32 37 30 0a  20 20 20 20 20 20 01 b0  |.QHD270.      ..|
00000080  00 ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000090  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00000100  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000180

Код: Выделить всё

00 ff ff ff ff ff ff 00  04 68 fa 00 00 00 00 00
28 15 01 03 a5 3c 22 78  22 6f b1 a7 55 4c 9e 25
0c 50 54 00 00 00 01 01  01 01 01 01 01 01 01 01
01 01 01 01 01 01 56 5e  00 a0 a0 a0 29 50 30 20
35 00 55 50 21 00 00 1a  00 00 00 fc 00 51 48 44
32 37 30 0a 20 20 20 20  20 20 00 00 00 fc 00 51
48 44 32 37 30 0a 20 20  20 20 20 20 00 00 00 fc
00 51 48 44 32 37 30 0a  20 20 20 20 20 20 01 b0
00 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 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 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 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
00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00

вроде одинаково...
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Ответить