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 할 수 있을 것 같습니다.
참고자료 http://winprogger.com/blog/?p=1 http://www.osronline.com/article.cfm?article=456
USB view http://www.ftdichip.com/Resources/Utilities.htm
USB2.0 Debug 장비 http://www.plxtech.com/products/NET2000/NET20DC/default.asp