VirtualBox+Windbg 进行双机调试

1.安装Virtual Box虚拟机
官方网址:https://www.virtualbox.org/
在左边找到Downloads标签, 选择合适自己平台的安装包就行了(可比VMWare小多了).
这软件自带中文语言包, 且说是开源+免费软件, 所以不要到其它地方去找什么破解, 绿色之类, 搞得不好反倒弄一身的XX.

2.安装虚拟机操作系统
对于VBox安装虚拟机操作系统, 百度一下, 太多了...百度吧.

3.对虚拟机中的操作系统进行额外的设置
常规的设置,比如内存大小, 显存大小等, 请酌情分配就行.
3.1 对串口的支持设置(需要在关机的条件下设置)
02094912-61b101ea18db4ce28e44f35fd8016ca1
注意管道的命名规则, 否则会创建失败.
02094912-61b101ea18db4ce28e44f35fd8016ca1

3.2 在虚拟机和实机之间共享文件
第一种办法(目录共享):
02095104-f796597fedbc482296e86fc555da8b15
02095213-ff83bbb66d5842da84dab40147ef475a
02095224-accdb4479c6f44788392fb3425136da0
02095234-03f4f1fb81dd4d6688d9d90369d12c7f

第二种办法(简单方便, 但貌似会使电脑出现拖放问题):
02095642-42d9f6544fe8453189808b21f7cd0cd6

3.3 修改操作系统配置文件以启动调试模式
在虚拟机中, 找到 C:\Windows\boot.ini(隐藏,只读),在最后加上一行:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200

/debugport=com1就是上面创建的管道的命名后面的部分:\\.\pipe\com1,/baudrate=115200表示设置波特率(这个可以大点,速度快些,但不能随便乱设置)
/debug 表示启用调试
修改后大概是这样的:

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200

重启虚拟机,  选择第2项启动菜单进入调试模式:
02100820-eb6753cc22db46ec983c4abe061b619f

4. 配置Windbg进行调试
4.1 下载符号文件(如果没有)
1) 到http://msdn.microsoft.com搜索下载
2)到http://msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx
当然,也可以直接设置在Windebug 的Symbol 选项中“SRV*C:\WINDOWS\SYMBOLS.NET*http://msdl.microsoft.com/download/symbols;” 后面的其他PDB 文件的路径,用“;”隔开。
4.2 新建一批处理脚本文件(双机调试.bat)
内容如下:

@echo off
::调试Windbg的路径(有空格请加上双引号)
set Windbg="I:\Dynamic Debug\WinDbg v6.11.0001.404 X86\windbg_EN.exe"
::设置命令行参数
::其中com:port=\\.\pipe\com1是上面创建的管道. 波特率设置要一致
::-y H:\Cache\symbols表示调试符号文件的路径
set Param=-b -k com:port=\\.\pipe\com1,baud=115200,pipe -y H:\Cache\symbols
::打开调试
start "" %Windbg% %Param%
goto :eof

附图:
02102059-294abad0d91f4c4f946a83b58b16f115

保存后, 直接双击打开该bat脚本文件即可打开WinDbg并调试虚拟机(先要打开虚拟机并进入调试模式)
02102934-fe886251c1854378ab5cc7c180af86c9

一开始虚拟机可能处理未响应状态(被调试), 按照上面的说明, 在下面的命令行中执行命令g即可继续.
之后通过共享文件的方式, 加载相应的驱动/程序, 通过手动下断点的方式进入调试:
在驱动中手动加入断点:
#if DBG
__asm int 3
#endif

即可使虚拟机挂起到调试状态了.

参考链接 http://www.cnblogs.com/nbsofer/archive/2013/01/02/2841513.html

Windbg 在Windows 7 平台上通过 1394 远程调试 Windows XP

什么是1394?

1394是提供给高速外设的串行总线介面标准,此介面标准由IEEE所开发,设计传输速率为100、200、400、800Mb/秒。1394是为精简整体设备的连接而设计,它去除了一些不必要的输入/输出连接,且使主板看起来更干净整齐,而且能降低系统的成本。现在,人们习惯称1394接口为“火线”。

使用1394最明显的好处就是它的传输速率要远超过串口。

准备

首先要确保调试机器和被调试机器都拥有1394接口,现在大多数机器都没有带1394口,由于我用的是DELL E5400,机器本身自带1394口,刚好用来做Host Debug,而且移动起来比较方便。如果目标机上不具备1394口,也有办法。那就是到电脑城买一块1394的PCI转接卡,便宜的卡几十块钱就能买到。另外还需要一根1394传输线,有4 ping和6 ping两种接口,无论哪种接口都可以,只要确保两端能够正常连接,我用的是4p to 4p。

配置

由于操作系统和Windbg本身版本的不断更新,各平台的配置稍微有一些变化,一定要注意。

为了避免大家少走一些弯路,下面列出了我成功配置的步骤。

1. 在Target上修改boot.ini,添加

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Debugging with 1394" /fastdetect /debug /debugport=1394 /channel=10

然后重启(注意,channel 的号码不宜太高,我刚刚设置成 88 则是不能调试的,设置成10 ,就可以正常识别)。

2. 在Target上打开设备管理器,禁用1394总线控制器。(在XP SP2和Server 2003以及后续版本不需要此步骤,debug会自动禁用1394总线控制器)。

3. 在Host上安装Windbg,运行kernel debug->1394 debug,第一次运行的时候会提示安装失败,这时候windbg会自动安装1394虚拟驱动,安装完成之后会在设备管理器的Adapter项添加一个1394 debug的虚拟设备。如下图所示

