This is a the EDID data from your Xorg.0.log saved as edid.txt:
Code:
00 00 ff ff ff ff ff 00 0e d4 80 10 33 41 32 01
20 11 01 03 80 46 28 78 0a ee 91 a3 54 4c 99 26
0f 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 02 3a 80 d0 72 38 2d 40 10 2c
45 80 df a4 21 00 00 1e 8c 0a d0 8a 20 e0 2d 10
10 3e 96 00 df a4 21 00 00 18 00 00 00 fc 00 43
56 54 45 20 54 56 0a 20 20 20 20 20 00 00 00 fd
00 30 3e 0e 46 0f 00 0a 20 20 20 20 20 20 01 96
To convert that to a binary file, I've used this C program called hex2bin.c
Code:
#include <stdio.h>
int main()
{
unsigned char i;
scanf("%02x ", &i);
while (!feof(stdin))
{
printf("%c", i);
scanf("%02x", &i);
}
return 0;
}
And compiled into hex2bin:
Code:
gcc hex2bin.c -o hex2bin
To calculate the checksum I've used this program called checksum.c:
Code:
#include <stdio.h>
int main()
{
unsigned char sum;
int i;
sum = 0;
for( i = 0; i < 128; i++)
{
unsigned char byte;
scanf("%c", &byte);
// printf("%X\n", byte);
sum += byte;
}
printf("%x\n", sum);
return 0;
}
That I compiled into checksum:
Code:
gcc - checksum.c -o checksum
Then I can check the sum by doing:
Code:
$ ./hex2bin < edid.txt | ./checksum
Which gives:
So we have 1 instead of 0. The purpose of the last byte is that the sum gives 0. If you replace the last byte from 96 to 95. The sums become 0
I edited the text file and saved as corrected_edid.txt. Then I double check the sum is correct:
Code:
$ ./hex2bin < corrected_edid.txt | ./checksum
0
Now I save that into a binary file like this:
Code:
./hex2bin < corrected_edid.txt > edid.bin
Which is the file compressed and attached,
Would you be able to complete the next steps?
Let me know if you need more help with that.
Regards.
Bookmarks