Практикум по чипсетам VIA

Что такое «драйверы чипсета» и зачем они нужны?
Вначале — как всегда, о главном. Драйверы нужны ОС для правильной работы с любым чипсетом. Общераспространенное (и от этого не менее огромное) заблуждение, что чипсеты Intel, в отличие от всех прочих, в драйверах не нуждаются. Нуждаются, и еще как! Просто драйверы для чипсетов Intel (по крайней мере, для многих из них) уже входят в комплект базы данных драйверов Windows 98, благодаря чему эта ОС способна определять соответствующие функциональные элементы микросхем Intel сама и устанавливать драйверы поддержки для них сразу же, еще в процессе своей инсталляции. Поэтому тезис «видно, что-то неладно с этими чипсетами VIA, раз для них требуются специальные драйверы» следует признать абсолютно ошибочным. Кстати, в Windows ME (Millennium) информация о большинстве чипсетов VIA, равно как и соответствующие драйверы, уже присутствует — дало результаты официальное соглашение по этому поводу между VIA Technologies и Microsoft.
Однако пользователи Windows 98/98SE/2000 по-прежнему нуждаются в установке VIA 4-in-1 Drivers Pack или каждого из входящих в этот комплект драйверов в отдельности. Поэтому я остановлюсь более подробно на том, что это за драйверы, для чего они служат и почему их инсталляция является необходимой для нормальной работы системы.

20080701_twistert_twin_l.jpg

VIA INF Driver
Собственно, это вообще не драйвер. Это набор INF-файлов, в которых описываются устройства, находящиеся в южных мостах VIA (в частности, ACPI-контроллер). Эти INF-файлы при установке «драйвера» копируются в базу данных устройств Windows (обычно это каталог C:\WINDOWS\INF), в результате чего при следующей перезагрузке ОС уже может определить (по паре Vendor ID / Device ID) наличие в системе соответствующих устройств, а также получить из тех же INF-файлов правильную и исчерпывающую «инструкцию» о способах общения с ними (адреса I/O портов и т. д.). Основная функ­ция VIA INF Driver, как явствует из вышенаписанного, одна — «дать системе знать» о том, что определенные устройства есть и с ними можно работать.
IRQ Routing Miniport Driver
Роутинг IRQ, т. е. распределение запроса прерываний между устройствами — важнейшая функция, свойственная любой поддерживающей спецификацию «Plug-and-Play» операционной системе. При некорректном роутинге многие устройства просто не будут правильно выполнять свои функции и даже могут вызвать ошибки в работе системы при попытке их задействования. Стандартный роутер, устанавливаемый при инсталляции Windows 98/98 SE, рассчитан только на механизм распределения IRQ, поддерживаемый чипсетами Intel; для чипсетов же VIA он несколько другой. Именно для того, чтобы система могла правильно «раздать» векторы прерываний всем установленным в компьютере устройствам, которым они требуются, и служит VIA IRQ Routing Driver. Думаем, совершенно излишне объяснять далее, насколько необходима его инсталляция для правильного функционирования всей ОС.
Небольшая тонкость: перед установкой IRQ Routing Driver VIA рекомендует разрешить в BIOS работу встроенного в чипсет USB-контроллера (обоих каналов, если он двухканальный) и выделение IRQ для контроллера USB. После инсталляции драйвера и последующей перезагрузки установки можно вернуть в привычное состояние (если они отличаются от указанных выше).

IDE BusMaster Driver
Этот драйвер, по сути, разбит на две независимые части, каждая из которых является самостоятельным драйвером, при этом по функциональности обе части одинаковы и взаимозаменяемы. В VIA 4-in-1 Drivers Pack входит только одна разновидность — VSD (Vendor Support Driver), если же используется отдельный пакет VIA IDE BusMaster Driver, то пользователю предоставляется возможность выбора из двух вариантов — вышеупомянутого VSD и «полноценного» Miniport Driver (VXD). VSD — это драйвер, работающий совместно с универсальным драйвером Windows для всех IDE BusMaster-контроллеров, в то время как Miniport Driver полностью заменяет стандартный драйвер Windows.
Позиция самой VIA по этому поводу примерно следующая: «VSD-драйвер предоставляет лучшую совместимость со всеми IDE/EIDE/ATAPI-устройствами, в то время как Miniport Driver обладает несколько большим быстродействием, но (потенциально) в ряде случаев может оказаться несовместимым с некоторыми конкретными моделями накопителей». Соответственно, 4-in-1 Drivers Pack как решение «для всех» содержит только VSD-вариант, ну а более «рисковым» пользователям предоставляется возможность установить Miniport Driver из отдельного дистрибутива. В целом же оба драйвера служат одной цели — позволить корректно задействовать поддерживаемые контроллером IDE, встроенным в южный мост, «скоростные» режимы передачи данных (Ultra ATA/66/100).

