Intel vPro® Platform
Intel Manageability Forum for Intel® EMA, AMT, SCS & Manageability Commander
2834 Discussions

WinPE HECI Drivers failing to load

ccede
Beginner
3,046 Views

Hi all,

I cannot seem to get the HECI drivers to load in WinPE on my Lenovo T420s AMT7 machine

I am using WinPE 3.0 x86

I have tried running the following command:

- x:\AMT\ME_SW\Drivers\MEI > drvload HECI.inf

ERROR MESSAGE: DrvLoad: Unable to load HECI.inf (Error 0x80070436).

The directory (x:\AMT\ME_SW\Drivers\MEI has the following contents: heci.cat, HECI.inf, HECI.sys, HECIx64.sys)

I have also tried loading them via the setup.exe found on the Lenovo website here: http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/83ra28ww.exe http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/83ra28ww.exe

it is for the following drivers: Intel AMT 7.1 - Management Engine Interface and Serial Over LAN driver (SOL) Driver for Windows 7 (32-bit, 64-bit), XP - ThinkPad

Attempting to run setup.exe prompts me with the following warning:

The following application requires Microsoft .NET Framework 3.5 or later: Intel(R) Management Engine Components. Please install the latest version of Microsoft .NET Framework from Microsoft Download Center to run this application correctly. 

Are you sure you want to continue?

I select Yes and follow the wizard until it errors out (ERROR - The setup program failed to install one or more device drivers. Setup will exit)

In Windows, the HECI driver installs fine and I can provision/re-provisiong the device.

Running MEInfoWin.exe in Windows 7 x64 gives me the following:

Intel(R) MEInfo Version: 7.1.30.1139Copyright(C) 2005 - 2011, Intel Corporation. All rights reserved. Intel(R) Manageability and Security Application code versions: BIOS Version: 8CET28WW (1.05 )MEBx Version: 7.0.0.53Gbe Version: 1.3VendorID: 8086PCH Version: 4FW Version: 7.1.3.1053UNS Version: 7.1.2.1043LMS Version: 7.1.2.1043MEI Driver Version: 7.0.0.1144Wireless Hardware Version: Not AvailableWireless Driver Version: Not Available FW Capabilities: 234249317 Intel(R) Active Management Technology - PRESENT/ENABLED Intel(R) Anti-Theft Technology - PRESENT/ENABLED Intel(R) Capability Licensing Service - PRESENT/ENABLED Protect Audio Video Path - PRESENT/ENABLED Intel(R) Dynamic Application Loader - PRESENT/ENABLED

Any suggestions??

Thanks in advance for the help!

0 Kudos
5 Replies
Jacob_G_Intel
Employee
1,770 Views

I have some experience with WinPE 3.0 & AMT. It looks like what you're doing (drvload heci.inf) should work. However, I have never tried it so there may be something weird that I'm not anticipating. I use dism to apply heci.inf during the WinPE build process. For me, this works great. I even load multiple heci.inf files, one for each AMT version I need to support. Then, WinPE figures out which one to use during the PnP phase. Would this work for you?

For setup, there are parts on the MEI package that require .net. But, WinPE doesn't have .net, so setup will error. The parts that don't use .net can still be used, but you have to load them individually. I've successfully used heci.inf (dism during WinPE build), mesrl.inf (drvload after WinPE boot), MEIWMIProv (Include WMI in WinPE build, then edit CreateMENamespace.bat with paths for WinPE and run it after WinPE boots), and LMS (32 bit only, add LMS reg keys to WinPE during build, then manually start LMS service after WinPE boot).

You might also want to try the MEI driver versions here just to be sure you have a good version. These will work on a T420 http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=20584&lang=eng&OSVersion=Windows%207%20(32-bit)*&DownloadType=Drivers http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=20584&lang=eng&OSVersion=Windows%207%20(32-bit)*&DownloadType=Drivers

0 Kudos
idata
Employee
1,770 Views

Thanks for the reply Jake.

 

I downloaded the driver from your link and it worked fine using the drvload command in WinPE! Looks like my drivers were incorrect.... strange as those drivers came from the lenovo site for my exact model number.

What I am trying to do with WinPE is get the AMT Configuration Utility (ACUConfig.exe) to work within it.

