Модификация BIOS видеокарты в ноутбуке
Вступление
Все началось после того, как я сделал upgrade своего ноутбука НР 8510. Я поменял процессор и видеокарту. В тот момент я стал счастливым обладателем видеокарты NVIDIA Quadro FX 570M. До замены у меня стояла ATI HD 2600 Mobility, которая значительно уступала по производительности Quadro FX 570M. Но и всей вычислительной мощности Quadro FX 570M мне было мало. Пришлось использовать штатные средства разгона RivaTuner. Предельные частоты я определил, создал профиль… Но разгон видеокарты был возможен только в Windows, а я еще пользуюсь Linux и MacOS X. В Linux я знаю только одну утилиту для разгона, да и та не работает с моей видеокартой. А вот в MacOS такие утилиты вовсе отсутствуют! А как не хотелось терять производительность, тем более зная, что еще есть запас. Этот факт не давал мне покоя около года. Я перепробовал целую кучу способов, утилит, но результат был нулевой. Но все же была надежда найти способ и прошить BIOS видеокарты с нужными частотами, но не так все просто оказалось…
Для начала я решил считать BIOS видеокарты. NVFlash с задачей не справился, GPU-Z тоже. Ни одна из вышеуказанных утилит не могла считать BIOS видеокарты. После поисков в интернете, была найдена информация о том, что BIOS видеокарты хранится в системном BIOS ноутбука! Печальный факт. Но я не сдавался и искал способ «вытащить» BIOS видеокарты из системного BIOS. И этот способ был найден! Этим способом я и поделюсь с вами.
Подготовка
Итак, в наличии ноутбук НР 8510p\w, имеющий следующие характеристики:
- процессор Intel Core 2 Duo T9300 2,5 ГГц, L2 6 Мб, FSB 800 МГц;
- чипсет PM965+ICH8M;
- память 2х2Gb DDR2 800@667 МГц (4-4-4-9);
- видеокарта NVIDIA Quadro FX 570M 256 Мб GDDR3 (475/950/702 МГц);
- жёсткий диск Samsung HM320JI 320 Гб/8 Мб/5400 об/мин;
- термоинтерфейс Coollaboratory Liquid Pro;
- операционная система (на время тестов) Windows Vista Home Basic Х64;
- DirectX 11;
Задача: Отредактировать BIOS видеокарты, для повышения частот в 3D режиме и снижения частот в 2D режиме, возможно изменение каких-нибудь еще параметров.
Для выполнения задачи потребовались:
- BIOS ноутбука;
- ADDCC V3 (для работы требует установленного .NET FrameWork) для декомпилирования BIOS НР;
- HPQFlash (patched) для прошивки BIOS;
- CabPack для упаковки файла прошивки;
- RivaTuner для контроля частот и температуры;
- NiBiTor для просмотра и поиска HEX значений в BIOS видеокарты;
- любой HEX-редактор (я использовал HxD) для изменения HEX-значений в системном BIOS;
- 3DMark 05\06 для тестов;
Первый этап
Для начала запускаем программу ADDCC:
Программа попросит вас указать местоположение HEX-редактора, указываем. После чего программа готова к работе. На рисунке я обозначил цифрами последовательность действий по декомпилированию системного BIOS ноутбука. Жмем на кнопку «Load BIOS File» — загружаем файл системного BIOS от ноутбука. Программа предложит создать «патченный» файл, отказываемся, это для других задач. После успешной загрузки BIOS снимаем все галочки в поле «Decompress selection». И завершающий этап работы с программой ADDCC — жмём кнопку «Decompress» в поле «Decompress BIOS». Немного подождём (5-10 с.) и в каталоге с BIOS появится 23 файла (лично у меня, если у вас другой BIOS, может быть другое количество файлов). Нас интересует файл с названием 21_G84_000C0000_68MVD.dec (21 это порядковый номер файла, в вашем случае может отличаться) — BIOS видеокарты NVIDIA Quadro FX 570M, он-то нам и нужен! Сменим расширение файла с .dec на .bin или .rom, для удобства работы.
Второй этап
Запускаем программу NiBiTor(я использовал версию 5.3). Открываем полученный файл с BIOS видеокарты. Программа выдаст окно «Device Unknown» и предложит выбрать поколение карт, по умолчанию предлагается «GeForce 8 series», оставляем без изменений и жмем ОК. Для поиска HEX-значений нам поможет встроенный HEX-просмотрщик программы NiBiTor. Для этого в меню выбираем «Tools»-«HexView». В редакторе HxD открываем системный BIOS ноутбука.
Теперь самый трудоёмкий процесс: поиск в системном BIOS HEX значений видеоBIOS. Поскольку BIOS ноутбуков HP-Compaq зашифрованы хитрым алгоритмом, то между некоторыми значениями будут FF и 00, возможно и другие, будьте очень внимательны!
Вы должны заранее знать рабочие, проверенные частоты, которые хотите изменить в BIOS!!!
Начнём с 2D режима видеокарты. Штатные частоты: ядро 169, шейдерный домен 338, память 100 МГц.
В главном окне NiBiTor кликаем мышкой в окно 2D режима ядра, с частотой 169 МГц. В окне «HexView» программа автоматически выделяет другим цветом HEX-значения соответствующего режима. Это те значения, которые мы будем искать и редактировать в системном BIOS. Значения текущего режима идут последовательно: ядро, шейдерный домен, память:
В окне HexView видно, что для 2D режима ядра HEX-значение равно А9 00. Переходим к нашему системному BIOS ноутбука открытому в HxD, вводим в поиск А9 00 52 01 (А9 00 52 01 вводим для того, чтобы сразу найти эти значения, если искать А9 00, то таких значений в BIOS много и можно запутаться).
В программе NiBiTor удобно реализована функция редактирования: если в главном окне поменять, например, частоту ядра для 2D режима с 169 на 120 МГц, то мы увидим в «HexView» как изменится HEX-значение, было А9 00 — станет 78 00. Так что нам и не надо самим считать значения частот, программа это сделает за нас. Значением 78 00 мы и заменяем в системном BIOS А9 00.
Для остальных режимов и частот действия аналогичны. Кликаем в главное окно NiBiTor, на тот режим и частоту которые хотим изменить, исправляем, смотрим изменения значений в HexView окне, вписываем значения в системный BIOS.
На рисунке ниже я отметил все значения со скорректированными частотами в системном BIOS, для всех трёх режимов: