Bagikan melalui


Menyiapkan debugging mode kernel USB 3.0 xHCI (KDUSB xHCI-DBC USB 3.0)

Alat Penelusuran Kesalahan untuk Windows mendukung penelusuran kesalahan pada mode kernel melalui kabel USB 3.0. Artikel ini menjelaskan cara mengatur debugging USB 3.0 secara manual.

Komputer yang menjalankan debugger disebut komputer host, dan komputer yang sedang di-debug disebut komputer target.

Debugging melalui kabel USB 3.0 memerlukan perangkat keras berikut:

  • Pada komputer host, pengendali host xHCI (USB 3.0)
  • Pada komputer target, pengontrol host xHCI (USB 3.0) yang mendukung debug
  • Pengontrol host USB komputer target harus mendukung Intel xHCI-Debug Capability Interface (DBC). Untuk informasi selengkapnya, lihat spesifikasi xHCI yang tersedia di situs Web Intel.

Persyaratan kabel

  • Kabel debug USB Microsoft oranye, yang merupakan kabel crossover A-A yang memiliki dua colokan tipe-A pria dan tidak ada koneksi Vbus. Kabel ini tersedia dari vendor seperti DataPro - USB 3.0 Super-Speed A/A Debugging Cable.

Untuk menyederhanakan pemecahan masalah, sambungkan kabel langsung antara target dan komputer host, menghindari hub atau stasiun docking apa pun.

File transportasi biner

kdstub.dll digunakan untuk mendukung transportasi debugger KDUSB xHCI-DBC USB 3.0.

