Jump to content











Photo
- - - - -

How to inject Intel Display Drivers into WinPE 3.1 bootable image?


  • Please log in to reply
2 replies to this topic

#1 Amarantine

Amarantine
  • Members
  • 2 posts
  •  
    Russian Federation

Posted 26 May 2011 - 02:58 PM

Hi,

Using WAIK we created WinPE bootable image to deploy our product for portable device. The device has vertical display, so we need to rotate it on 270 degrees. It is impossible to do using standard Microsoft VGA driver. So we try to inject Intel drivers (since we use Mobile Intel® 965 Express Chipset Family), but unsuccessfull.

Neither Intel, nor Microsoft answers my requests. I tried everything with dism, driver versions, registry modifications, read loads of forum threads including this forum... Really don't know what to do else. Previous WinPE (based on XP) worked well with Intel drivers, so the new one should work.

Can anyone throw light on how to implement it?

TIA

#2 sbaeder

sbaeder

    Gold Member

  • .script developer
  • 1338 posts
  • Location:usa - massachusettes
  •  
    United States

Posted 26 May 2011 - 09:19 PM

Hi,

Using WAIK we created WinPE bootable image to deploy our product for portable device. The device has vertical display, so we need to rotate it on 270 degrees. It is impossible to do using standard Microsoft VGA driver. So we try to inject Intel drivers (since we use Mobile Intel® 965 Express Chipset Family), but unsuccessfull.

Neither Intel, nor Microsoft answers my requests. I tried everything with dism, driver versions, registry modifications, read loads of forum threads including this forum... Really don't know what to do else. Previous WinPE (based on XP) worked well with Intel drivers, so the new one should work.

Can anyone throw light on how to implement it?

TIA

DISM should have been able to do this...

Just a suggestion...Have you looked at the win7PE_SE project? It has scripts for driver integration. MAYBE, if you use that to create a testing PE, and integrate the drivers, you can backtract to what you need to do on your own custom PE...

Sorry not much more I can think of ... Good Luck and let us know if you get a solution.

Scott

#3 Amarantine

Amarantine
  • Members
  • 2 posts
  •  
    Russian Federation

Posted 06 June 2011 - 05:04 PM

Thanks for advice.

So... Seems I resolved this issue.

Unfortunately, DISM cannot help to implement it.

I installed regular Windows 7 SP1 on my device.
After that I installed Intel Display Drivers.
I tracked registry and file system modifications (by systracer, but this can be done with any other tracking tool).

There're the following modifications that we need:
- Windows\inf - igdlh.inf driver
- Windows\System32\ - bunch of Intel binaries from archive that I downloaded from intel.com (drivers for Win7 in .zip archive).
- Windows\System32\catroot - igdlh.cat file.
- Windows\System32\drivers - igdkmd32.sys driver.

That's for Intel binaries.

Also you need:

- Windows\System32 - cdd.dll - Microsoft Canonical Display Driver. Critical.
- Windows\System32\drivers - dxkrnl.sys - Microsoft DirectX Graphics Kernel. Critical.
- Windows\System32\drivers - dxgmms1.sys - Microsoft DirectX Graphics MMS. Not sure.
- Windows\System32\drivers - monitor.sys - Microsoft Monitor Driver. Critical.
- Windows\System32\drivers - vgapnp.sys - Microsoft VGA/Super VGA Video Driver. Not sure.

I also added monitor.inf and and display.inf for monitor.sys and vgapnp.sys drivers into Windows\inf, but it works without them.

The following registry keys:
- [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class] - branches of DXKrnl, Display and Monitor classes.
- [HKEY_LOCAL_MACHINE\WPE_SYSTEM\ControlSet001\Control\Video] - the full branch.
- [HKEY_LOCAL_MACHINE\WPE_SYSTEM\ControlSet001\Enum\DISPLAY] - the full branch.
- [HKEY_LOCAL_MACHINE\WPE_SYSTEM\ControlSet001\Enum\PCI\VEN_XXXX&DEV_XXXX&SUBSYS_XXXXXXXX&REV_XX] - branches of your video (see igdlh.inf for details).
- [HKEY_LOCAL_MACHINE\WPE_SYSTEM\ControlSet001\Enum\Root\LEGACY_DXGKRNL\0000\Control] - branch of DXKrnl.
- [HKEY_LOCAL_MACHINE\WPE_SYSTEM\ControlSet001\Control\GraphicsDrivers] - branch of monitor.
- [HKEY_LOCAL_MACHINE\WPE_SYSTEM\ControlSet001\Control\GroupOrderList] - branch of init sequence.
- [HKEY_LOCAL_MACHINE\WPE_SYSTEM\ControlSet001\Hardware Profiles] - branch of display properties.
- [HKEY_LOCAL_MACHINE\WPE_SYSTEM\ControlSet001\services\DXGKrnl] - branch of DXKrnl service.
- [HKEY_LOCAL_MACHINE\WPE_SYSTEM\ControlSet001\services\ialm] - branch of Intel ialm service (not sure if it's really necessary).
- [HKEY_LOCAL_MACHINE\WPE_SYSTEM\ControlSet001\services\igfx] - branch of Intel igfx service.
- [HKEY_LOCAL_MACHINE\WPE_SYSTEM\ControlSet001\services\monitor] - branch of monitor service.
- [HKEY_LOCAL_MACHINE\WPE_SYSTEM\ControlSet001\services\vga] - branch of vga service (not sure if it's really necessary).
- [HKEY_LOCAL_MACHINE\WPE_SYSTEM\ControlSet001\services\VgaSave] - branch of VgaSave service.

Be careful: there're some places in registry keys with binaries names. They should be the same as you really have in the system. For example, if you have igdlh.inf, check that in registry you've got exactly the same name, but not oem1.inf or others.

Making all modifications carefully, you get the system with working Intel Display Drivers. You can boot, change parameters of display (resolution, orientation etc.), for example, using SetRes utility.

But I faced the following issue: if I set orientation via registry in offline image, I can't get it after boot up with native winlogon.exe without using SetRes. I had to use winlogon.exe from Win7PE_SE pack to have 270 degrees rotated orientation. Seems it was patched. But you can start SetRes every startup if you need. In this case you can leave native winlogon.exe.

So I didn't use DISM to inject drivers at all.

PS: Hope this will help somebody.

Edited by Amarantine, 06 June 2011 - 05:16 PM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users