When I run ACUConfig.exe from within my WinPE environment, it errors out. I decided to do some digging with Dependency Walker & SxSTrace.exe

Running ACUConfig.exe via DependencyWalker shows the following missing files:

System32 Filesen-US (mui) FilesCertEnroll.dll CertEnroll.dll.muiefsadu.dllefsadu.dll.mui hlink.dll hlink.dll.mui IEAdvpack.dll IEAdvpack.dll.mui IEShims.dllMMDevAPI.dll.mui MMDevAPI.dll msfeedsbs.dll.mui msfeeds.dll msoert2.dll.muimsoert2.dll ndfapi.dll.muimsvcr80.dll occache.dll.mui ndfapi.dll puiapi.dll.mui occache.dll rstrtmgr.dll.mui puiapi.dllshdocvw.dll.muiRstrtMgr.dll shdocvw.dll vaultcli.dll

After getting these files from a 32 bit Win7 OS and placing them in the respective System32 & en-US folders within PE, I ran dependency walker again, which this time gave me a Side-by-Side Configuration Error.

I opened up sxstrace and ran a trace on the ACUConfig commandline utility.

This gave me the following output:

=====================================================================================

 

Begin Activation Context Generation.

 

Input Parameter:

 

Flags = 0

 

ProcessorArchitecture = x86

 

CultureFallBacks = en-US;en

 

ManifestPath = x:\Provisioning\xerces-c_2_8.dll

 

AssemblyDirectory = x:\Provisioning\

 

Application Config File =

 

-----------------

 

INFO: Parsing Manifest File x:\Provisioning\xerces-c_2_8.dll.

 

INFO: Manifest Definition Identity is (null).

 

INFO: Reference: Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0"

 

INFO: Resolving reference Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0".

 

INFO: Resolving reference for ProcessorArchitecture x86.

 

INFO: Resolving reference for culture Neutral.

 

INFO: Applying Binding Policy.

 

INFO: No publisher policy found.

 

INFO: No binding policy redirect found.

 

INFO: Begin assembly probing.

 

INFO: Did not find the assembly in WinSxS.

 

INFO: Attempt to probe manifest at X:\windows\assembly\GAC_32\Microsoft.VC80.CRT\8.0.50608.0__1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.DLL.

 

INFO: Attempt to probe manifest at x:\Provisioning\Microsoft.VC80.CRT.DLL.

 

INFO: Attempt to probe manifest at x:\Provisioning\Microsoft.VC80.CRT.MANIFEST.

 

INFO: Attempt to probe manifest at x:\Provisioning\Microsoft.VC80.CRT\Microsoft.VC80.CRT.DLL.

 

INFO: Attempt to probe manifest at x:\Provisioning\Microsoft.VC80.CRT\Microsoft.VC80.CRT.MANIFEST.

 

INFO: Did not find manifest for culture Neutral.

 

INFO: End assembly probing.

 

ERROR: Cannot resolve reference Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0".

 

ERROR: Activation Context generation failed.

 

End Activation Context Generation.

=====================================================================================

From this output, it looks to be a Visual C++ Redistributable Error.

 

I read that I should take the following four files from a 32 bit Win7 OS: \VC\Redist\x86\

In my OS, that redirect folder was missing, so instead I got them from the following:

C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.42_none_db5f52fb98cb24ad\

Redist Filesmsvcm80.dllmsvcp80.dllmsvcr80.dllMicrosoft.VC80.CRT.manifest

and placed them into the same folder as ACUConfig.exe in my WinPE environment.

Running an SxSTrace after having done this, gives me the following after ACUConfig.exe errors out:

=====================================================================================

 

Begin Activation Context Generation.

 

Input Parameter:

 

Flags = 0

 

ProcessorArchitecture = x86

 

CultureFallBacks = en-US;en

 

ManifestPath = x:\Provisioning\xerces-c_2_8.dll

 

AssemblyDirectory = x:\Provisioning\

 

Application Config File =

 

-----------------

 

INFO: Parsing Manifest File x:\Provisioning\xerces-c_2_8.dll.

 

INFO: Manifest Definition Identity is (null).

 

INFO: Reference: Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0"

 

