Driver package что это

Обновлено: 03.07.2024

У каждого пользователя — свой список мероприятий по наведению порядка на компьютере. В него очень часто входят: создание резервной копии данных, чистка временных папок, деинсталляция и установка приложений. Некоторые из подобных операций достаточно просты, но отнимают немало времени.

Логично, что списки to-do малоприятны при их регулярном выполнении, и с этим, как правило, неплохо справляются всевозможные утилиты. В этом путеводителе речь пойдет о программном обеспечении, которое берет на себя такую задачу, как установка, обновление и удаление драйверов, установленных в системе. Безусловно, есть альтернативные методы. Так, пользователь может узнать информацию о производителе комплектующих, зайти на сайт, скачать и установить обновления из раздела «Драйверы». Второй, также вероятный метод — использование сервисного ПО. Кроме того, известные разработчики (в их числе AMD, Nvidia и другие) встраивают в графические оболочки драйверов автообновление — поэтому проблема решается сама собой.

Тем не менее, если есть возможность оперативного обновления всех устаревших драйверов, в том числе по расписанию, почему бы этими удобствами не воспользоваться?

Driver Genius

Информация о доступных обновлениях в Driver Genius
  • Поиск обновлений драйверов
  • Бэкап драйверов, установленных в ОС
  • Компоновка всех драйверов в автоинсталлятор
  • Удаление драйверов, конфликтующих с системой, для повышения производительности
  • Отображение системной информации о компьютере
  • Мониторинг температуры

Обновление драйверов

Создание резервной копии

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

Driver Genius сканирует системную информацию о доступных драйверах, но делает не просто «слепок», а комплект, который в дальнейшем можно установить по аналогии другими с драйвер-пакетами. При создании резервной копии возможен выбор только необходимых компонентов из списка. Удобно в данном случае и то, что предоставляется 4 типа хранения драйверов: папка, архив, инсталлятор или самораспаковывающийся архив.

Восстановление из резервной копии

Принцип установки пакета драйверов прост: в разделе «Restore Drivers» нужно указать программе путь к файлу или папке. В бесплатной версии действует ограничение: разрешается восстановить из архива драйверы видео- и сетевой карт.

Удаление драйверов

Данную операцию можно проделать через стандартный Диспетчер устройств. Преимущество удаления через раздел «Uninstall Drivers» заключается в том, что можно выбрать ненужные драйверы и удалить их за один подход. Попутно, с информацией об удаляемых компонентах можно ознакомиться внизу окна при выделении элемента в списке.

Системная информация

Информация о драйвере, доступная в разделе диагностики

Настройки

Из ряда настроек программы стоит отметить несколько интересных опций. В разделе «Update Drivers» можно указать сервер для скачивания обновлений, в «Security» — включить сканирование драйверов после скачивания, в «Schedule» — проверку обновлений драйверов по расписанию.

Резюме

Стандартный менеджер обновлений драйверов с основными функциями в наличии: обновление, удаление, бэкап и восстановление. Driver Genius также включает в себя дополнительные диагностические функции.

Driver Reviver

С первой минуты Driver Reviver производит впечатление унифицированного аналога Driver Genius. На эту же мысль наводит интерфейс программы.

Обновление драйверов

При запуске, Driver Reviver сразу же приступает к сканированию. Результат, сообщаемый утилитой, на данной конфигурации, весьма оптимистичен: «Состояние драйверов — отличное». То есть, ни один компонент не нуждается в обновлении. Это заставляет немного усомниться в полноте базы драйверов. Непонятно также, каким образом происходит процесс ее обновления. Возможно, предполагаемая база синхронизируется только при обновлении самой программы.

Создание резервной копии и восстановление

Эта функция доступна пользователю в разделе «Резервная копия». Здесь на выбор полный или выборочный бэкап, без заданного формата хранения. Восстановление доступно в этом же разделе, по нажатию кнопки «Начать восстановление. Как несложно заметить, каждая копия отметку о времени, что позволит безошибочно восстановить тот или иной драйвер в случае конфликта обновлений или подобной ошибки.

Настройки

В настройках Driver Reviver можно активировать обновление по расписанию, с автоматической загрузкой и установкой драйверов, есть выбор определенного дня недели и времени суток.

Резюме

Driver Reviver — очень простая утилита, предназначенная для обновления драйверов и резервного копирования, без дополнительных функций.

PerfectUpdater

На сайте разработчика есть возможность скачать ознакомительную версию программы, для этого нужно нажать кнопку Free Scan и заполнить необходимые поля для получения ссылки на инсталлятор.

  • Создание резервной копии драйверов перед обновлением
  • Установка только оригинальных драйверов

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

Обновление драйверов

PerfectUpdater предоставляет достаточно детальную информацию о драйверах, которые следует обновить. Степень устаревания отображена в колонке Driver Age — в данном случае оказалось, что все 16 драйверов «ancient», то есть, «древние» (именно так, к примеру, оценивается драйвер, не обновляемый на 5 месяцев).

Также для каждого драйвера доступно описание в виде сравнения версий — и не нужно открывать отдельное информационное окно, достаточно беглого взгляда для оценки общей ситуации.

Касательно такой особенности, как «Установка только оригинальных драйверов». Оригинальный — не значит аналогичный, и вполне может оказаться, что цифра версии будет ниже той, которая указана в устаревшем драйвере. Так, системный драйвер IDE-контроллера от Microsoft (версия 6.2) было предложено обновить до новейшей версии — 5.2, но уже от производителя AMD. Что ж, это вполне соответствует описанию.

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

Создание резервной копии и восстановление

Схема очень напоминает Driver Reviver: пользователь может выбрать полный или выборочный бэкап. На данном этапе видны определенные различия между программами. Так, PerfectUpdater предоставляет подробную информацию, которая позволяет ознакомиться с ID устройства, производителем, датой выпуска драйвера, в то время как Driver Reviver умалчивает об этом.

Driver Reviver vs. PerfectUpdater

Созданные резервные копии находятся во вкладке Restore, в порядке хронологии, с соответствующей датировкой.

Настройки

В настройках PerfectUpdater можно указать пути для хранения оригинальных драйверов (резервных копий), а также скачанных в процессе обновления. В «Exclusion List» ведется список исключений, необходимый в ситуациях, когда те или иные драйверы не нужно обновлять по различным причинам.

Планировщик удобен тем, что настройка осуществляется даже одним кликом: можно установить флажок напротив опций «Every Day» или «Every week», вместо того, чтобы отмечать дни недели.

Резюме

Достаточно информативный менеджер драйверов со стандартным набором функций. Более функциональный аналог Driver Reviver.

DriverScanner 2013

Обновление драйверов

По завершению сканирования системных драйверов, утилита DriverScanner показала себя с лучшей стороны, чем некоторые ее «коллеги по цеху»: найдено 9 устаревших драйверов, в то время как в DriverGenius, например, обнаружено только 4.

DriverScanner предоставляет информацию, которая, фактически, ничем не может быть полезной (вроде статистики «Самый старый драйвер»), также предлагает загрузить другие продукты компании Uniblue: оптимизатор системы и дефрагментатор. Поэтому возникает желание перейти из вкладки «Обзор» в более информативный раздел «Результаты проверки». Здесь можно ознакомиться со списком устройств, для которых имеются обновления.

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

Настройки

В разделе «Управление» ведется учет точек восстановления. То есть, при обновлении драйверов DriverScanner автоматически создает контрольную точку. Это, по всей видимости, не самая удобная замена резервным копиям, тем более что вручную создать точку для отката не представляется возможным.

Планировщик, по неизвестной причине отнесенный в «Общие параметры», доступен только после регистрации программы.

Резюме

Очевидно, идея программы возникла не с «чистого листа», имеется схожесть с вышеупомянутыми программами. В то же время, важные функции разработчиками забыты (бэкап и восстановление) и, в частности, ограничены в бесплатной версии (планировщик).

Driver Robot

Обновление драйверов

Тем не менее, косвенное подтверждение заявленной характеристике («Huge database») нашлось: по результатам сканирования Driver Robot выдал список из 28 устаревших (Out of Date) драйверов. Впрочем, универсальный монитор PnP упомянут четырежды, двухканальный контроллер — дважды, с десяток строк — для «фантомных», непонятных устройств.

К сожалению, красочная диаграмма вверху главного окна не так полезна, как информация о версиях обновлений, которой здесь нет. В разделе «Downloads» имеется возможность скачать каждый из драйверов по отдельности, и здесь хотя бы указан размер пакетов.

Вторая функция программы, о которой можно было и не упоминать, — анализ драйверов. Утилита сканирует компьютер и по итогу выдает файл для экспорта и последующей загрузки на сервер Driver Robot. Увы, просмотреть этот список не представляется возможным, не говоря уже о получении сведений об ID или разработчике того или иного устройства.

Резюме

Driver Robot — утилита с хорошей базой драйверов, но с крайне минималистичной функциональностью.

DriverPack Solution

Первая загрузка оказалась достаточно медленной: при запуске программы производится ничем не объяснимая распаковка.

DriverPack Solution предлагает установить все необходимые драйверы одним кликом. В отличие от службы Windows Update, утилита вполне автономна и существует без наличия интернета. Второй, приводимый разработчиками аргумент в пользу их творения, — база DriverPack Solution поддерживает значительно больший список устройств. Однако можно заметить, что, при отключении Windows Update, в программе отображается соответствующее уведомление. Зачем эта служба при работе DriverPack Solution, не поясняется.

Сам дистрибутив, который можно скачать с сайта, представляет собой облегченную версию всего комплекса DriverPack Solution и занимает чуть более 10 МБ. При этом в дистрибутив входят базы драйверов, «программы и диагностические утилиты», от которых можно отказаться на этапе установки. Комплект с драйверами (он же драйверпак) скачивается отдельно через BitTorrent (см. раздел «DriverPack Solution 13 сборка для DVD»).

Обновление драйверов

Вообще говоря, идея с подобными драйверпаками — «все в одном» — достаточно спорная: уже спустя пару месяцев нужно скачивать новую версию DVD. Поэтому вполне возможно, что суммарно программа потребует больше траффика, чем упомянутая Windows Update.

Привычной кнопки сканирования в программе не оказалось, вместо этого во вкладке «Драйвера» отображается текущий статус — «Отсутствуют базы драйверов». Из описания следует, что DriverPack Solution Lite имеет серьезное ограничение: можно скачивать недостающие драйверы, но обновлять устаревшие нельзя. Но информации об этих «недостающих драйверах» нигде нет.

Одним словом, интерфейс программы не интуитивен. Кнопка «Конфигуратор», посредством которой рекомендуется скачивать драйверы, ведет на сайт программы, и в конечном счете непонятно, какие шаги предпринимать далее.

Как поясняется в справке, если интересует обновление конкретного драйвера, не обязательно скачивать полновесную базу размером в несколько гигабайт. Можно воспользоваться интернет-поиском на базе DevID, который доступен во вкладке «Онлайн».

Таким образом, видится только один выход из этой неразберихи — бесплатно обновить DriverPack Solution до полной версии.

Создание резервной копии и восстановление

Поддерживается 2 вида бэкапа: базовый (резервная копия создается из текущей базы DriverPack Solution) и системный (резервная копия формируется из установленных в системе драйверов). И все же непонятно, зачем в данный раздел включена ссылка на службу восстановления системы Windows, если вместо этого было бы логично ввести более внятный интерфейс для создания резервной копии / восстановления. За примерами не нужно ходить далеко (см. программы выше).

Настройки

В секции настроек можно активировать режим эксперта, который расширяет список опций, а также открывает доступ к вкладке «Разное».

Системная информация

В разделе «Диагностика» вкладки «Драйвера» доступны сведения о различных системных устройствах: температура процессора, свободное месте на жестком диске. По сути, эта функция никак не связана с прямыми обязанностями программы.

Резюме

DriverPack Solution — во многом интересное приложение с набором возможностей, которых нет в программах подобного типа. С другой стороны, не хватает четкости в настройках, описания функций, удобства онлайн-поиска и управления базой драйверов.

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

Добавление пакетов драйверов

пакеты драйверов можно добавить в образ Windows:

добавление пакетов драйверов перед развертыванием в автономном образе Windows с помощью DISM

автономное обслуживание происходит при изменении Windows образа полностью вне сети без загрузки операционной системы. вы можете добавлять, удалять и перечислять пакеты драйверов в автономном Windows образе с помощью программы командной строки DISM. DISM устанавливается с Windows и также распространяется в комплекте средств для развертывания и оценки Windows (Windows ADK). Дополнительные сведения о DISM см. в статье Технический справочник по обслуживанию образов развертывания и управления ими для Windows.

При добавлении пакета драйверов в образ в автономном режиме он помещается в промежуточный режим или отражается в образе:

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

Пакеты драйверов, которые не являются критическими для загрузки , являются промежуточными. Другими словами, они добавляются в хранилище драйверов. после запуска Windows PnP обнаруживает устройство и устанавливает соответствующий пакет драйверов из хранилища драйверов.

команды DISM можно использовать для добавления или удаления пакетов драйверов на подключенном или примененном Windows или среда предустановки Windows (Windows PE).

вы не можете использовать DISM для удаления пакетов драйверов папки "входящие" (пакеты драйверов, установленные на Windows по умолчанию), за исключением некоторых сетевых драйверов. Его можно использовать только для удаления пакетов драйверов сторонних производителей или поставщиков из списка.

если вы хотите добавить пакеты драйверов, критические для загрузки, в Windows PE, используйте этап настройки windowsPE , чтобы отразить пакеты драйверов перед загрузкой образа PE Windows. разница между добавлением пакетов драйверов, критических для загрузки, во время этапа настройки windowspe и добавлением их во время этапа настройки windowspe заключается в том, что во время этапа настройки для использования Windows PE будут отражены пакеты драйверов, критически важные для загрузки. во время этапа настройки offlineServicing пакеты драйверов помещаются в хранилище драйверов на Windowsном образе.

ниже перечислены методы добавления пакетов драйверов с помощью программа установки Windows.

дополнительные сведения об этих и других этапах настройки см. в разделе программа установки Windows конфигурации.

при использовании служб Windows deployment Services для развертывания в Windows server можно добавить пакеты драйверов на сервер и настроить их для развертывания на клиентах в рамках сетевой установки. Эта функция настраивается путем создания группы драйверов на сервере, добавления в нее пакетов, а затем добавления фильтров для определения того, какие клиенты будут устанавливать эти пакеты драйверов. можно настроить установку пакетов драйверов на основе оборудования клиента (например, производителя или поставщика BIOS) и выпуска образа Windows, выбранного во время установки. Можно также настроить, будут ли клиенты устанавливать все пакеты в группе драйверов или только пакеты драйверов, соответствующие установленному оборудованию на клиенте. дополнительные сведения о реализации этой функции см. в документации по службам развертывания Windows.

Ниже перечислены методы добавления пакетов драйверов в работающую операционную систему.

Использование средства PnPUtil для добавления или удаления пакетов драйверов PnP. Дополнительные сведения см. в статье Использование средства PnPUtil в командной строке для установки Самонастраивающийся устройства.

Пакеты драйверов для режима S

пакеты драйверов в режиме Windows S должны соответствовать определенным требованиям. ознакомьтесь с требованиями к драйверу Windows 10 s , чтобы узнать о типах пакетов драйверов, которые можно добавить в Windows в режиме S.

Управление папками драйверов

При добавлении нескольких пакетов драйверов следует создать отдельные папки в исходном расположении для каждого пакета драйверов или категории пакетов драйверов. Это гарантирует отсутствие конфликтов при добавлении пакетов драйверов с одинаковыми именами файлов. После установки пакета драйверов в операционной системе он переименовывается в * файл OEM. INF, чтобы гарантировать уникальность имен файлов в операционной системе. Например, промежуточные драйверы с именами MyDriver1. INF и MyDriver2. inf могут быть переименованы в oem0. INF и OEM1. INF после их установки.

Основные сведения о ранжировании драйверов

Одна из наиболее распространенных проблем при развертывании пакетов драйверов возникает, когда пакет драйверов успешно импортируется в хранилище драйверов, но после подключения системы служба PnP находит драйвер лучшего ранжирования и устанавливает этот драйвер.

диспетчер Windows PnP ранжирует эти свойства пакета драйверов в порядке важности.

Сертификат для подписи маркера

Соответствие ИД PnP

Например, если пакет драйвера имеет более подходящий идентификатор PnP, но не подписан, приоритет имеет подписанный пакет драйверов с совместимым ИДЕНТИФИКАТОРом. Более старый пакет драйверов может использовать более новый пакет драйверов, если более старый пакет драйверов имеет более высокий приоритет, совпадающий с ИДЕНТИФИКАТОРом PnP или подписью.

дополнительные сведения о ранжировании пакетов драйверов см. в статье Windows ранжирования драйверов.

Основные сведения о требованиях к цифровой подписи

Подписанные пакеты драйверов являются ключевой функцией безопасности в Windows. Пакеты драйверов, установленные на компьютерах на базе процессоров x64, должны иметь цифровую подпись. Хотя это не обязательно, рекомендуется убедиться, что пакеты драйверов подписаны, прежде чем устанавливать их на компьютеры на базе x86.

Все двоичные файлы драйверов, критические для загрузки, должны содержать внедренные подписи. Например, в режиме ядра .sys файлы, критически важные для доступа к загрузочному диску.

Двоичный файл драйвера можно подписать двумя способами:

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

Пакеты драйверов PnP с цифровой подписью содержат файл каталога (CAT) с цифровой подписью. Файл каталога содержит хэш всех файлов в INF-файле пакета драйверов для установки. Подписанный файл каталога — это все, что необходимо для правильной установки большинства пакетов драйверов PnP.

Один из этих источников может подписывать пакеты драйверов:

Windows лаборатория по качеству оборудования (WHQL), которая гарантирует, что пакеты драйверов должны быть определены для программы сертификации Windows оборудования. WHQL создает каталог подписанных пакетов драйверов. Для двоичных файлов драйверов, критических для загрузки, следует добавить внедренные подписи вместо того, чтобы полагаться на каталог. Встроенные подписи в двоичных файлах драйверов, критических для загрузки, оптимизируют производительность загрузки операционной системы, устраняя необходимость в поиске соответствующего файла каталога, когда загрузчик операционной системы проверяет подпись драйвера.

Центр сертификации (ЦС) с помощью сертификата издателя программного обеспечения (SPC). Для двоичных файлов драйверов ядра, критически важных для загрузки и x64, корпорация Майкрософт предоставляет дополнительный сертификат, который можно использовать для перекрестной подписи двоичных файлов драйвера. Двоичные файлы драйверов, не являющиеся критическими для загрузки, не должны быть подписаны корпорацией Майкрософт или внедренными. вы можете использовать Windows процесс подписи кода в режиме ядра, если вам нужна гибкость для самостоятельного подписывания двоичных файлов драйвера. Сведения о цифровых подписях для модулей ядра в системах на базе x64 см. в руководстве по драйверам 64-разрядной версии.

Для тестирования можно также использовать тестовые сертификаты.

Если вы получили неподписанный пакет драйверов от поставщика для тестирования, можно использовать тестовую подпись для проверки пакета драйвера и проверки установки. Тестовая подпись — это акт цифровой подписи приложения с помощью закрытого ключа и соответствующего сертификата подписи кода, который является доверенным только в ограничении тестовой среды.

Ниже приведены основные способы создания таких сертификатов подписи тестирования.

Разработчики могут создавать собственные самозаверяющие сертификаты.

ЦС может выдавать сертификаты.

В обоих вариантах сертификаты подписи тестов должны быть четко идентифицированы в соответствии с проверкой. Например, слово «test» можно включать в имя субъекта сертификата, а в сертификат могут включаться дополнительные юридические заявления об отказе. Производственные сертификаты, выданные коммерческими центрами сертификации, должны быть зарезервированы только для подписывания общедоступных бета-версий и бесплатных окончательных выпусков программного обеспечения и внутреннего бизнес-программного обеспечения.

