2010년 11월 17일 수요일

WHQL 인증

Device driver 등록 과정 있었던 사항 기록

WHQL Device driver 를 등록하는 이유:
1. 드라이버 설치시 경고 문구 등을 없앨 수 있다.
2. 자동으로 인터넷에서 드라이버를 다운로드 받을 수 있다.
3. 드라이버 테스트를 통과했다는 사실로 신뢰받을 수 있는 드라이버라는 점을 고객들에게 어필할 수 있다.

만약 단순히 드라이버 설치시 경고 문구를 없애는 수준의 일을 하고 싶은 경우 굳이 winqaul 에 등록할 필요까지는 없을 수 있다.

현재 Winqual 에 드라이버 등록하기 위해서는 Verisign 에서 구입한 authenticode 인증서가 필요하다. (다른 인증서 업체는 불가능 한 것으로 보인다)
 - 다른 인증서 업체들도 authenticode 인증서를 판매하기는 한다.
 - 하지만 경험상 다른 인증서가 sign 된 드라이버는 Winqual 에 등록할 수 없었다. 스스로 드라이버 파일을 sign 해서 설치시 경고 문구 없애는 정도의 수준은 되었다.
 - 그나마 XP 에 설치하는 경우 Logo 테스트를 통과하지 않했다는 경고 문구가 여전히 표시되었다.

서론:
한글로 된 설명서도 부족하고 테스트 프로그램 자체에 어떤 여지를 전혀 보여주지 않아 컴퓨터를 꺼야 하는지 기다려야 하는지 갈등되는 순간이 참 많았고 테스트 실패한 경우는 어떻게 해야할지 모르겠다가 간신히 문제 해결 방법 알아내고 나면 너무 간단해서 허탈감을 느끼기 수백번 이었다. 그나마 난감했던 사항들을 기록한다.

참고:

1. 준비
DTM Controller PC 를 설치할 PC 와 DTM Studio 를 설치할 PC 를 준비한다. (DTM Controller 와 DTM Studio 는 같은 PC 에 설치할 수 있다.) Client PC 를 준비한다. DTM Controller 와 DTM Studio, DTM Client PC 는 모두 같은 네트워크 안에 있어야 한다.

1.2 WLK 다운로드 받기
이전에 계정 관리 방법과 많이 달라진거 같다. WLK 다운 받는데도 connect 라는 계정이 필요하다.
다운로드 및 설명 페이지: http://msdn.microsoft.com/en-us/windows/hardware/gg487533
설명대로 따라하면 된다 connect 에 처음 등록한 경우 시간이 좀 흘러야 dashboard 로 이동할 수 있다. connect 등록이 완료되었는데도 다운로드 페이지가 안나오고 등록 페이지가 나왔었다. 몇 번 다시 시도하다 보면 다운로드 페이지로 넘어 간다. 다운로드 속도가 상당히 느리다.

2. 설치
DTM Controller 1.5는 windows 2003 SP1 또는 SP2 에만 설치된다.
DTM Controller 1.6는 windows 2008 R2 x64 에만 설치된다.
DTM Studio 는 DTM Cotnroller 를 설치한 PC 에 설치해도 되고 다른 PC 를 사용해도 된다.
DTM Client 는 실제 driver 가 작동될 PC 들이다.

우선 DTM Controller 를 설치했을 때 실행파일도 없고 뭔가 변경된 것도 없어보여서 당황했다. 시작 -> 실행 창을 열고 \\[PC 이름] (여기서 PC 이름을 Controller 를 설치한 PC 이름을 입력한다.)을 입력하면 공유 폴더가 생성된 것을 알 수 있다.
DTMInstall 폴더에 Studio 폴더를 들어가면 Studio 설치 파일이 있고 Client 폴더에 Client 설치 파일이 있다.
Studio 를 설치할 PC 에서 시작 -> 실행 -> \\[PC 이름] 을 실행하고 Studio 폴더에서 설치 파일 이용하여 설치
Client 를 설치할 PC 에서 마찬가지로 Client 설치(Client 프로그램 설치 후에는 재부팅을 직접 해줘야 Studio 에서 제대로 인식했다.)

