Jump to content











Photo
- - - - -

Help testing driver integration in WinPE


  • Please log in to reply
7 replies to this topic

#1 misty

misty

    Gold Member

  • Developer
  • 1066 posts
  •  
    United Kingdom

Posted 21 June 2022 - 04:50 PM

I am in the process of testing a WinBuilder/PEBakery project - with the current focus on driver integration. 
 
I would like some recommendations for drivers to integrate (with links) to test this part of the build process. 
 
This is an area I have little experience with (with one exception) as I've never had any real issues with missing drivers in WinPE - I only require very basic functions in my build and as long as I have access to display, storage and can use the keyboard and mouse I'm happy. 
 
My tests will likely be limited to checking drivers are copied to the correct place and registry entries added once DISM has worked it's magic.  
 
Please assist.
 
:cheers:
 
Misty
 
P.s. Link to the project - WinPE_WinBuilder

#2 alacran

alacran

    Platinum Member

  • .script developer
  • 2710 posts
  •  
    Mexico

Posted 23 June 2022 - 01:29 AM

Hi, my good friend.

 

I will share here my experiences in this subject:

 

Usually integrate OEM drivers that are MS certified, using Dism works fine in almost all scenarios.  Just remember Dism only integrate the divers in text mode, using the info in the *.inf file.

 

Certain drivers also create some services by the respective entries in the Registry, and even if they seem to integrate fine using Dism, they don't work fine, because the services required to start them don't exists.

 

Some samples of OFFLINE integrating problematic drivers are:

 

wofadk.sys (MS driver from ADK, obviously certified):

 

In this case you need to also find the additions that are made to the Registry during a real installation in online OS made during first run of WinNTSetup, I will not waste your time talking about this. as I'm aware you alredy know very well how to do this.

 

Then after just copy the driver to its respective location, it is just a matter to integrate the additions to the Registry by means of your well known offlinereg by erwan.l, (just remember to DO NOT use a *.reg file made by exporting it from the Registry, better copy its content to a new file in Notepad and save it as a new *.reg file, if not the procedure DOES NOT work fine).

 

diskmod  and SvBus. (Not certified by MS)

 

The issues start when you want to integrate drivers that are not MS certified.   In this case you need to first integrate in the Registry the (Local, User of modded) Certificate, and after this integrate the driver with Dism and also the *.reg files for additions to the Registry (if any) with offlinereg.

 

Also it is a good practice (usually a requirement) to enable Test Mode (testsigning) in both BCDs (MBR and UEFI) and Disable Integrity Checks in both BCDs (MBR and UEFI), please see attached photo.

 

NOTE: I have noticed BootIce is not capable to create good working entries in BCDs for WinPE.wim files based on Win10 and newer, (it seems to me this issue is related to the OS GUID required for WinPE.wim files based on Win10 and higher as once the entry exists, it is able to make modifications to it), so I only used it to show the content of the UEFI BCD store, but it works very fine in case of Win10 and newer OS installed in VHD or real hardware.

 

I can confirm previous procedures work fine without any doubt upto Win10 2004 inclusive, but on newer Win10 versions or Win11 the Requirements for Integrity Checks and Drivers Certification were increased, so in case of Ramboot VHDs, it is neccesary to also Pre-Load first, (before boot) EfiGuardDxe.efi, (link to its page in GitHub), to let this new OS versions load SVBus driver without any complain, if not the user is forced every boot to press the F8 KEY for Advanced menu and Select Disable driver signature enforcement, to allow load unsigned drivers.

 

alacran

Attached Files


  • misty likes this

#3 misty

misty

    Gold Member

  • Developer
  • 1066 posts
  •  
    United Kingdom

Posted 23 June 2022 - 06:03 PM

Thanks alacran for you detailed answer.

It is not possible (for me) to reliably script adding support for all drivers due to the complexities you have described. I am however hoping to test driver integration for a few basic drivers in the reboot of my Mini-WinFE project.

Misty

#4 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 24 June 2022 - 04:06 PM

 

Then after just copy the driver to its respective location, it is just a matter to integrate the additions to the Registry by means of your well known offlinereg by erwan.l, (just remember to DO NOT use a *.reg file made by exporting it from the Registry, better copy its content to a new file in Notepad and save it as a new *.reg file, if not the procedure DOES NOT work fine).

 

Hey Alacran,

 

Nice post as always,

About the offlinereg bug and registry reg files, it should be solved now in latest version I delivered earlier this year.

Was a bug with UTF8 and BOM.

 

Cheers,

Erwan


  • alacran likes this

#5 alacran

alacran

    Platinum Member

  • .script developer
  • 2710 posts
  •  
    Mexico

Posted 24 June 2022 - 11:41 PM

Hi erwan.l

 

Those are good news my friend.

 

Thanks for let me know, I don't have a real need to use it for now, but when I test it, I'll let you know.

 

EDIT: Last version can be downloaded from Github.

 

alacran



#6 alacran

alacran

    Platinum Member

  • .script developer
  • 2710 posts
  •  
    Mexico

Posted 26 June 2022 - 10:04 PM

JFYI

 

Just in case some future readers could need them, I'll add here the download links for this Scripts:

 

Wofadk Script  To let Win7 and Win8.x based WinPEs reed/write to Wimboot or Compact Mode files/folders/drives and instal Win7/Win8.x OS on Wimboot or Compact Mode on internal or USB devices.

 

NOTE: Win8.1 Update 1 based WinPE doesn't need it for Wimboot installations but it is required for Compact Mode installations. Wimboot and Compact mode installations are usually made running WinNTSetup program by JFX from any of this PEs, here WinNTSetup Script

Diskmod.script  To let Win7, Win8.x and Win10 versions before 2017, based WinPEs to reed/write/instal-OS to multipartitioned USB sticks.

NOTE: There isn't a SVBus Script as the WinPE boot.wim files are already capable to boot in Ram by design.

 

alacran



#7 antonino61

antonino61

    Gold Member

  • Advanced user
  • 1525 posts
  •  
    Italy

Posted 26 June 2022 - 10:30 PM

just out of curiosity, if u will: could vhds be made capable of booting into ram by design as well, thus sparing us the trouble of installing svbus and saving boot time? of course we would have couplets (filedisk vhds and the corresponding ramdisk vhds), but still...



#8 alacran

alacran

    Platinum Member

  • .script developer
  • 2710 posts
  •  
    Mexico

Posted 27 June 2022 - 12:07 AM

The answer in plain words is: No

 

Both Registries are very different in many ways.

 

That was answered since my experiments in October 2020 on this Post.

 

alacran


  • antonino61 likes this




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users