Jump to content

How to add video driver to WinPE 3.0?


johnhc

Recommended Posts

I am trying to add Catalyst video drivers to WinPE3.0 x64. I injected the driver with no problems and can see the folder/files in the Windows\System32\DriverStore\FileRepository directory. But when I boot WinPE and use DriverView (also have DevCon available), the injected driver is not being used. I found some old threads here saying I needed to install PnP, but this was in XP days. Is this true and if so how do I do that? What I would like to know is how to get the injected video driver to be the running one. Thanks and enjoy, John.

Link to comment
Share on other sites


I came across the same thing in my testing. It always uses whatever is "Standard VGA" driver. I never solved it, but in my experience WinPE will use the native resolution of an LCD monitor 95% of the time, or you can use a Resolution app to pic resolutions on CRTs or other unsupported displays.

Link to comment
Share on other sites

For Video driver to work you need to Add DXGKrnl service and some extra files as described here

http://www.911cd.net/forums//index.php?showtopic=23931&st=100&p=164570entry164570'>http://www.911cd.net/forums//index.php?showtopic=23931&st=100&p=164570entry164570

and as already default applied in Make_PE3 where portable 7pe_x86_E.iso is booting from Grub4dos menu

and will auto search for folder drv to Install the Video driver

http://www.911cd.net/forums//index.php?showtopic=23931

Copy PStart folder and wallpaper.jpg and drv folder with drivers as normal from Make_PE3\MULTI to root of HDD or USB boot drive.

:)

Edited by wimb
Link to comment
Share on other sites

Tripredacus, thanks. I should have said my real intent is to test my new video driver (preferably injected) on HW without doing a W7 install.

wimb, thanks also. As I infer, I should run the Registry file on WinPE after placing the listed files into the System32 folder, then use drvload to install the video driver. Is this correct? I noticed that the author stated that the nVidia drivers required a Restart. Probably Catalyst also? I would like to use the injected driver but it sounds like this is not possible.

Thanks to both and enjoy, John.

Link to comment
Share on other sites

wimb, I gave it a try with no luck. First the Registry update failed with "Error accessing the Registry". I did not see a PE3-SYSTEM key in LOCAL_MACHINE, so I changed it to SYSTEM. I was then able to load the key. When I try to run drvload against the Catalyst .inf file I get "Unable to load driver x80070070". Searching seems to indicate that this means out of space but I am not sure this applies to drvload. Where can I find the error codes that go with drvload? Was I correct in changing PE3-SYSTEM to SYSTEM? Do I need more than the 8 files and Registry update? I am not inclined to go all the way to the build talked about in the referenced thread. Thanks and enjoy, John.

EDIT: In my Registry the key in the link (HKEY_LOCAL_MACHINE\PE3-SYSTEM\ControlSet001\services\DXGKrnl), without the PE3-, has a sub key, Enum:


[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\DXGKrnl\Enum]
"0"="Root\\LEGACY_DXGKRNL\\0000"
"Count"=dword:00000001
"NextInstance"=dword:00000001

Do I need this?

Edited by johnhc
Link to comment
Share on other sites

You really need to add this registry and files to an offline winpe, so everything is ready at boot time.

The out of space error could mean you don't have enough space on systemdrive to copy the very big ati drivers.

Try to increase WinPECacheThreshold.

Link to comment
Share on other sites

Thanks, JFX. I was thinking off-line Registry changes were needed - the PE3-SYSTEM key was the hint. It looks like the WinPECacheThreshold defaults to 32 MB, which is way too small for the Catalyst driver (folder is 129 MB). Is there any reason not to set it to x200 (512MB)? Will I be able to inject the Catalyst driver to the image with these changes? Thanks and enjoy, John.

Link to comment
Share on other sites