屏幕截图

 

注意,Windbg在我的机器上面是不能成功安装驱动的,此时观察设备管理器,会发现一个未识别的设备,查看详情,发现里面包含1394 字样,应该就是这个驱动,可能是由于Windbg里面的自带的驱动版本太低,导致安装失败,这时候,只需要联网并且让他去Windows Update 上面去更新就可以了。

4. 重新启动Windbg,在kernel deubg->1394 debug项填入和Target相同的channel号,确定。

5. 重启Target机器,在启动界面选择Debug进入操作系统。

如果在Host Windbg界面上有显示大量的信息就说明连接成功了

64位Windows操作系统为驱动程序添加测试数字签名

原因:MS自从Vista开始在64位系统加载内核驱动要强制签名了,现在需要在64位下面测试驱动,可是还没有拿到驱动签名。

解决方案:自己伪造签名。

过程:

1.打开系统的testsigning模式,使得非权威CA发放的签名可以使用

bcdedit /set testsigning on

2.做一个签名证书出来。

MakeCert –r –pe –ss PrivateCertStore –n CN=www.mobibrw.com(test) dawnh.cer

3.把证书加进本机信任根CA中去。

CertMgr -add dawnh.cer -s -r localMachine root

4.给驱动签名。

Signtool sign /v /s PrivateCertStore /n www.mobibrw.com(test) /t http://timestamp.verisign.com/scripts/timestamp.dll xxxDriver.sys

说明:

1.xxxDriver.sys就是所要签名的驱动文件名称了。

2.MakeCert.exe,CertMgr.exe和Singtool.exe在基本系统中不附带,不过Plateform SDK,.netFramework SDK,Visual Studio里面都有,拣自己方便弄得安一个就是。

3.命令中www.mobibrw.com,dawnh都可以替换成你自己喜欢的,不过反正是fake的,你自己爱写什么写什么,如果要签其他驱动把AliWiFiDriver.sys换成你要的文件名就是了。

4.要reboot。

5.testsigning打开后据说会影响到DRM,会使有DRM的玩意儿失效,不过我等贫民还没看见什么东西用DRM。

6.喜欢学习的好同学想知道原理自己去啃文档:

http://msdn2.microsoft.com/en-us/library/aa906247.aspx

参考 http://blog.csdn.net/cosmoslife/article/details/7896507

Ubuntu 14 Remmina 远程桌面提示 “无法连接到RDP服务器”

Ubuntu 中用 Remmina 远程桌面来登陆管理远程的Windows 电脑还是非常方便的,但是有时候会发生莫名的报错  “无法连接到RDP服务器” ,此时在命令行下面调用 rdesktop 是可以正常连接到服务器的,但是 Remmina 就不行了,找了半天找到解决方法。

删除 ~/.freerdp/known_hosts 即可,貌似是被控端的证书变更了,或者失效了,系统没有及时更新,导致异常。

另外,如果不能正确的保存新建的连接信息,看看 ~/.remmina 目录是不是被删除了,貌似 Remmina 不会自动创建目录,这个需要手工创建一个就OK 了。

清除被占用的串口(COM)

在使 用单片机开发板的时候,由于笔记本的串口有限,所以就买了个USB-HUB,中间了USB-COM的转换器,所以第一次使用的时候要安装驱动。但是发现个问 题,如果每次使用HUB不同的USB口,每次就需要安装驱动。麻烦的是,每次安装完驱动之后,电脑上的COM端口号都会被改变。虽然每次都可以通过串口 “属性”中的“高级”来重新配置端口的编号,但是之前的那些已经配置过并且现在实际上没有被使用的串口仍然显示“使用中”,这样就会发生冲突。

我们可以通过删除注册表中的一个数值项来清除这些配置:在“运行”对话框中输入 “regedit”进入注册表;然后进入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \COM Name Arbiter这时我们可以找到该数值项:ComDB,它的值代表目前使用中的串口端号。比如1d,它的二进制:0001 1101,则从右往左数代表第1,3,4,5端口被占用。这样我们只需要把ComDB这个数据项删除,关闭注册表(不用重启电脑)即可。或者我们一直使用 HUB中的同一个USB口,这样也不需要更改。

Ubuntu 12.04 PHP5增加WordPress文件上传大小限制

一般来说你使用的主机会限制你上传文件的大小,在WordPress的媒体文件上传可以看到,大多数都是2MB。如果是图片的话可能会还够用,但是如果是其他文件就不一定够用了。

增大可以上传的文件大小的话,则执行如下命令

sudo vim /etc/php5/apache2/php.ini

搜索 “upload_max_filesize ”,把默认的 2M修改为需要的大小。
如果这个时候,重启了Apache,会发现上传的大小被限制在了8M,这个时候需要继续修改 “post_max_size = 8M”到指定的大小才可以。然后,重启Apache2

如果你使用了CGI或者FastCGI ,这么修改可能没有效果
如果用到了CGI,则需要修改 “/etc/php5/cgi/php.ini”。
如果用到了CLI则需要修改 “/etc/php5/cli/php.ini”。
如果用到了Apache2 PHP FPM模块,需要修改 “/etc/php5/fpm/php.ini”。
如果实在不知道,那么就都修改一下好了。

对于使用FastCGI的情况,按照上面的修改完成后,WordPress的界面上应该已经显示为正确的大小了,但是当你真的上传一个比较大的文件的时候,却可能一直失败,抓包分析之后,发现HTTP返回了500错误。这个时候如果你去看Apache2的日志,却发现没什么太明显的错误信息。主要这么一条比较可疑

[warn] [client x.x.x.x] mod_fcgid: HTTP request length 139072 (so far) exceeds MaxRequestLen (131072), referer ...

这个被标记为警告,实际上,这就是返回500错误的原因。产生这个错误的原因在于FastCGI限制默认的请求大小为131072字节,而我们上传文件如果超过这个大小的现在,就直接返回异常了。

修改FastCGI的配置文件即可

sudo vim /etc/apache2/mods-enabled/fcgid.conf

可以看到里面内容大致如下:

<IfModule mod_fcgid.c>
  AddHandler    fcgid-script .fcgi .php
  FcgidConnectTimeout 120
  DefaultMaxClassProcessCount 10
  MaxRequestLen  131072
  IPCCommTimeout 300
</IfModule>

此时应该修改MaxRequestLen 到一个比较大的数字即可,注意这个数字的单位是字节,要自己换算一下,要比自己设置的上传文件的大小要大一些才可以。

USB 转串口 PL2303驱动黄色叹号问题(该设备无法启动。 (代码 10))

很早之前买的一个优越者的USB串口线,放了很久,现在拿出来使用,更新到最新的驱动,总是提示 “该设备无法启动。 (代码 10)”。经过多次研究发现,芯片可能不是正规授权,然后原厂为了打击这种冒牌的,在新版的驱动中加入了鉴别代码,让盗版芯片无法正常运行,那我们可以使用老版本的驱动,老版本的驱动使用正常。目前已知的驱动光盘自带的 2.0.0.24 版本的驱动是可以正常支持的,但是可惜的是,这个版本的驱动没有经过WHQL 测试,每次安装都会存在警告。

在网络上面 http://hi.baidu.com/arike/item/6cdb54b7824a4ff162388e8e 这个链接上面提供了其中的一个版本,不妨看看。

貌似提供的驱动下载链接已经失效了,可以点击这里下载。Y-105 USB To Serial Adapter2

WordPress自动加载的Open Sans字体导致WP访问过慢

WordPress大概从wp-3.8开始会自动加载Open Sans字体,并引用Google上面的CSS样式。Open Sans字体主要用于WP站点管理员登陆后顶部功能条的字体样式,而对于国内用户来说,Google会出现经常打不开或者访问速度过慢的情况,所以会拖延 站点的打开速度。

通过观察代码可以看到,WP是这样加载字体的,在script-loader.php(wp-4.2)的690行代码进行加载。

$open_sans_font_url = "https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets";

可用的方法

插件过滤

1. 插件一

名称:Remove Open Sans font Link from WP core

地址http://wordpress.org/plugins/remove-open-sans-font-from-wp-core/

简介Installs ‘Remove Open Sans font Link from WP core’ plugin on your wordpress blog, so it will doesn’t load Open Sans font from Google fonts. 移除WP核心的谷歌字体链接.

2. 插件二

名称:Disable Google Fonts

地址http://wordpress.org/plugins/disable-google-fonts/

简介:另一个类似的插件

用360的内地服务来替代谷歌的

打开wordpress代码中的文件wp-includes/script-loader.php文件,搜索:fonts.googleapis.com找到这行代码:

$open_sans_font_url = "//fonts.googleapis.com /css?family1=Open+Sans:300italic,400italic,600italic,300,400,600& subset=$subsets";

20140605110301532

把fonts.googleapis.com替换为fonts.useso.com 20140605110301571

修改完保存,再次刷新,大家就可以发现,自己的网站速度已经比以前快了很多,几乎瞬间就可以拿到Google字体了。

参考链接


Css中用Google Fonts ,国内使用方法

mod_fcgid: HTTP request length XXXX (so far) exceeds MaxRequestLen (131072)

更新完成了新的WordPress 之后,在编辑新的文章的时候,提示服务器内部错误,查看 Apache2 的日志,发现如下错误

[Wed Jun 04 13:42:20 2014] [warn] [client 42.120.74.210] mod_fcgid: HTTP request length 133623 (so far) exceeds MaxRequestLen (131072), referer: http://www.mobibrw.com/wp-admin/post-new.php

查询了一下原因,发现是由于 FastCGI 的默认的提交最长的HTTP 数据缓冲区小于文章的实际长度了。因此需要增大缓冲区的长度。

sudo vim /etc/apache2/mods-available/fcgid.conf

然后看看配置文件中是否有 MaxRequestLen”有则修改,无则增加。

我这边的默认配置如下

<IfModule mod_fcgid.c>
  AddHandler    fcgid-script .fcgi .php
  FcgidConnectTimeout 20
  DefaultMaxClassProcessCount 10
</IfModule>

修改之后的结果为

<IfModule mod_fcgid.c>
  AddHandler    fcgid-script .fcgi .php
  FcgidConnectTimeout 20
  DefaultMaxClassProcessCount 10
  MaxRequestLen  15728640
</IfModule>

Windows 硬件认证循序渐进指南

Windows 硬件认证循序渐进指南

Microsoft Corp.

发布日期:2012 年 10 月

版本 2.0

适用于:

此信息适用于 Windows 8

摘要

Windows® 硬件认证工具包(Windows® Hardware Certification Kit,Windows HCK) 使开发人员、ISV、IHV 和 OEM 能够针对 Windows(R) 8 认证其硬件设备。

版权信息

本文档按原样提供。本文档中提供的信息和视图(包括 URL 以及其他 Internet 网站参考)如有更改,恕不另行通知。你需自行承担使用本文档所带来的风险。

本文档不赋予任何Microsoft产品中的知识产权的法律权利。你可以复制和使用本文件作为内部参考。

© 2012 Microsoft。保留所有权利。

Microsoft、Windows 和 Windows Media 是 Microsoft 公司集团的商标。

所有其他商标均为其各自所有者的财产。

Windows 硬件认证循序渐进指南

Windows® 硬件认证工具包(Windows® Hardware Certification Kit,Windows HCK) 包含为下列操作系统认证硬件所需的全部工具和文档:

· Windows 8

· Windows Server® 2012

· Windows 7

· Windows Server 2008 R2

Windows® 认证程序 是 Windows® 徽标程序 的后续产品。Windows HCK 是 Windows® Logo Kit (WLK) 的后续产品。

测试概念

Windows HCK 测试是基于功能检测的。与上面的工具包不同的是,Windows HCK 确定设备的哪些部分可以进行认证。

术语

· 功能:功能是指由设备揭示的 Windows 功能。当你将某个设备连接到 Windows HCK 环境时,该工具包会使用名为 Gatherer 的机制在该设备上搜索功能。从 Windows(R) 8 开始,功能是使用命名空间样式(例如,Device.Graphics.WDDM12、System.Client.BluetoothController.Base 和 Filter.Driver.Network.LWF)进行组织的。

· 要求。要求是一种正式规范,用来定义功能为了符合 Windows 硬件认证所必须执行的操作。从 Windows(R) 8 开始,要求使用命名空间样式进行组织。例如,Device.Imaging.Scanner.Base.RawFileFormat 是 Device.Imaging.Scanner.Base 功能的要求。

· 测试:测试可验证在设备上实现的功能是否符合要求。每个测试都有一个指向其所验证的要求的指针。

· 产品类型:产品中包含预定义的可测试功能列表。产品类型替代了 Windows 徽标工具包中先前的自选择类别系统。若要接收 Windows 硬件认证,产品必须至少实现一个产品类型的所有功能。

工作原理

在下面的示例中,多功能打印机设备具有多个功能:它既是扫描仪,又是以太网网络端口、存储读取器和打印机。Windows HCK 检测每个功能,确定它的相关要求,然后运行相应的测试以验证这些要求是否已正确实现。

最佳实践

除了了解新的术语和逻辑外,请考虑下面的最佳实践:

· 使用 Windows 硬件要求设计硬件。如果你未能满足其中的任何要求,你的设备将无法通过测试过程,这会浪费你宝贵的时间。

· 请在测试之前查阅设备的认证测试参考。任何 Windows HCK 测试都可能需要一种特殊的配置。设备越复杂,测试配置也越复杂。

· 手动测试需要的准备工作更多,测试时间也会更长。你应当将手动步骤与自动测试分开运行。当你将设备连接到 Windows HCK 时,可以按自动和手动 方式对检测到的测试进行排序。若要了解有关任何测试的更多信息,请从 Windows HCK Studio 中选择该测试,然后按 F1 获得帮助。

· 确保测试服务器包含最新的 QFE 和筛选器。我们会定期发布更新的测试。有关详细信息,请参阅 Windows 开发人员中心中的 Windows 硬件认证

测试策略

测试的复杂程度取决于设备的复杂程度。测试可能会非常简单,只需连接设备和运行测试即可,也可能需要额外的硬件资源、大量配置和/或实际使用。考虑到你对设备的了解程度和此工具包的先前版本,你可以通过以下两种方法进行测试:

· 将设备连接到 Windows HCK 环境。让此工具包检测功能以及要针对该设备运行的相应测试。在每个已标识的设备上按 F1 以查看它的任何先决条件。

· 提前查看《Windows HCK 用户指南》。请参阅在该设备中实现的特定技术的测试参考部分,尤其是每个区域的先决条件主题。

Windows HCK 测试过程

你必须先设置要认证的硬件所需的测试环境,才能开始进行测试。测试环境包括测试服务器(控制器)、测试计算机和任何所需的其他硬件或软件。设置环境之后,可以使用新的 Windows HCK Studio 工具测试硬件。此流程包括:

1. 查看先决条件

2. 在测试服务器上安装 Controller 和 Studio 软件

3. 在测试计算机上安装 Client 软件

4. 创建项目

5. 创建计算机池

6. 选择要认证的功能

7. 选择和运行测试

8. 查看结果

9. 创建提交程序包

先决条件

在开始测试之前,请确保测试环境符合必需的要求。Windows HCK 由两个组件组成:一台测试服务器;一台或多台测试计算机。

· 测试服务器 通 常称为控制器,测试 服务器包含两个部分:Windows HCK Controller 和 Windows HCK Studio。Controller 软件是用来管理 测试计算机上所运行测试的引擎。Studio 软件是一种管理工具,允许你在与测试服务器所连接的任何测试计算机上选择和安排测试。 Controller 和 Studio 是从 Windows HCK 安装源安装的。测试服务器在建立之后,对于远 程 Windows HCK Studio 和 Windows HCK Client 包含单独的安装程序。

一个控制器可控制一系列客户端计算机。控制器只能管理和访问它们所控制的客户端计算机。

· 测试计算机 又 称为客户端计算机, 每台计算机都可以有一个不同的适用于各种测试方案(包括不同的硬件、操作系统、Service Pack 和驱动程序)的配置。每台测试计算机都只能与一 台测试服务器相关联。你可以通过从测试服务器上的共享网络位置直接运行 Windows HCK Client 软件安装程序来配置每台测试计算机。

