Как известно, BIOS на встроенных видеокартах от Intel не умеет работать с нестандартными разрешениями. Как известно, "родное" разрешение многих панелей ноутбуков отнюдь не входит в стандартный список. Как известно, установка "неродного" разрешения панели приводит к тому, что видео работает, но выглядит несколько "смазанно". Для решения проблемы, вытекающей из предыдущих утверждений, я написала небольшую "заглушку" для драйвера, которая умеет - по крайней мере, этого хотелось бы, - определять "родное" разрешение панели ноутбука и устанавливать это разрешение в предположении, что BIOS уже установила VESA-режим с 32bpp. Поскольку 24bpp у интеловских видеокарт отсутствует как класс, а 8bpp не даст установить загрузчик, с практической точки зрения это означает, что в загрузочном экране нужно выбирать любой не-EGA/VGA режим, и тогда после запуска "драйвера" экран перейдёт в "нормальное" состояние.
На десктопы и на внешние мониторы действие не распространяется.
Я работаю - и тестирую - с видеокартой Ironlake Mobile, 8086:0046. Работоспособность на других картах не гарантируется, но вероятна. Если драйвер в таком виде не заработает - можно попробовать выключить автоопределение разрешения, установив три параметра в начале исходного текста драйвера с последующей перекомпиляцией.
Я прилагаю бинарные файлы "драйвера" и загрузчика. Драйвер нужно положить в папку /rd/1/drivers. Для работы необходимо ядро ревизии не менее 1730 - более ранние ядра не загрузят драйвер, оставив на доске отладки слова про "unresolved symbol". Исходные тексты драйвера есть на svn, загрузчик дословно следующий:
Code: Select all
include 'macros.inc'
meos_app_start
code
mcall 68,16,driver
mcall -1
data
driver db 'vidintel',0
udata
meos_app_end