Развертывание драйверов

Разверните драйвер на Windows 10 IoT Базовая с помощью Visual Studio.

Настройте проект драйвера Visual Studio, чтобы можно было скомпилировать и развернуть драйвер для определенной платформы на этапе разработки драйвера.

Для этого упражнения можно использовать пример драйвера gpiokmdfdemo.

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

Шаг 1. Настройка

На устройстве

На компьютере

  • Убедитесь, что вы установили Visual Studio 2017.

  • Установите комплект драйверов Windows. Вам потребуется установить пакет SDK и WDK.

  • Установите сертификаты, чтобы драйвер был правильно подписан и может работать на вашем устройстве. В командной строке с повышенными привилегиями выполните следующие команды:

    1. cd c:\Program Files (x86)\Windows Kits\10\Tools\bin\i386
    2. set WPDKContentRoot=c:\Program Files (x86)\Windows Kits\10
    3. InstallOEMCerts.cmd
  • Примените исправление, чтобы включить развертывание F5 из VS. В командной строке с повышенными привилегиями выполните следующие команды:

    1. cd %TEMP% ( изменит каталог на c:\users\<username>\Appdata\Local\Temp)
    2. md “WdkTempFiles” Вручную создайте каталог WdkTempFiles. Это обходное решение для ошибки в инструментарии, и его необходимо выполнить только один раз на компьютере.

Шаг 2. Подготовка устройства с помощью Visual Studio

  • Откройте Visual Studio и выберите Тест драйвера >> Настроить устройства > Добавить новое устройство.

    • Если параметр Меню драйверов не отображается, проверка, установлен ли пакет SDK.
  • В диалоговом окне Конфигурация устройства :

    • Введите понятное отображаемое имя для целевого устройства.
    • Выберите Тип устройства = Мобильное устройство
    • В отображаемом списке выполните сортировку по IP-адресу, найдите адрес устройства Интернета вещей и выберите его. При наличии двух записей выберите одну из них с ненулевым GUID. Убедитесь, что строка выбрана — она должна выделяться синим цветом.
    • В нижней части диалогового окна находятся два переключателя. Выберите вариант Подготовка устройства и выберите параметры отладчика. Щелкните Далее.
  • В разделе Настройка параметров отладчика задайте соответствующие параметры. Следует отметить следующее.

    • MinnowBoardMax может использовать сеть для отладки.
      • Использование типа подключения Network
      • Выберите порт — можно использовать значение по умолчанию
      • Выберите ключ — можно использовать значение по умолчанию
      • Выберите IP-адрес узла компьютера, на котором выполняется Visual Studio. Не используйте адрес автосети (169.xxx).
      • Щелкните Далее.

    Настройка параметров отладки

    • Raspberry Pi использует serial для отладки ядра.
      • Подключите соответствующий последовательный отладчиковый кабель к pi и хост-компьютеру
      • Выберите Последовательный для типа подключения.
      • Заполните остальные параметры, соответствующие Raspberry Pi.
      • Щелкните Далее.
  • Теперь WDK через VS подготовит устройство Интернета вещей. На устройстве будут установлены TAEF и WDTF, а устройство будет настроено для отладки ядра в зависимости от указанных выше параметров.

  • По завершении устройство может перезагрузиться. На экране хода выполнения в разделе Конфигурация устройства отобразится состояние и отображается состояние завершено, когда устройство Интернета вещей завершит установку. Нажмите кнопку Готово.

Ход выполнения настройки

  • Устройство подготовлено, а состояние конфигурации теста устройстваотображается Настроено для тестирования драйверов.

Настройка устройств

Шаг 3. Настройка проекта драйвера Visual Studio

  1. Запустите Visual Studio в режиме администратора и откройте проект драйвера Visual Studio.

  2. Убедитесь, что версия целевой платформы соответствует пакету SDK, установленному на компьютере разработки. Выберите Свойства проекта в окне Обозреватель решений. В разделе Общие свойства конфигурации убедитесь, что версия целевой платформы соответствует пакету SDK, установленному на компьютере разработчика. Версию пакета SDK можно проверка из панель управления > Программ > и компонентов.

  3. В разделе Project > Add New Item Visual C++ Windows Driver (Добавить новый элемент > Visual C++ > Драйвер Windows) выберите Package Manifest (Манифест пакета) и нажмите кнопку Add (Добавить).

    Манифест пакета

    Package.pkg.xml в проект будет добавлен файл . В этом файле укажите теги Владелец, Платформа, Компонент и Вложенный компонент.

    Пакет pkg xml

  4. Задайте номер версии пакета в разделе Свойства > проекта ПакетОбщие > версии. Обратите внимание, что каждый раз, когда необходимо выполнить установку или переустановку драйвера, этот номер версии необходимо увеличивать.

    Версия пакета

  5. В разделе Project Properties > Driver Signing Test Certificate (Тестовый сертификат для подписи > драйвера) выберите тестовый сертификат (сертификат теста OEM телефона)

    DriverSigning

  6. Перейдите к разделу Установка драйвера и выберите Развертывание.

    Параметры установки

    • В раскрывающемся списке Имя целевого устройства выберите целевой объект, созданный выше в процессе подготовки. Обратите внимание на два варианта : Установка и повторная установка и Быстрая переустановка. Выберите нужный параметр и нажмите кнопку ОК.
    • Установка и переустановка используется для начальной установки драйвера в целевой объект. Пакет драйвера устанавливается с помощью стека обновлений Windows и может занять несколько минут. Его необходимо использовать при каждом изменении INF-файла.

Совет

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

  • Быструю переустановку можно использовать после установки драйвера, а последующие изменения в INF-файле драйверов, влияющие на реестр, отсутствуют. Этот метод обходит процесс установки, завершает работу всех devnodes, связанных с драйвером, копирует драйвер и перезапускает devnode. Это занимает несколько (<20) секунд.

Предупреждение

Выполнение этого метода не гарантируется. Если по какой-либо причине не удается завершить работу devnode для освобождения драйвера, операция завершится сбоем. Это может быть вызвано неисправным оборудованием или первоначальной реализацией драйвера. В этом случае необходимо использовать параметр Установить или переустановить.

Теперь проект Visual Studio готов к сборке и развертыванию драйвера на целевом устройстве. Если вы используете пример драйвера gpiokmdfdemo, необходимо создать таблицу ACPI и скопировать его на целевое устройство, а затем выполнить действия по созданию драйвера в Visual Studio.

Шаг 4. Сборка и развертывание драйвера

Это можно сделать двумя способами: с помощью клавиши F5 и параметра Развернуть . В обоих случаях драйвер будет построен и развернут (т. е. устанавливает его на устройстве), а F5 подключает отладчик ядра Visual Studio к установленному и загруженному драйверу.

Некоторые пользователи предпочитают использовать функцию Развертывания и подключить другой отладчик ядра, например WinDBG или KD. Это может обеспечить большую гибкость, чем использование отладчика VS.

Развернуть

  1. Щелкните правой кнопкой мыши проект в обозревателе решений.

  2. Выберите Развернуть.

    Выберите Развернуть.

  3. Процесс развертывания должен продолжиться. Устройство Интернета вещей будет перезагружено после развертывания и должно отобразить экран Gears во время установки.

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

F5

  1. В окне сборки убедитесь, что конфигурации верны. Текущая арка сборки совпадает с целевой аркой устройства. В этом случае полезно иметь арку в целевом имени. Целевой объект будет отображаться в поле представления в строке меню в VS в правом верхнем углу посередине.
  2. Нажмите клавишу F5. Целевой объект будет построен, развернут и подключен к отладчику ядра VS.
  • После перезагрузки убедитесь, что PowerShell по-прежнему подключен к нему. В противном случае повторно подключитесь к целевому устройству с помощью команды PowerShell enter-pssession .

Известные проблемы

Ошибки подготовки

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

Список ошибок:

  • ОШИБКА. Не удалось успешно завершить задачу "Регистрация WDTF".
  • ОШИБКА. Не удалось успешно завершить задачу "Настройка параметров отладчика ядра (возможная перезагрузка)"

Решение: Эти ошибки почти наверняка можно игнорировать.

Подробности:

В диалоговом окне Ход настройки конфигурации устройства отобразится следующая ошибка:

Installing necessary components...
Removing TAEF test service
    Task "Removing TAEF test service" completed successfully
Copying required files
    Task "Copying required files" completed successfully
Registering TAEF Test Service
    Task "Registering TAEF Test Service" completed successfully
Starting TAEF Test Service
    Task "Starting TAEF Test Service" completed successfully
Registering WDTF
    Task "Registering WDTF" completed successfully
Configuring TAEF test service to start automatically
    Task "Configuring TAEF test service to start automatically" completed successfully
Configuring kernel debugger settings (possible reboot)
    ERROR: Task "Configuring kernel debugger settings (possible reboot)" failed to complete successfully. Look at the logs in the driver test group explorer for more details on the failure.
Configuring computer settings (possible reboot)
Waiting for task to complete...
Waiting for task to complete...
    Task "Configuring computer settings (possible reboot)" completed successfully
Computer configuration log file://C:/Users/username/AppData/Roaming/Microsoft/WDKTestInfrastructure/ProvisioningLogs/Driver%20Test%20Computer%20Configuration%log
Failed installing components

На этом этапе можно безопасно нажать кнопку Готово , а затем применить и ОК.

Это доброкачественная ошибка, сформированная состоянием гонки, что приводит к неправильному формату журнала результатов. Это можно проверить, просмотрев файл журнала в следующей области:

  1. Откройте FTP-подключение к IP-адресу устройства (как показано на экране устройства) к каталогу Data/test/bin/DriverTest/Run . Например, ftp://<ip address of device>/Data/test/bin/DriverTest/Run/

  2. Configuring_computer_settings_(possible_reboot)_identifier.wtl скопируйте файл на локальный компьютер. Обратите внимание, что имя файла журнала совпадает с именем задачи, завершиющейся сбоем.

  3. Открытие файла в Блокноте

  4. Прокрутите журнал до конца. Будет представлен следующий текст, указывающий, что подготовка выполнена успешно.

<PFRollup
    Total="1"
    Passed="1"
    Failed="0"
    Blocked="0"
    Warned="0"
    Skipped="0" CA="6191559" LA="6191619" >
    <rti id="2109770915" />
    <ctx id="384048256" />
</PFRollup>
</WTT-Logger>