Настройка отладки в режиме ядра через кабель USB 3.0
Средства отладки для Windows поддерживают отладку в режиме ядра по кабелю USB 3.0. В этой статье описывается, как вручную настроить отладку USB 3.0.
Компьютер, на котором выполняется отладчик, называется главным компьютером, а отлаживаемый — конечным компьютером.
Для отладки по кабелю USB 3.0 требуется следующее оборудование:
- Отладочный кабель USB 3.0, который является кроссоверным кабелем A-A, который имеет два разъема типа А и без подключения Vbus
- Контроллер узла xHCI (USB 3.0) на хост-компьютере
- На целевом компьютере — хост-контроллер xHCI (USB 3.0), поддерживающий отладку.
Чтобы упростить устранение неполадок, подключите кабель непосредственно между целевым и главным компьютером, избегая концентраторов или док-станций.
Настройка целевого компьютера
На целевом компьютере запустите средство UsbView . Средство UsbView входит в состав средств отладки для Windows.
В UsbView найдите все контроллеры узла xHCI.
В UsbView разверните узлы контроллеров узлов xHCI. Найдите признак того, что порт на контроллере узла поддерживает отладку.
[Port1] Is Port User Connectable: yes Is Port Debug Capable: yes Companion Port Number: 3 Companion Hub Symbolic Link Name: USB#ROOT_HUB30#5&32bab638&0&0#{...} Protocols Supported: USB 1.1: no USB 2.0: no USB 3.0: yes
Запишите номера шины, устройства и функции для контроллера xHCI, который планируется использовать для отладки. Эти числа отображаются в UsbView. В следующем примере номер шины равен 48, номер устройства — 0, а номер функции — 0.
USB xHCI Compliant Host Controller ... DriverKey: {36fc9e60-c465-11cf-8056-444553540000}\0020 ... Bus.Device.Function (in decimal): 48.0.0
После определения контроллера xHCI, поддерживающего отладку, необходимо найти физический USB-соединитель, связанный с портом на контроллере xHCI. Чтобы найти физический соединитель, подключите любое устройство USB 3.0 к любому USB-соединителю на целевом компьютере. Обновите UsbView, чтобы узнать, где находится устройство. Если в UsbView отображается устройство, подключенное к выбранному хост-контроллеру xHCI, значит, вы нашли физический USB-соединитель, который можно использовать для отладки USB 3.0.
Важно!
Перед использованием bcdedit
для изменения сведений о загрузке может потребоваться временно приостановить функции безопасности Windows, такие как BitLocker и безопасная загрузка на тестовом компьютере.
Повторно включите эти функции безопасности после завершения тестирования и соответствующим образом управляйте тестовой компьютером при отключении функций безопасности.
На целевом компьютере откройте окно командной строки от имени администратора и введите следующие команды:
bcdedit /debug on bcdedit /dbgsettings usb targetname:<TargetName>
TargetName — это имя, создаваемое для целевого компьютера. Обратите внимание, что TargetName не обязательно должно быть официальным именем целевого компьютера; Это может быть любая строка, которую вы создаете, если она соответствует следующим ограничениям:
- Строка не должна содержать слово debug в любом месте TargetName в сочетании с верхним или строчным регистром. Например, если вы используете DeBuG или DEBUG в любом месте целевого имени, отладка работает неправильно.
- Единственными символами в строке являются дефис (-), символ подчеркивания(_), цифры от 0 до 9 и буквы A–Z (в верхнем или нижнем регистре).
- Максимальная длина строки составляет 24 символа.
В диспетчер устройств найдите USB-контроллер, который планируется использовать для отладки. В разделе Расположение на вкладке Общие отображаются номера шины, устройства и функции. Введите эту команду:
bcdedit /set "{dbgsettings}" busparams <b.d.f>
B, d и f — это номера шины, устройства и функции для usb-контроллера узла. Номера шины, устройства и функции должны быть в десятичном формате.
Пример
bcdedit /set "{dbgsettings}" busparams 48.0.0
Перезагрузите целевой компьютер.
Отключение управления питанием
В некоторых случаях переходы питания могут препятствовать отладке через USB 3.0. Чтобы избежать этих проблем, отключите выборочную приостановку для контроллера узла xHCI и его корневого концентратора, который используется для отладки.
В диспетчер устройств перейдите к узлу контроллера узла xHCI. Щелкните узел правой кнопкой мыши и выберите Пункт Свойства. Если есть вкладка "Управление питанием ", откройте ее и снимите флажок Разрешить компьютеру выключать это устройство для сохранения питания .
В диспетчер устройств перейдите к узлу корневого концентратора контроллера узла xHCI. Щелкните узел правой кнопкой мыши и выберите Свойства. Если есть вкладка Управление питанием, откройте ее и снимите флажок Разрешить компьютеру выключать это устройство для экономии проверка.
Завершив использование контроллера узла xHCI для отладки, повторно включите выборочную приостановку для контроллера узла xHCI.
Запуск сеанса отладки в первый раз
- Подключите отладочный кабель USB 3.0 к портам USB 3.0, выбранным для отладки на хост-компьютере и целевом компьютерах.
- Определите разрядность (32-разрядная или 64-разрядная версия) Windows, работающей на хост-компьютере.
- На хост-компьютере откройте версию WinDbg (от имени администратора), соответствующую разрядности Windows, работающей на хост-компьютере. Например, если главный компьютер работает под управлением 64-разрядной версии Windows, откройте 64-разрядную версию WinDbg от имени администратора.
- В меню Файл выберите Пункт Отладка ядра. В диалоговом окне Отладка ядра откройте вкладку USB . Введите имя целевого объекта, созданное при настройке целевого компьютера. Нажмите кнопку ОК.
На этом этапе usb-драйвер отладки устанавливается на главном компьютере, поэтому важно сопоставить разрядность WinDbg с разрядностью Windows. После установки драйвера отладки USB можно использовать 32-разрядную или 64-разрядную версию WinDbg для последующих сеансов отладки.
Запуск сеанса отладки
Использование WinDbg
На хост-компьютере откройте WinDbg. В меню Файл выберите Пункт Отладка ядра. В диалоговом окне Отладка ядра откройте вкладку USB . Введите имя целевого объекта, созданное при настройке целевого компьютера. Щелкните ОК.
Вы также можете запустить сеанс с WinDbg, введя следующую команду в окне командной строки, где TargetName — это имя целевого объекта, созданное при настройке целевого компьютера:
windbg /k usb:targetname=<TargetName>
Использование KD
На хост-компьютере откройте окно командной строки и введите следующую команду, где TargetName — это имя целевого объекта, созданное при настройке целевого компьютера:
kd /k usb:targetname=<TargetName>
Перезагрузка целевого компьютера
После подключения отладчика перезагрузите целевой компьютер. Одним из способов перезагрузки компьютера является использование shutdown -r -t 0
команды из командной строки администратора.
После перезапуска целевого компьютера отладчик должен подключиться автоматически.
Устранение неполадок
USB-устройство не распознано
Если при вставке отладочного кабеля на узле отображается уведомление Windows с текстовым USB-устройством , возможно, возникает известная проблема совместимости USB 3.1–3.1. Эта проблема влияет на конфигурации отладки, когда отладочный кабель подключен к контроллеру USB 3.1 на узле и usb-контроллеру Intel (Ice Lake или Tiger Lake) 3.1 на целевом объекте.
Дополнительные сведения и описания моделей процессоров см. в разделах Ice Lake (микропроцессор) и Или Tiger Lake (микропроцессор). Чтобы найти модель процессора целевого компьютера, откройте приложение "Параметры" и перейдите к разделу Система , а затем выберите О программе. Процессор указан в разделе Спецификации устройств.
Чтобы проверить эту проблему, откройте диспетчер устройств и найдите usb Debug Connection Device (Устройство отладочного подключения USB) в разделе Универсальные контроллеры последовательной шины. Если это устройство не удается найти, проверка для неизвестного устройства в разделе Другие устройства. Щелкните устройство правой кнопкой мыши, чтобы открыть страницу его свойств. В текстовом поле состояние устройства будет отображаться текст Windows остановил это устройство, так как оно сообщило о проблемах (код 43), а USB-устройство вернуло недопустимый дескриптор USB BOS.
Чтобы обойти эту проблему, выполните следующие команды из командной строки администратора, чтобы внести изменения в реестр:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\349500E00000 /v SkipBOSDescriptorQuery /t REG_DWORD /d 1 /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\045E06560000 /v SkipBOSDescriptorQuery /t REG_DWORD /d 1 /f
Затем удалите и снова вставьте отладочный кабель.
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по