8000 Add initial support for reusing drivers as PE drivers by JonasKloseBW · Pull Request #115 · rbalsleyMSFT/FFU · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Add initial support for reusing drivers as PE drivers #115

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 13 commits into
base: dev
Choose a base branch
from

Conversation

JonasKloseBW
Copy link
Contributor
  • Add functions to read data from driver .ini files
  • Copy driver files required into the PE driver folder for system devices, scsi and raid controllers, keyboards and mice

This PR should filter and copy the files for the PE stage. I'll test the code and add fixes as required.

@rbalsleyMSFT
This should minimize the amount of copied files for the PE stage while enabling the usage of all necessary devices.

- Add functions to read data from driver .ini files
- Copy driver files required into the PE driver folder for system devices, scsi and raid controllers, keyboards and mice
Fix an error for the DLLImport
- Filter correctly for inf-driver files
- Ensure target path is created
- Cast PE driver directory creation to void to avoid unnecessary console output
@JonasKloseBW
Copy link
Contributor Author

First successful test run completed. I'll test the PE drivers on real hardware asap.
The code copied more than 70 drivers to the PE folder.

- Increase the buffer reader size by 8x read longer file name lists
- Fix cases in which the driver files are in subdirectories
@JonasKloseBW
Copy link
Contributor Author
JonasKloseBW commented Dec 29, 2024

Successful test run for Surface Laptop Go 3 (code part only).
The PE driver folder ended to be 200MB though. Which is a bit too large for me.

@JonasKloseBW
Copy link
Contributor Author

The regular Surface Laptop Go 3 driver folder is 2.3GB, so 200MB isn't that bad.
Apparently, Intel says that the 180MB audio driver is required for system stability, so they classified it as System driver.

- Avoid drivers that reference wdmaudio.inf or contain Smart Sound

This is necessary since some larger audio drivers that want to be included can be too big for PE. And we don't need audio in the PE stage anyways.
@JonasKloseBW
Copy link
Contributor Author

Avoiding drivers that reference some keywords brings the size of the PE folder for the Surface Laptop Go 3 down to 19.6MB.
I think that's a good size.

I'll test more models later to find out if there are other unexpected sizes.

- Expand the driver exclusion list to:
   wdmaudio.inf, Sound, Machine Learning, Camera, Firmware
- Display the correct manufacturer by using the Provider value (if set correctly)
@JonasKloseBW
Copy link
Contributor Author

The list of tested devices for PE driver copy so far are:

  • HP Z4 G4 Workstation
  • Microsoft Surface Book 3
  • Microsoft Surface Laptop Go 3
  • Microsoft Surface Pro 6
  • Microsoft Surface Pro 8
  • Microsoft Surface Pro 11th
  • Microsoft Surface Studio 2+
  • Lenovo ThinkBook 16p G2 ACH

It looks like the current code works exactly as expected so far.
I think now would be the time to test this on real hardware.

JonasKloseBW and others added 6 commits December 31, 2024 01:09
- Include HID device drivers (745a17a0-74d3-11d0-b6fe-00a0c90f57da)
- These drivers should stay pretty small since they're class drivers but they're necessary for touch support
Fix HP Driver Windows Version case sensitivity
- Fixed an issue with WinPE Drivers not being added to Deployment media
- Fixed an issue where Windows SKUs that include spaces in their names (e.g. Pro Education) and `$InstallApps $false`, FFU creation would fail due to the name including a space. Added a new function `Get-ShortenedWindowsSKU` to truncate the SKU for FFU name creation purposes. This required various changes throughout the script that relied on the Windows SKU for naming.
- Updated version 2412.3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0