USB2.0 Debug 설정 방법

USB 2.0 을 사용한 Kernel debug 설정 방법을 만들어 봤습니다.

 

USB2.0 Debug 설정하는 방법

 

환경
Target 이 Windows Vista 이상이어야 합니다.
Host 는 Windows 2000 이상이면 됩니다.

 

설치
USB2.0 Debug 장치를 PC 에 연결하면 Driver 를 찾는데 Windbg 설치 폴더하위에 usb 폴더를 지정해 주면 설치 됩니다.(C:\Program Files\Debugging Tools for Windows\usb) 실제 드라이버명은 usb2dbg.sys 입니다.

 

Debug 설정
Target 에서는 USB 를 아무 곳에나 연결하면 안되고 EHCI 의 Root 의 port 1 에 연결해야 합니다.
Usbview 를 실행시킨 후 port 1 을 찾을 때 까지 여러 곳에 연결 해 봅니다.

 

Target 에 bcdedit 으로 debug 설정
관리자 권한의 cmd shell 을 실행해서 아래 명령을 실행 합니다.
bcdedit -debug on
bcdedit -dbgsettings usb targetname:<any-name>

 

Host 에서 Windbg 실행
Kernel debug 에서 USB 를 선택한 후 target 에서 사용한 targetname 을 입력 합니다.

 

주의
Target 에서 USB debug 로 boot 하면 usbview 에서 연결된 내용을 확인할 수 없습니다.
H/W 에서 지원해 주지 않을 수도 있습니다.
Debug 로 부팅한 상태에서 Crash 가 발생한 이후 Debugger 로 연결할 수 없습니다.
한 번이라도 Sync 가 되어 있었다면 Crash 발생시 Debugger 가 연결되기를 기다립니다.

 

Ex)
만약 50여대의 장비에서 Random 하게 서버가 죽는 다면 50개의 서버를 모두 debugger 로 booting 한 후 debugger 로 sync 를 한 번씩 해 놓으면 Crash 발생시 Debugger 가 다시 연결되기를 기다려 Debug 할 수 있을 것 같습니다.

 

참고자료
https://winprogger.com/blog/?p=1
https://www.osronline.com/article.cfm?article=456

 

USB view
https://www.ftdichip.com/Resources/Utilities.htm

 

USB2.0 Debug 장비
https://www.plxtech.com/products/NET2000/NET20DC/default.asp