HCK 部署方案

Windows HCK 有两种部署方案:

· 加入到域的环境:在加入到域的环境中,需要一个域控制器,为 Windows HCK 功能指定的所有计算机都需加入到该域控制器。如果你打算在加入到域 的环境部署 Windows HCK,则至少需要三台计算机:一台 Windows 域控制器、一台 Windows HCK 测试服务器和一 台 Windows HCK 测试计算机。请确保在域控制器上已配置而且正在运行 Microsoft Active Directory®

· 工作组环境:工作组环境中没有域控制器。如果你打算在工作组中部署 Windows HCK,你至少需要两台计算机:一台测试服务器和一台测试计算机。请勿使用默认的管理员帐户。

另外,请考虑为了以最佳方式使用 Windows HCK 而需要以何种方式组织实验室资源。你需要确定测试服务器以及与它们相连的测试计算机的数量。这些决定在一定程度上受到要认证的设备或系统类型的影响。

若要测试系统和过滤驱动程序,至少需要 1 台测试服务器和 1 台测试计算机。

若要测试外部设备,至少需要 1 台测试服务器、1 台测试计算机以及要测试的外部设备。

如 果你希望降低控制器和客户端的管理开销,则你可以选择分配较少的控制器,并在每个控制器上连接多个客户端。一个控制器上最多可以连接 150 个 客户端。或者,你可以分配较多的控制器,并在每个控制器上连接较少的客户端。这样,与任何给定的控制器进行通信的客户端较少,该控制器的响应速度会更快。

下图显示了一个示例测试环境。

系统要求

测试服务器

组件 最小配置 最佳配置
处理器 采用单核基于 Intel 或 AMD x64 平台,且速度为 2.0 GHz 的处理器 基于 x64 的多核处理器或多个基于 x64 的处理器,在 x64 模式下运行,速度为 2.0 GHz 或更快
系统内存 2 GB 主内存 4 GB 主内存
硬盘容量 最少 300 GB,容纳可能生成的大量日志。 RAID 或 JBOD 阵列配置
网络连接 每秒 100 兆位 (Mbps)
操作系统 英语版本的 Windows Server 2008 R2(64 位)备注有关安装 Windows Server 2008 R2 的信息,请参阅 Windows Server 网站。

备注

控制器不能安装在以下 OS:Windows Server 2003、Windows Server 2008、Windows Vista®、Windows XP 或 Windows 2000。

控制器不能安装在已经设置为域控制器的 Windows Server 2008 R2 上。

控制器不支持安装在虚拟电脑或任何第三方虚拟机监控程序环境中。

如果你打算将 Windows® 评估和部署工具包 (Windows ADK) 与 Windows HCK 安装在同一系统上,请先安装 Windows HCK。否则,Windows HCK 安装将失败。

其他要求  不能在域控制器计算机上安装控制器。测试服务器上必须已经启用 IPv6 寻址。对于 Windows Server 2008 R2,IPv6 寻址在默认情况下处于启用状态而且不能被禁用。需要将系统语言设置为美国英语。为此,请单击控制面板中的区域和语言,单击管理选项卡,单击更改系统区域设置,然后选择英语(美国)

测试计算机

组件 最小配置
处理器 你所安装的操作系统推荐的处理器。
系统内存 请参考你所安装的操作系统推荐的处理器。
硬盘容量 最少 300 GB,容纳可能生成的大量日志。客户端必须唯一,你不能交换驱动器。
网络连接 每秒 100 Mbps
操作系统 安装你要测试的 Windows 操作系统。在虚拟电脑或任何第三方虚拟机监控程序环境中均不支持测试计算机。如果你要测试 WindowsN版本,则还必须手动安装 Media Feature Pack。
其他要求 许多测试都需要重新启动测试系统(通常需要重新启动多次)才能完成所运行的测试。因此,我们建议你:· 将测试计算机配置为从硬盘驱动器的常规启动扇区(而不是外部设备、CD 或 DVD 启动光盘)启动。· 在测试计算机上启用自动登录。有关详细信息,请参阅 HCK 实验室安全主题。

测试还需要:

· 筛选器。

· 测试签名驱动程序。

· 在程序包创建结束时请求的其他源代码/自述文件。

可选的远程/独立 Windows HCK Studio

组件 最小配置
处理器 你所安装的操作系统推荐的处理器。
系统内存 请参考你所安装的操作系统推荐的处理器。
硬盘容量 最少 300 GB,容纳可能生成的大量日志。客户端必须唯一,你不能交换驱动器。
网络连接 每秒 100 Mbps
操作系统 · Windows Vista· Windows 7· Windows 8

在虚拟电脑或任何第三方虚拟机监控程序环境中均不支持 HCK Studio。

其他要求

你还可能需要为你要测试的设备或系统配置额外的硬件。有关详细信息,请参阅要测试的每个功能的先决条件部分:

系统

· System.Client 测试

· System.Fundamentals 测试

· System.Server 测试

设备

· Device.Audio 测试

· Device,Buscontroller 测试

· Device.Connectivity 测试

· Device.Fundamental 测试

· Device.Graphics 测试

· Device.Imaging 测试

· Device.Input 测试

· Device.Network 测试

· Device.Media 测试

· Device.Portable 测试

· Device.Storage 测试

· Device.Streaming 测试

筛选器驱动程序

· Filter.Driver 测试

