Changes between Version 51 and Version 52 of HLKTesting
- Timestamp:
- 06/20/19 12:53:22 (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
HLKTesting
v51 v52 20 20 = Getting source code for tap-windows6 = 21 21 22 Sgstair patched tap-windows6 to pass the HLK tests. At the moment (3rd May 2019) his work is not fully merged yet, so use [https://github.com/sgstair/tap-windows6/tree/hlkwork his branch] as a basis.22 Sgstair patched tap-windows6 to pass the HLK tests. [https://github.com/sgstair/tap-windows6/tree/hlkwork His work] has now been merged to the upstream tap-windows6 project 23 23 24 24 = HLK test environment overview = … … 33 33 * Windows 10 desktop (32-bit) 34 34 35 Wintun was able to pass HLK testing without any ''physical'' HLK clients. But due to wintun's narrower scope it had to pass muchfewer HLK tests (~50 in total) than tap-windows6.36 37 Both Windows Server 2016 and 2012r2 should work fine as the HLK controller. The controller can be virtualized (e.g. Virtualbox or VMWare).35 Wintun was able to pass HLK testing without any ''physical'' HLK clients. But because Wintun advertised itself as a virtual device it had a narrower scope and had to pass fewer HLK tests (~50 in total) than tap-windows6. 36 37 For the HLK controller you can use a virtualized (Virtualbox, VMware) Windows Server 2016 or 2012r2 instance. 38 38 39 39 For tap-windows6 testing a support machine is also needed. To be on the safe side use the same OS version and build as the HLK client. … … 44 44 * HLK clients need to be physical computers, not virtualized (unverified) 45 45 46 Also remember to rename the network devices ("MessageDevice", "SupportDevice0") as described [https://docs.microsoft.com/en-us/windows-hardware/test/hlk/testref/lan-testing-prerequisites LAN testing prerequisites].47 48 46 Also try to get a quality fast network switch. Slow switches can cause issues on some of the tests. However, a cheap 10€ switch may end up working just fine. 49 47 50 48 = Installing HLK software = 51 49 52 For HLK software installation please refer to the official MS documentation, check out [https://github.com/Puppet-Finland/puppet-hlk/ puppet-hlk] or try out the [https://docs.microsoft.com/en-us/windows-hardware/test/hlk/getstarted/getstarted-vhlk Windows Virtual Hardware Lab Kit].50 For HLK software installation please refer to the official MS documentation, check out [https://github.com/Puppet-Finland/puppet-hlk/ puppet-hlk] and [https://github.com/Puppet-Finland/puppet-hlk_tap6_openvpn puppet-hlk_tap6_openvpn] or try out the [https://docs.microsoft.com/en-us/windows-hardware/test/hlk/getstarted/getstarted-vhlk Windows Virtual Hardware Lab Kit]. 53 51 54 52 The version of HLK you need to install depends on the version of Windows you're attempting certify as described in [https://docs.microsoft.com/en-us/windows-hardware/test/hlk/ Microsoft documentation]. To check Windows version from Powershell do: … … 58 56 }}} 59 57 60 = Preparing HLK clients for test-signed drivers = 61 62 Installation of HLK client software automatically enables test signing mode in Windows. Tap-windows6 build system supports test-signing the driver automatically. You need to put the automatically generated test certificate to the Windows certificate store on the HLK clients. After that you can install the test-signed driver without signature errors. 58 = Preparing HLK clients = 59 60 For multimachine tests you need to name some of the devices on the HLK test client (that actually runs the tests) and support machine (second machine that is connected “back to back” through the VPN). The non-VPN interface through which the nodes communicate with the HLK controller should be named "MessageDevice" and the tap-windows6 adapter on the support machine should be named "SupportDevice0". Details in [https://docs.microsoft.com/en-us/windows-hardware/test/hlk/testref/lan-testing-prerequisites LAN testing prerequisites]. 61 62 You also have to enable test signing so that you can load unsigned ("to be tested") drivers on both HLK client and support machine: 63 64 {{{ 65 PS> bcdedit /set testsigning on 66 PS> shutdown /r 67 }}} 68 69 Then you need to install the HLK client software from the HLKInstall SMB share on the controller. 70 71 You also need the automatically generated test certificate ("WDKTest*") from the tap-windows6 build machine to the Windows certificate store on the HLK clients. After all this you can install the test-signed driver without signature errors. 63 72 64 73 = Setting up OpenVPN for HLK tests = … … 101 110 Some have had more luck with the legacy service (OpenVPNServiceLegacy). 102 111 103 104 105 106 == Testing OpenVPN connectivity ==107 108 Assuming the above OpenVPN config you can very correct OpenVPN / tap-windows6 operation easily:109 110 * Verify that the TAP adapter has an IPv6 address (e.g. using ipconfig)111 * Ensure that the HLK client can ping the following VPN server addresses:112 * 10.218.112.1113 * 2001:db8:6666::2114 115 112 = Preparing HLK studio/controller = 116 113 … … 132 129 133 130 == Multi-machine tests == 134 135 Setting up multi-machine tests is pretty straightforward to do. You just need to name some of the devices on the test client (that actually runs the tests) and support client (second machine that is connected “back to back” through the VPN). Details in [https://docs.microsoft.com/en-us/windows-hardware/test/hlk/testref/lan-testing-prerequisites LAN testing prerequisites].136 131 137 132 Then when you go to schedule the multimachine test, you can change the “role” dropdown to the support machine, and select the support machine (should be there if you have two ready machines in the pool). … … 280 275 The Static Tools Logo Test checks that the driver build is using the static driver code analysis tool (SDV). Even if that is the case it is necessary to copy some files so that it can read the logs and check. Otherwise the test will fail. 281 276 282 = Various test issues = 277 = Various known issues = 278 279 == HLK clients can't be activated == 280 281 If you upgrade HLK software on both controller and client/support you may end up with a situation where you can't put any of the clients into "Ready" state. You may be able to resolve this by removing the machines from the pool, and deleting them from the default pool, and then restarting HLKSvc service on the clients. 283 282 284 283 == Packet transmission too slow == … … 365 364 = HLK logging = 366 365 367 HLK controller logs problems mostly to event logs, so when tests are failing in an unusual fashion you can possibly find out why in the event viewer. Causes for test failures are generally well visible from the logs in HLK Studio. 366 HLK controller logs problems mostly to event logs, so when tests are failing in an unusual fashion you can possibly find out why in the event viewer. When you have issue putting an HLK client into "Ready" state, for example, have a look at the event log. 367 368 The HLK tests fortunately provide tons of logging visible for HLK Studio. Check sections "Error", "Task log", "Infrastructure" in the context menu for the test in question to see what you can find. 368 369 369 370 = Debugging = … … 385 386 The are known to work sometimes, but so far I have not been able to establish any logic here. 386 387 387 The HLK tests fortunately provide tons of logging. Check sections "Error", "Task log", "Infrastructure" in the context menu for the test in question to see what you can find.388 389 388 = Addendum = 390 389 … … 416 415 * [https://github.com/sgstair/tapdiag tapdiag]: a tool that is used to manipulate tap-windows6 at runtime for some HLK tests 417 416 * [https://github.com/Puppet-Finland/puppet-hlk/ puppet-hlk]: Puppet module for setting up HLK controllers and HLK clients 417 * [https://github.com/Puppet-Finland/puppet-hlk_tap6_openvpn puppet-hlk_tap6_openvpn]: Puppet module for setting up OpenVPN and network interface configurations for HLK testing 418 418 * [https://docs.microsoft.com/en-us/windows-hardware/test/hlk/getstarted/getstarted-vhlk Windows Virtual Hardware Lab Kit] 419 419 * [https://aka.ms/HLKPlaylist] Compatibility Play Lists (Understanding is these are the only ones necessary to get signed)