В этом материале мы объясняем, какими способами, методами и приемами нам удается получать сокращенные дистрибутивы драйверов 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. Инсталлятор, собственно, выполняет следующие операции:
- Проверяет, что система соответствует минимальным требованиям: версию Windows, объем ОЗУ, место на винчестере. Факт наличия в системе карты на базе графического процессора NVIDIA, кстати, не проверяется;
- Проверяет наличие предыдущей версии драйвера. Запускает процедуру его удаления, если таковой обнаружен;
- Запускает установку собственно драйвера - копирование файлов и запись параметров в реестр. Именно запускает - саму установку производит Windows;
- Подчищает за собой - удаляет временные файлы, созданные в процессе установки.
Можно ли без всего этого обойтись? Вполне. Как вы заметили, собственно установку драйвера производит сама 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] удаляются записи на файлы:
В секции [nv_SoftwareDeviceSettings] , идя навстречу пожеланиям посетителей сайта, мы настраиваем драйвер на изначальный режим рабочего стола после установки 1024х768х32 BPP. К сожалению, предварительную настройку частоты обновления задать невозможно, так как для владельцев LCD и ЭЛТ мониторов оптимальные значения диаметрально противоположны.
Теперь несколько слов об окончательной упаковке для последующей дистрибуции. В ряде версий пакета драйвера все файлы уже упакованы утилитой Microsoft Compress.exe. Эта утилита обеспечивает неплохую степень сжатия, но использует устаревшие алгоритмы, современные архиваторы обеспечивают больший уровень компрессии. Поэтому перед окончательной упаковкой все оставшиеся файлы драйвера распаковываются утилитой Expand. Признанным лидером сжатия информации на сегодняшний момент является бесплатная программа 7-ZIP, которую мы и используем для упаковки нашего дистрибутива. На скриншоте приведены применяемые нами настройки при создании архива:
Пара пояснений:
- размер словаря выбран так, чтобы весь дистрибутив влезал в него целиком. Это требует много памяти на машине, где производится упаковка, но не так уж много потребует от машины при распаковке. Ставить больший размер нет смысла - все равно все файлы будут упакованы с первого захода, только память впустую будет зарезервирована, ставить меньше - размер архива увеличится за счет двух копий служебной статистики формата.
- увеличение размера слова выше 128 на практике не дает никакого прироста уровня компрессии, а нагружает компьютер заметно больше.
Внимание! Поскольку для уменьшения размера итогового файла модуль самораспаковывающего архива 7 z.sfx упаковывается с помощью компрессора UPX , старые версии антивирусных программ могут показать, что в файле, возможно, содержится вирус. Все файлы перед выкладыванием на сервер проверяются последними версиями антивирусных программ. Если вы столкнулись с сообщениями о найденном в файле вирусе, прежде всего обновите антивирусную программу.