Драйвер ForceWare для Windows 2000/XP

Источник: nvwold

В этом материале мы объясняем, какими способами, методами и приемами нам удается получать сокращенные дистрибутивы драйверов NVIDIA, в разы меньшие по размеру оригинальным с сайта nvidia.com, и как это сказывается на их использовании.

Проблема разрастания размера дистрибутива весьма актуальна. Если посмотреть в прошлое, то дистрибутив драйвера NVIDIA для видеокарт версии 21.83 для Windows 2000 выпуска 2001 года имел размер 6 мегабайт (с интернациональной поддержкой). Интернациональный дистрибутив нынешних версий драйвера насчитывает почти 300 различных файлов и "весит" более 60 мегабайт. С одной стороны, за прошедшие годы фирма NVIDIA выпустила десятки видеочипов, а с учетом следования NVIDIA концепции Unified Driver Architecture - "много карт - один драйвер", добавление поддержки всех этих процессоров не могло не привести к увеличению размера пакета драйвера. Выходили новые чипсеты материнских плат, новые процессоры, новые версии DirectX и OpenGL, и даже новые операционные системы, на все это приходилось реагировать, и драйвер все увеличивался и увеличивался. С другой стороны, с неменьшей скоростью драйвер обрастал файлами и утилитами, имевшими подчас далекое отношение к собственно драйверу. В этом материале мы покажем, за что вас вынуждают все дольше и дольше дожидаться загрузки пакета драйвера из Интернет, и что из этого набора выброшено нами с целью уменьшения размера пакета драйвера.

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

В самом начале скачанный дистрибутив мы распаковываем с помощью архиватора, понимающего форматы сжатия Microsoft Cabinet file (.CAB), например WinRAR или Power Archiver. Хотя использование самораспаковки и автозапуска установки сокращает время установки пакета драйвера, затраты размера дистрибутива на эти функции великоваты; в любом случае, подобный сервис современных архиваторов будет компактнее, нежели стандартная функция InstallShield.

Файлы в составе дистрибутива драйвера:

Файл драйвера

Назначение

Действие

Примечания