при добавлении пакетов драйверов, подписанных тестами, в Windows следует учитывать следующие моменты.

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

Сертификат центра сертификации, выдавшего тестовый сертификат, должен быть вставлен в хранилище сертификатов доверенных корневых центров сертификации.

Примечание
Если тестовый сертификат является самозаверяющим, например с помощью средства создания сертификатов (MakeCert), то тестовый сертификат должен быть вставлен в хранилище сертификатов доверенных корневых центров сертификации.

Тестовый сертификат, используемый для подписи пакета драйверов, должен быть вставлен в хранилище сертификатов "Доверенные издатели".

необходимо добавить тестовые сертификаты в оперативный режим (в загруженный экземпляр образа Windows), прежде чем можно будет использовать программу командной строки для обслуживания образов развертывания и управления ими (DISM) для добавления пакетов драйверов, подписанных с помощью тестовой подписи, в автономный режим.

DISM проверяет сертификаты WHQL только для пакетов драйверов, критических для загрузки. Но параметр командной строки DISM может переопределить это поведение. Дополнительные сведения см. в разделе параметры Command-Line обслуживания драйвера DISM.

чтобы установить и проверить пакеты драйверов, подписанные с помощью тестовой подписи, в 64-разрядных операционных системах, задайте конфигурацию загрузки Windows в тестовом режиме с помощью средства BCDedit на конечном компьютере. Тестовый режим проверяет, что образ драйвера подписан, но для проверки пути сертификата не требуется, чтобы издатель был настроен в качестве доверенного корневого центра сертификации. Чтобы правильно обработать пакет драйвера в логике установки и ранжирования драйвера PnP, тестовый сертификат должен храниться в хранилище доверенных сертификатов образа операционной системы. Сведения о тестовом режиме во время разработки см. в разделе рекомендации по драйверам 64-bit.

[! Внимание! *] Если на компьютере с архитектурой x64 установлен неподписанный или недопустимый критически важный для загрузки пакет драйверов, компьютер не будет загружаться. Неподписанный или недопустимый критически важный для загрузки пакет драйверов приведет к ошибке. Необходимо удалить пакет драйверов из образа. При выполнении обновления убедитесь, что неподписанные пакеты драйверов и связанные с ними приложения, службы или устройства удалены или обновлены с подписанным пакетом драйверов.

Если вы не включите режим тестирования с помощью BCDedit, и у вас установлен пакет драйверов, подписанный тестом, компьютер не будет загружаться. При использовании DISM для удаления пакета драйверов все экземпляры отраженного пакета драйверов могут не быть удалены. Поэтому рекомендуется не развертывать образы с установленными пакетами драйверов, подписанными тестами.

Дополнительные ресурсы

Эти веб-сайты содержат дополнительные сведения о требованиях к пакету драйверов:

Дополнительные сведения о развертывании пакетов драйверов PnP см. в разделе требования к подписывания установки устройства PnP.

дополнительные сведения о цифровых подписях и разработке пакетов драйверов см. на соответствующей странице на центральном веб-сайте Windows Hardware для разработчиков .

Раз уж в нашем предыдущем посте мы пригласили всех желающих поучаствовать в добровольной помощи в разработке очередных версий DRP, сегодня пришла пора рассказать о том, как именно мы создаем немаловажную вещь при работе с большими архивами драйверов (необходимые сис. админам и другим профессионалам, занимающимся «серийной» настройкой компьютеров) — индексы.

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



Герои Silicon Valley работают над оптимизацией собственных алгоритмов

Как строится пользовательский индекс драйверов

Для каждого устройства в системе есть свой уникальный номер (DevID).
Он отображается как в установках Windows, так и в программе DriverPack Solution. Уникальный для каждого устройства идентификатор (однозначно характеризующий каждое устройство), используется программой для автоматического «подбора» драйвера к нему.

База данных в программе содержит ID всех устройств, самостоятельно отслеживает версии драйверов для них, сопоставляет их версии и актуальность. В случае наличия в базе более новой версии, программа автоматически предлагает установить для устройства новый драйвер. Можно найти драйвер для конкретного устройства и самостоятельно в интернете, выбрав соответствующий режим поиска драйвера.

Для эффективной работы программы необходимы архивы драйверов (в формате "7z"), а для быстрого поиска по ним, требуется проиндексировать файлы, содержащиеся внутри.

Кроме уже содержащихся (довольно обширных) в программе архивов драйверов, DriverPack Solution предоставляет возможность создания пользовательских драйверпаков. Это актуально как при наличии нестандартного оборудования, так и «привязанности» операционной системы пользователя к некоторым типам (возможно устаревших) драйверов.

Новые драйвера после их разархивации «разбросаны» по папкам, которые содержат массу файлов, на первый взгляд, совершенно «ненужных» пользователю.

Для того, чтобы выбрать «нужные» файлы, требуется в распакованных файлах найти один с расширением *.inf.
Именно он содержит (в секции [SourceDisksFiles]) перечень необходимых файлов, по которому и требуется скопировать список файлов в предварительно созданную пользователем папку.

Примечание: если среди распакованных файлов нет .inf-файла, то автоматическое создание пакета драйверов невозможно. Настоятельно не рекомендуется удалять файлы с расширением *.САТ – сведения о цифровой подписи.

Как было раньше

До 2010 года, пока версий Windows было чуть меньше, нами использовался следующий метод создания индекса к сборке драйверов.

Создается папка D (сокр. от «Drivers»), а драйверы помещаются в любую подпапку внутри директории D.
Имя подпапки (поддиректории) может быть любым, однако рекомендуется использовать максимально короткие имена. Стоит избегать длинных путей к файлам – это может привести к ошибкам и помешать установке.

При создании структуры папок пакета драйверов следует придерживаться определенных общепринятых правил именования. Обязательно должны использоваться только английские названия папок.

В созданных папках драйверы разделяются по производителям, тем самым образуя подпапки.
Названия производителей также рекомендуется максимально сокращать. Например: «NVidia» – «N», «ATi» – «A» и т. д. Внутри папки с именем производителя драйверы располагаются в папках 1-9, при необходимости число папок может быть увеличено. После создания необходимой структуры папок поместите ваши драйверы в соответствующие подпапки (примечание: распакованные файлы, .inf-файлы, но не архивы или программы установки).

Название папки Английское название Пояснение
A Additions Дополнения
B Broadband Широкополосные сетевые устройства (*DSL-модемы и им подобные)
C Chipset Наборы системной логики (чипсеты)
CPU Central processor unit Центральный процессор (необходим для AMD K8)
D Dial-Up Модемы
G Graphics Видеоадаптеры (Графические карты)
L LAN Сетевые адаптеры
M Mass Storage Контроллеры жестких дисков
P Printers Принтеры
S Sound Звуковые адаптеры
VMWare VMWare Драйверы для виртуальной машины VMWare
W WLAN Беспроводные адаптеры
U USB USB-устройства (флешки, фотокамеры)
Y Misc Разное (Все что не попало в другие разделы)
Y Monitor Мониторы
Z Hid Устройства ввода (Интелектуальные мыши, клавиатуры тачпады и т.п.)

Процесс создания (пользовательских) пакетов драйверов

После создания структуры папок с новыми драйверами требуется заархивировать созданную папку (в примере – это папка «D») в соответствии с требованиями программы к архиву.

  • Имя архива: «DP_НазваниеПакетаДрайверов_ x86-32_ВерсияПакетаДрайверов.7z»
  • Требования: имя архива не должно содержать пробелов. Например, название пакета драйверов версии 9.06 для контроллеров жестких дисков должно быть таким: «DP_MassStorage_x86-32_906.7z.»
  • Формат архива: 7z
  • Уровень сжатия: «Ultra» (для обеспечения максимальной компрессии, при желании вы можете указать меньший уровень сжатия).
  • Метод сжатия: «LZMA» (значение установлено по умолчанию, изменять его не рекомендуется).
  • Размер словаря: 32 Mb

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

Индексные файлы хранятся в *.txt — формате, и находятся папке «Indexes» а не в «dev_db», как было ранее.

Структуру индексных файлов целесообразно рассмотреть на примере двух драйверов.

Содержимое индексного файла для 1-го:
«PCI\VEN_8086&DEV_24D5&SUBSYS_680316F3 Audio_w7x64_912.2\ Audio_w7x64_912.2\3\1\Alcwdm18.inf Realtek.NTamd64 06/19/2009,6.0.1.6305 Realtek AC'97 Audio»

Содержимое индексного файла для 2-го:
«HDAUDIO\FUNC_01&VEN_10DE&DEV_8067 Audio_w7x64_912.2\ Audio_w7x64_912.2\11\1\nvhda.inf VIDIA.NTamd64 11/11/2009,1.00.00.63 NVIDIA High Definition Audio»

Более развернуто объяснение структуры приведено в таблице:

Элементы структуры Драйвер 1 Драйвер 2
Device ID (идентификатор устройства) PCI\VEN_8086&DEV_24D5&SUBSYS_680316F3 HDAUDIO\FUNC_01&VEN_10DE&DEV_8067
Путь хранения драйвера в архиве Audio_w7x64_912.2\Audio_w7x64_912.2\3\1\ Audio_w7x64_912.2\Audio_w7x64_912.2\11\1\
Название inf-файла Alcwdm18.inf nvhda.inf
Тип Realtek.NTamd64 NVIDIA.NTamd64
Дата выпуска и версия 06/19/2009,6.0.1.6305 11/11/2009,1.00.00.63
Название устройства Realtek AC'97 Audio NVIDIA High Definition Audio

Текущие реалии

Сегодня жесткой привязки к структуре индекса нет, что называется, «свободный стиль».

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

Фактически же маркер – конкретное название папки. Оно видно в названии одного из подкаталогов драйвер-пака: DRP\Drivers\DP_Chipset_14101.7z\Intel\WinAll\Chipset\9.4.0.1007_HECI\

В данном случае «WinAll» значит «все версии Windows».

