I slapped my forehead as soon as you suggested the OemPnpDriversPath. Never occurred to me the MSD drivers were subject to this path.
Sadly still no love.
So, here's what I've done with your suggestion. I do actually have the ability to recreate my hii image. I've got the hii prototype process entirely scripted, so I pushed an old IBM Think Center S50 through the process.
The S50 doesn’t have an SATA controllers, it’s back from the pure PATA/IDE days. So I know the reference image being generated from it is completely unpoisioned with any remnant Intel Matrix drivers.
This is what I changed from my previously described system to incorporate Brandon’s suggestion:
OemPnpDriversPath now equals this:
OemPnpDriversPath="windows\inf;windows\system32;dr ivers\SYS1;drivers\SYS2;drivers\SYS3;drivers\SYS4; drivers\SYS5;drivers\SYS6;drivers\SYS7;drivers\SYS 8;drivers\SYS9;drivers\SYS10;drivers\NIC;drivers\W NIC;drivers\Audio;drivers\Video;drivers\MODEM;driv ers\SATA"
This update was made both in my Unattended.txt file AND my sysprep.inf file. This ensures that the updated driver path is both frozen in place after the action of sysprep, and is used when the computer is redeployed in mini-setup mode.
During redeployment, Driver injection for the T500 looks like this:
Code:
:: Lenovo T500 Model Laptops
if "%#!computer(at)prod_name%" =="20823HU" goto 20823HU
:20823HU
firm -recurse copy .\Sysprep\models\20823HU\drivers prod:\drivers
firm -recurse copy .\Sysprep\models\MSD\ICH9SATA prod:\drivers\SATA
goto :end
The contents of my MSD folder looks like this (I did a little clean up):
Code:
\\<ALTIRISSERVRE>\EXPRESS\SYSPREP\MODELS\MSD
| syspmsd.inf
|
+---ICH6SATA
| iaahci.cat
| iaahci.inf
| iastor.cat
| iastor.inf
| iastor.sys
| txtsetup.oem
|
+---ICH7SATA
| iaAHCI.cat
| iaAHCI.inf
| iaStor.sys
| ich7ide.inf
|
+---ICH8SATA
| ich8ide.cat
| ICH8SATA.inf
| Setup.DIY
|
+---ICH9SATA
| iaahci.cat
| iaahci.inf
| iastor.cat
| iastor.inf
| iastor.sys
| TXTSETUP.OEM
|
\---TEXTMODE
iaahci.cat
iaahci.inf
iastor.cat
iastor.inf
iastor.sys
txtsetup.oem
And the syspmsd.inf file now looks like this:
Code:
[SysprepMassStorage]
;Generic Drivers
*PNP0600=%systemroot%\inf\mshdc.inf
PCI\CC_0101=%systemroot%\inf\mshdc.inf
PCI\VEN_8086&DEV_7111=%systemroot%\inf\mshdc.inf
;Drivers for ICH6SATA controller support
PCI\VEN_8086&DEV_2652&CC_0106=%SystemDrive%\drivers\SATA\iaahci.inf
PCI\VEN_8086&DEV_2653&CC_0106=%SystemDrive%\drivers\SATA\iaahci.inf
PCI\VEN_8086&DEV_2652&CC_0104=%SystemDrive%\drivers\SATA\iastor.inf
;Drivers for ICH7SATA controller support
PCI\VEN_8086&DEV_27C0=%SystemDrive%\drivers\SATA\ich7ide.inf
PCI\VEN_8086&DEV_27C4=%SystemDrive%\drivers\SATA\ich7ide.inf
PCI\VEN_8086&DEV_27DF=%SystemDrive%\drivers\SATA\ich7ide.inf
;Drivers for ICH8SATA controller support
PCI\VEN_8086&DEV_2820=%SystemDrive%\drivers\SATA\ICH8SATA.inf
PCI\VEN_8086&DEV_2825=%SystemDrive%\drivers\SATA\ICH8SATA.inf
PCI\VEN_8086&DEV_2828=%SystemDrive%\drivers\SATA\ICH8SATA.inf
PCI\VEN_8086&DEV_2850=%SystemDrive%\drivers\SATA\ICH8SATA.inf
;Drivers for ICH9SATA controller support
PCI\VEN_8086&DEV_2681&CC_0106=%SystemDrive%\drivers\SATA\iaahci.inf
PCI\VEN_8086&DEV_27C1&CC_0106=%SystemDrive%\drivers\SATA\iaahci.inf
PCI\VEN_8086&DEV_27C5&CC_0106=%SystemDrive%\drivers\SATA\iaahci.inf
PCI\VEN_8086&DEV_2821&CC_0106=%SystemDrive%\drivers\SATA\iaahci.inf
PCI\VEN_8086&DEV_2829&CC_0106=%SystemDrive%\drivers\SATA\iaahci.inf
PCI\VEN_8086&DEV_2922&CC_0106=%SystemDrive%\drivers\SATA\iaahci.inf
PCI\VEN_8086&DEV_2929&CC_0106=%SystemDrive%\drivers\SATA\iaahci.inf
PCI\VEN_8086&DEV_3A22&CC_0106=%SystemDrive%\drivers\SATA\iaahci.inf
PCI\VEN_8086&DEV_2682&CC_0104=%SystemDrive%\drivers\SATA\iastor.inf
PCI\VEN_8086&DEV_27C3&CC_0104=%SystemDrive%\drivers\SATA\iastor.inf
PCI\VEN_8086&DEV_27C6&CC_0104=%SystemDrive%\drivers\SATA\iastor.inf
PCI\VEN_8086&DEV_2822&CC_0104=%SystemDrive%\drivers\SATA\iastor.inf
PCI\VEN_8086&DEV_282A&CC_0104=%SystemDrive%\drivers\SATA\iastor.inf
;end SATA support driver specification
I know Brandon brought up that my ICH7 and 8 deffinitions in my syspmsd.inf file didn’t have “&CC_” chunks on them.
Granted. I should probably rebuild those.
However, the ICH9SATA definitions seem to be configured correctly. To be explicit, the mass storage device in the T500 I’m trying to make go matches this line:
Code:
PCI\VEN_8086&DEV_2929&CC_0106=%SystemDrive%\drivers\SATA\iaahci.inf
And is references in iaahci.inf as
Code:
PCI\VEN_8086&DEV_2929&CC_0106.DeviceDesc = "Intel(R) ICH9M-E/M SATA AHCI Controller"
It feels like I have every thing in place, it’s just not being taken up by the operating system before it has to trip over into high level disk access mode and starts it’s mini setup process.