fix(collector): button footer + inject virtio NIC driver (HVCI network) #26

Merged
SilverLABS merged 2 commits from fix/collector-button-layout into main 2026-06-10 13:33:00 +00:00
Owner

Two operator-reported fixes from VM testing, bundled into one build.

1. Collector button overlap

Finish/Cancel were positioned over the BitLocker "Confirm PIN" textbox. Moved them into a clean footer row (y 548 → 620), below all form content, right-aligned (Finish primary/green, Cancel secondary). Layout-only change to Collector.ps1; parses clean, ASCII.

2. Working VM network under HVCI (so apps actually install)

Root cause: the privacy hardening enables HVCI (Memory Integrity), which refuses to load the legacy Intel e1000 driver (E1G6032E.sys) → no network in the VM → winget app installs silently skip. It recurs every install because each fresh install re-hardens (not a Proxmox/driver "revert").

Fix: use a virtio-net NIC (WHQL-signed, HVCI-compatible driver). Staged the NetKVM driver (w11/amd64) from virtio-win under windows/drivers/netkvm/; build.ps1 already auto-injects any *.inf under windows/drivers/ into install.wim. VM 102's NIC already switched to virtio.

Test Plan

  • Collector.ps1 parses, ASCII-only
  • NetKVM inf/sys/cat (+ co-installers) staged; build auto-injects windows/drivers/*.inf
  • VM: collector buttons in footer (no overlap); after install, network works under HVCI → winget installs the selected apps

🤖 Generated with Claude Code

Two operator-reported fixes from VM testing, bundled into one build. ## 1. Collector button overlap Finish/Cancel were positioned over the BitLocker "Confirm PIN" textbox. Moved them into a clean footer row (y 548 → 620), below all form content, right-aligned (Finish primary/green, Cancel secondary). Layout-only change to `Collector.ps1`; parses clean, ASCII. ## 2. Working VM network under HVCI (so apps actually install) **Root cause:** the privacy hardening enables **HVCI** (Memory Integrity), which refuses to load the legacy Intel **e1000** driver (`E1G6032E.sys`) → no network in the VM → winget app installs silently skip. It recurs every install because each fresh install re-hardens (not a Proxmox/driver "revert"). **Fix:** use a **virtio-net** NIC (WHQL-signed, HVCI-compatible driver). Staged the **NetKVM** driver (`w11/amd64`) from virtio-win under `windows/drivers/netkvm/`; `build.ps1` already auto-injects any `*.inf` under `windows/drivers/` into `install.wim`. VM 102's NIC already switched to virtio. ## Test Plan - [x] `Collector.ps1` parses, ASCII-only - [x] NetKVM inf/sys/cat (+ co-installers) staged; build auto-injects `windows/drivers/*.inf` - [ ] VM: collector buttons in footer (no overlap); after install, **network works** under HVCI → winget installs the selected apps 🤖 Generated with [Claude Code](https://claude.com/claude-code)
SilverLABS added 2 commits 2026-06-10 13:32:49 +00:00
feat(build): inject virtio-net (NetKVM) driver for HVCI-compatible VM networking
Some checks failed
Build SilverMetal Enhanced - Windows ISO / build (pull_request) Failing after 4m56s
a169d2a452
The privacy hardening enables HVCI (Memory Integrity), which blocks the legacy
e1000 NIC driver (E1G6032E.sys) -> no network in the VM, so winget app installs
silently skip. virtio-net's NetKVM driver is WHQL-signed + HVCI-compatible. Staged
from virtio-win (w11/amd64) under windows/drivers/netkvm/; build.ps1 already auto-
injects any *.inf under windows/drivers/ into install.wim. Pair with a virtio NIC on
the VM (already switched). Lets apps actually install under hardening.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
SilverLABS merged commit 8ceb38c3dd into main 2026-06-10 13:33:00 +00:00
SilverLABS deleted branch fix/collector-button-layout 2026-06-10 13:33:00 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SilverLABS/SilverMetal#26