Версия Windows = маркер (имя подпапки), характеризующий, что драйвер который находится внутри папки-маркера подходит для указанной ОС.

  • XP x64 =«5x64»;
  • XP x86 =«5x86»;
  • Vista x64 =«6x64|NTx64|AllNT|67x64»;
  • Vista x86 =«6x86|NTx86|AllNT|67x86»;
  • Windows 7 x64 =«7x64|NTx64|AllNT|67x64|78x64|781x64|7819x64»;
  • Windows 7 x86 =«7x86|NTx86|AllNT|67x86|78x86|781x86|7819x86»;
  • Windows 8 x64 =«8x64|NTx64|AllNT|78x64|All8x64»;
  • Windows 8 x86 =«8x86|NTx86|AllNT|78x86|All8x86»;
  • Windows 8.1 x64 =«81x64|NTx64|AllNT|781x64|7819x86|All8x64»;
  • Windows 8.1 x86 =«81x86|NTx86|AllNT|781x86|7819x86|All8x86»;
  • Windows 9 x64 =«9x64|NTx64|AllNT|7819x64|All8x64|81x64»;
  • Windows 9 x86 =«9x86|NTx86|AllNT|7819x86|All8x86|81x86»;
  • Windows 10 x64 =«10x64|NTx64|AllNT|78110x64|All8x64»;
  • Windows 10 x86 =«10x86|NTx86|AllNT|78110x86|All8x86»;
  • Все x64 =«Allx64»;
  • Все x86 =«Allx86»;
  • Все XP =«AllXP»;
  • Все Vista =«All6»;
  • Все Windows 7 =«All7»;
  • Все Windows 8 =«All8»;
  • Все Windows 8.1 =«All81»;
  • Все Windows 9 =«All9»;
  • Все Windows 10 =«All10»;
  • Любые Windows =«WinAll»;

Маркеры ноутбуков

Маркер-папка с названием производителя ноутбука = слово, используемое самим производителем для идентификации его ноутбуков

  • Acer_nb = acer / emachines / packard*bell / gateway / aspire
  • Apple_nb = apple
  • Asus_nb = asus
  • Dell_nb = dell / alienware / arima / jetway / gericom
  • Fujitsu_nb = fujitsu / siemens
  • Gigabyte_nb = gigabyte
  • HP_nb = hp / compaq
  • Lenovo_nb = lenovo / compal / ibm
  • LG_nb = lg
  • MSI_nb = msi / micro-star
  • NEC_nb = nec
  • Panasonic_nb = panasonic / matsushita
  • Samsung_nb = samsung
  • Sony_nb = sony / vaio
  • Toshiba_nb = toshiba
  • OEM_nb = другие вендоры (benq / clevo / depo / durabook / ecs / elitegroup / eurocom / getac / intel / iru / k-systems / medion / mitac / mtc / nokia / pegatron / prolink / quanta / sager / shuttle / twinhead / rover / roverbook / viewbook / viewsonic / vizio / wistron и т.д.)

Текущий индекс

Если при скачивании с нашего сайта обновленных драйвер-паков их имена файлов совпадают (например, старый и новый файл имеет имя «DP_Chipset_14112.7z»), можно просто заменить старые файлы новыми.
При наличии такого же файла, но с меньшим номером, его можно удалить: скачали «DP_Chipset_14112.7z», но в папке есть «DP_Chipset_14111.7z» — файл с меньшим номером версии «DP_Chipset_14111.7z» можно удалить.

Индексируем новые драйвер-паки (создаем списки поддерживаемых устройств).
Если старые индексы удалены, то при запуске DRP, программа автоматически попросит вас произвести индексацию новых драйвер-паков — например программа для нового драйвер-пака «DP_Chipset_14112.7z» создает файлы-индекса «DP_Chipset_14112_xxx.xxx» в соответствующей папке в «X:\DRP\Indexes\».

Можно также удалить и старые индексы.
В папке «Indexes» необходимо удалить все файлы старого драйвер-пака.
Имени файла индекса соответствуют имя драйвер-пака и найти его легко. Например, вы скачали драйвер-пак «DP_Chipset_14112.7z» а у вас был «DP_Chipset_14111.7z», соответственно удаляем все файлы-индексы «DP_Chipset_14111_xxx.xxx», если же и скаченный и старый драйвер-пак имеют одинаковое имя например «DP_Chipset_14112.7z», то индексы «DP_Chipset_14112_xxx.xxx» также нужно удалить т.к. список поддерживаемых устройств в новой версии драйвер-пака может отличаться.

Если вам лень выискивать нужный для удаления индекс — можно удалить все папку «Indexes» и тогда программа будет создавать индексы для всех драйвер-паков, а не только для нового, что займет больше времени, но результат будет идентичным.

Надеемся, что данное руководство по созданию индекса драйверов будет полезно не только разработчикам DriverPack Solution.

Я хочу поделиться с вами простым способом установки ADB драйвера под Windows. Эта статья понадобится тем, у кого этот драйвер или не устанавливается вовсе, или устанавливается, но adb все равно в упор не видит устройство(как было у меня), или вы вообще этот драйвер не нашли. Так что всех, у кого есть/были похожие проблемы, или кому просто интересно, прошу под кат.