3. Pool 만들기
Client 설치까지 마치면 Studio(DTM Studio) 를 실행한다.
Explorers -> Job Monitor 를 실행하고 Machine Pool 탭에 \$\Default Pool 을 클릭하면 Client 를 설치한 PC 들이 보인다.
!) 목록이 보이지 않는 경우 서버 PC 와 클라이언트 PC 가 공유기 등의 기기 없이 서로 직접 연결되어 있는지 확인한다.
Default Pool 의 Client 는 테스트 대상에서 제외되므로 Pool 을 생성한다.
$ 를 오른쪽 클릭하고 Add Machine Pool 을 클릭하여 Pool 을 생성한다.
생성한 Pool 으로 Default Pool 에 있는 Client 를 드래그 하여 옮긴다.

4. Client PC 초기화
Client PC 의 staus 가 Manual 일 것이다.
테스트하려는 Client PC 를 오른쪽 클릭하고 Change status -> Reset 한다.
View -> Refresh 또는 F5 키를 눌러서 새로 고침하다보면 Status 가 Reset 에서 Ready 로 바뀐다. 그러면 테스트 가능하게 된다.

5. 테스트 목록 만들기
테스트를 시작하려면 Explorers -> Device console 로 device console 창을 연다.
submisstion 콤보 박스를 열고 <new submission> 을 선택한다.
운영체제 버전과 카테고리들을 잘 선택한다.
이름을 지정하고 테스트하려는 Pool 을 선택한다.
Pool 을 선택하고 다음으로 넘어가려 할 때 에러 메시지가 나올 수 있다.
- Pool 안에 타겟 운영체제 없거나 submission 이름이 잘못 된 경우 일 수 있다.
inf 파일을 선택하고 Load 한다.
Load 하고 다음 과정으로 넘어가려는데 no device 어쩌구 하면서 경고 메시지가 나올 수 있다.
- 타겟 클라이언트 pc 에 드라이버를 설치하지 않았거나 Controller 가 인식을 못하는 경우일 수 있다. 드라이버를 설치하거나 지우고 다시 설치한다.
완료한다.

6. 테스트 시작
선택한 장치에 맞게 테스트 목록이 보인다.
테스트들에는 parameter 라는 것이 있고 때로는 parameter 를 수정해줘야 할 때가 있다. (말은 수정해야 될 때가 있다고 했지만 DTM Controller 도움말을 찾아보면 반드시 해줘야 되는거 같은 느낌이 들기도 한다.)
테스트 목록에 보이는 테스트들을 모두 선택한다.
시작한다.

7. 테스트 진행 및 실패 복구
테스트가 진행되고 클라이언트 컴퓨터가 꺼졌다 켜졌다 하기도 할 수 있다.
테스트 실패시 반드시 도움말에서 해당 테스트에 대해 찾아본다.
의외로 간단하게 문제가 해결되는 경우가 많다.
도움말에서도 답을 못찾을 경우 filter 를 사용해야 할 수도 있다.
filter 적용: winqual_help.pdf 48 페이지부터 참조
1) winqual 사이트의 WLK Updated Filters 링크를 클릭하여 cab 파일을 다운로드 받는다.
 - winqual 사이트 -> Dashboard -> Hardware logo 로 들어가면 페이지 아래 쪽에 Download 항목에 WLK Filter Update 링크가 있다.
2) cab 파일을 압축 풀고 sql 파일을 dtm studio 가 설치된 경로에 복사한다.
 - 예) C:\Program Files (x86)\Microsoft Driver Test Manager\Controller
3) DTM Studio 가 설치된 경로의 UpdateFilter.exe 파일을 실행한다.

7.1 테스트 실패 및 복구 케이스
[실패]Run INFTest against a single INF
 - WLK Filter 를 Update 하고 해당 테스트만 재시작하여 해결
 - 재시작하는 경우 Rerun 을 사용하지 말고 반드시 다시 해당 테스트만 schedule 해서 테스트할 것
[실패]Connectivity_USB 테스트 카테고리 항목들
 - Device console 창에서 Add Selected 후 테스트 항목을 오른쪽 클릭하면 Edit parameters...로 parameter 를 수정할 수 있다. (테스트시 사용되는 parameter 로 생각함)
 - parameter 항목에 IsEmbeddedUSBDevice 가 있는 경우 값을 TRUE 로 설정하니까 테스트 성공하였다.