setup.bmp Картинка, показываемая при запуске инсталлятора Удаляется  
data1.cab Архив с файлами инсталлятора Удаляется  
data2.cab Архив с файлами инсталлятора Удаляется  
engine32.cab Архив  с "движком" инсталлятора (ISScript) Удаляется  
nv4_disp.cat Цифровая подпись драйвера Удаляется Поскольку вносятся изменения в .inf файл, подпись становится недействительной
setup.ini Файл конфигурации инсталлятора Удаляется  
nvudisp.exe Деинсталлятор драйвера Остается  
setup.exe Инсталлятор драйвера Удаляется  
nv4_disp.inf Файл сведений об оборудовании и драйвере Остается  
nv3d.chm Файл помощи по настройкам 3D новой панели управления (английский язык) Удаляется  
nv3D***.chm Файлы помощи по настройкам 3D новой панели управления (разные языки) Удаляются, кроме nv3dRUS.chm Оставляется вариант на русском языке
nvcpl.chm Файл общей помощи новой панели управления (английский язык) Удаляется  
nvcpl***.chm Файлы общей помощи новой панели управления (разные языки) Удаляются, кроме nvcplrus.chm Оставляется вариант на русском языке
nvdsp.chm Файл помощи по настройкам цвета и ТВ-выхода новой панели управления (английский язык) Удаляется  
nvdsp***.chm Файлы помощи по настройкам цвета и ТВ-выхода новой панели управления (разные языки) Удаляются, кроме nvdspRUS.chm Оставляется вариант на русском языке
nvmob.chm Файл помощи по настройкам видеоадаптеров в ноутбуках новой панели управления (английский язык) Удаляется  
nvmob***.chm Файлы помощи по настройкам видеоадаптеров в ноутбуках новой панели управления (разные языки) Удаляются Для ноутбуков выпускается отдельный драйвер
modes.txt Справочник по поддерживаемым видеорежимам Удаляется  
layout.bin Файл ресурсов инсталлятора Удаляется  
nvcpl.cpl Приложение панели управления Windows для запуска новой панели управления драйвера Остается  
nvtuicpl.cpl Приложение панели управления Windows для запуска менеджера рабочих столов nView Остается  
nv4_disp.dll Основной файл драйвера (2D и DirectX функции) Остается  
nvapi.dll Интерфейс взаимодействия компонентов новой панели управления Остается  
nvcod.dll Компонент инсталлятора/деинсталлятора Остается  
nvcpl.dll Классическая панель управления драйвера (закладка в свойствах экрана) Остается  
nvcpluir.dll Компонент классической панели управления (закладка выбора между новой и классической панелями) Остается  
nvdisps.dll Компонент новой панели управления (настройки мультимониторности и цвета) Остается  
nvdispsr.dll Файл ресурсов новой панели управления (настройки мультимониторности и цвета) Остается  
nvexpbar.dll Файл ресурсов интерфейса новой панели управления Остается  
nvgames.dll Компонент новой панели управления (настройки 3D) Остается  
nvgamesr.dll Файл ресурсов новой панели управления (настройки 3D) Остается  
nvhwvid.dll Драйвер аппаратного ускорения PureVideo Остается  
nview.dll Компонент классической панели управления (закладка настройки мультимониторности) Остается  
nvmccs.dll Компонент классической панели управления (средство Direct Access для прямого управления монитором) Удаляется Ввиду возможного  повреждения монитора эта функция по умолчанию отключена 
nvmccsrs.dll Файл ресурсов классической панели управления (средства Direct Access) Удаляется  
nvmccss.dll Компонент новой панели управления (средство Direct Access для прямого управления монитором) Удаляется Ввиду возможного  повреждения монитора эта функция по умолчанию отключена 
nvmccssr.dll Файл ресурсов новой панели управления (средства Direct Access) Удаляется  
nvmctray.dll Компонент панели управления (значок в системном трее) Остается  
nvmobls.dll Компонент новой панели управления (настройки видеоадаптеров в ноутбуках) Удаляется Для ноутбуков выпускается отдельный драйвер
nvmoblsr.dll Файл ресурсов новой панели управления (настройки видеоадаптеров в ноутбуках) Удаляется  
nvnt4cpl.dll Компонент менеджера рабочих столов nView Остается  
nvoglnt.dll Драйвер OpenGL ICD Остается  
nvrs**.dll Файлы локализации классической панели управления Удаляются, кроме nvrsru.dll Оставляется вариант на русском языке
nvshell.dll Компонент панели управления (расширение меню по щелчку правой кнопкой мыши на рабочем столе) Удаляется  
nvvitvs.dll Компонент новой панели управления (настройки видео и ТВ-выхода) Остается  
nvvitvsr.dll Файл ресурсов новой панели управления (настройки видео и ТВ-выхода) Остается  
nvwddi.dll Компонент менеджера рабочих столов nView Остается  
nvwdmcpl.dll Компонент менеджера рабочих столов nView Остается  
nvwimg.dll Файл ресурсов менеджера рабочих столов nView (изображения) Остается  
nvwrs**.dll Файлы локализации менеджера рабочих столов nView Удаляются, кроме nvwrsru.dll Оставляется вариант на русском языке
nvwss.dll Компонент новой панели управления (настройки 3D видеокарт Quadro) Удаляется  
nvwssr.dll Файл ресурсов новой панели управления (настройки 3D видеокарт Quadro) Удаляется Для видеокарт Quadro выпускается отдельный драйвер
keystone.exe Приложение менеджера рабочих столов nView (мастер подгонки геометрии изображения под монитор) Удаляется  
nvappbar.exe Приложение панели управления (панель с кнопками быстрого вызова функций драйвера на рабочем столе) Удаляется  
nvcolor.exe Приложение панели управления (мастер цветовой настройки монитора) Остается Аналог известного приложения Adobe Gamma
nvcplui.exe Исполняемый файл новой панели управления Остается  
nvdspsch.exe Приложение панели управления (быстрый выбор схемы мультимониторности) Удаляется  
nvepclnt.exe Приложение менеджера рабочих столов nView (импорт-экспорт профиля) Остается  
nvsvc32.exe Системная служба, обеспечивающая  взаимодействие между панелью управления и драйвером) Остается  
nwiz.exe Приложение менеджера рабочих столов nView (мастер создания профиля) Остается  
data1.hdr Файл ресурсов инсталлятора Удаляется  
NVCPL.HLP Файл помощи классической панели управления (английский язык) Удаляется  
NVCP**.HL_ Файлы помощи классической панели управления (разные языки) Удаляются, кроме NVCPRU.HLP Оставляется вариант на русском языке
nvwcpel.hlp Файл помощи менеджера рабочих столов nView (английский язык) Удаляется  
nvwcp**.hlp Файлы помощи менеджера рабочих столов nView (разные языки) Удаляются, кроме nvwcpru.hlp Оставляется вариант на русском языке
setup.ibt Файл ресурсов инсталлятора Удаляется  
setup.inx Файл ресурсов инсталлятора Удаляется  
setup.iss Скрипт инталлятора Удаляется  
NVDisp.nvu Файл ресурсов деинсталлятора Остается  
setup.skin Файл темы оформления окна инсталлятора Удаляется  
nv4_mini.sys Основной файл драйвера (взаимодействие с оборудованием) Остается  
*.tvp Файл профилей менеджера рабочих столов nView Удаляются, кроме default.tvp Прочие профили предназначены для видеокарт Quadro
NvApps.xml Файл профилей настроек драйвера для игр Остается  
NvwsApps.xml Файл профилей настроек драйвера для профессиональных приложений Удаляется Для видеокарт Quadro выпускается отдельный драйвер
nvucode.bin Файл ресурсов панели управления Остается  