VIA GART (Graphics Address Relocation Table) Driver (VIA AGP Driver)
Этот драйвер многие называют «драйвером AGP», но такая формулировка несколько некорректна, потому что и сама шина AGP, и даже некоторые AGP-видеокарты могут вполне безболезненно функционировать и без установки этого драйвера. GART Driver обеспечивает возможность задействования только одной из возможностей шины AGP, а именно позволяет AGP-видеокарте использовать часть системного ОЗУ как продолжение своей собственной памяти, организуя там буфер для хранения текстур (так называемый режим DiME — Dynamic in Memory Execution).
Те видеочипы, которые могут работать в режиме DiME, делают это посредством GART-драйвера. Однако то, что видеокарта вставляется в слот AGP вовсе не свидетельствует о том, что она использует DiME. Например, все без исключения видеокарты на чипах 3dfx не поддерживают DiME (это связано с архитектурой самих чипов), поэтому им GART-драйвер совершенно ничего не дает, они просто «не чувствуют» его присутствия в системе. В случае же, если видеокарта пытается задействовать GART, а в системе он не установлен, как правило, следует «мертвое» зависание при первой же попытке запустить приложение, использующее 3D-акселератор (в то время как работа в GUI-приложениях может протекать вполне нормально).

Проблемы
Здесь мы более подробно остановимся на реально существующих проблемах материнских плат на чипсетах VIA, которые в некоторых случаях могут оказаться неразрешимыми, по крайней мере, стандартными средствами. То, что такие проблемы существуют (к слову, у многих чипсетов, и не только производства VIA Technologies), — доказанный факт. Однако ввиду того, что они достаточно конкретны и их действие распространяется на четко очерченный круг ситуаций, совершенно излишне бояться этих проблем. Скорее, о них просто нужно знать, а также (в некоторых случаях) уметь применять на практике «нестандартные», но проверенные способы их решения.
Платы на чипсетах VIA и видеокарты на чипах NVIDIA
При некоторых комбинациях конкретных моделей материнских плат на чипсете VIA Apollo Pro133/133A и видеокарт на базе чипов nVidia серий TNT2 и GeForce на самом деле наблюдается факт аппаратной несовместимости, выражающийся в «зависании» системы, как правило, при работе программ, использующих API Direct3D. В самом худшем случае возможен вариант, когда проблема является действительно неразрешимой, т. е. настроить данную конкретную комбинацию на нормальную работу не удается никакими средствами. С аппаратной точки зрения вопрос «вины» остается до конца не выясненным («кандидатов», по сути, целых четыре: материнская плата, чипсет, видеокарта, видеочип). Тем более что, с одной стороны, платы на Apollo Pro133/133A, свободные от этого дефекта, существуют, а с другой — то, что подобного рода «нелюбовь» демонстрируют только графические чипы nVidia, тоже наводит на определенные мысли. Совет поэтому может быть только один — либо избегать указанной комбинации, либо при сборке готовой системы выяснять наличие/отсутствие этого явления «по факту», т. е. путем достаточно продолжительного тестирования на каком-либо Direct3D-приложении.
IDE-контроллер южного моста VIA и Ultra ATA/33 CD-ROM (CD-RW, DVD)
Замечено, что некоторые приводы ATAPI CD-ROM (CD-RW, DVD), поддерживающие режим Ultra ATA/33, некорректно работают при подключении к VIA BusMaster IDE-контроллеру, входящему в состав южных мостов VIA, через стандартный 40-жильный кабель. Проблема заключается в нарушении целостности данных при чтении дисков или же в неправильном опознании формата диска при первом обращении. Способов ее решения существует два. Самый простой — запретить c помощью BIOS или диагностической утилиты из комплекта VIA IDE BusMaster Drivers использование Ultra ATA для такого накопителя. Второй способ может применяться в случаях, когда нет желания искусственно ограничивать производительность привода, — тогда необходимо его подключать с помощью 80-жильного Ultra ATA/66-кабеля (несмотря на то что устройство будет работать в режиме Ultra ATA/33!).
Выключение вторичного канала IDE посредством BIOS
В случае если вторичный канал VIA IDE-контроллера был отключен посредством BIOS, менеджер устройств Windows 98 может «потерять» оба канала IDE (показывать их как выключенные), а также определять USB-контроллер как выключенное устройство со статусом «Code 12». Реакция Windows 98 SE на отключение вторичного канала с помощью BIOS также неадекватная, но немного другая: контроллер IDE опознается как неправильно функционирующее устройство и вызывает конфликт ресурсов при запросе на прерывание. Пользователи Windows 98 SE могут справиться с этой проблемой, загрузив «заплатку» от Microsoft, находящуюся по адресу www.entry.kiev.ua/Support/245682US8.exe, пользователям же Windows 98 рекомендуется либо обновить ОС до Windows 98 SE (и потом применить вышеуказанный метод), либо пользоваться для выключения вторичного канала IDE функциями менеджера устройств Windows, а не BIOS.
Звуковая подсистема южного моста VIA 686A/B, игровой порт
На некоторых платах, использующих южные мосты VIA VT82C686A (B), может возникнуть такая проблема: после удаления из менеджера устройств встроенной в чипсет звуковой карты (AC'97 Audio) джойстик для игрового порта остается в списке существующих устройств. Происходит это оттого, что драйвер игрового порта (vjoyd.vxd) реально не может определить отсутствие или наличие устройства в системе, поэтому, будучи единожды установленным, продолжает запускаться каждый раз при старте системы. Решение проблемы элементарно: следует просто удалить устройство вручную.
Особенности системного мониторинга южных мостов 686A/B
Ввиду того что линии датчиков съема температуры инвариантны, на некоторых материнских платах сенсоры используются не в привычном порядке (сенсор N№1 — для съема температуры CPU, сенсор N№2 — для съема температуры системного блока), а наоборот. Программа VIA Hardware Monitoring System не предусматривает настройку соответствия температур номерам сигнальных линий, поэтому в качестве температуры CPU в этом случае будет отображаться температура системного блока, и наоборот. Для того чтобы исправить эту ошибку, следует обновить ПО VIA Hardware Monitoring System до версии 2.02, после чего отредактировать в любом текстовом редакторе файл HMHARD.DAT, находящийся в каталоге проинсталлированного ПО. Для прямого включения датчиков температуры файл должен содержать следующие строки:
CPU_TEMP_PIN = 1
SYSTEM_TEMP_PIN = 2
Для инверсного включения номера датчиков температуры CPU и системного блока следует поменять местами:
CPU_TEMP_PIN = 2
SYSTEM_TEMP_PIN = 1
«Пробуждение» от USB-клавиатуры
Некоторые системы, базирующиеся на материнских платах, в которых использованы южные мосты VIA (напомним, что это могут быть не только платы, полностью собранные на чипсетах VIA, но и, к примеру, платы на AMD-750/760), могут отказываться выходить из «спящего» режима по запросу от USB-клавиатуры, даже в случае, когда USB Keyboard wake-up заявлена в документации как реализованная функция. Связано это с тем, что далеко не все USB-клавиатуры поддерживают ACPI, поэтому реально эта проблема вообще не имеет отношения к чипсетам VIA. Также следует знать, что обслуживание wake-up-запросов от устройств USB появилось в чипсетах VIA только начиная с южного моста VIA VT82C686A ревизии CF, все более ранние продукты просто не поддерживают эту функцию.
Драйверная поддержка чипсетов VIA под Windows 2000
При работе систем на базе чипсетов VIA под управлением ОС Windows 2000 могут возникать сбои, связанные с некорректной работой AGP, при выходе такой системы из режима Suspend. Это происходит из-за неправильного порядка инсталляции драйверов поддержки чипсета, а именно при установке GART-драйвера для чипсетов VIA раньше VIA INF Driver. Эта проблема также может быть вызвана установкой ранних версий VIA 4-in-1 Drivers Pack, младших, чем 4.03. Помочь в этом случае может, увы, только полная переустановка системы с последующей корректной инсталляцией драйверов поддержки чипсета.

Послесловие
Как я уже писал выше, основная цель этой статьи – объяснить читателям, чем реально вызвано настороженное отношение некоторых пользователей к продукции VIA, и, по возможности, рассеять успевшие возникнуть мифы о ненадежности и/или большом количестве ошибок в ее чипсетах. VIA Technologies за короткое время смогла из «гадкого утенка» превратиться в одного из ведущих поставщиков наборов микросхем для производства материнских плат, поэтому то, что с этими платами придется иметь дело, — свершившийся факт. А раз так, то следует объективно изучать продукцию этой фирмы и знать, как правильно с ней обращаться, чтобы не создавать ни себе, ни пользователям лишних проблем.


Рекомендуем почитать: