dug12_hlk: Add slides
Signed-off-by: Filip Gołaś <filip.golas@3mdeb.com>
@@ -110,8 +110,6 @@ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo s
|
||||
Warning: it can lead to more files being observed resulting in more system
|
||||
resources (RAM&CPU) being used.
|
||||
|
||||
|
||||
|
||||
## Contribution
|
||||
|
||||
- Please feel free to create issues for improvement ideas and bugs, as well as
|
||||
|
||||
|
After Width: | Height: | Size: 32 KiB |
@@ -0,0 +1,81 @@
|
||||
@startuml
|
||||
!define Color1 #38d430
|
||||
!define Color2 #272727
|
||||
!define Color3 #f5f5f5
|
||||
|
||||
skinparam {
|
||||
DefaultFontColor Color2
|
||||
BackgroundColor Color3
|
||||
ArrowColor Color2
|
||||
ActorBorderColor Color1
|
||||
ActorBackgroundColor Color3
|
||||
ActorFontColor Color2
|
||||
ParticipantBorderColor Color1
|
||||
ParticipantBackgroundColor Color3
|
||||
ParticipantFontColor Color2
|
||||
LifeLineBorderColor Color1
|
||||
LifeLineBackgroundColor Color3
|
||||
SequenceGroupBorderColor Color1
|
||||
SequenceGroupBackgroundColor Color3
|
||||
SequenceGroupFontColor Color2
|
||||
BoxBorderColor Color1
|
||||
BoxBackgroundColor Color3
|
||||
BoxFontColor Color2
|
||||
NoteBackgroundColor Color3
|
||||
NoteBorderColor Color1
|
||||
NoteFontColor Color2
|
||||
TitleBorderColor Color1
|
||||
TitleBackgroundColor Color3
|
||||
TitleFontColor Color2
|
||||
DividerBackgroundColor Color3
|
||||
DividerBorderColor Color1
|
||||
DividerFontColor Color2
|
||||
}
|
||||
|
||||
skinparam sequence {
|
||||
DividerBackgroundColor Color3
|
||||
DividerBorderColor Color1
|
||||
DividerFontColor Color2
|
||||
ArrowBackgroundColor Color3
|
||||
ParticipantPadding 20
|
||||
ParticipantBorderThickness 2
|
||||
ParticipantFontSize 16
|
||||
ParticipantFontStyle bold
|
||||
}
|
||||
|
||||
title OSFV architecture
|
||||
|
||||
package "Devices" {
|
||||
[DUT 1] as D1
|
||||
[DUT 2] as D2
|
||||
[DUT 3] as D3
|
||||
[DUT 4] as D4
|
||||
[...] as Dx
|
||||
}
|
||||
|
||||
package "Tester Workstations" {
|
||||
[Tester Workstation 1] as W1
|
||||
[Tester Workstation 2] as W2
|
||||
[Tester Workstation 3] as W3
|
||||
[...] as Wx
|
||||
}
|
||||
|
||||
[Snipe-IT] as SP
|
||||
[OSFV Runner] as RN
|
||||
|
||||
W1 ..> SP
|
||||
W2 ..> SP
|
||||
W3 ..> SP
|
||||
|
||||
W1 --> RN
|
||||
W2 --> RN
|
||||
W3 --> RN
|
||||
|
||||
RN --> D1
|
||||
RN --> D2
|
||||
RN --> D3
|
||||
RN --> D4
|
||||
|
||||
left to right direction
|
||||
|
||||
@enduml
|
||||
|
After Width: | Height: | Size: 24 KiB |
@@ -0,0 +1,76 @@
|
||||
@startuml
|
||||
!define Color1 #38d430
|
||||
!define Color2 #272727
|
||||
!define Color3 #f5f5f5
|
||||
|
||||
skinparam {
|
||||
DefaultFontColor Color2
|
||||
BackgroundColor Color3
|
||||
ArrowColor Color2
|
||||
ActorBorderColor Color1
|
||||
ActorBackgroundColor Color3
|
||||
ActorFontColor Color2
|
||||
ParticipantBorderColor Color1
|
||||
ParticipantBackgroundColor Color3
|
||||
ParticipantFontColor Color2
|
||||
LifeLineBorderColor Color1
|
||||
LifeLineBackgroundColor Color3
|
||||
SequenceGroupBorderColor Color1
|
||||
SequenceGroupBackgroundColor Color3
|
||||
SequenceGroupFontColor Color2
|
||||
BoxBorderColor Color1
|
||||
BoxBackgroundColor Color3
|
||||
BoxFontColor Color2
|
||||
NoteBackgroundColor Color3
|
||||
NoteBorderColor Color1
|
||||
NoteFontColor Color2
|
||||
TitleBorderColor Color1
|
||||
TitleBackgroundColor Color3
|
||||
TitleFontColor Color2
|
||||
DividerBackgroundColor Color3
|
||||
DividerBorderColor Color1
|
||||
DividerFontColor Color2
|
||||
}
|
||||
|
||||
skinparam sequence {
|
||||
DividerBackgroundColor Color3
|
||||
DividerBorderColor Color1
|
||||
DividerFontColor Color2
|
||||
ArrowBackgroundColor Color3
|
||||
ParticipantPadding 20
|
||||
ParticipantBorderThickness 2
|
||||
ParticipantFontSize 16
|
||||
ParticipantFontStyle bold
|
||||
}
|
||||
|
||||
title OSFV architecture
|
||||
|
||||
package "Devices" {
|
||||
[...] as Dx
|
||||
[DUT 4] as D4
|
||||
[DUT 3] as D3
|
||||
[DUT 2] as D2
|
||||
[DUT 1] as D1
|
||||
}
|
||||
|
||||
package "Tester Workstations" {
|
||||
[...] as Wx
|
||||
[Tester Workstation 3] as W3
|
||||
[Tester Workstation 2] as W2
|
||||
[Tester Workstation 1] as W1
|
||||
}
|
||||
|
||||
[Snipe-IT] as SP
|
||||
|
||||
W1 ..> SP
|
||||
W2 ..> SP
|
||||
W3 ..> SP
|
||||
|
||||
W1 --> D1
|
||||
W2 --> D2
|
||||
W3 --> D3
|
||||
W3 --> D4
|
||||
|
||||
left to right direction
|
||||
|
||||
@enduml
|
||||
|
After Width: | Height: | Size: 44 KiB |
@@ -0,0 +1,89 @@
|
||||
@startuml
|
||||
!define Color1 #38d430
|
||||
!define Color2 #272727
|
||||
!define Color3 #f5f5f5
|
||||
|
||||
skinparam {
|
||||
DefaultFontColor Color2
|
||||
BackgroundColor Color3
|
||||
ArrowColor Color2
|
||||
ActorBorderColor Color1
|
||||
ActorBackgroundColor Color3
|
||||
ActorFontColor Color2
|
||||
ParticipantBorderColor Color1
|
||||
ParticipantBackgroundColor Color3
|
||||
ParticipantFontColor Color2
|
||||
LifeLineBorderColor Color1
|
||||
LifeLineBackgroundColor Color3
|
||||
SequenceGroupBorderColor Color1
|
||||
SequenceGroupBackgroundColor Color3
|
||||
SequenceGroupFontColor Color2
|
||||
BoxBorderColor Color1
|
||||
BoxBackgroundColor Color3
|
||||
BoxFontColor Color2
|
||||
NoteBackgroundColor Color3
|
||||
NoteBorderColor Color1
|
||||
NoteFontColor Color2
|
||||
TitleBorderColor Color1
|
||||
TitleBackgroundColor Color3
|
||||
TitleFontColor Color2
|
||||
DividerBackgroundColor Color3
|
||||
DividerBorderColor Color1
|
||||
DividerFontColor Color2
|
||||
}
|
||||
|
||||
skinparam sequence {
|
||||
DividerBackgroundColor Color3
|
||||
DividerBorderColor Color1
|
||||
DividerFontColor Color2
|
||||
ArrowBackgroundColor Color3
|
||||
ParticipantPadding 20
|
||||
ParticipantBorderThickness 2
|
||||
ParticipantFontSize 16
|
||||
ParticipantFontStyle bold
|
||||
}
|
||||
|
||||
title Windows HLK architecture
|
||||
[HLK Studio] as ST
|
||||
package Controllers {
|
||||
[...] as COx
|
||||
[HLK Controller2] as CO2
|
||||
[HLK Controller1] as CO1
|
||||
}
|
||||
package "Device Pool 1" {
|
||||
[...] as CL1x
|
||||
[HLK Client1.2 (DUT)] as CL12
|
||||
[HLK Client1.1 (DUT)] as CL11
|
||||
}
|
||||
package "Device Pool 2" {
|
||||
[...] as CL2x
|
||||
[HLK Client2.2 (DUT)] as CL22
|
||||
[HLK Client2.1 (DUT)] as CL21
|
||||
}
|
||||
|
||||
package "Tester Workstations" {
|
||||
[Tester Workstation 1] as W1
|
||||
[Tester Workstation 2] as W2
|
||||
[...] as Wx
|
||||
}
|
||||
|
||||
ST --> CO1
|
||||
ST --> CO2
|
||||
ST --> COx
|
||||
|
||||
CO1 --> CL11
|
||||
CO1 --> CL12
|
||||
CO1 --> CL1x
|
||||
|
||||
CO2 --> CL21
|
||||
CO2 --> CL22
|
||||
CO2 --> CL2x
|
||||
|
||||
|
||||
W1 --> ST
|
||||
W2 --> ST
|
||||
Wx --> ST
|
||||
|
||||
left to right direction
|
||||
|
||||
@enduml
|
||||
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 1.3 MiB |
@@ -6,83 +6,216 @@ class: text-center
|
||||
|
||||
---
|
||||
|
||||
## Windows Hardware Lab Kit
|
||||
### A new tool at Dasharo testsers arsenal
|
||||
# Windows Hardware Lab Kit
|
||||
## A new tool at Dasharo testers arsenal
|
||||
|
||||
---
|
||||
|
||||
layout: two-cols-header
|
||||
---
|
||||
## What's Windows Hardware Lab Kit
|
||||
|
||||
<!-- HLK used to use windows sticker as a sign of support-->
|
||||
<!-- historic names for HLK tool -->
|
||||
<!-- sticker image -->
|
||||
::left::
|
||||
Testing framework that has evolved since 2000s
|
||||
- Hardware Compatibility Test - Windows 2000, XP
|
||||
- Driver Test Manager - Windows Vista
|
||||
- Windows Logo Kit / Windows Hardware Certification Kit - Windows 7, 8, 8.1
|
||||
- Windows Hardware Lab Kit - Windows 10, 11
|
||||
::right::
|
||||

|
||||
|
||||
---
|
||||
<style>
|
||||
.two-cols-header {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-rows: 1fr 5fr;
|
||||
}
|
||||
</style>
|
||||
|
||||
## Why it's interesting to us
|
||||
<!--
|
||||
|
||||
<!-- test coverage, compare to OSFV -->
|
||||
<!-- maybe list TPM tests and similar -->
|
||||
|
||||
---
|
||||
|
||||
## HLK Overview #1
|
||||
|
||||
<!-- list and shortly describe main components
|
||||
- studio, controller, client
|
||||
-->
|
||||
|
||||
---
|
||||
layout: two-cols-header
|
||||
---
|
||||
## Why it's interesting to us
|
||||
::left::
|
||||
- **4659** unique test cases according to the test lists at https://aka.ms/HLKPlaylist
|
||||
OSFV "only" has **1425** test cases as of 10.12.2025
|
||||
|
||||
## HLK Overview #2
|
||||
Coverage:
|
||||
- Audio, Video, Ethernet, Wi-Fi, Bluetooth
|
||||
- GPIO, I2C, USB, NFC, PWM, SPI, UART, SATA, NVMe
|
||||
- Drivers
|
||||
- TPM, Secure Boot, disk encryption, TXT DMA Protection Ranges, Windows specific security features
|
||||
- Windows Logo Certification, Windows Secured Core PC (?)
|
||||
::right::
|
||||