步骤1:在测试服务器上安装 Controller 和 Studio

在此步骤中,将在指定的测试服务器上安装 Windows HCK 软件。测试服务器应当随 Windows Server 2008 R2 预先安装。安装程序会安装 Windows HCK Controller 和 Studio 和其他资源。

1. 从 Windows 硬件开发人员中心下载 Windows HCK2. 从下载位置,单击下载>运行警告

不要选中保存选项。保存选项仅下载 Windows HCK 安装程序,而不下载完整的工具包。

3. 当指定位置屏幕出现时,选择相应的选项:

a. 安装选项 – 选择将 Windows HCK 安装到此计算机,然后单击安装

b. 下载选项 – 选择下载 Windows HCK 以便在其他计算机上进行安装,然后单击下一步

4. 选择Controller + Studio选项。

如果要直接安装,则必须打开服务器上的端口。 选择,打开端口。

5. 当加入客户体验改善计划(CEIP)屏幕出现时,选择,然后单击下一步

备注

如果你的网络未连接到 Internet,请选择

6. 查看许可协议,然后单击接受继续操作。

7. 如果选择安装选项,安装过程大概需要 45 分钟。如果此计算机上尚未安装 Microsoft .NET Framework 4,请按照提示安装它。在计算机重新启动后,必须从第 1 步开始重复安装过程以安装到此计算机。

如果选择下载选项,请将下载的文件复制到你的测试服务器。运行 HCKSetup.exe 并从第 3 步开始重复安装过程以安装到此计算机。

重要事项

如果要将 HCK 环境升级到较新版本,必须首先从测试服务器和连接的测试客户端中卸载早期版本的 HCK 软件。

有关安装疑难解答信息,请参阅 Windows 开发人员中心中的 HCK 疑难解答

如需了解有关其他安装选项的更多信息,请参阅《HCK 用户指南》中的HCK 工具技术参考

步骤 2:在测试计算机上安装 Client

在测试服务器上安装 Windows HCK 之后,就可以向环境中添加测试计算机了。在每台测试计算机上安装 Client 软件。Client 软件存储在测试服务器上。

警告

如果你要对某个软件进行测试,请确保首先将该软件产品安装到测试计算机上,然后安装 Client 软件。

1. 在测试计算机上,打开 Windows 浏览器。

2. 对于 x86 和 X64 系统,键入 \\<ControllerName>\HCKInstall\Client\Setup.exe。

对于 ARM 系统,键入 \\<ControllerName>\HCKInstall\ARMClient\Setup.exe。

备注

将 <ControllerName> 替换为测试服务器的名称。

如果以下所需的软件尚未安装,则会在此步骤中进行安装:.Net Framework 4(客户端配置文件和扩展)、应用程序验证程序、Windows 驱动程序测试框架 (WDTF) 和 Windows 性能测试 (WPT)。

3. Windows HCK硬件认证工具包客户端安装向导会出现。若要启动该向导,请单击下一步

4. 在Internet 连接防火墙协议页面上,选择是,我允许打开端口,然后单击下一步

备注

如果Internet 连接防火墙协议页 面未出现,则说明该计算机上未安装 Windows Software Firewall,而是安装了其他软件防火墙或硬件防火墙。如果安装了另一个防火 墙,则必须手动打开 TCP 端口 1771 才能继续安装。请参考防火墙产品随附的说明来手动打开 TCP 端口。否则,安装可能会识别,或 者 Client 软件可能无法正常运行。

5. 当可以安装页面出现时,选择安装

6. 单击完成退出向导。

7. 当安装完成时,通过单击开始>控制面板>卸载程序来确认安装是否成功。确认程序列表中是否出现Windows 硬件认证工具包客户端

8. 针对每台测试计算机重复步骤 1-5。

重要事项

在某些情况下,在测试计算机上启用安全启动可能会导致 HCK Client 安装失败。在 Windows RT 设备上不会遇到此错误,但可能会在非 Windows RT 设备上遇到此错误。请按照以下步骤操作,以确保能够正确安装:

对于系统测试和非类驱动程序设备测试

1. 禁用安全启动保护

· 对于 x86/x64,请输入 BIOS 配置并禁用安全启动

· 对于 Windows RT,请安装Windows 调试策略,但不必禁用安全启动

备注

这只能由 OEM 和 Microsoft 来安装。

2. 安装 HCK Client 软件。

3. 运行以下测试(列表中适合你的平台的任何测试)

测试
系统必须包含 SuperSpeed 端口
USB 3.0 集线器枚举压力
USB 3.0 插入测试
USB 3.0 速度切换测试
USB 3.0 挂起测试
USB 控制器电源状态测试
USB 控制器系统电源状态测试
USB 描述符测试
USB 设备连接 S3+S4
USB 设备控制请求测试
USB 枚举压力
USB 公开的端口控制器测试
USB 公开的端口系统测试
USB 主控制器启用禁用测试
USB 集线器公开的端口测试
USB 集线器选择性挂起测试
USB 内部设备空闲
USB MS OS 描述符测试 (xHCI)
USB 选择性挂起测试 (xHCI)
USB 序列号
USB xHCI 兼容套件 (ARM)
USB xHCI 注册系统测试
USB xHCI 注册测试
USB xHCI 运行时电源管理系统测试
USB xHCI 运行时电源管理测试
USB xHCI 传输速度测试
USB3 终止
USB-IF 证书验证测试(设备)
调试功能测试(徽标)
xHCI 调试功能兼容性(徽标)
xHCI 调试功能设备兼容性(徽标)
GFXIntegration 电源管理测试
PersistentReset 监视器的 WDDM CCD 测试
DMA 扩展测试 - UART DMA
NPCTEST - 时钟中断测试
单个设备的 PCI 硬件兼容性测试 (PCIHCT)
系统的 PCI 硬件兼容性测试
UEFI 固件证书测试
PPM 性能徽标测试
WHEAHCT 徽标
连接的备用 IO 压力
BitLocker 驱动器加密 USB BIOS 徽标测试
TPM 2.0 硬件接口测试(手动)
TPM 2.0 TCG 临机操作接口 1.2 测试
TPM 2.0 UEFI 预启动接口测试
TPM 吊销证明
ACPI 徽标测试
加密功能 – UEFI 哈希提供程序

4. 请输入你的 BIOS 配置,启用安全启动,然后将安全启动还原为默认配置。对于 Windows RT 设备,删除安全启动调试策略。

5. 运行其余的 HCK 测试。

6. 输入 BIOS 配置并清除安全启动配置。这会通过删除 PK 和其他密钥将系统还原为安装模式

备注

对于 x86/x64 来说,必须支持清除,而对于生产 Windows RT 设备来说,必须禁用清除。

7. 运行安全启动手动徽标测试。

对于在 Windows RT 上使用驱动程序的设备

1. 安装 HCK Client 软件。

2. 仅针对你的设备运行设备测试。

备注

系统测试和使用未由 Microsoft 签名的驱动程序的测试将失败。

有关 Client 疑难解答信息,请参阅 Windows 开发人员中心中的 HCK 疑难解答

如需了解有关客户端计算机的更多信息,请参阅《HCK 用户指南》中的管理客户端和计算机池

步骤 3:创建项目

在 安装了所有的 Windows HCK 软件(Controller、Studio 和 Client)之后,可以通过创建项目来开始测试了。你 可以为每个提交创建一个项目,也可以创建多个项目并将各个程序包合并到一个提交中。例如,你可以通过创建一个具有相同硬件和多个不同操作系统的项目,来为 在一个运行中既支持 Windows 7 又支持 Windows 8 的设备创建一个提交程序包。首先打开 Windows HCK Studio。

下图显示了 Studio 的项目选项卡。

1. 在服务器计算机上,单击开始>所有程序>Windows 工具包>硬件认证工具包>HCK Studio

2. 在项目选项卡上,单击创建项目

3. 将默认项目名称替换为你的项目的名称,然后按 Enter。

备注

项目应当具有能够指示其内容的有意义的名称,例如,Fabrikam 多功能设备型号 Z

当项目名称出现在页面上时,就说明该项目已经加载。

步骤 4:创建计算机池

计算机池是由一台或多台测试计算机组成的逻辑组。在测试计算机上安装 Windows HCK Client 之后,该计算机会自动添加到默认池中。你必须将所需的计算机移动到能够正常工作的计算机池中,才能对该计算机进行处理。

每个项目都需要一个计算机池。一个计算机池可以用于多个项目,但是每个项目都可以与一个计算机池相关联。

下图显示了 Studio 的配置选项卡。

1. 在 Windows HCK Studio 中,单击配置

2. 在计算机池下面,右键单击$ (根目录),然后单击创建计算机池

默认情况下,新池命名为New Pool 1。你可以通过键入其他名称并按 Enter 来更改默认名称。

3. 单击默认池,然后确认所有的测试计算机都出现在主页上。如果你已经在多台测试计算机上安装了 Client 软件,则可以将其中的任何计算机添加到池中。

备注

一台计算机不能同时位于多个池中。

4. 选择测试计算机,然后将它拖动到新创建的池中。

5. 在计算机下面,右键单击测试计算机,单击更改计算机状态,然后单击就绪

状态列会更改为就绪

警告

如果计算机状态不是就绪,则测试不会运行。

6. 对要包括到池中的每台测试计算机重复此过程。

7. 单击后退箭头,返回到 Windows HCK Studio 的主区域。

在将所有的测试计算机都分配到一个池中之后,可以针对这些计算机执行测试。如果要测试外部设备(如打印机),则这些设备必须已经连接到测试计算机。

如需了解有关客户端计算机的更多信息,请参阅《HCK 用户指南》中的管理客户端和计算机池

步骤 5:选择要认证的目标

Windows HCK Studio 检测由设备实现的所有功能。特定的可测试设备称为目标。一个设备可以包含多个目标,目标由一个或多个硬件 ID 来表示。使用选择选项卡,可以通过使用以下视图来筛选要认证的内容:

· 系统。认证客户端或服务器计算机。

· 设备和打印机。认证与测试计算机相连的外部设备。此设备通常出现在测试计算机上的开始>设备和打印机中。

· 设备管理器。认证测试计算机或外部设备(例如网卡)的组件。这是最详细的视图。

· 软件设备。认证测试计算机上已安装的过滤驱动程序、防火墙和防病毒软件。

下图显示了 Studio 的选择选项卡。

1. 单击选择选项卡。从主池列表(左上方的下拉列表)中,选择要认证的设备所在的池。

2. 从左侧窗格中,根据你要认证的设备选择视图:系统、设备和打印机、设备管理器或者软件设备。

中间的详细视图中会显示可用目标的列表。如果你选择设备管理器,则可以选择将内置功能和隐藏功能显示出来。

3. 从中间的详细视图中,选中要测试的每个项目旁边的复选框。

备注

· 你必须选择设备的所有功能才能得到认证。

