Перепрошивка BIOS видеокарт с чипами GeForce (GeForce256, GeForce2, GeForce3)

05.10.2001


Введение…

В данном материале я хочу рассказать вам о процедуре изменения и последующей перепрошивке BIOS (от англ. Basic Input-Output System - Базовая Система Ввода-Вывода) видеокарт класса GeForce, GeForce2 и GeForce3 от NVIDIA. Как вы уже, наверное, знаете BIOS - один из самых важных элементов функционирования карты, поэтому вопрос его «замены», по-моему, более чем серьезен. Мы уже обращались к этой теме, когда рассматривали перепрошивку BIOS на более ранних чипах серии TNT2, однако жизнь вносит свои коррективы, появляется новое железо, новые программное обеспечение и пришло время вновь затронуть эту тему, на этот раз для семейства GeForce/GeForce2/GeForce3. Для тех, кто не читал прошлый материал я рекомендую ознакомиться с ним - в свое время он был довольно известен в Рунете, читавшие же его ранее также найдут для себя нечто новое (я надеюсь :-)). Как и в прошлый раз, рассмотрим теоретические аспекты этого вопроса и инструменты, позволяющие получить практический результат. В начале хочу напомнить о существующем многообразии различных биосов. Будьте внимательны, выбирая биос для последующей работы - обратите внимание на соответствие параметров вашей видеокарты (чип, тип памяти и ее размер, производитель и др.) и «желанного» биоса. Если все в порядке, то переходим к теории, не забывая, что речь будет о семействе GeForce/GeForce2/GeForce3 и его различных модификациях (SDR/DDR, МХ, GTS, Pro, Ultra).

Зачем вам менять BIOS?

Предлагаю вначале провести эдакий соцопрос на тему «Зачем вам менять BIOS?». Возможно, что надобности в этой процедуре то и нет. Особенно это относится к новичкам, которые наслушавшись разговоров «бывалых», тоже решаются на этот шаг, плохо осознавая что и зачем делают. Именно они потом появляются на всевозможных «железных» конференциях с криками «Я перепрошил биос, теперь мой компьютер не грузится!». Именно для того, чтобы процент таких возгласов был как можно меньше и проведем наш соцопрос.

  • Хочу BIOS с поддержкой SBA (Fast Writes)

    Прирост от включения SBA (см. "Что такое SBA? Нужно ли оно мне и как его поставить себе?"), как впрочем и Fast Writes (см. "Что такое режим «Fast Writes»?"), невелик, чему свидетельствует данный материал, т.е. лично я бы из-за этого не менял биос (а вдруг случайно запорю - возиться потом не очень-то охота :-)). С другой стороны, если у вас GeForce2 MX, то биоса с поддержкой SBA я для него не встречал, а если GeForce2 GTS, то он по умолчанию у «нормальных» производителей включен.

    Но даже не это главное в данном случае. Главное - внимательно проверьте, поддерживает ли ваша материнская плата данный режим. Проверить это можно либо в документации по материнской плате, либо используя специальные утилиты - RivaTuner, ZTAGPTool, PCIList, PowerStrip. Вы также можете воспользоваться нашим FAQ (часть 1, часть 5) - там уже освещен данный вопрос по самым распространенным чипсетам. Так вот, если вдруг ваша материнская плата НЕ поддерживает искомый режим, то пусть у вас будет хоть самый наипоследнейший биос с поддержкой SBA, Fast Writes и прочих чудес, воспользоваться вы ими не сможете. Причем совсем!

  • Хочу разогнать свою карту, изменив частоты прямо в BIOS, чтобы не загружать каждый раз твикер, например PowerStrip

    До недавних пор для обладателей GeFoce-ов этот вопрос стоял очень остро, т.к. разгон возможен был двумя способами:

    • с помощью твикера, который постоянно висит в памяти (что огорчает, согласитесь :-))
    • через закладку Детонатора/фирменных драйверов (детонаторы имеют ограничение по разгону, а фирменные драйверы не всегда имеют закладку, либо почти всегда «довольно стары и медленноваты»)

      Мне могут возразить - мол-де, я разгоняю «руками через реестр», т.е напрямую прописываю частоты карты в соответствующих ветках реестра. Да, сейчас эта опция доступна, но до недавнего времени ключи были зашифрованы хитрым алгоритмом и только с расшифровкой ключей Unwinder`ом стал широкодоступным этот подход. Да и зачем «лопатить реестр», перепрошивать биос, когда можно взять RivaTuner с закладкой разгона и, спокойно выставив нужные частоты, записать их в реестр.

    Разгон с помощью RivaTuner

      Для тех же, кто перешел на GeForce с TNT2 и привык к TNTClck можно воспользоваться старшим братом - GF2Clck. На ней мы остановимся более подробно чуть позже. Вывод - на данный момент лучшие твикеры для GeForce/GeForce2 позволяют разгонять видеокарты без перепрошивки биоса и без постоянного нахождения в ОЗУ машины.

  • Хочу уменьшить тайминги памяти и тем самым увеличить скорость…

    По данному вопросу можно отметить два момента: во-первых, значения таймингов для линейки GeForce до сих пор не расшифрованы, а во-вторых, вряд ли можно существенно поднять производительность меняя тайминги памяти. Таким образом можно скорее понизить стабильность работы платы, чем увеличить быстройдействие.

  • Хочу разогнать карту под ОС UNIX (или ее клоном).

    Да, надо признать, что пока под UNIX-системами довольно мало такого рода программ (я имею в виду "твикалки"). Поэтому теперь наряду с NVClock можно использовать и метод разгона путем внесения необходимых частот в BIOS.

  • Хочу поменять Sub Vendor ID/ Sub Vendor Model.

    Если вы хотите сделать из своего noname фирменную карту (например, для последющей установки фирменного ПО), то изменение ID с последующей перепрошивкой биоса как раз для вас. Другого способа на сегодня нет (разве что программный взлом драйверов, но это уголовно наказуемое деяние).

  • Хочу поменять BIOS на более свежий - у меня некорректно работает карта

    Это веская причина при соблюдении двух условий - ваша видеокарта и вправду функционирует местами некорректно (кстати, а почему вы сразу не поменяли ее по гарантии?!) и новый биос исправляет именно «ваши» проблемы. Тогда, конечно, стоит заняться перепрошивкой. А если ситуация обстоит так, что вышел новый биос в котором исправлено «то-се», но у вас карта прекрасно работает и со старым, то зачем искать себе на голову приключений? :-) Кстати, в настоящее время перепрошивка биоса стала уже чем-то обыденным (написано много материалов, даны тонны рекомендаций и т.д.), следствием этого является, что при нестабильной работе платы новички в первую очередь пытаются перепрошить биос - мол, перепрошью и все будет ОК. На самом деле, как показывает опыт, перепрошивка реально требуется довольно редко. Чаше всего нестабильность обусловлена перегревом платы (на чипах нет не только вентилятора, но и радиатора!), некачественным монтажом элементов или плохим качеством комплектующих. Зачастую влияет «замусоренность» ОС или неправильная установка драйверов, но уж никак не биос…

Подготовка к перепрошивке биоса

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

Правильный выбор биоса

BIOSы различных производителей отличаются своими обозначениями (кодом). Например, NVIDIA обозначает свои BIOSы набором «CC.cc.mm.ee.oo», где «oo» - OEM-версия, а Creative - «CC.cc.oo.mm.ee». То есть,

  • в транскрипции от NVIDIA - 2.10.01.04.1
  • в транскрипции от Creative - 2.10.1.01.04

Поэтому рекомендуем убедиться, какой биос и для какой карты вы собираетесь прошивать. Как показывает практика, есть «умельцы», пытающиеся увеличить производительность TNT2, прошивая биос от GeForce. Внимательно изучите, подходит ли выбранный биос вам по различным параметрам - чипу, типу памяти, наличию дополнительных функций и т.д.

Резервирование биоса

  1. Берем прошивальщик биоса (либо аналогичного класса программу) и сохраняем локально образ видеобиоса. Это будет небольшой, порядка 50 Кб, файл.
  2. Полученному файлу даем простое имя (например, «my.bin») и помещаем его в корневой каталог системной дискеты. Копию его помещаем в корень диска «С:»
  3. Теперь добавляем к этому файлу недостающие для перепрошивки файлы - собственно, сам прошивальщик и библиотеки для его работы. В случае прошивки референс-биоса от NVIDIA это будет соответствующий nvXXflash.exe и DOS-extender dos4gw.exe.
  4. Проверяем, грузится ли машина с этой системной дискеты. По собственному опыту знаю, что со временем дискеты «сыпятся», а проверить, рабочий ли диск до сих пор обычно лень. В данном случае это обязательный пункт.
  5. После этого создаем системные файлы autoecec.bat и config.sys на случай неудачи. Вы можете скачать наши файлы, либо подготовить свои; главное, чтобы через N (в нашем случае через 10) секунд машина автоматически пыталась прошить биос-оригинал.
  6. Внимательно проверяем наличие всего необходимого еще раз и приступаем непосредственно к процедуре модификации/перепрошивки.
  7. autoexec.bat

    CLS
    PROMPT
    $p$g
    GOTO
    %CONFIG%
    :success
    GOTO end
    :failed
    nvflash my.bin
    GOTO End
    :end

    config.sys

    [Menu]
    MENUITEM = success, Bios successfully changed
    MENUITEM = failed, Bios change is FAILED!
    MENUDEFAULT = failed, 10
    [success]
    [failed]


Проверка биоса «на совместимость»

После подготовки резервной копии нужно проверить, подходит ли вам выбранный биос по различным критериям - различным ID, контрольной сумме и т.д. Для этого воспользуемся чудесной программой VGABios. Эта программа представляет из собой динамически загружаемый драйвер, который позволяет подгружать BIOS с диска. VGABios перезаписывает ту область системного ОЗУ, где кэшируется BIOS видеокарты (в BIOSе материнской платы предварительно должно быть включено кэширование в системное ОЗУ BIOSа видеокарты). При этом содержимое ПЗУ видеокарты не изменяется. Для постоянного использования необходимо прописать загрузку программы в «autoexec.bat» (сама программа и файл BIOSа должны быть в одной папке диска, лучше в корне, чтобы не запутаться с путями):

c:\vgabios -fROMFile -tM

где «ROMFile» - файл видео-BIOSа, «M» - TV-режим (значения от 0 до 5)

Тем же VGABios-ом проверяется работоспособность прошиваемого BIOSа - загрузили, проверили, если всё ОК - то, шьём. То есть, в случае неудачной загрузке вам следует просто загрузиться с обычной системной дискеты и отменить вызов VGABios-а в «autoexec.bat».

Перепрошивка биоса

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

Общие рекомендации к перепрошивке

Обычно процедура перепрошивки выполняется из «чистого DOS-а» (в Win 9X по нажатию «Shift + F5»), что и рекомендуется, однако торопыги могут выполнять и из окна MS-DOS из Windows… Для NT и Windows 2000, вероятнее всего лучше загрузиться с DOS-дискеты. Директории и имена файлов, где они будут хранится, лучше всего давать максимально простые - для удобства, если придется оперировать с командной строкой… Дальше - желательно наличие блока бесперебойного питания (на случай появления экскаватора для починки магистрали или дяди Васи-электрика) или хотя бы сетевого фильтра для помехозащищенности. Если у вас наличествует разгон какого-либо компонента или их совокупность (процессор, видеокарта…), то лучше перевести все в штатный режим функционирования, хотя, возможно спокойная прошивка при системной шине 83 МГц и прилично разогнанной видеокарте… Но, это из области «как делать не надо».

Редактирование биоса

Для редактирования биоса воспользуемся лучшей (и единственной?) программой в этом классе - GF123Bios Edit, предназначенной для редактирования биоса карт на базе GeForce256 (SDR/DDR), GeForce2 (МХ, МХ100, МХ200, МХ400, GST, Pro, Utra) и GeForce3. Я намеренно перечислил все модификации, т.к. если написать просто «плат на чипах GeForce», то посыпятся вопросы плана «Вот, вы писали про GeForce, а как мне прошить мою NVIDIA GeForce2 MX?». Итак, вернемся к GF123Bios Edit. Программа предназначена только! для редактирования биоса, но не для самой перепрошивки. Редактировать можно: различные ID (производителя, модели и т.д.), частоты чипа и памяти, которые является дефолтными (по умолчанию), тайминги, надписи, выводимые при загрузке и т.д. Программа предоставляет развитый графический интерфейс, избавляя нас от разбора 16-тиричных чисел «подопытного» файла с биосом, поэтому работа с ней - одно удовольствие - загрузили нужный (текущий или с диска) биос, откорректировали необходимые параметры и сохранили в виде файла на диск. После этого запустили прошивальщик и «дело в шляпе».

Рассмотрим саму программу:

Главное окно GF123BiosEdit

  • Верхний блок из 2-х редактируемых полей - строки, выводимые при загрузки машины (можно написать что угодно, вплоть до «NVIDIA GeForce4 GTS VGA BIOS»)
  • SubVendorID, SubVendor Model - ID фирмы производителя карты и модели
  • NVIDIA Model - идентификатор чипсета (модель чипа, установленного на видеокарте)
  • Core Clock/Memory Clock - частоты ядра/памяти соответственно
  • Current Clocks - блок для установки частоты ядра (core), частоты памяти (memory) и таймингов памяти (последние настоятельно не рекомендую менять, т.к. информации по расшифровки значений на данный момент нет)
  • Блок кнопок «Common» - обеспечивает получение текущего BIOSа («Get Current BIOS»), открытие («Open BIOS file») и сохранение («Save BIOS file») файлов с BIOSом. Важное замечание - для начала работы выполните чтение текущего образа BIOS - из памяти либо с диска!
  • Блок кнопок «Special» - обеспечивает загрузку фонтов («BIOS Font») для «русификации» BIOSа и синхронизацию копий биоса («Sync with 1st»)

Остановимся подробнее на некоторых рабочих моментах программы. Для этого рассмотрим новинку от VICO - работу с фонтами, прошитыми в BIOS. Вызов данной функции производится кнопкой «BIOS Font»

Выбор файла фонта в GF123BiosEdit

Эта функция позволяет заменять кодовую таблицу шрифтов в видеобиосе на любую из определенных в CPI-файлах комплекта DOS (находятся для Windows98 в каталоге %WIN%\COMMAND\). Для чего это, спросите вы? Во-первых, это позволяет читать корректно русский язык не загружая пресловутый display.sys и не отдавая ему порядка 10 Кб ОЗУ. Например, это может пригодиться при загрузке в Safe Mode…

Для установки русской кодировки на большинстве машин будет достаточно загрузить ega3.cpi и выбрать 866-ю кодировку.

Таблица 866-й кодировки

Следующая новинка по сравнению с TNT Bios Edit - это синхронизация копий биоса от NVIDIA и производителя карты. По идее они должны совпадать, но некоторые фирмы-«умники» пишут в свою копию оригинальные значения. Эта функция - кнопка «Sync with 1st» - поможет вам избежать рассинхронизации копий.

И, последний момент, на который бы хотелось указать - несовпадение контрольной суммы файла BIOSа. Довольно часто пользователи сталкиваются с такой проблемой, и GF123 BIOS Edit ее успешно решает - просто загрузите файл биоса в программу, а затем сохраните - контрольная сумма будет перерасчитана и образом можно пользоваться.

Замечание: для работы программы необходима предварительная установка run-time библиотеки «LabWindows/CVI Run-Time Engine», которую можно взять там же, где вы взяли основную программу…

Непосредственно замена биоса

После подготовки образа биоса к перепрошивке (с предварительным редактированием или без оного) файл биоса нужно «залить» в видеобиос. Для референсных биосов используется программа nvFlashХХ.exe, точнее, ее определенная версия. В нашем случае, для GeForce256 (SDR/DDR), GeForce2 (MX, MX100, MX200, MX400, GTS, Pro, Ultra) и GeForce3 это nvflash.exe

Формат запуска файла из командной строки таков:

с:\nvflash change.bin

где «change.bin» - файл прошиваемого BIOSа

После выполнения данной команды биос прошит. С чем вас и поздравляю.

Что делать в случае неудачи?

В случае неудачи не нужно судорожно жать на кнопку «Power» в надежде, что «еще не поздно» и может «оно еще не прошило». Лучше спокойно попробуйте повторить процедуру перепрошивки. Если, не получилось - попробуйте восстановить резервный BIOS (можно и второй раз, после загрузки со сделанной системной дискеты). Если же ваш компьютер все равно не грузится - карта не оживает, то нужно взять старую ISA- или PCI-карту (только неперепрограммируемую - nonFlashable) и вставить в машину. Далее повторяем процедуру прошивки заново. Дело в том, что первым в машине включается именно видеокарта, а ISA-видеокарта - более «старое» устройство и включается независимо, не требуя BIOSа (в компьютерах с BIOSом Award на материнской плате есть boot-block, инициализирующий ISA-карту).

Если в результате манипуляций видеокарта не ожила… Что ж вам нужно обратиться к специалисту, либо в фирму, продавшую вам видеокарту.

Что делать, если прощивальщик «не понимает» биос?

Иногда пользователь при попытке перепрошивки получает сообщение вроде «EEPROM not found, не могу прошить биос и т.д.». Здесь возможны несколько причин. Причина первая и самая тривиальная - ваша карта непрошиваема, т.е. у вас стоит неперепрограммируемая микросхема биоса (сейчас это редкость, но случается). Причина вторая - данная программа-прошивальщик не подходит к вашей карте (либо не тот ID, либо не поддерживаемый тип микросхемы). В этом случае можно попытаться найти другой прошивальщик - либо фирмы-производителя карты, либо референсный от NVIDIA (надо сказать, что он подходит к большинству карт). И, наконец, третья причина - несовпадение контрольной суммы файла биоса. Эта проблема решается просто - нужно загрузить файл в GF123Bios Edit и сохранить его на диск под другим именем. Новый файл уже будет дополнен до машинного слова и контрольная сумма будет в порядке.

Заключение

Помните, что, изменяя/перепрошивая BIOS видеокарты, вы тем самым производите несанкционированное вмешательство в «устройство прибора». Тем самым вы автоматически лишаетесь гарантии продавца на товар, даже если все прошло удачно. Здесь уместно указать следующее: если карта перестала нормально функционировать по какой-либо причине, не связанной с вашей перепрошивкой BIOSа то, никто не мешает вам перепрошить «родной» BIOS и поменьше распространяться в гарантийной мастерской о проделанной процедуре. В случае неудачи вам нужно будет обратиться к специалистам для восстановления биоса либо замены видеокарты.

Удачи!



Игорь Шевченко a.k.a. Bishop (weevil@mail.ru)

Большое спасибо VICO за предоставленные программы и консультации

Спасибо Usatiy за подготовку материала

Отдельное спасибо Dmitry Galkin, Konstantin Novick за ряд критических замечаний по материалу

Линки по теме: