Видеокарты

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




Введение…

В данном материале я хочу рассказать вам о процедуре изменения и последующей перепрошивки 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 Writers)

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

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

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

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

с помощью твикера, который постоянно висит в памяти (что огорчает, согласитесь ) 

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

Мне могут возразить: я, мол, разгоняю «руками через реестр», т.е. напрямую прописываю частоты карты в соответствующих ветках реестра. Да, сейчас эта опция доступна, но до недавнего времени ключи были зашифрованы хитрым алгоритмом, и только с расшифровкой ключей Unwinder'ом этот подход стал широкодоступным. Да и зачем «лопатить реестр», перепрошивать биос, когда можно взять 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. Внимательно изучите, подходит ли вам выбранный биос по различным параметрам: чипу, типу памяти, наличию дополнительных функций и т.д.

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

Берем прошивальщик биоса (либо аналогичного класса программу) и сохраняем локально образ видеобиоса. Это будет небольшой, порядка 50 КБ, файл. 

Полученному файлу даем простое имя (например, my.bin) и помещаем его в корневой каталог системной дискеты. Копию помещаем в корень диска С: 

Теперь добавляем к этому файлу недостающие для перепрошивки файлы — собственно, сам прошивальщик и библиотеки для его работы. В случае прошивки референс-биоса от NVIDIA это будет соответствующий nvXXflash.exe и DOS-extender dos4gw.exe. 

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

После этого создаем системные файлы autoexec.bat и config.sys на случай неудачи. Вы можете скачать наши файлы либо подготовить свои; главное, чтобы через N (у нас установлено в 10) секунд машина автоматически пыталась прошить оригинальный биос.

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 — файл видеобиоса, 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 (производителя, модели и т.д.), частоты чипа и памяти, которые являются дефолтными (по умолчанию), тайминги, выводимые при загрузке надписи и т.д. Программа предоставляет развитый графический интерфейс, избавляя нас от разбора шестнадцатеричных чисел «подопытного» файла с биосом, поэтому работа с ней — одно удовольствие: загрузили нужный (текущий или с диска) биос, откорректировали необходимые параметры и сохранили в виде файла на диск. После этого запустили прошивальщик, и «дело в шляпе».

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





Верхний блок из двух редактируемых полей — строки, выводимые при загрузке машины (можно написать что угодно, вплоть до «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»



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

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



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

И последний момент, на который хотелось бы обратить ваше внимание — несовпадение контрольной суммы файла BIOSа. Довольно часто пользователи сталкиваются с такой проблемой, и GF123Bios 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 и поменьше распространяться в гарантийной мастерской о проделанной процедуре. В случае неудачи вам нужно будет обратиться к специалистам для восстановления биоса либо замены видеокарты.

Удачи!