Как можно видеть, удаляются прежде всего компоненты установщика дистрибутива  InstallShield. Инсталлятор, собственно, выполняет следующие операции:

  1. Проверяет, что система соответствует минимальным требованиям: версию Windows, объем ОЗУ, место на винчестере. Факт наличия в системе карты на базе графического процессора NVIDIA, кстати, не проверяется;
  2. Проверяет наличие предыдущей версии драйвера. Запускает процедуру его удаления, если таковой обнаружен;
  3. Запускает установку собственно драйвера - копирование файлов и запись параметров в реестр. Именно запускает - саму установку производит Windows;
  4. Подчищает за собой - удаляет временные файлы, созданные в процессе установки.

Можно ли без всего этого обойтись? Вполне. Как вы заметили, собственно установку драйвера производит сама Windows. И это не оговорка. Все, что нужно Windows от драйвера - это файл с расширением .inf, в котором и записаны все действия для установки. Когда в в диалоге поиска драйвера для обнаруженного устройства вам предлагают указать место, где лежит обновленный драйвер - указать надо именно inf файл, а не какой-то там setup.exe. Кто не верит - щелкните правой кнопкой по inf файлу в папке с распакованным драйвером, выберите "Установить" - и драйвер будет установлен.

Следующая вещь, которая вырезается из дистрибутива - это многоязычная поддержка. Мы за мир между народами, но возможность смотреть панель драйвера на шведском языке врядли кому-либо понадобится, тем более, что ею не так просто воспользоваться!

Изменения в составе файлов приводят к необходимости изменения в .inf файле драйвера, во избежание требования вставить диск с отсутствующими файлами в процессе установки.

Изменения, вносимые в .inf файл драйвера:

В секции [nv.Panel] удаляются записи на файлы:

  • nvmccs.dll
  • nvmccss.dll
  • nvmccssr.dll
  • nvmobls.dll
  • nvmoblsr.dll
  • nvwss.dll
  • nvwssr.dll

В секции [nv.Help] удаляются записи на файлы:

  • nvcpl.hlp
  • nvwcplen.hlp

В секции [nv_SoftwareDeviceSettings] , идя навстречу пожеланиям посетителей сайта, мы настраиваем драйвер на изначальный режим рабочего стола после установки 1024х768х32 BPP. К сожалению, предварительную настройку частоты обновления задать невозможно, так как для владельцев LCD и ЭЛТ мониторов оптимальные значения диаметрально противоположны.

Теперь несколько слов об окончательной упаковке для последующей дистрибуции. В ряде версий пакета драйвера все файлы уже упакованы утилитой Microsoft Compress.exe. Эта утилита обеспечивает неплохую степень сжатия, но использует устаревшие алгоритмы, современные архиваторы обеспечивают больший уровень компрессии. Поэтому перед окончательной упаковкой все оставшиеся файлы драйвера распаковываются утилитой Expand. Признанным лидером сжатия информации на сегодняшний момент является бесплатная программа 7-ZIP, которую мы и используем для упаковки нашего дистрибутива. На скриншоте приведены применяемые нами настройки при создании архива:

Пара пояснений:

  • размер словаря выбран так, чтобы весь дистрибутив влезал в него целиком. Это требует много памяти на машине, где производится упаковка, но не так уж много потребует от машины при распаковке. Ставить больший размер нет смысла - все равно все файлы будут упакованы с первого захода, только память впустую будет зарезервирована, ставить меньше - размер архива увеличится за счет двух копий служебной статистики формата.
  • увеличение размера слова выше 128 на практике не дает никакого прироста уровня компрессии, а нагружает компьютер заметно больше.

Внимание! Поскольку для уменьшения размера итогового файла модуль самораспаковывающего архива 7 z.sfx упаковывается с помощью компрессора UPX , старые версии антивирусных программ могут показать, что в файле, возможно, содержится вирус. Все файлы перед выкладыванием на сервер проверяются последними версиями антивирусных программ. Если вы столкнулись с сообщениями о найденном в файле вирусе, прежде всего обновите антивирусную программу.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=7527