Menyiapkan komputer target

  1. Pada komputer target, luncurkan alat UsbView . Alat UsbView disertakan dalam Alat Debugging untuk Windows. Untuk sistem x64, UsbView akan terletak di C:\Program Files (x86)\Windows Kits\10\Tools\kitversion\x64\usbview.exe.

  2. Di UsbView, temukan semua pengontrol host xHCI.

  3. Di UsbView, perluas simpul pengontrol host xHCI. Cari indikasi bahwa port pada pengontrol host mendukung debug.

    [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
    
  4. Catat nomor bus, perangkat, dan fungsi untuk pengontrol xHCI yang ingin Anda gunakan untuk debugging. UsbView menampilkan angka-angka ini. Dalam contoh berikut, nomor bus adalah 48, nomor perangkat adalah 0, dan nomor fungsi adalah 0.

    USB xHCI Compliant Host Controller
    ...
    DriverKey: {36fc9e60-c465-11cf-8056-444553540000}\0020
    ...
    Bus.Device.Function (in decimal): 48.0.0
    
  5. Setelah Anda mengidentifikasi pengontrol xHCI yang mendukung penelusuran kesalahan, langkah selanjutnya adalah menemukan konektor USB fisik yang terkait dengan port pada pengontrol xHCI. Untuk menemukan konektor fisik, colokkan perangkat USB 3.0 apa pun ke konektor USB apa pun di komputer target. Refresh UsbView untuk melihat lokasi perangkat Anda. Jika UsbView menunjukkan perangkat Anda terhubung ke pengontrol host xHCI pilihan Anda, maka Anda telah menemukan konektor USB fisik yang dapat Anda gunakan untuk debugging USB 3.0.

Penting

Sebelum menggunakan bcdedit untuk mengubah informasi boot, Anda mungkin perlu menangguhkan sementara fitur keamanan Windows seperti BitLocker dan Boot Aman pada PC pengujian. Aktifkan kembali fitur keamanan ini saat pengujian selesai dan kelola PC pengujian dengan tepat saat fitur keamanan dinonaktifkan.

  1. Pada komputer target, buka jendela Prompt Perintah sebagai Administrator, dan masukkan perintah ini:

    bcdedit /debug on
    bcdedit /dbgsettings usb targetname:<TargetName>
    

    TargetName adalah nama yang Anda buat untuk komputer target. Perhatikan bahwa TargetName tidak harus menjadi nama resmi komputer target; itu bisa berupa string apa pun yang Anda buat selama memenuhi batasan ini:

    • String tidak boleh berisi "debug" di mana pun di TargetName dalam kombinasi huruf besar atau kecil apa pun. Misalnya jika Anda menggunakan "DeBuG" atau "DEBUG" di mana saja di nama target Anda, penelusuran kesalahan tidak berfungsi dengan baik.
    • Satu-satunya karakter dalam string adalah tanda hubung (-), garis bawah(_), digit 0 hingga 9, dan huruf A hingga Z (huruf besar atau kecil).
    • Panjang maksimum string adalah 24 karakter.
  2. Di Device Manager, temukan Pengontrol USB yang ingin Anda gunakan untuk debugging. Di bawah Lokasi pada tab Umum , bus, perangkat, dan nomor fungsi ditampilkan. Masukkan perintah ini:

    bcdedit /set "{dbgsettings}" busparams <b.d.f>
    

    B, d, dan f adalah nomor bus, perangkat, dan fungsi untuk pengontrol host USB. Nomor bus, perangkat, dan fungsi harus dalam format desimal.

    Contoh:

    bcdedit /set "{dbgsettings}" busparams 48.0.0
    
  3. Mulai ulang komputer sasaran.

Menonaktifkan manajemen daya

Dalam beberapa kasus, transisi daya dapat mengganggu penelusuran kesalahan melalui USB 3.0. Untuk menghindari masalah ini, nonaktifkan penangguhan selektif untuk pengontrol host xHCI dan hub akarnya yang Anda gunakan untuk debugging.

  1. Pada Pengelola Perangkat, navigasikan ke node untuk pengontrol host xHCI. Klik kanan simpul, dan pilih Properti. Jika ada tab Manajemen Daya, buka tab , dan kosongkan kotak centang Izinkan komputer mematikan perangkat ini untuk menyimpan daya .

  2. Di Pengelola Perangkat, arahkan ke bagian untuk hub utama pengendali host xHCI. Klik kanan simpul, dan pilih Properti. Jika ada tab Manajemen Daya, buka tab , dan kosongkan kotak centang Izinkan komputer mematikan perangkat ini untuk menyimpan daya .

Setelah Anda selesai menggunakan pengontrol host xHCI untuk penelusuran kesalahan, aktifkan kembali penangguhan selektif untuk pengontrol host xHCI.

Mulai sesi penelusuran kesalahan untuk pertama kalinya

  1. Sambungkan kabel debug USB 3.0 ke port USB 3.0 yang Anda pilih untuk pemecahan masalah di komputer host dan target.
  2. Tentukan jenis bit (32-bit atau 64-bit) Windows yang berjalan pada komputer host.
  3. Pada komputer host, buka versi WinDbg (sebagai "Administrator") yang cocok dengan arsitektur Windows yang berjalan pada komputer host. Misalnya, jika komputer host menjalankan Windows versi 64-bit, buka WinDbg versi 64-bit sebagai Administrator.
  4. Pada menu File , pilih Debug Kernel. Dalam kotak dialog Penelusuran Kesalahan Kernel, buka tab USB . Masukkan nama target yang Anda buat saat menyiapkan komputer target. Klik OK.

Pada titik ini, driver debug USB diinstal pada komputer host, itulah sebabnya penting untuk mencocokkan arsitektur WinDbg dengan arsitektur Windows. Setelah driver debug USB diinstal, Anda dapat menggunakan WinDbg versi 32-bit atau 64-bit untuk sesi debugging berikutnya.

Memulai sesi penelusuran kesalahan

Menggunakan WinDbg

Di komputer host, buka WinDbg. Pada menu File , pilih Debug Kernel. Dalam kotak dialog Penelusuran Kesalahan Kernel, buka tab USB . Masukkan nama target yang Anda buat saat menyiapkan komputer target. Pilih OK.

Anda juga dapat memulai sesi dengan WinDbg dengan memasukkan perintah berikut di jendela Prompt Perintah, di mana TargetName adalah nama target yang Anda buat saat menyiapkan komputer target:

windbg /k usb:targetname=<TargetName>

Menggunakan KD

Di komputer host, buka jendela Prompt Perintah dan masukkan perintah berikut, di mana TargetName adalah nama target yang Anda buat saat menyiapkan komputer target:

kd /k usb:targetname=<TargetName>

Mulai ulang komputer target

Setelah debugger tersambung, boot ulang komputer target. Salah satu cara untuk melakukan boot ulang PC, adalah dengan menggunakan shutdown -r -t 0 perintah dari prompt perintah administrator.

Setelah PC target dimulai ulang, debugger akan terhubung secara otomatis.

Pemecahan Masalah

Perangkat USB tidak dikenali

Jika pemberitahuan Windows muncul di host dengan teks USB device not recognized saat Anda memasukkan kabel debug, ada kemungkinan Anda menghadapi masalah kompatibilitas USB 3.1 dengan dirinya sendiri yang sudah diketahui. Masalah ini memengaruhi konfigurasi debug ketika kabel debug terhubung ke pengontrol USB 3.1 pada host dan pengontrol USB Intel (Ice Lake atau Tiger Lake) 3.1 pada target.

Untuk informasi selengkapnya dan daftar model prosesor, lihat Ice Lake (microprocessor) dan atau Tiger Lake (microprocessor). Untuk menemukan model prosesor komputer target, buka aplikasi Pengaturan dan buka Sistem lalu Tentang. Prosesor tercantum di bawah Spesifikasi perangkat.

Untuk memverifikasi masalah ini, buka Device Manager dan cari Usb Debug Connection Device di bawah pengontrol Universal Serial Bus. Jika perangkat ini tidak dapat ditemukan, periksa perangkat Tidak Diketahui di bawah Perangkat lain. Klik kanan pada perangkat untuk membuka halaman propertinya. Kotak teks status perangkat akan memiliki teks Windows telah menghentikan perangkat ini karena telah melaporkan masalah (Kode 43) dan perangkat USB mengembalikan deskriptor USB BOS yang tidak valid.

Untuk mengatasi masalah ini, jalankan perintah ini dari perintah administrator untuk membuat perubahan pada registri:

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

Kemudian, lepaskan dan masukkan kembali kabel debug.

Koneksi mencoba kembali pesan pada jendela konsol debugger dan tidak dapat masuk ke target - SkipPciProbeDebugDevice

Jika Anda menemukan pesan berikut di konsol debugger KDNET, tidak dapat memulai pembobolan ke target, atau mengalami masalah dengan perintah tertentu (misalnya, kdfiles), mungkin karena KDNET menerima paket ping yang tidak berurutan."

... 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.

Masalah ini dapat terjadi karena driver pci.sys salah memeriksa perangkat debug. Untuk menghilangkan kesalahan, buat entri registri berikut pada perangkat TARGET pada prompt perintah administrator.

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

Kemudian mulai ulang komputer target.

shutdown /r /t 0

Setelah perangkat di-boot ulang, kesalahan akan hilang, dan perintah harus berfungsi seperti yang diharapkan.

Lihat juga

Menyiapkan penelusuran kesalahan mode kernel secara manual

Menyiapkan Debugging Kernel Jaringan KDNET Secara Otomatis

Menyiapkan Debugging Kernel Jaringan KDNET Secara Manual

Menyiapkan Debugging Mode Kernel USB KDNET EEM (KDNET-EEM-USB)

Menyiapkan debug mode kernel USB KDNET (KDNET-USB)