INFO: Resolving reference Microsoft.VC80.CRT,processorArchitecture="x86",public...
0 Kudos
Jacob_G_Intel
Employee
1,770 Views

Out of curiosity, what are you going to do with ACU_config in WinPE? Initial Provisioning? Host based or Remote? Or just config updates?

A while back, I was able to get it to work with lots of trial and error and google help. I did not trim the list list at all...I just saw it work and stopped there. I'm not sure all functions will work, but I was able to do a host based config. I added these files:

\Windows\system32\apphelp.dll

 

\Windows\system32\CertEnroll.dll

 

\Windows\system32\clbcatq.dll

 

\Windows\system32\comctl32.dll

 

\Windows\system32\cscapi.dll

 

\Windows\system32\devmgr.dll

 

\Windows\system32\efsadu.dll

 

\Windows\system32\en-us

 

\Windows\system32\hbp.bat

 

\Windows\system32\hlink.dll

 

\Windows\system32\ieframe.dll

 

\Windows\system32\ieui.dll

 

\Windows\system32\imgutil.dll

 

\Windows\system32\inetcomm.dll

 

\Windows\system32\mlang.dat

 

\Windows\system32\mlang.dll

 

\Windows\system32\MMDevAPI.dll

 

\Windows\system32\msfeeds.dll

 

\Windows\system32\mshtml.dll

 

\Windows\system32\msi.dll

 

\Windows\system32\msoert2.dll

 

\Windows\system32\msrating.dll

 

\Windows\system32\ndfapi.dll

 

\Windows\system32\netplwiz.dll

 

\Windows\system32\occache.dll

 

\Windows\system32\oledlg.dll

 

\Windows\system32\puiapi.dll

 

\Windows\system32\RstrtMgr.dll

 

\Windows\system32\shdocvw.dll

 

\Windows\system32\vaultcli.dll

 

\Windows\system32\wbem

 

\Windows\system32\wdi.dll

 

\Windows\system32\wer.dll

 

\Windows\system32\werui.dll

 

\Windows\system32\en-us\apphelp.dll.mui

 

\Windows\system32\en-us\CertEnroll.dll.mui

 

\Windows\system32\en-us\devmgr.dll.mui

 

\Windows\system32\en-us\efsadu.dll.mui

 

\Windows\system32\en-us\hlink.dll.mui

 

\Windows\system32\en-us\ieframe.dll.mui

 

\Windows\system32\en-us\ieui.dll.mui

 

\Windows\system32\en-us\mlang.dll.mui

 

\Windows\system32\en-us\MMDevAPI.dll.mui

 

\Windows\system32\en-us\msfeedsbs.dll.mui

 

\Windows\system32\en-us\mshtml.dll.mui

 

\Windows\system32\en-us\msoert2.dll.mui

 

\Windows\system32\en-us\msrating.dll.mui

 

\Windows\system32\en-us\ndfapi.dll

 

\Windows\system32\en-us\netplwiz.dll

 

\Windows\system32\en-us\occache.dll.mui

 

\Windows\system32\en-us\ole32.dll.mui

 

\Windows\system32\en-us\puiapi.dll

 

\Windows\system32\en-us\RstrtMgr.dll

 

\Windows\system32\en-us\shdocvw.dll

 

\Windows\system32\en-us\wdi.dll.mui

 

\Windows\system32\en-us\wer.dll.mui

 

\Windows\system32\en-us\werui.dll.mui

 

\Windows\system32\wbem\en-us

 

\Windows\system32\wbem\msfeeds.mof

 

\Windows\system32\wbem\en-us\msfeeds.mof

 

\acu_config\ACU.dll

 

\acu_config\ACUConfig.exe

 

\acu_config\BASIC.xml

 

\acu_config\hbp.xml

 

\acu_config\JAke.xml

 

\acu_config\Licenses

 

\acu_config\Microsoft.VC80.CRT.MANIFEST

 

\acu_config\msvcr80.dll

 

\acu_config\MTLS_CPMPS.xml

 

\acu_config\MTLS_IPMS.xml

 

\acu_config\NonTLS_IMPS.xml

 

\acu_config\STLS_CPMPS.xml

 

\acu_config\STLS_IMPS.xml

 

\acu_config\xerces-c_2_8.dll

 

\acu_config\XML_Profile_Conversion

 

