Я тут подумал и решил, что проще написать один обзор популярно и подробно, чем каждый раз заново отвечать в
форуме на одни и теже вопросы.
Давайте попробуем на любительском уровне разобраться в драйверах для видеоадаптеров Radeon и
начнем этот разговор с их установки. Это вдвойне актуально из-за того, что последнее время на рынок широкой волной хлынули
видеокарты на чипах ATi от сторонних производителей, причем как партнеров канадской компании, так и просто перекупщиков чипов
(да, да - в западных форумах уже проскакивают сообщения даже об этом). С одной стороны, такое разнообразие выбора не может не
радовать, с другой - вызывает массу вопросов у пользователей, связанных с БИОСами таких карт и проблемами, возникающими при
установке драйверов к ним. Вопрос с БИОСами мы оставим до лучших времен, единственное, что мне хочется сказать по этому поводу,
так это что в 95% не стоит искать приключений на свою многострадальную ...карту (а вы что подумали? :) и пытаться прошить в нее
"чужой" БИОС, - чаще всего вы ничего от этого не выиграете. Тем более это не стоит делать сейчас, когда появился прекрасный
инструмент для редактирования БИОСов - RadEdit.
Давайте для начала рассмотрим, как операционная система определяет, какие же драйверы требует то или иное
устройство, и можно ли или нет, и если можно, то как "обмануть" операционку. Начнем с того, что каждое устройство имеет несколько
идентификаторов - индивидуальных кодов, которые определяют производителя, модель и модификацию устройства. Первый - это Vendor ID,
который содержит информацию о производителе нашей видеокарты. До недавних пор у всех видеоадаптеров на чипах ATi это значение было
равным 1002, что соответствовало, естественно, самой ATi, но сейчас уже встречаются карты с другими значениями, например, мне на
днях прислали БИОС карточки Radeon 7000 неизвестного производителя с Vendor ID 1569. Сразу оговорюсь, что производитель "неизвестен",
потому что я просто поленился его выяснять. На самом деле по известному идентификатору не составит особого труда его определить.
Кстати, это что-то вроде фирменного клейма и то, что он отличается от ATi-шного, может быть даже плюс, потому что это значит, что
производитель не прячется за спиной ATi и не стесняется заявить, что данная карта произведена именно им. Наверняка Gigabyte и Hercules
на своих картах будут иметь собственные Vendor ID.
Второй идентификатор - Device ID. Он определяет модель устройства, а в большинстве случаев чип, на основе
которого оно изготовлено. Это самый важный для нас идентификатор и он в принципе не должен отличаться от того, какой был назначен
чипу при рождении. Сейчас я для более подготовленных технически читателей скажу несколько "заумных" вещей, которые все остальные
могут пропустить.
Есть два независимых источника, где хранятся Device ID. Один в Video bios в PCI Data Structure, где по Offset
4 находится Vendor ID, а по Offset 6 - Device ID. Указатель на него находится по Offset 18h ROM bios. Второй источник - в регистрах
2-3 PCI Configuration Space. Туда он в свою очередь попадает так, как задумано разработчиками чипа и/или карты. Он может быть жестко
запрограммирован в каком-то Read Only регистре чипа, может просто рисоваться резисторами-перемычками на плате (как у Nvidia, например),
может задаваться какими-то байтами в ROM BIOS, а оттуда зеркалироваться на шину, может быть в отдельном config ROM, есть и другие
варианты. Поэтому теоретически существует множество возможностей для производителя наплодить кучу фантомных разновидностей по сути
одного устройства.
Третий идентификатор - SubSystem ID определяет модификацию устройства. Ну, например, Radeon VE
с SDR или с DDR памятью будут иметь разные SubSystem ID. Более того, разные SubSystem ID могут иметь даже абсолютно одинаковые карты,
но с разными рабочими частотами. По большому счету SubSystem ID чаще всего особой роли не играет.
Есть еще и четвертый - Subsystem Vendor ID, но он нас вообще не интересует.
Теперь вернемся к тому, как устанавливаются драйверы.
Операционная система считывает все три идентификатора устройства и сравнивает их с теми, которые есть в ее
базе драйверов (надеюсь, что все помнят, что для наиболее распространенных устройств драйверы есть в составе инсталляционного
пакета самой операционки). Для Radeon-ов драйверы есть только в составе Windows XP, но и для нее все же лучше устанавливать "свежие"
драйверы по той простой причине, что MS поступила следующим образом - для драйверов, входящих в ее состав, встроенная поддержка API
OpenGL отсутствует. Для видеокарт всех производителей, а не только для ATi, насколько мне известно. И если вы собираетесь играть в игры, базирующиеся
на этом API (Quake, Serious Sam, например), то имеет смысл устанавливать драйверы производителя, которые идут отдельным пакетом
(самые последние версии всегда можно скачать с нашего сайта).
Что представляет собой инсталляционный пакет драйверов? Это набор файлов, через которые после их распаковки
и установки операционная система работает с видеокартой. Очень часто в инсталляционном пакете драйверов присутствуют файлы для
нескольких родственных, но не одинаковых устройств и какие из этих файлов будут использоваться картой, а какие нет, определяет
специальный конфигурационный файл, имеющий расширение *.inf. Именно в нем находится список устройств, для которых эти драйверы
предназначены, именно с ним сверяет операционная система идентификаторы устройства, определенные аппаратно. Строки этого списка
устройств имеют вид:
"RADEON 7000/VE" = RV100_ENU, PCI\VEN_1002&DEV_5159&SUBSYS_000A1002
Что значат эти строки? "RADEON 7000/VE" - это имя, которое ваша видеокарта будет иметь в закладке
"Система" => "Оборудование" в списке установленных устройств. RV100_ENU - это раздел в inf-файле, точнее даже несколько разделов,
в которых описано, какие файлы из инсталляционного пакета и как именно надо устанавливать, с какими настройками должна работать
видеокарта, какие изменения необходимо внести в системный реестр. VEN_1002 - это Vendor ID, DEV_5159 - Device ID и SUBSYS_000A1002 -
SubSystem ID. Если все три ID совпадают с теми, которые зашиты в вашей видеокарте, операционная система делает вывод, что данные
драйверы подходят к устройству, иначе выдается сообщение, что нужные драйверы не найдены.
Идем дальше?
Давайте рассмотрим внимательнее список устройств в inf-файле.
Что мы видим? А то что, например, все видеокарты на чипе RV100 (Radeon 7000/VE в различных модификациях),
несмотря на различные SubSystem ID, имеют одно и тоже наименование установочного раздела - RV100_ENU. Карты на чипах R100 - R6_ENU_default.
(Небольшое дополнение по просьбе читателей: В Windows XP и 2000 эти разделы имеют другие имена - например, ati2mtag_RV100, ati2mtag_default).
Это те самые разделы, которые отвечают за установку и конфигурирование видеокарты. Более того, наименование этого раздела не зависит и от Vendor
ID и определяется только Device ID, т.е. чипом, на котором сделан видеоадаптер. Какие из этого следуют практические выводы? А такие,
что нам не нужно знать, кто производитель нашего видеоадаптера и какая на нем установлена память (точнее это надо знать, но для
других целей, например, чтоб прикинуть его производительность). Но надо обязательно знать, на базе какого чипа изготовлена видеокарта.
Зная это, вы абсолютно безбоязненно сможете принудительно установить драйверы от аналогичной карточки.
Уже предвижу вопрос: "А как это сделать?" Рассказываю. Откройте Панель управления => Система => Видеоадаптеры,
выделите ваш Radeon, который виден в системе как "Стандартный VGA видеоадаптер" и нажмите кнопку "Свойства". Откроется новое окно,
в котором надо открыть закладку "Драйвер" и нажать "Обновить драйвер". В появившемся окне выделите "Отобразить список всех драйверов,
чтобы выбрать наиболее подходящий". Откроется еще одно окно, в нем ставим галку напротив "Отобразить полный список устройств", затем
нажимаем "Установить с диска" и указываем путь к папке, в которую распаковали драйверы. Нажимаем "Далее" и в открывшемся списке
выбираем родственное устройство на аналогичном чипе. Все остальное Windows сделает сама. Для вступления изменений в силу потребуется
перезагрузка.
Второй способ посложнее, но позволит вам отредактировать inf-файл таким образом, что Windows самостоятельно
определит вашу карту. Для этого открываем реестр и ищем ветку
• Для Win9x/ME:
HKLM\Config\000х\Display\Settings\PCI_VEN_****&DEV_****&SUBSYS_********
• Для Win XP:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Settings\Video\PCI:VEN_****&DEV_****&SUBSYS_********
Где вместо * будут ID вашей карты. Причем обратите внимание, что Device ID у Radeon могут быть следующие:
• R100 (Radeon SDR, Radeon DDR, Radeon LE, Radeon VIVO, Radeon 7200) - 5144;
• RV100 (Radeon VE, Radeon 7000) - 5159;
• RV200 (Radeon 7500) - 5157;
• R200 (Radeon 8500/8500 LE) - 514C.
Можно открыть редактор реестра, ввести в строке поиска Device ID вашей карты и быстро
получить искомую строчку, которая присутствует еще в нескольких ветвях реестра. Дальше распаковываем инсталляционный
пакет драйверов в какую-либо папку и находим там один из следующих файлов:
• atii9xag.inf для Win9x/ME;
• atiixpag.inf для Win XP;
• atii2kag.inf для W2k.
Открываем его в тестовом редакторе, лучше в Блокноте, и вставляем в список устройств дополнительную
строку, в которой заменяем присутствующие там Vendor ID и SubSystem ID на те, которые зашиты в вашей карте и которые только
что были найдены в системном реестре. При установке подредактированных драйверов Windows найдет вашу карту самостоятельно.
Существует и третий метод - редактирование БИОСа видеокарты, но его мы благоразумно пропустим вообще.
Пока... Возможно в дальнейшем мы расскажем и об этом.
Еще одно замечание. Драйверы могут не устанавливаться также по причине того, что у вас просто сильно
замусорена или некорректно установлена система, отсутствуют или повреждены системные файлы. Поэтому столкнувшись с проблемой,
не спешите делать вывод о том, что у вас нестандартная видеокарта.
Удачи!
|