Можно создать редкий файл как это с dd
:
dd of=file bs=1 seek=2G count=0
$ du file
0 disk
$ du --apparent-size file
2097152 disk
Место погребения для Вашего встроенного микропрограммного обеспечения режима EDID должно быть под /lib/firmware/edid
. Однако много дистрибутивов Linux помещают пример установка режима EDID микропрограммный источник и Make-файл в соответствии с каталогом для документации ядра Linux. Для Fedora это обеспечивается kernel-doc
пакет и находится под /usr/share/doc/kernel-doc-3.11.4/Documentation/EDID
. После компиляции встроенного микропрограммного обеспечения для монитора можно поместить edid двоичный файл куда угодно, который доступен для расчистки после начальной загрузки, но конвенция /lib/firmware/edid/
.
edid.bin
файлы находятся в двоичном формате, таким образом, корректный способ настроить его не был бы интуитивен.
Сообщение Вы предоставили ссылки на официальную документацию ядра для создания Вашего пользовательского edid файла. Те же инструкции также предоставлены в HOWTO.txt
файл в каталоге документации ядра, на который ссылаются выше. По существу Вы редактируете один из файлов встроенного микропрограммного обеспечения в качестве примера, говорите 1024x768.S
, обеспечение параметров для Вашего монитора. Затем скомпилируйте его с обеспеченным Makefile
и настройте личинку для использования нового встроенного микропрограммного обеспечения.
Для меня было два хитрых бита к выполнению этого. Первый - то, где найти edid исходный файл, который должен быть скомпилирован. Этому ответили для Fedora выше.
Второй хитрый бит находит, что правильные значения помещают в 1024x768.S
для Вашего монитора. Это достигается путем выполнения cvt
генерировать Ваш желаемый modeline и затем выполнение небольшой арифметики. Для разрешения 1600x900 с частотой обновления на 60 Гц и уменьшенным очищением (рекомендуемый для LCDs), Вы имели бы:
[user@host ~]$ cvt 1600 900 60 -r
# 1600x900 59.82 Hz (CVT 1.44M9-R) hsync: 55.40 kHz; pclk: 97.50 MHz
Modeline "1600x900R" 97.50 1600 1648 1680 1760 900 903 908 926 +hsync -vsync
Можно соответствовать последней строке этого вывода к инструкциям в HOWTO.txt
:
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))
2-е - 5-е числа в последней строке cvt
вывод (1600 1648 1680 1760
) четыре параметра "HTimings" (hdisp hsyncstart hsyncend htotal
) и 6-е - 9-е числа (900 903 908 926
) четыре параметра "VTimings" (vdisp vsyncstart vsyncend vtotal
).
Наконец, необходимо будет скомпилировать встроенное микропрограммное обеспечение во второй раз для устанавливания корректного значения CRC в последней строке (см. HOWTO.txt
для деталей).
Я написал помощника для простой генерации бинарных файлов EDID с правильной контрольной суммой из формата Xorg modeline:
https://github.com/akatrevorjay/edid-generator
Вы можете использовать его для легкой генерации свежих бинов. Я использую его для получения 60 Гц на моем мониторе, а также для решения проблем с EDID дисплея Thunderbolt от Apple.
По этой ссылке есть инструкции по его использованию!
HOWTO.txt
? После того, как Вы скомпилируете и создадите edid файл, он говорит для выполненияedid-decode <edid.bin>
где<edid.bin>
название соответствовавшего микропрограммного двоичного файла. Эта программа произведет большую информацию о edid, который Вы просто создали, включая корректное значение CRC. Вы затем устанавливаете это значение в#define CRC
строка и компиляция снова. – drs 30.10.2013, 16:18cvt
вывод? – drs 30.10.2013, 16:19