· 如果要测试 Web Services on Devices (WSD) 设备,则可能会在所需的 WSD 功能自动选中之前出现延迟。

显示所选内容选项显示你在其他视图中选择的目标。此视图允许你只查看你要测试的区域。你还可以使用类别列表按类别筛选计算机池。你可以使用搜索框搜索特定的目标/功能。

如需了解有关目标的更多信息,请参阅《HCK 用户指南》中的处理目标和选择选项卡

步骤 6:选择和运行测试

测试选项卡显示对所选目标进行认证所需的全部测试。测试设备可能需要很长时间。你可以按类型、时间长度和测试计算机来对测试进行排序。

类型列指定测试是自动运行 (A),还是需要用户手动输入 (M)。长度列显示每个测试所需的预估时间。

由于手动测试会中断测试过程而等待用户输入,因此,我们建议你将手动测试与自动测试分开运行。一些自动测试需要额外的参数才能运行。

下图显示了 Studio 的测试选项卡。

1. 选中要运行的每个测试旁边的复选框。

重要事项

设备必须通过列表中的所有测试才能得到认证。

2. 若要运行所选测试,请单击运行所选测试

此时会出现一个进度栏。当你首次运行测试时,会出现短暂的延迟。

一些测试需要额外的输入内容才能运行。Windows HCK Studio 会相应地提示你输入更多信息。如需了解有关任何测试的更多信息,请在列表中右键单击该测试,然后选择帮助。若要取消任何正在运行的测试,请右键单击它,然后选择取消

当测试完成时,状态列中会出现每个测试的结果。绿色复选标记表示测试已通过,红色 X 表示测试失败。右窗格中显示项目的汇总信息,其中包括所选目标、正测试的操作系统、你符合的产品类型以及所有测试的状态。

如需了解有关管理测试的更多信息,请参阅《HCK 用户指南》中的使用测试选项卡管理测试

步骤 7:查看测试结果和日志文件

结果选项卡显示有关每个测试的详细信息。当每个测试完成时,状态列会用测试结果(通过或失败)进行更新。

下图显示了 Studio 的结果选项卡。

如果测试失败,你可以展开测试详细信息以查看相关的日志文件。

1. 从列表中,选择由红色 X 指示的失败的测试。

2. 展开测试名称节点,展开日志节点,然后双击该日志文件。

你可以查看以下日志文件:

· .log 文件:文本转储。

· .wtl 文件:打开该文件可查看错误报告。

· .xml 文件:将文件的扩展名更改为 .wtl 可查看错误报告。

右键单击任何测试可查看有关该测试的其他详细信息,其中包括:

· 任务日志。

· 其他文件。

· 所应用的筛选器。

· 错误。

· 基础结构(收集和执行日志)。

如需了解有关测试结果的更多信息,请参阅《HCK 用户指南》中的使用结果选项卡管理测试结果

步骤 8:创建提交程序包

在设备通过所有必需的测试之后,可以创建要认证的提交程序包(.hckx 文件。

Windows HCK Studio 支持创建程序包,因此你不必使用单独的提交工具。它还支持添加完成认证所必需的资源文件(驱动程序、符号文件和勘误表)。你还可以将多个程序包(.hckx 文件)合并到一个程序包中。

下图显示了 Studio 的程序包选项卡。

1. 选择程序包选项卡。

2. (可选)如果你针对某个设备用过特殊的驱动程序,请通过执行以下操作提交该驱动程序:

a. 单击添加驱动程序文件夹>浏览选择该文件夹,然后单击确定

b. 在驱动程序属性对话框中,选中相应的产品区域设置,然后单击确定

3. (可选)若要添加符号文件,请右键单击驱动程序文件夹,单击添加符号文件>浏览选择该文件夹,然后单击确定

4. (可选)若要添加补充文件夹(如自述文件、意外事件消息、勘误表或手动筛选器),请单击添加补充文件夹>浏览选择该文件夹,然后单击确定

5. 单击创建软件包

6. 从签名选项对话框中,选择下列选项之一:

重要事项

所有的提交内容都必须进行数字签名。

· 不签名 - 创建未签名的程序包,例如,发送给支持人员进行调试或者在以后将其他程序包合并到单个提交程序包中。

· 使用证书存储 - 创建带有数字签名的程序包(这是最常见的方案)。此选项要求在运行 Windows HCK Studio 的计算机上安装 X509 证书(例如 VeriSign 证书)。从Windows 安全对话框中,选择适当的代码签名证书。

· 使用证书文件 - 使用便携安全文件创建带有数字签名的程序包。此选项要求你提供一个 X509 证书文件(.cer 文件)。

当提交程序包就绪时,对于该设备的端对端测试就完成了。

如需了解有关程序包的更多信息,请参阅《HCK 用户指南》中的处理 HCK 程序包 (.hckx)

步骤 9:提交程序包以进行认证

通过 Windows 硬件开发人员中心上的硬件仪表板提交带有签名的程序包(.hckx 文件)。有关详细信息,请参阅 Windows 开发人员中心中的仪表板帮助

附录

有关详细信息、操作方法和疑难解答,请参阅《Windows HCK 用户指南》,该指南是在安装工具包的过程中添加到测试服务器上的。

在测试服务器上,单击开始>所有程序>Windows 工具包>硬件认证工具包>HCK Studio

有关最新的 Windows HCK 信息,请参阅 Windows 开发人员中心中的 Windows 硬件认证

引用http://blog.csdn.net/cosmoslife/article/details/9039041#_Toc339362960