Part 9 discusses the role of drivers in the Config Mgr 2012 OSD process.
Config Mgr is hardware agnostic to a degree. We will capture an image from a reference computer in Part 10 and it will not matter which make and model of hardware we use. Drivers are injected into the process as required.
Network Card drivers: The deployment process relies heavily on the use of Windows PE. Config Mgr utilises boot images to allow devices to boot into PE. However in order to allow this for your particular makes and models you must first add your network card drivers to the boot images. The process is shown below.
Driver Packages: We will create a driver package for each of our makes and models. Each package will contain the full driver set for that model. When we create our OSD task sequence in Part 11 we will incorporate the driver packages. We will configure a series of WMI queries so that only the correct driver package is applied during a deployment.
Most hardware vendors create cab files for their models. These cab files contain the full driver set and can be downloaded from their web sites. This makes it easy to add the drivers to your driver package in one operation. Otherwise you have to download and add individual drivers as required.
First prepare your Windows and Config Mgr folder structures
Download the required drivers and save them to the folders above
1. Network Card Drivers
Right Click Drivers and Select Import Driver
Browse to the driver folder
Important Note; Add x64 drivers to x64 boot image only (same for x86)
When drivers are Imported to Config Mgr they can be found in the Drivers folder (you cannot import directly to a sub-folder). Move the drivers manually to the sub-folder for good house-keeping.
2. Driver Packages
Create Driver Package folder
Right Click Driver Packages to create
Now that driver package is created you can now import drivers and add to the package.
Right click to import drivers as before.
Browse to folder where you previously downloaded the cab file (or manually added the required drivers)
Add drivers to package you just created
DO NOT ADD THESE DRIVERS TO THE BOOT IMAGE. They are not required and could eventually corrupt the boot image.
Then distribute the package to the distribution point
Hi Gerry. Thank you so much for this guide. I'm following all of the chapters on OSD. I really appreciate it.
ReplyDeleteA few quick questions...
Any reason why you made the Driver Package after you imported them? I saw that we could do it while importing?
It seems like you initially updated the boot image with the drivers, but then later you write not to. What did I miss other than the architecture?
Lastly, I followed that you recommend creating the folder structure both inside the console and out, but other than the NIC folder, I don't see how we use the CAB folder.
Thanks so much!
Be careful. There are two different configurations here.
ReplyDelete1. Network card drivers: download, add to NIC folder, import to SCCM and add to Boot Image.
2. ALL drivers for a model of device (can be downloaded as CAB file): NIC, audio, video etc, download, add to Driver Package.
Very important: only add NIC drivers to the Boot Image
Hey Gerry,
Deleteregarding importing the nic drivers into the boot image. what files do you need. I have downloaded the NIC driver from HP, and there is a lot of crap in there, do I just need the .inf file or should i move everything into the NIC sources folder ?
all the best
You need the .inf file.
DeleteDear Gerry . Again Thanks for this Practice
ReplyDeletePlease Advise after i made SCCM folder Structures then right click on optiplex folder to import drivers but it's gray out
you cannot import directly to a sub-folder ... Just now i read it
ReplyDeleteSorry
Hi Gerry,
ReplyDeleteFirst time poster!
So far I have managed to get this far, however I am experiencing a little issue when importing the drivers. I have a shared folder for the driver source on the server with permissions for everyone (full) my SMSAdmin (Full) snd Domain Admins (Full), however when I input the full UNC I get the following error
"Configuration Manager cannot import the specified driver folder. verify that the folder exists in the specified location and that both the SMS Provider computer and the computer running the Configuration Manager console have read permissions to the specified shared folder.
Like I have said I have checked permissions but to no avail.
Any Ideas?
Thanks
John
Hi John,
DeleteGive your SCCM Computer account (SCCMServer$) access to the share also.
Hi Gerry,
DeleteFirst of all thanks for wonderful posts.
1. I have imported all drivers CAB file of Optiplex 960 (audio, video, chipset...) and added to boot image x64 by mistake and created Driver Package. Could you please advise what I have to do in this case.
2. I have downloaded NIC driver from vendor site. But it is a setup.exe file and I am not able to import, suggest me how to import this NIC driver.
Thank you,
R
Hello install de setup.exe file in another pc, the uncompressed folder was created in C: look for it and you have the drivers package ready to import.
Deleteif you cannot import a CAB file, extract the contents then point to the extracted files
DeleteHi Gerry,
ReplyDeleteFirst of all thanks for wonderful posts.
1. I have imported all drivers CAB file of Optiplex 960 (audio, video, chipset...) and added to boot image x64 by mistake and created Driver Package. Could you please advise what I have to do in this case.
2. I have downloaded NIC driver from vendor site. But it is a setup.exe file and I am not able to import, suggest me how to import this NIC driver.
Thank you,
R
You're very welcome.
ReplyDelete1. You should remove unwanted drivers from the boot image. You can do this in boot image properties.
2. Unfortunately you can't. setup.exe is no good for you unless you can extract .inf files from it (sometimes the files are extracted if you run the setup routine). Otherwise you should contact the vendor if you can't find the correct files.
Hi Gerry,
ReplyDeleteI have tried assigning permissions to the local computer, still complains about the damn UNC path not having read for SMS Provider. I have triple checked permissions. So I am at a loss here. Even went as far as making new shares and assigning crazy open permissions, but still wont allow me to make that driver package using UNC path I made. I am sure I am missing something stupid, been pulling my hair out ! lol
You need to grant permissions to your Primary Site server computer account.
DeleteThanks for the response Gerry. Its a single server site, so there is only one computer account to add. I am going to have a look at the SQL server and make sure all is well there. Thanks again for the response
DeleteGreat blog series! I am going through each one step by step and learning a lot. In the above you have two "packages" available to choose from, to add the drivers to. I don't have these boot images. In my packages area I only see "configuration manager client package" and "user state migration tool for windows 8". Can you offer some guidance on how to create the OS boot packages you show in the above photos? Thank you!
ReplyDeleteSorry - ignore my last post. I saw you just did a next past the "add to package" screen (no package was shown). But that brings up a question, it says "Drivers must be added to packages and deployed to DPs before computers can use them" yet you appeared to select no package. If we are updating a boot image, i guess also adding to a package is redundant or not necessary?
ReplyDeleteNIC driver will be required in both boot image and driver package. The boot image is used while in Windows PE and the driver package is applied to the final operating system. It is very important to have both.
DeleteGenerally I use a CAB file when creating driver packages. These can be downloaded from the vendor websites and contain all the required drivers for a specific model. This is why I don't bother just adding the NIC driver to a driver package. I will be doing this with my CAB file.
It appears I only have an x86 boot image so I can't add my x64 drivers. How can I create a new boot image (x64)? Where do I get the files (looks like a boot.win file), and why would this be missing when the x86 one is there? Thank you for your great posts and help.
ReplyDeleteI have no idea why you would only have one boot image - I've never seen that. There are several reasons why you could have none (but not one - somebody must have deleted it).
DeleteIn any event you can create your own boot image. See here
http://www.gerryhampsoncm.blogspot.ie/2014/02/configmgr-2012-create-new-boot-images.html
Hi Gerry,
DeleteSorry I just typed my question but it seems to have disappeared so here goes again:
First thanks for the posts they are very helpful.
Second, I see you mentioned that there are a few reasons why there would be no boot images? Would you be able to elaborate a bit as I have just got to the 'WDS part' of my SCCM primary server setup and find that there are no boot images. I have already done a LOT of other config on this primary so am hoping that there is a fix for my issue. (Just finished the WSUS automatic deployment of patches and have the machines compliant on the network)
Thanks,
Chris
You can usually blame McAfee when you install ConfigMgr and end up with no boot images. The creation of boot images involves DISM and McAfee just does not play nice with DISM.
DeleteYou can manually create your boot images Chris - I've had to do it several times.
http://www.gerryhampsoncm.blogspot.ie/2014/02/configmgr-2012-create-new-boot-images.html
thanks Gerry, I will check it out...
DeleteHi Gerry - I'm experimenting on a Lenovo E430 laptop, trying to push down Windows 7 x86. So I'm going through this blog (and a few others) trying to set up OSD. I have found NIC drivers for it over at Lenovo site, but I don't see any "CAB" download for this model. I assume by CAB you mean a bundle of all drivers for this particular peice of hardware, correct? I just see individual feature/chip downloads on the Lenovo site. How does one go about finding these bundled CAB drivers - are they always available? What if they aren't?
ReplyDeleteThanks
Correct. The CAB file would normally have all the drivers for a particular model. This is useful as you can import them all into ConfigMgr and easily make a driver package. If the CAB file is not available you have to find individual drivers as required.
ReplyDeleteGerry - couple of questions. In your first step "First prepare your Windows and Config Mgr folder structures" - you created a global NIC folder - do you place both x86 and x64 in here? Then run two imports pulling from this folder, deselecting/selecting the appropriate architecture when importing to the boot images? I suspect this is what you do (in the example, you only did x64).
ReplyDeleteSome PCs have multiple NIC drivers per model - does SCCM intelligently detect the appropriate driver needed when running WinPE and capturing an image? How reliable is this auto detection, if so? Over time, as I add additional drivers and re-create the .iso, I want to make sure this single iso will work for multiple hardware sets.
Thank you for your great posts
Hi Jim,
DeleteYou're correct. I split the folders into the architectures and only import what I need.
The "auto-apply drivers step" can work if you don't have many models. However if you are importing a lot of drivers this can cause problems. At that point, I disable auto-apply and just use driver packages.
Note that you don't need to add drivers to your image. The driver packages are a better method.
When are "Packages" leveraged? Is this just an easier way of grouping imported drivers (eg. importing the entire CAB files into SCCM and using Categoreis to tag/organize them)? Or are Packages required?
ReplyDeleteGerry - why do you create a CAB folder in the file structure above, it doesn't really seem to be used (and is rather used over in Driver Packages instead)? If I import the CAB drivers into the system as a whole, and move them to the \CAB folder we created above - are they of any use? I notice I can "Enable" them - what does this do? So seems I should not import CAB driver at all, except into a created/defined package. Thanks for clarification.
ReplyDeleteI noticed there are a couple of ways of doing this - I can create a package and import as you did here. But I see you can also import all drivers with Import Drivers, categorize them, then Edit them and add them to a package that way. When this is done, this package name shows up with a different icon right above the Driver Packages icon. Will this work as well? Unsure why this way creates an icon below the folder structure and above the Driver Package icon. ??
ReplyDeleteI'll answer all these questions together. The CAB folder contains the zipped files downloaded from the vendor website. Even after you import the drivers you will require the source files to remain in their original location. This will be required in case you have to change something. The process will fail if ConfigMgr cannot find the original source files.
DeleteI always import CAB file drivers and add them to a package straight away. See my answer to Jim above regarding auto-apply drivers Vs driver packages.
There are many ways of working with drivers in ConfigMgr. You need to find the way that works for you.
Gerry,
ReplyDeleteIf you add the NIC driver to the boot image do you usually have multiple boot images, one for each model?
If so, how does the PXE boot know which one to use?
Thanks for the instructions and this post.
Carlton
Gerry,
ReplyDeleteGreat job on this blog. You added the NIC to your boot image. If you have different models of a system do you create multiple boot images or is there a way to add more NIC drivers to the same boot image? If so, how does the boot image know which NIC driver to use?
Thanks,
Carlton
No, I don't use multiple boot images. You can add as many NIC drivers as you like to a boot image. Don't go crazy though. Only add the ones you really need. ConfigMgr detects which one to use.
DeleteThanks Gerry. In relation to OSD. I see an option for auto apply drivers in sccm 2012 r2. For this to work do I create driver packages for each model?
DeleteHave a look at part 11 of the guide Carlton. It explains how to implement this.
DeleteGerry, I have given my SCCM Computer account (SQL$) access to the share and still get the error message "Configuration Manager cannot import the specified driver folder. verify that the folder exists in the specified location and that both the SMS Provider computer and the computer running the Configuration Manager console have read permissions to the specified shared folder. I do have SQL on the same server as SCCM, is that the problem?
ReplyDelete.
Have you checked both Share and NTFS permissions?
DeleteHi Chris:
ReplyDeleteI am experiencing the same exact error but I'm using the HP CIK to import the driver package on a single site server.
Gerry,
ReplyDeleteI have created many driver packages before this one, but this one is giving me fits. I follow all the correct steps, but in the end I get an error that says: the SMS provider is reporting an error and when I click on the newly created driver package, there are no drivers there???? We are using SCCM 2012 and a single distribution point/server. Any ideas?
Could be a permissions problem. Has the ConfigMgr computer account permissions to write to the driver package folder?
DeleteGerry, please can you help me? I try capture my image but display error network adapter not found. I press F8 open ipconfig and any data display for me. So, I found the driver in site manufacturer and by drvload I put this driver manually and OK, driver for Windows 8 (although my image capture is Win7). So I inject this driver in my image boot but I don't have sucess, I'm using SCCM 2012 SP1 with WINPE 4.0.
ReplyDeletePlease any idea I'll appreciate.
I have this topci in technet: http://social.technet.microsoft.com/Forums/en-US/6550989b-ca37-4a4f-8dff-5e45d7ffcc52/image-capture-wizard-error-0x800704cf-no-valid-network-adapter-found?forum=configmanagergeneral
Thanks a bunch Gerry.
hi ,
ReplyDeletei am not able to connect the dots and understnd why certain things r needed!!!! i kno tht to capture a ref OS and to deploy that os image, computer must be booted to winpe via pxe..and pxe works using NIC..
does in both cases (capturing a ref pc and deploying the .wim to a bare metal) , pc boots up to winpe first?
sccm has 2 boot images by default. these r called d win pE images ?
now the process is like this -> we create capture media .iso to capture a OS image. why the .iso size is so huge ? wht it contains actually ? (we alrdy have deployed the boot images to DP)
then we import the .wim into sccm...create task seq to deploy this .wim and again in d process, we choose boot image { durin capture, we chose boot image , during deploy again we chose boot image!!!!}
before all this, why drivers were selected ? i am not able to understand !! i kno tht pxe works using NIC..wht r these drivers ? the captured pc has a perfect os wid drivers and sw installed.
thx
Sorry for the late response. I've been on vacation. Did you figure this out?
DeleteHi
ReplyDeletei would like to say this is a very good article
i followed the steps and still with the same problem . my old computers working fine with the pxe
the new ones (lenovo) the pxe goes up to the main screen of my sccm2012 (gray wallpaper) and it doesnt open the menu of chosing what image i need , then it reboots
please adivce
TK
That usually means a networking problem. Try again, but just before the computer reboots, press F8 to get a command prompt. Type ipconfig to see if you have an IP address. If not you have to import the NIC driver for that model and add to the boot image.
DeleteThanks for the great info. unfortunately I came across it a little late and have been adding all drivers to boot image and now my x64 boot image is over 1gb. I would like to delete the unnecessary ones now. What is needed only the NIC drivers and Mass storage drivers? Can I remove all other drivers or will that cause problems? ie chipset, audio video etc.
ReplyDeleteWhat size should my boot image be approximately
Yes. You should remove all the other drivers. It depends on how many models you have but the boot images should not be more than 300MB.
ReplyDeletei am not able to connect the dots and understnd why certain things r needed!!!! i kno tht to capture a ref OS and to deploy that os image, computer must be booted to winpe via pxe..and pxe works using NIC..
ReplyDeletedoes in both cases (capturing a ref pc and deploying the .wim to a bare metal) , pc boots up to winpe first?
sccm has 2 boot images by default. these r called d win pE images ?
now the process is like this -> we create capture media .iso to capture a OS image. why the .iso size is so huge ? wht it contains actually ? (we alrdy have deployed the boot images to DP)
then we import the .wim into sccm...create task seq to deploy this .wim and again in d process, we choose boot image { durin capture, we chose boot image , during deploy again we chose boot image!!!!}
before all this, why drivers were selected ? i am not able to understand !! i kno tht pxe works using NIC..wht r these drivers ? the captured pc has a perfect os wid drivers and sw installed
Hi Gerry
ReplyDeleteHave you ever come across anything that can be used to emulate an x86 guest VM instead using a physical machine to perform a bare metal deployment on? I know I can create a blank VM and let in boot via PXE but wanted something which would allow the driver import from SCCM to be simulated and it treating it like a physical PC?
I'm not aware on anything like that Sunny. We use VMs for testing OSD as you generally don't have to worry about drivers then. If you want to test with drivers you need physical devices.
DeleteHave you ever seen boot.wim crash with DRIVER_VIOLATION error ?
ReplyDeleteNever. That's a new one. It's no big deal though. You can re-create a boot image.
DeleteHi Gerry,
ReplyDeleteWe have a few HP models from the same line which unfortunately use the same hardware but slightly different revisions. When all the drivers have been imported, only the latest driver revision is stored, meaning older models have issues during build. I recently came across a blog which suggested creating a package (without application) which points to the server location of the drivers, and in the task sequence, creating a run command step which runs "DISM.exe /Image:%OSDisk% /Add-Driver /Driver:.\ /Recurse" and references the package containing the location to the drivers. This has proved 100% successful so far - note we are only deploying windows 7 and above so no need for unsigned support or the ability to specify mass storage drivers. Interested in what you think of this approach vs the norm of importing, and creating separate driver packages
There is no real best practice in this area. You do what works for you in your environment. Looks like this is working for you so I'd leave it alone.
DeleteGerry, I've been setting up sccm 2012 and I'm having issues with task sequence error 0x8007054b during the imaging process. The add to domain and drivers portion of the task sequence do not run successfully. I'm wondering if the drivers are setup correctly,so that it can even have a chance to ad it to the domain. I'm not sure if its the winpe drivers, or the unattend file is wrong, or something else. Any ideas?
ReplyDelete0x8007054b = The specified domain either does not exist or could not be contacted.
DeleteWhen you look in Device Manager I'm pretty sure that you won't see you network adapter. This is a problem with your NIC driver in Windows (nothing to do with WinPE). You need to find the correct driver, add it to a driver package and apply this driver package to the task sequence.
Hi Gerry, I would just want to thank you for this specific article. I struggled with the boot image and device NIC (SCCM 2012 and ADK8.1)for the EliteBook 840 G2. But by following this article my deployment and driver injection is now just working fine. Regards, Ferdi from South Africa
ReplyDeleteYou're welcome Ferdi. Glad to help.
DeleteHi Gerry, thanks for the post, this is great. I have a question... the server I'm about to install comes with a special lsi raid controller. Without the driver Windows will not see the storage. What is the procedure to be able to install the OS successfully? Should I add the drivers to the boot image? or it is enough if I add it in a task? Thank you!!
ReplyDeleteYes, you should add the storage controller drivers to the boot image in this case.
DeleteHi Gerry, I have a issue with apply driver package on the HP ProDesk 600 G2 MT. Windows 7 image gets installed via SCCM 2012 TS but just skipping the 'Apply Driver Package' part in TS. I do use a WMI query (SELECT Model FROM Win32_ComputerSystem WHERE Model LIKE 'HP ProDesk 600 G2 MT') I downloaded the HP Driver Pack for the model and created the driver package. All the other models are deploying with no issue. Any advice, please?
ReplyDeleteUse the command below to get the exact model name.
Deletewmic ComputerSystem Get Model
Perhaps you could try the query below or similar
SELECT Model FROM Win32_ComputerSystem WHERE Model LIKE '%ProDesk 600 G2%'
Hi Gerry, I forgot to come back to you. The manufacturer name changed from "Hewlett-Packard" to "HP". Can't believe I overlooked it! Change my queries and problem resolved. Thank you one again for a great blog. I've learned a lot!
DeleteNo worries. Glad to help.
DeleteNice guide!
ReplyDeleteJust a quick note... in 2012-R2, you cannot import drivers to sub-folders. They need to be added at the top-level 'Drivers' folder, then 'moved' down into a subfolder. Strange quirk of this version.
Thanks. Yes, that's right. I've already noted it in the blog.
DeleteHey Gerry, great guide, one of the best for sure. I ran into a problem that I believe may be useful to others.
ReplyDeleteI added NIC drivers to my boot images, updated the boot images on the distribution point, and when the machine boots in WinPE, it still does not get an IP address. No errors, just fails after Preparing Network Connections. F8 and ipconfig show no info. I have confirmed that I have the correct driver. So off to Google I go and I come up with this:
http://www.specopssoft.com/intel-i217-i218-and-i219-nic-drivers-in-windows-pe/
I followed this guide and it solved my problem.
Another very helpful resource:
http://www.adamfowlerit.com/2013/10/08/troubleshooting-nic-drivers-in-winpe-for-sccm-2012/
Cheers!
Thanks Steve. It's important to point out that the NIC driver you need should be based on the ADK version and not the OS you are deploying. Also you can use drvload to help you in identifying the correct driver.
DeleteHello Gerry,
ReplyDeleteYesterday I ran into the issue of importing some NIC drivers in and when I get to the add drivers to boot image I am left with no options to pick my X64 or X86 boot image. I have tried to delete the drivers and import them back in but still left with a blank box. I have followed step by step of adding the NIC's and even tried to do an edit of the boot image on the driver but still come up empty. Some forums of have stated that you can click on the boot image and add the drivers on the driver tab but I do not have that tab. I have search around and cannot find anything to help me out any suggestions? I am on SCCM 2012 R2 SP1, thank you.