[실패]USB-IF Test Certification ID Check
 - 실패 항목을 더블 클릭하여 연다. Edit Result 버튼을 누르고 Status 를 Completed 로 바꾸고 Pass 와 Fail 숫자를 수동으로 설정하고 저장한다.

8. 테스트 마무리
테스트를 모두 마치면 Device console 창에서 자신의 submission 을 오른쪽 클릭하고 create submission package 를 선택하여 cpk 파일을 생성한다.
이제 winqual 사이트에 승인받기 위한 cab 파일을 생성하기 위해 winqual submission tool 을 실행한다.
add 버튼을 누르고 cat 파일 및 드라이버 파일들이 있는 디렉토리를 선택하고 load 한다.

9. Winqual Submission Tool 사용
Winqual Submission Tool 을 이용해 제출할 xml 파일 과 cab 파일을 생성한다.
winqual_help.pdf 59 페이지 부터 참조

여러 드라이버 테스트 결과를 하나의 제출용 파일로 만들어서 제출할 수 있다.
예를 들어 x86 용과 x64 용 드라이버 테스트를 마쳤다면 Winqual submission tools 에서 해당 드라이버들을 모두 추가하고 제출용 파일을 생성하고 winqual 사이트에 제출하면 된다.

10. 제출
winqual_help.pdf 75 페이지 부터 참조

Note)
!) Client PC 는 테스트 끝나고 포맷할 생각해야 한다.
- Client 를 설치하면 PC 에 테스트용 User 를 생성하게 되는데 Client 제거해도 사용자는 계속 남는다. 현재까지 지우는 방법 알아내지 못하고 있다.
- 바탕화면 오른쪽 하단에 테스트용 이라는 문구가 남아있다.
- 절전 모드를 사용할 수 없게 된다.
- 화면 보호기 해제할 때 암호를 물어보게 할 수 없게 된다.

!) Client PC 에 생성되는 User 의 password 는 Testpassword,1 이다.

!) 반드시 모든 버전의 Windows 에서 테스트를 해야 하는 것은 아니었다.
 - Device Driver 파일 하나로 모든 버전의 windows 에서 사용 가능하다면 한 버전의 windows 만 인증 받으면 되었다.
 - xp 32비트 버전에서 인증 완료하였는데 windows 7 등 다른 windows 에서 설치하는데도 경고 메시지 없이 설치하였다.

!) 제출하고 나서 인증 실패한 경우에 대해서도 인증료를 지불해야 한다.
 - 처음에 방법을 잘 몰라서 실패한 submission 을 2번 제출하고 성공한 submission 을 마지막에 제출하였는데 나중에 청구된 돈을 보니 3 * $250 였다. 제출은 신중히 해야 한다.
 - 왠지 자체 테스트 에서 모두 성공하면 무조건 인증 받을 수 있는 거 같은 기분이다.

!) submission fee pdf 를 보면 같은 운영체제인데 x86 와 x64 로 나뉜 경우 한번에 인증 받으면 인증료 하나만 청구되는 것을 알 수 있다.

!) 예전에 계정을 만들어 두었는데 최근에 winqual 사이트를 들어가니 Live ID 로만 로그인이 가능하게 되었다.
- Live ID 로 로그인하고 사이트 상단에 Register with Winqual 로 들어가면 이전에 사용하던 계정을 LIve ID 와 연결할 수 있다.

!) 예전에 만든 계정의 패스워드를 잊어버린 경우
 - 로그인 화면의 Lost your password 링크를 누르면 예전에 만든 계정의 이메일 주소로 이메일이 온다. 내용은 다른 계정으로 로그인하여 reset 하거나 다른 계정도 없으면 winqual 메일 주소(메일 내용에 포함되어 있다)로 자신임을 입증하면 된다는 내용이다.
 - 계정이 2개 있었는데 모두 잊어버려서 winqual 메일 주소로 메일을 보냈다. 내용은 단순히 패스워드 잊어버렸으니 패스워드 reset 해달라는 내용이었다. 추측이지만 보낸 메일 주소로 당사자인지 확인하는 것으로 보인다.
 - 몇시간 정도 지나서 인도인 이름의 담당자로부터 reset 했다는 메일이 왔다.