Custom Resolutions on Intel Graphics для Acura mdx

ACURA

acura - новые авто
Этот топик может быть полезен тем, кто в своем проекте CarPC ориентируется на использование UMPC с подключением non-DDC монитора. К категории non-DDC относятся мониторы штатных навигаций и большинство китайских поделок для автомобильных нужд. Подобная концепция реализуется в моем проекте Acura MDX.
Суть проблемы: интеловская графика (i910, i915, i945...), оккупировавшая привлекательный рынок UMPC, не имеет адаптивного инструментария настройки пользовательских разрешений для non-DDC мониторов и, особенно, мониторов с черезстрочной разверткой.
Решаемая задача: подключение монитора штатной навигации (interlaced, pixelclock <20MHz) к Asus eeePC 701 4G. Всеми любимый PowerStrip от EnTech не справляется с поставленной задачей.
За период работы (пляски с бубнами) над темой:
- внимательно изучены имеющиеся интернет ресурсы. Особо следует отметить наличие полезной, но неисчерпывающей иформации на AVS Forum и Intel® Software Network Knowledge Base Wiki. Да еще заслуживает внимания этот блог, хотя автор и отказался решить задачку за несколько баксов;
- проработана техническая документация на чипсет Intel® Graphics Media Accelerator 900 Series Software Developer's Guide;
- проведена генерация пользовательских драйверов в соответствии с Intel® Embedded Graphics Drivers and Video BIOS v8.0.
Много буковок и никакого результата! В документации нет прямых ограничений на работу чипсета в нужном нам режиме. Не могут они композитную синхронизацию выдавать на CRT порт - это прописано, а про interlaced молчок. Должен работать и не работает! Постепенно осознание проблемы сузилось на некорректной работе связки VBIOS\драйвер. Девелоперы от интела вводят ограничения на пользовательские разрешения исходя из легенды, что ими можно вывести из строя монитор. Но все же - где собака зарыта? Не в драйвере - генерация пользовательского не дает результата. Значит VBIOS, почему-то не нравятся ему тайминги с pixelclock <20MHz. Задача генерации пользовательского VBIOS решаема, но отнимет уйму времени, которого нет. Уже хотел прекратить пляски, но тут натолкнулся на форум любителей подключеня PC к мониторам игральных автоматов. И проблема схожая и утилитка соответствующая есть Soft15khz. Поставил ее не глядя - появилась куча дополнительных возможных разрешений, но нужного нет. Подправил реестр и монитор заработал! При этом LVDS в режиме 800х480р, а CRT -720х480i. Повторяемости получить не удалось, но вынес главное - задача решаема. И решение оказалось очень простым. Ниже приведена методика, которая может быть использована для всего ряда интеловских чипсетов (с родными драйверами) при подключении non-DDC мониторов.
Для экспериментов нам необходимо иметь:
- значения таймингов для планируемых разрешений non-DDC монитора;
- DTD калькулятор от Clevertechnologies;
- PowerStrp, не очень старый. У меня 3.78 b616;
- не обязательно, но может пригодиться заглушка на D-Sub15.
Приступаем к танцу, тьфу - к операции.
Пациент, ничего выдающегося - стандартная комплектация, лицензионная ось. Испытания проводились и на обрезанной. Результат аналогичен и на тему не влияет.



Чипсет 910, штатные дравера



Делаем необходимую пластику реестру. Штатным Regedit. Ищем ключи, содержащие TotalDTDCount



Изменяем найденное значение 0 на 5. Заменить эти значения надо во всех строчках реестра (их 18). Так что F3 жать не забываем. Указанная операция позволит нам создать пять пользовательских разрешений для CRT порта. Больше интел не позволяет.



Продолжаем операцию. Или руками, или пользуя DTD калькулятор. Прописываем исходные тайминги разрешений, начиная с низшего. Для мониторов штатных навигаций важны параметры interlaced и sync (-hsync -vsync). Для других типов мониторов надо знать параметры синхронизации. Для 720х480i это выглядит так:



Для 800х480i



Прописываем скалькулированные строчки в реестр. Делать это надо последовательно. Т.е после занесения значений таймингов для каждого разрешения идем в раздел Regisry Hack, жмем соответствующую кнопку Get Calculated. Для 720х480i - DTD1 , для 800x480i - DTD2. На скрине 800x480i прописано еще и в DTD3,4,5. Прихоть - можно и не делать. Жмем клавишу Write DTDs to Registry. Все - первая часть операции закончена. Не забываем перегрузиться.



Для мониторов с прогрессивной разверткой последующие шаги могут и не понадобться. Если тайминги известны достоверно, то все должно работать. Для черезстрочных мониторов надо дать разрешение драйверу на работу с низким pixelclock. И поможет нам в этом PowerStrip. На этом этапе необходимо к CRT порту (D-SUB 15) компьютера подключить настраиваемый монитор. Не забываем про физику синхроимпульсов. Запускаем PS и выбираем необходимое нам разрешение из списка прогрессивных разверток. PS не может работать с interlaced, но нам и не надо, мы уже в реестре его прописали. Создаем пользовательские разрешения.



Настраиваем выбранные разрешения внешнего монитора. На первоначальные значения частот синхронизации, кадровой и строчной разверток внимания не обращаем, они могут быть искажены. Как правило, при достижении нужного значения частоты синхронизации на мониторе отображается устойчивая картинка (клон основного). Для удовольствия можно подвигать стрелочками. При оргазме жмем - применить.



Один раз, но целый день. То же для 800х480i



Изменение разрешения внешнего монитора теперь доступно в линеечке PS, так



или так



Осталось настроить желаемые параметры цветности средствами intell



И получить удовольствие от результата на акуре мдх

 
шиномонтаж2
Сверху