\acu_config\Licenses\license.txt

 

\acu_config\Licenses\ThirdPartyLicences

 

\acu_config\Licenses\ThirdPartyLicences\AMT SDK readme.txt

 

\acu_config\Licenses\ThirdPartyLicences\gsoap_license.pdf

 

\acu_config\Licenses\ThirdPartyLicences\Nokia openSSL.txt

 

\acu_config\Licenses\ThirdPartyLicences\openSSL_license.txt

 

\acu_config\Licenses\ThirdPartyLicences\rfc2617_license.txt

 

\acu_config\Licenses\ThirdPartyLicences\xerces_license.txt

 

\acu_config\XML_Profile_Conversion\AMT_SW_GUI.dll

 

\acu_config\XML_Profile_Conversion\Interop.ActiveDs.dll

 

\acu_config\XML_Profile_Conversion\ProfilesConverter.exe

 

\acu_config\XML_Profile_Conversion\SCS7.0WizardLogic.dll

 

\acu_config\XML_Profile_Conversion\SCSWizardLogic.dll

No .reg keys. The version of my...

0 Kudos
ccede
Beginner
1,770 Views

Jake -- once again, thank you so much for your reply it is greatly appreciated!

 

I am looking to use PE as a staging environment for prepping machines and am just exploring the options and functionality available through the AMT Chipset.

I changed only the Manifest file to replicate yours and now it seems I am able to provision the device via WinPE using ACUConfig

I tried Unconfiguring this same device, but received an error due to the LMS service not being launched. I saw you mentioned this in your previous post regarding HECI integration into PE:

Jake Gauthier wrote:

LMS (32 bit only, add LMS reg keys to WinPE during build, then manually start LMS service after WinPE boot).

Could you explain what you mean by adding the reg keys to WinPE?

I attempted to export the CurrentControlSet LMS from a Win7 build then import them when I had booted back into PE... Didn't work.

I wanted to confirm these are the correct keys before I rebuild my PE Image with an updated hive and test.

I appreciate all of your help!

0 Kudos
Jacob_G_Intel
Employee
1,770 Views

You only need HKLM\SYSTEM\ControlSet001\services\LMS from a machine that has 32 bit Win 7 and a working LMS. But, be sure to adjust any references to a path (E.G. the ImagePath key) so they point to WinPE's location for the given file or folder. Also, another trick for hex values that are paths; in notepad replace 43,00,3a,00,5c,00 with 58,00,3a,00,5c,00. Those are hex values for C:\ and X:\ respectively. Note, that LMS.exe is 32 bit only, so it will not run in a 64bit WinPE.

I'm really glad you got this going. I'm very interested in how your experiments progress. I've allways thought WinPE + AMT could do some cool things for deployment. Here's a little food for thought;

WinPE has a WMI add-on. You can include the AMT WMI provider in WinPE as well. This gives access to some AMT functions without the need for AMT credentials: http://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/DOCS/Implementation%20and%20Reference%20Guide/default.htm?turl=WordDocuments/intelmewmiprovider.htm http://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/DOCS/Implementation%20and%20Reference%20Guide/default.htm?turl=WordDocuments/intelmewmiprovider.htm

On AMT 6.2 and above, if AMT is provisioned and LMS is running, you can get to the AMT webUI from :16992">http://:16992. If you add firefox portable into your WinPE you could do some basic AMT things like add a wireless profile or get the host name. You could even script it with curl.

Of course, if you can figure out how to get WinRM into WinPE, then you could write vbscript and/or batch files to make WSMan calls to AMT directly.

Win8 WinPE (development version) includes a powershell add on. In theory, you could add the vPro Powershell Module into WinPE and make AMT calls from a .ps script.

BTW - I've read of folks getting syswow64 to work in a 64bit WinPE. In theory LMS would run in such a setup.

Of course, having access to AMT is nice, but what will you do with it? Obviously provisioning AMT would be nice. It an be part of an automated OS deployment. Another possible use is to get the system name from WinPE and then use it during an OS install. However, I have not found an end-to-end solution for this yet. When I find one, I will share.

Anyhow, I'm verying interested in how your experients go and what (if anything) you end up using AMT for in your WinPE staging phase.

0 Kudos
Reply