다음을 통해 공유


KDNET을 사용하여 Arm 디바이스에서 USB EEM을 통해 Kernel-Mode 디버깅 설정

Windows용 디버깅 도구는 Arm 디바이스에서 EEM을 사용하여 USB 케이블을 통해 커널 디버깅을 지원합니다. 이 항목에서는 kdnet.exe 유틸리티를 사용하여 Arm 디바이스에서 USB EEM을 설정하는 방법을 설명합니다.

디버거를 실행하는 컴퓨터를 호스트 컴퓨터라고 하며 디버그 중인 컴퓨터를 대상 컴퓨터라고 합니다.

USB EEM Arm 디바이스 요구 사항 Kernel-Mode

이 작업을 위해서는 다음이 준비되어 있어야 합니다.

  • 대상 컴퓨터에서 Synopsys USB 3.0 컨트롤러가 USB 형식 C 포트에 연결됩니다.

  • 호스트 컴퓨터에서 USB 2.0 또는 USB 3.0 포트가 필요합니다.

  • 호스트 유형 A 포트를 대상 형식 C 포트에 연결하려면 표준 USB 3.0 형식 C에서 형식 A 케이블로 연결해야 합니다.

  • Windows 10 2020년 10월 업데이트(20H2) 이상

대상에서 지원되는 USB 컨트롤러를 사용할 수 있는지 확인합니다.

대상 컴퓨터에서 장치 관리자 시작합니다.

Synopsys USB 3.0 Dual-Role 컨트롤러가 나열되어 있는지 확인합니다.

Synopsys USB 3.0 Dual-Role 컨트롤러가 강조 표시된 USB 노드를 표시하는 장치 관리자 스크린샷

여러 포트를 사용할 수 있는 경우 디버깅 포트 확인

디버깅을 지원하는 포트를 식별한 후 다음 단계는 해당 포트와 연결된 실제 USB 커넥터를 찾는 것입니다.

Surface Pro X에서는 KDNET EEM 디버깅에 사용되는 두 개의 USB C 포트 중 아래쪽을 사용합니다.

두 개의 USB-C 포트가 있는 Surface Pro X의 측면 사진.

kdnet.exe 사용하여 디바이스 지원 확인 및 busparams 값 보기

사용할 디버깅 포트를 지정하기 위해 busparm이 사용됩니다. 일반적으로 첫 번째 busparam만 사용되며 디바이스에 따라 0 또는 1입니다.

Arm 디바이스는 디버거를 구성하기 위해 ACPI DBG2 테이블을 사용합니다. 여기서 busparams는 DBG2 테이블 항목을 가리킵니다. 0 DBG2 테이블 항목은 일반적으로 직렬 디바이스 COM용으로 예약되므로 일반적으로 디바이스는 busparams=0을 사용하지 않습니다.

kdnet.exe 유틸리티를 사용하여 KDNET-EEM-USB 전송 디버깅을 지원하는 컨트롤러에 대한 매개 변수 정보를 표시합니다.

  1. Windows 디버깅 도구가 호스트 시스템에 설치되어 있는지 확인합니다. 디버거 도구를 다운로드하고 설치하는 방법에 대한 자세한 내용은 Windows용 디버깅 도구를 참조하세요.

  2. kdnet.exe 찾아 파일을 VerifiedNICList.xml. 기본적으로 여기에 있습니다.

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

  3. 호스트 컴퓨터에서 두 파일을 네트워크 공유 또는 썸 드라이브에 복사하여 대상 컴퓨터에서 사용할 수 있도록 합니다.

  4. 대상 컴퓨터에서 C:\KDNET 디렉터리를 만들고 kdnet.exe 복사하고 파일을 해당 디렉터리에 VerifiedNICList.xml.

  5. 대상 컴퓨터에서 관리자 권한으로 명령 프롬프트 창을 엽니다. 대상 컴퓨터에 지원되는 네트워크 어댑터가 있는지 확인하고 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.
    
  6. kdnet.exe 출력은 busparams 값이 1인 지원되는 USB 컨트롤러를 사용할 수 있음을 나타내므로 계속 진행할 수 있습니다.

대상 컴퓨터 설정

kdnet.exe 유틸리티를 사용하여 다음 단계에 따라 대상 PC에서 디버거 설정을 구성합니다.

중요

bcdedit를 사용하여 부팅 정보를 변경하기 전에 테스트 PC에서 BitLocker 및 보안 부팅과 같은 Windows 보안 기능을 일시적으로 일시 중단해야 할 수 있습니다. BCDEdit을 사용하여 부팅 정보를 업데이트한 후에는 Bit Locker 및 Secure Boot를 다시 사용하도록 설정할 수 있습니다. 보안 기능이 사용하지 않도록 설정된 경우 테스트 PC를 적절하게 관리합니다.

  1. 아래 표시된 명령을 사용하여 호스트 시스템의, busparams 값, IP 주소 및 포트를 설정하고 고유한 연결 키를 생성합니다. 169.254.255.255 IP 주소는 모든 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>

대상 컴퓨터 다시 부팅

디버거가 연결되면 대상 컴퓨터를 다시 부팅합니다. PC를 다시 부팅하는 한 가지 방법은 관리자의 명령 프롬프트에서 명령을 사용하는 shutdown -r -t 0 것입니다.

대상 PC가 다시 시작되면 디버거가 자동으로 연결됩니다.

대상 문제 해결

Windows KDNET-USB-EMM 네트워크 어댑터가 Windows 장치 관리자 네트워크 어댑터 아래에 있는지 확인합니다.

디바이스 속성은 컨트롤러가 Windows 커널 디버거에서 사용하도록 예약된 경우를 표시합니다.

컨트롤러가 예약되었음을 나타내는 Synopsys USB 3.0 Dual-Role 컨트롤러가 있는 USB 노드를 표시하는 장치 관리자 스크린샷

호스트 문제 해결

Windows KDNET-USB-EMM 네트워크 어댑터가 Windows 장치 관리자 네트워크 어댑터 아래에 있는지 확인합니다.

호스트에서 USB 유형 A 포트를 사용하는 KDNET-EEM 연결이 표시됩니다.

Windows KDNET USB-EEM 네트워크 어댑터 항목이 있는 네트워크 노드를 표시하는 장치 관리자 스크린샷

추가 정보

KDNET 네트워크 커널 디버깅 자동 설정

수동으로 KDNET 네트워크 커널 디버깅 설정

USB 3.0 케이블을 통해 수동으로 커널 모드 디버깅 설정

수동으로 Kernel-Mode 디버깅 설정