Начну с предыстории. Решил я купить себе недорогой планшетик на Android для чтения книг(DJVU/PDF), и выбор пал на устройство российского конечно же китайского производства TeXet TM-7025. Жаба давила покупать что-то дорогое, а для простого чтения книг каких-то сверх-характеристик не требуется. Позже я обнаружил что на нем неплохо идут большинство игрушек, удобно полазить в инете пока ты сидишь in da kabin и т. д. А поскольку передо мной маячило изучение Android, я решил, что будет весьма удобно пользоваться для этого железным девайсом вместо мучений с эмуляторами.

И вот тут меня ждал неприятный сюрприз — то ли родной драйвер оказался кривым, то ли винда, то ли провод… вообщем драйвер то встал, диспетчер устройств Windows рапортовал о полной работоспособности девайса, но на запрос adb devices в консоли я получал пустой список и, естественно, тестировать приложение на планшете не удавалось.

Я написал запрос в службу поддержки TeXeT, мне даже ответили ссылкой на сам драйвер, который, как я уже убедился, не работал. Я начал искать ответ в интернете и нашел кучу разных сборок этого драйвера и мануалов, но все равно ни один из них не завелся как надо, и даже родной драйвер из SDK вообще никак не становился, что повергло меня в уныние… но не отчаяние.

Вот тут я решил попробовать свои силы в написании драйверов старом добром методе научного тыка и открыл inf-файл драйвера. Надежду мне давало понимание, что софтверная часть adb интерфейса со стороны планшета должна быть идентичной для всех устройств, а USB и так работал. И вот, после нескольких неудачных проб ручной правки inf-файла я нашел рецепт лечения приправы inf-файла так, чтобы оно поставилось и, главное, работало.

Шаг 3. Правим inf-файл. В папочке открываем файл android_winusb.inf и ищем там строки такого вот вида:


Делаем копию этих строк, заменяем Google Nexus One на %имя_вашего_девайса% для идентификации в будущем и… открываем диспетчер устройств Windows. Ищем там наше устройство(Android, Android Composite ADB Interface или что-то в этом стиле). Открываем свойства устройства, вкладка «Сведения», в списке выбираем пункт «ИД оборудования» и видим такую вот картину.

Копируем строчку, которая больше всего похожа на ту, что показана на рисунке(Она, по идее просто немного короче), и вставляем ее в наш inf-файл.


В %SingleAdbInterface% мы конец строки удаляем, как видно, в %CompositeAdbInterface% вставляем целиком. Повторять два раза все, наверное, не надо, но у меня уже все стоит и мне лень экспериментировать :)
Сохраняемся(будьте внимательны — в некоторых случаях для этого нужно запускать блокнот с правами администратора, т. к. в пользовательском режиме вам не дадут перезаписать inf-файл).
Шаг 4. Установка драйвера. Теперь, когда все подготовлено, возвращаемся в диспетчер устройств и удаляем все ранее установленные adb драйверы(если были). Обновляем список устройств и видим наш девайс без драйверов. Открываем его свойства и выбираем «обновить драйверы», выбираем установку из папки, указываем папку с поправленым inf-ом и запускаем установку — наш драйвер моментально находится, но при установке он может ругаться о несовместимости с вопросом «продолжать ли, насяльнека?». Продолжаем. Все, драйвер установлен.
Шаг 5. Финал. Для точности делаем вынь-всунь USB-порта, ждем пока все обнаруживается, открываем консоль(Win+R, вводим cmd) и пишем adb devices. Если все прошло хорошо — видим заветный пункт списка, обозначающий, что adb теперь видит наш девайс.

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

Если команда adb у вас вообще не работает. Компьютер -> Свойства -> Переменные среды. Ищем переменную Path и в конце дописываем(ни в коем случае не перезаписываем) в конце точку с запятой, а после адрес папки, где живет adb(обычно %android-sdk%\platform-tools\). После перезагрузки должно заработать.
Иногда adb не запускается автоматически при старте системы. Запустите вручную.

Что это было?
На самом деле все просто. В силу неких причин(винда мастдай/у прогеров кривые руки/гугловский инф-файл писался только для родных гугловских девайсов/в вашем компьютере все испортили бозоны Хиггса) винда не хочет кушать гугловский драйвер для негугловских девайсов, не записанніх в inf-файл. Видимо, там все как раз завязано на этих ИД-оборудования. Но ведь софтверная часть на подавляющем большинстве андроид-устройств в части дебаггер-коннектора к ПК идентична, потому драйвер должен нормально общаться с любым Андроид-устройством. Наша задача — обмануть Windows и заставить ее принять девайс за «драйверо-подходящий», что мы и сделали путем дописывания его ИД в inf-файл драйвера.

Надеюсь, кому-то данный мануал поможет завести свой китайский или другой девайс, для которого при сборке системы забыли сделать нормальный драйвер adb, или тем, кого задалбывает качать официальный драйвер от производителя устройства(это бывает настолько гемморно, что быстрей сделать все вышеописанное — у меня так было с драйвером для телефона LG E510).

Читайте также: