Finally, back to looking at the VistaPE/WinPE building dead-ends I mentioned my post Custom Win PE Boot Disk Building: Dead Ends Ahead!
The purpose of this ongoing project is to build a Win PE 2.0 based boot-disk, that has a great VistaPE GUI interface (instead of the standard CLI shell) and the PGP WDE drivers injected so we can “liveCD-boot” a PGP WDE system (assuming we have the user’s passphrase). Oh yes, and it has to handle the Dell GX 7xx series USB keyboard drivers.
If you are just joining us, please go back and review the following posts to get up to speed:
- Custom Win PE Boot Disk Building Saga: Introduction
- Custom Win PE Boot Disk Building: Step One – WAIK up
- Custom Win PE Boot Disk Building: Step Two – PGP Injection
- Custom Win PE Boot Disk Building: Step Three – VistaPE 12 RC1 Walkthrough
OK. Now on to the failure.
Breaking down the Breakdowns
I knew that a Win PE 2.0 boot disk worked fine with loading the Dell Optiplex 7xx series USB keyboard driver. Typing with the keyboard worked great.
But building a stock VistaPE version with the WAIK failed to load the USB keyboard properly (at all).
Building a stock VistaPE version with a Vista setup disk succeeded in loading the USB keyboard.
So it seemed the solution was to either use a WinPE 2.0 disk (blah) or the VistaPE Vista setup disk and skip the WAIK version.
That would have been fine, but, since I had added in a new factor (PGP WDE driver injection) I had a new issue
The PGP WDE injected WinPE 2.0 still worked great (blah).
The PGP WDE injected VistaPE based on the WAIK worked perfectly…except for the fact the USB keyboard did not.
The PGP WDE injected VistaPE based on the Vista setup DVD BSOD’ed.
I didn’t want to use the WinPE 2.0 version only because I’m stubborn, have spoiled our team with the sexy VistaPE GUI versions I have previously released, and very few are comfortable in CLI mode.
The following things seemed clear to me:
- The drivers I needed were present and working in WinPE 2.0 as the keyboard worked fine there.
- The drivers I needed were either removed or not loading in the VistaPE WAIK build, and
- The drivers I needed were included or loaded in the VistaPE Vista setup DVD build as it included advanced hardware sensing the WAIK build version lacks, but then the additional drivers conflicted fatally with the PGP WDE drivers.
I figured if I could compare the drivers loaded in the working WinPE 2.0 version against those loaded in the VistaPE WAIK version, I might be able to find what was missing.
So, I had to get the data on what was loading.
How to do that on a bootCD?
I downloaded and unpacked DriverView which is a free utility from Nir Sofer and placed it on a USB stick. DriverView enumerates and provides details on all the drivers loaded by a Windows system.
I then booted the system under both WinPE 2.0 and VistaPE WAIK, captured the loaded driver data, then exported the findings as a file back to the USB stick.
Since the mouse device at least worked, I was in pretty good shape.
I then used my primary system to print out the reports and then compared them side by side.
When done I located a number of drivers that did not load in the VistaPE WAIK build that were present in the WinPE 2.0.
Curiously, most seemed to relate to USB and HID (human interface device) drivers. Specifically a Dell USB Keyboard Hub driver.
That jived with what I saw under the Device Manager as well.
(not working below)
That made sense. The keyboard didn’t work because the system wasn’t loading the USB hub device it was first, then the keyboard controller tied to that USB hub.
I thought about it and figured if I could get the Dell Intel chipset drivers and unpack them, then inject them, that might be best.
I found the proper Intel Chipset drivers for the Dell system. (Dell link source here.) Turns out they have a self-checking feature to ensure they unpack only on a Vista system. Since my systems were XP OS only, it was a problem for a minute, until I tossed a VirtualPC install on a Dell system, then tossed a virtual Vista system on that, and then finally ran the package. It unpacked nicely. Clever that way I am.
The D-Man knew I had been banging my head on the desk on this issue for a few days and mercifully suggested a great free utility called Double Driver. I found it easy to use and USB portable so I used it on the working WinPE 2.0 boot disk to snag the loaded (and USB Keyboard Hub) drivers as well, neat and clean. I could have used Driver Backup! as well to snag ‘em. Both do a great job of pulling all the required driver files and packing them neat and tidy in their own sub-folders. I saved (backed up) the files back to the USB stick I was running Double Driver from.
Now, how to get them added into the VistaPE build?
(Note: I know all about injecting drivers into wim files, but since I wasn’t focusing on the WinPE 2.0 build but the VistaPE build, I wanted a process specific to that tool if possible.)
Adding Extra Drivers to VistaPE builds
In most all cases, VistaPE with both WAIK and Vista setup source builds should work just fine. However from time to time one needs special drivers to make things work perfectly.
I found a solution from “MudCrab” that was easy and perfect.
- Adding Drivers for Unsupported Hardware – The Mud Crab
You will need the great VistaPE script: Mustang's VistaPE AddDrivers Script
Follow MudCrab’s wonderful guide and you should be going great. Just pay very close attention and DON’T PUT ANY SPACES IN THE FOLDER NAMES OR FILES OR PATHS! That’s kinda important.
Now in my case, I had narrowed down about eighteen (18) drivers from my research that I wanted to add into the VistaPE building process.
Mustang’s script only handled up to five.
So on a hunch I just took his original “AddDrivers.script” file, copied it three more times times, and then renamed each one with an extra number: “AddDrivers2.script”, “AddDrivers3.script”, and “AddDrivers4.script”. I hit the VistaPE refresh button and there they all were!
Now I could add up to twenty drivers. Keep going as your needs are.
I selected all the drivers I needed from my extractions, added them in, then re-ran the VistaPE WinBuilder project to build the VistaPE WAIK version. The scripts worked perfectly and I saw all the my additional drivers getting added in.
When I went to try the disk, it still did not load the right drivers for the Dell USB Keyboard Hub.
I was able to mount the new .wim file that the build used, and confirmed that the new drivers had all been added successfully.
Unfortunately, something about the way things were modified in VistaPE changed the way the WinPE 2.0 system loaded the drivers, and it was just not installing the one I wanted, even though it was now embedded there and accessible for use.
Dead End #1 Achieved
However, even though this didn’t solve my problem, the poking around in the resulting .wim file used by WinPE/VistaPE did bring me a bit closer to my eventual working solution.
And I worked out a way to add as many additional drivers as I might need in the future to VistaPE constructions.
So even though I was disappointed, I learned a clever way to snag drivers from a working system and how to port them into VistaPE Winbuilder projects.
I also learned about Mustang’s great DriverAdd script and how to multiply it.
Finally, I decided that I needed to move on from VistaPE and see if I could then somehow modify the WinPE 2.0 disk to contain some GUI enhancements that would make it useful for both the PGP WDE drivers that worked, the Dell Keyboard USB HUB driver handling that worked, and get away from the CLI underpinnings that turned off that turned off our technicians from using the pure WinPE 2.0 disk format.
That adventure led to Dead End #2….but provided me enough information to have my Eureka breakthrough.
Hang on! It’s getting exciting!