|
||||
|
||||
<!-- lab diagram HLK vs OSFV -->
|
||||
<style>
|
||||
.two-cols-header {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-rows: 1fr 5fr;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!--
|
||||
|
||||
-->
|
||||
---
|
||||
layout: two-cols-header
|
||||
---
|
||||
## HLK Overview #1
|
||||
::left::
|
||||
Three basic components:
|
||||
- HLK Controller - scheduling, performing tests
|
||||
- HLK Studio - GUI, creating projects, packaging results
|
||||
- HLK Client - access to the DUT for the HLK Controller
|
||||
|
||||
::right::
|
||||

|
||||
|
||||
<style>
|
||||
.two-cols-header {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-rows: 1fr 5fr;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!--
|
||||
|
||||
-->
|
||||
|
||||
---
|
||||
layout: two-cols
|
||||
---
|
||||
## HLK Overview #2
|
||||

|
||||
::right::
|
||||

|
||||
|
||||
## HLK VM Setup #1
|
||||
<style>
|
||||
.two-columns {
|
||||
grid-template-columns: 3fr 2fr;
|
||||
gap: 1em
|
||||
}
|
||||
</style>
|
||||
|
||||
<!--
|
||||
- note how OSFV is P2P
|
||||
- note how HLK Controller can do parallel and multi device tests easily thanks to centralization
|
||||
-->
|
||||
|
||||
---
|
||||
layout: two-cols
|
||||
---
|
||||
## HLK VM Setup
|
||||
Windows HLK Controller & Studio can only run on Windows Server:
|
||||
- on a dedicated machine
|
||||
- on a Hyper-V VM (VHLK)
|
||||
|
||||
If Windows server is to be run on a VM, nested virtualization of VHLK **WILL**
|
||||
cause headaches.
|
||||
|
||||
For this minimal test setup, a Proxmox VM running HLK natively was decided to be
|
||||
enough
|
||||
- CPU: Xeon E5620, 4 cores allocated, NUMA enabled
|
||||
- RAM: 4-12 GiB, dynamic allocation
|
||||
- Disk: 70 GiB VirtIO
|
||||
- RedHat VirtIO drivers in the to CD drive
|
||||
|
||||
::right::
|
||||

|
||||
<!-- proxmox VM, allocated resources -->
|
||||
<style>
|
||||
.two-columns {
|
||||
grid-template-columns: 5fr 1fr;
|
||||
}
|
||||
</style>
|
||||
|
||||
## HLK VM Setup #2
|
||||
<!--
|
||||
CPU: won't boot with <2 cores
|
||||
RAM: won't boot with <4GB
|
||||
Disk: recommended 32GB would be just barely enough and just a few test results would fit
|
||||
-->
|
||||
|
||||
<!-- other requirements that had to be met -->
|
||||
<!-- virtio, any settings from setup in blog -->
|
||||
---
|
||||
layout: cover
|
||||
---
|
||||
# Live Demo
|
||||
For more details check the blog post at https://blog.3mdeb.com/2025/2025-12-11-windows-hlk
|
||||
|
||||
## Running Tests
|
||||
|
||||
<!-- live demo??? -->
|
||||
<!-- if not, then one slide per point:
|
||||
- device group
|
||||
- project
|
||||
- test selection
|
||||
- run tests
|
||||
- show results (premade), compare to OSFV
|
||||
- show logs (premade), compare to OSFV
|
||||
<!-- live demo -->
|
||||
<!--
|
||||
1. connect via remmina
|
||||
2. create device group, add a HLK client to the new group
|
||||
3. create project called after some imaginary Dasharo release
|
||||
4. select devices - a single component of a laptop as loading all the tests takes a couple minutes
|
||||
5. run (schedule) tests, cancel the scheduling as it takes a long time
|
||||
6. show test results (premade), compare to how results look in OSFV
|
||||
7. show logs (premade), compare to how logs look in OSFV
|
||||
-->
|
||||
|
||||
---
|
||||
layout: two-cols-header
|
||||
---
|
||||
## PoC on Novacustom NV41PZ v1.7.2
|
||||
|
||||
::left::
|
||||
145 / 764 compatible tests ran over 60 hours
|
||||
- expected total runtime: ~400h, estimation by interpolation: ~6000 hours
|
||||
|
||||
Interesting Passes:
|
||||
- All WLAN, DX3D, WDDM
|
||||
- Most Camera, Bluetooth, SMBIOS tables
|
||||
|
||||
Some Interesting Fails:
|
||||
- [TPM 2.0 Verify Existence and Device Requirements Test](https://learn.microsoft.com/en-us/windows-hardware/test/hlk/testref/8ddefeef-88ca-4949-ac0c-6eb036a98200)
|
||||
- [Check SMBIOS Mapped Address Ranges](https://learn.microsoft.com/en-us/windows-hardware/test/hlk/testref/746bad65-cf37-490b-a0fd-afe5623e282d)
|
||||
- [AutoMemoryBenchmark](https://learn.microsoft.com/en-us/windows-hardware/test/hlk/testref/cdcc3607-ae2c-4e38-954b-fc6a2ef27e63)
|
||||
- [Audio Logo Test](https://learn.microsoft.com/en-us/windows-hardware/test/hlk/testref/16a492f7-a503-4f7e-8c1d-6fd4370b9b65)
|
||||
|
||||
::right::
|
||||
|
||||

|
||||
<style>
|
||||
.two-cols-header {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-rows: 1fr 5fr;
|
||||
}
|
||||
</style>
|
||||
<!--
|
||||
- runtime and estimated runtime for all tests
|
||||
- pass rate pie chart, run/skipped pie chart
|
||||
-
|
||||
- list some interesing ones?
|
||||
|
||||
-->
|
||||
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
## Summary & next steps
|
||||
|
||||
Windows HLK will provide a lot of value to Dasharo Hardware Certification Lab
|
||||
- 4 times the test cases of OSFV
|
||||
- Windows Logo Certification
|
||||
- Windows Secured Core PC certification?
|
||||
|
||||
Some work is still ahead:
|
||||
1. VM on a 10+ yrs old Xeon is not _**nearly**_ enough
|
||||
2. Work on automation, GUI is suboptimal
|
||||
- HLK automation only via .NET from a Windows device
|
||||
- Promising project! https://github.com/hck-ci
|
||||
3. Presenting and interpreting the binary results
|
||||
|
||||
<!--
|
||||
- hardware
|
||||
- faster server needed even for single DUT. HLK is resource intensive
|
||||
- automation:
|
||||
- wrapping tests in OSFV would be wasteful
|
||||
- automation only via .NET programs / powershell
|
||||
- clicking in GUI fine for small scale
|
||||
- presenting results:
|
||||
- converting to human readable format
|
||||
- promising project should scaling be needed https://github.com/HCK-CI
|
||||
- faster server needed even for single DUT. HLK is resource intensive
|
||||
- converting to human readable format
|
||||
- promising project should scaling be needed https://github.com/HCK-CI
|
||||
-->
|
||||
|
||||
---
|
||||
layout: cover
|
||||
---
|
||||
# Questions
|
||||
|
||||
## Q&A
|
||||
---
|
||||
layout: cover
|
||||
---
|
||||
# Thank You
|
||||
|
||||