?Still questioning the installation of the complete package. It includes the CCC which is IMHO really unnecessary for a PE (see post#12 here). Shouldn't only the 1st three be necessary (isolation should be a treat...) at maximum? CCC is very similar to nVidia Display Panel (an "add-on" software) in function. Or am I missing something (again)?

Link to comment
Share on other sites

submix8c, thanks for your reply. I had not planned on adding CCC, just the driver. I am really only interested in testing the driver (hope I can inject it) and learning something. I do use CCC on my W7 system but I don't plan on using WinPE for more than testing and starting W7 flat install. I guess the first three (post #12) is all that is needed to get the driver going but I use the CCC also. I simply run the DLed .exe suite, and then capture the files I need from the "%SystemDisk%\AMD\Support\12-8_vista_win7_win8_64_dd_ccc_whql" directory. This time I wanted to install the package on my system but usually I just Cancel the installer at this point. Thanks and enjoy, John.

Link to comment
Share on other sites

@johnhc

If every PC you want to boot this WinPE has 2GB RAM, you can set WinPECacheThreshold to the maximum of 512MB.

Sometimes driverinstall copies the uncompressed drivers twice,

but 512MB freespace on systemdrive should be enough to install the driver.

if still not enough, I've reduced the driver package to ~ 10MB ATI_12.8_x64.7z

@submix8c

driver integration will not add the complete package, dism parses the .inf files and copies only the result.

cheers.gif

Edited by JFX
Link to comment
Share on other sites

OK, I have successfully installed the Catalyst driver using drvload after updating the Registry (WinPECacheThreshold to x200 and DXGKrnl service set) in the mounted image. I can see the AMD driver in DriverView and devcon driverfiles and drivernodes. Next I will try to inject the driver. Enjoy, John.

EDIT: Injecting the driver did not result in seeing the driver in use when I booted WinPE. I can see the driver in the System32\FileRepository folder. I use drvload to load the driver and again can see it in DriverView and DevCon but the screen is still in low resolution so I am not sure if the Catalyst driver is really being used. No reboot was requested. But I see a Videoprt.sys (Video Port) in DriverView. I took a quick shot at installing the Catalyst Control Center, but the installer is a 32 bit PE. Is there a way to try to change the resolution? I am using an Unattend.xml file with the resolution set to 1920:1080.

Edited by johnhc
Link to comment
Share on other sites

Is there a way to try to change the resolution? I am using an Unattend.xml file with the resolution set to 1920:1080.

I use a third party app. Here is 64bit app to change resolution (does not work in WinPE 4)

And for 32bit, look for a program called Setres.exe.

Link to comment
Share on other sites

Tripredacus, thanks. The DL link in the site pointed to by your link is broken. I DLed setresolution.script from the guy's site. I tried it on a VM but Wscript will not run it. Perhaps it needs to be compiled into an .exe - don't know how. I tried to find setresolution-x64.exe with no luck. Any ideas. Thanks and enjoy, John.

Edited by johnhc
Link to comment
Share on other sites

I ran setresolution-x64 on my WinPE 3.0 x64 and was able to set 1024:768 only. Any other resolution I tried, except for 800:600, did nothing. I wrote an AutoIt script to show the current display settings and it works fine except the refresh always shows 1. The scrip is one line:


MsgBox (1,"Resolution",@DesktopWidth&":"&@DesktopHeight&":"&@DesktopDepth&":"&@DesktopRefresh)

During searching I found qres and ran it on my VM. It looked neat, so I tried it on WinPE 3.0 32 bit and it works fine. I tried 'qres /L' to see what valid resolutions were available but it showed nothing. Changing the unattend.xml file to reflect a resolution of 1024:768 worked also. I searched for a 64 bit version of qres with no luck, but the link (above) has the source. Maybe some enterprising programmer can compile qrez for x64. There is a readme-build.txt file with instructions. I am not a programmer.

The real purpose of all this was to test the Catalyst driver. I have been unable to convince myself that after installing the Catalyst driver that it is actually controlling the video card. Using

devcon stack "PCI\VEN_1002&DEV_6738"

I see the card and a line that shows the controlling service as amdkmdap. This is the same as on W7. I can also see the driver files in 'devcon driverfiles' and 'devcon drivernodes'. I expected to be able to set my display resolution to 1920:1080 (actual screen size) but could only set 800:600 and 1024:768. Perhaps this is a WinPE 3.0 restriction. Can anyone tell me how to determine for sure that the Catalyst driver is controlling the video card? Thanks and enjoy, John.

EDIT: I just learned that the source pointed to above is not for the QRes by Anders Kjersem and does not seem to work at all.

Edited by johnhc
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...