Поделиться через


Настройка отладки режима ядра USB KDNET EEM (KDNET-EEM-USB)

Средства отладки для Windows поддерживают отладку ядра по USB-кабелю с помощью режима эмуляции Ethernet (EEM) В этом разделе описывается настройка USB EEM с помощью служебной программы kdnet.exe.

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

Требования к устройству USB EEM в режиме ядра

Требуется следующее:

  • На целевом компьютере контроллер Synopsys USB 3.0, подключенный к порту ТИПА USB C.

  • На хост-компьютере требуется внешний порт USB 3.0.

  • Обновление Windows 10 за октябрь 2020 г. (20H2) или более поздней версии

Транспорт KDNET-EEM-USB можно настроить следующим образом:

  • Устройство отладки PCI. Эти устройства отладки задаются с помощью dbgsettings::busparams=seg.bus.dev.fun.
  • Устройства отладки таблиц ACPI-DBG2. Эти устройства отладки задаются с помощью dbgsettings::busparams=1|2|3, что 1|2|3 указывает на конкретную запись массива ACPI DBG2-Table, содержащую конфигурацию устройства отладки.

Требования к кабелю

  • Для подключения порта узла типа A к порту C целевого типа C требуется стандартный usb 3.0 Type C.

Двоичные файлы транспорта

Двоичные файлы kd_0C_8086.dll для x64 и kd_8003_5143.dll для ARM используются для поддержки транспорта отладчика KDNET-EEM-USB.

Убедитесь, что поддерживаемый USB-контроллер доступен на целевом объекте.

На целевом компьютере запустите диспетчер устройств.

Убедитесь, что контроллер двух ролей Synopsys USB 3.0 указан.

Снимок экрана: диспетчер устройств отображение USB-узла с выделенным контроллером Двойной роли Synopsys USB 3.0.

Определение порта отладки при наличии нескольких портов

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

Например, на Surface Pro X используйте нижний из двух портов USB C для отладки KDNET EEM.

Фотография стороны Surface Pro X с двумя портами USB-C.

Используйте kdnet.exe для подтверждения поддержки устройств и просмотра значения busparams

Устройства Intel / AMD 64

Параметры отладки BCDEDIT хранятся в хранилище данных конфигурации загрузки (BCD). Дополнительные сведения см. в разделе BCDEdit /debug.

Устройства ARM

Устройства ARM используют таблицу ACPI DBG2 для настройки отладчика, где шина указывает на запись таблицы DBG2. Чтобы указать используемый порт отладки, используется busparm. Обычно используется только первый busparam, и он равен 0 или 1 в зависимости от устройства. Как правило, устройства не используют busparams=0, так как запись таблицы 0 DBG2 обычно зарезервирована для последовательного устройства COM. Дополнительные сведения о таблице DBG2 ACPI см. в таблице портов отладки Майкрософт 2 (DBG2).

Использование kdnet.exe для настройки USB-интерфейса EEM KDNET

Используйте служебную программу kdnet.exe для отображения сведений о параметрах для контроллеров, поддерживающих отладку транспорта KDNET-EEM-USB.

  1. Убедитесь, что средства отладки Windows установлены на узле и целевой системе. Сведения о скачивании и установке средств отладчика см. в разделе "Средства отладки" для Windows.

  2. Найдите программу kdnet.exe. По умолчанию файлы находятся здесь.

    C:\Program Files (x86)\Windows Kits\10\Debuggers\x64

  3. На целевом компьютере откройте окно командной строки от имени администратора. Введите эту команду, чтобы убедиться, что целевой компьютер имеет поддерживаемый сетевой адаптер и просмотреть значение busparams.

    C:\KDNET>kdnet.exe
    
    Network debugging is not supported on any of the NICs in this machine.
    KDNET supports NICs from Intel, Broadcom, Realtek, Atheros, Emulex, Mellanox
    and Cisco.
    
    Network debugging is supported on the following USB controllers:
    busparams=1, Device-mode USB controller with Vendor ID: 5143 (Default)
    busparams=2, Device-mode USB controller with Vendor ID: 5143
    busparams=3, Device-mode USB controller with Vendor ID: 5143
    busparams=4, Device-mode USB controller with Vendor ID: 5143
    
    This Microsoft hypervisor supports using KDNET in guest VMs.
    
  4. По мере того как выходные данные из kdnet.exe указывают на доступность поддерживаемого USB-контроллера со значением busparams 1, мы можем продолжить.

Настройка целевого компьютера

Используйте программу kdnet.exe для настройки параметров отладчика на целевом компьютере, выполнив следующие действия.

Внимание

Прежде чем использовать bcdedit для изменения сведений о загрузке, может потребоваться временно приостановить функции безопасности Windows, такие как BitLocker и безопасная загрузка на тестовом компьютере. После завершения работы можно повторно включить Bit Locker и безопасную загрузку с помощью BCDEdit для обновления сведений о загрузке. При отключении функций безопасности необходимо управлять тестируемым компьютером.

  1. Используйте приведенную ниже команду, чтобы задать значение busparams, IP-адрес и порт хост-системы и создать уникальный ключ подключения. IP-адрес 169.254.255.255 используется для всех подключений USB EMM.

  2. Выберите уникальный адрес порта для каждой пары целевых или узлов, с которыми вы работаете, в рекомендуемом диапазоне от 50000 до 50039. В примере показано значение 50005.


   C:\>kdnet.exe 169.254.255.255 50005

   Enabling network debugging on Intel(R) 82577LM Gigabit Network Connection.
   Key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
  1. Скопируйте возвращенный ключ в блокнот .txt-файл. В приведенном примере созданный ключ имеет значение:

    2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p

  2. Используйте команду BCDEdit для проверки правильности параметров. Дополнительные сведения см. в разделе BCDEdit /dbgsettings

   C:\>bcdedit /dbgsettings

   busparams               1
   key                     2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
   debugtype               NET
   hostip                  169.254.255.255
   port                    50005
   dhcp                    No
   The operation completed successfully.

Отключение брандмауэра на узле

На узле отключите брандмауэр для отладчика.

Подключение WinDbg к целевому объекту для отладки ядра

На хост-компьютере откройте WinDbg. В меню "Файл" выберите "Отладка ядра". В диалоговом окне отладки ядра откройте вкладку "Net ". Вставьте номер порта и ключ, сохраненный в блокноте .txt файла ранее. Нажмите ОК.

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

windbg -k -d net:port=<YourDebugPort>,key=<YourKey>

Перезагрузка целевого компьютера

После подключения отладчика перезагрузите целевой компьютер. Одним из способов перезагрузки компьютера является использование shutdown -r -t 0 команды из командной строки администратора.

После перезапуска целевого компьютера отладчик должен подключаться автоматически.

Устранение неполадок

Устранение неполадок с целевым объектом

Убедитесь, что сетевой адаптер Windows KDNET-USB-EMM присутствует в сетевых адаптерах в Windows диспетчер устройств.

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

Снимок экрана: диспетчер устройств с usb-узлом с контроллером двойной роли Synopsys USB 3.0, указывающим, что контроллер зарезервирован.

Устранение неполадок узла

Убедитесь, что сетевой адаптер Windows KDNET-USB-EMM присутствует в сетевых адаптерах в Windows диспетчер устройств.

На узле отображается подключение KDNET-EEM с помощью порта USB Type A.

Снимок экрана: диспетчер устройств отображение сетевого узла с записью сетевого адаптера Windows KDNET USB-EEM.

Intel PCI — сообщения о повторных попытках подключения в окнах консоли отладчика и не могут войти в целевой объект — SkipPciProbeDebugDevice

Если вы столкнулись со следующим сообщением в консоли отладчика KDNET, не удается инициировать разрыв в целевой объект или возникнуть проблемы с определенными командами (например, kdfiles), это может быть связано с получением пакета проверки связи из-за KDNET".

... Retry sending the same data packet for 128 times.

The transport connection between host kernel debugger and target Windows seems lost.
please try resync with target, recycle the host debugger, or reboot the target Windows.

Эта проблема может произойти, так как драйвер pci.sys неправильно проверит устройство отладки. Чтобы устранить ошибки, создайте следующую запись реестра на целевом устройстве в командной строке администратора.

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\SERVICES\kdnet /v SkipPciProbeDebugDevice /t REG_DWORD /d 1 /f

Затем перезапустите целевой компьютер.

shutdown /r /t 0

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

См. также

Автоматическая настройка отладки сетевого ядра KDNET

Настройка отладки сетевого ядра KDNET вручную

Настройка отладки в режиме ядра USB 3.0 xHCI-DBC (KDUSB)

Настройка отладки в режиме ядра USB KDNET (KDNET-USB)