Friday, 15 February 2013

ConfigMgr 2012 / SCCM 2012 SP1 Step by Step Guide Part 9: Operating System Deployment - Drivers and Driver Packages

Back to main menu

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



71 comments:

  1. Hi Gerry. Thank you so much for this guide. I'm following all of the chapters on OSD. I really appreciate it.

    A 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!

    ReplyDelete
  2. Be careful. There are two different configurations here.

    1. 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

    ReplyDelete
    Replies
    1. Hey Gerry,

      regarding 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

      Delete
  3. Dear Gerry . Again Thanks for this Practice
    Please Advise after i made SCCM folder Structures then right click on optiplex folder to import drivers but it's gray out

    ReplyDelete
  4. you cannot import directly to a sub-folder ... Just now i read it
    Sorry

    ReplyDelete
  5. Hi Gerry,

    First 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

    ReplyDelete
    Replies
    1. Hi John,

      Give your SCCM Computer account (SCCMServer$) access to the share also.

      Delete
    2. Hi Gerry,

      First 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

      Delete
    3. 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.

      Delete
    4. if you cannot import a CAB file, extract the contents then point to the extracted files

      Delete
  6. Hi Gerry,

    First 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

    ReplyDelete
  7. You're very welcome.

    1. 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.

    ReplyDelete
  8. Hi Gerry,

    I 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

    ReplyDelete
    Replies
    1. You need to grant permissions to your Primary Site server computer account.

      Delete
    2. Thanks 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

      Delete
  9. Great 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!

    ReplyDelete
  10. Sorry - 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?

    ReplyDelete
    Replies
    1. NIC 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.

      Generally 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.

      Delete
  11. 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.

    ReplyDelete
    Replies
    1. I 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).

      In 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

      Delete
    2. Hi Gerry,

      Sorry 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

      Delete
    3. 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.

      You 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

      Delete
    4. thanks Gerry, I will check it out...

      Delete
  12. Hi 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?
    Thanks

    ReplyDelete
  13. 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.

    ReplyDelete
  14. Gerry - 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).

    Some 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

    ReplyDelete
    Replies
    1. Hi Jim,

      You'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.

      Delete
  15. 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?

    ReplyDelete
  16. Gerry - 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.

    ReplyDelete
  17. I 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. ??

    ReplyDelete
    Replies
    1. I'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.

      I 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.

      Delete
  18. Gerry,
    If 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

    ReplyDelete
  19. Gerry,
    Great 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

    ReplyDelete
    Replies
    1. 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.

      Delete
    2. Thanks 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?

      Delete
    3. Have a look at part 11 of the guide Carlton. It explains how to implement this.

      Delete
  20. Gerry, 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
    Replies
    1. Have you checked both Share and NTFS permissions?

      Delete
  21. Hi Chris:

    I am experiencing the same exact error but I'm using the HP CIK to import the driver package on a single site server.

    ReplyDelete
  22. Gerry,

    I 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?

    ReplyDelete
    Replies
    1. Could be a permissions problem. Has the ConfigMgr computer account permissions to write to the driver package folder?

      Delete
  23. Gerry, 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.

    Please 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.

    ReplyDelete
  24. hi ,

    i 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

    ReplyDelete
    Replies
    1. Sorry for the late response. I've been on vacation. Did you figure this out?

      Delete
  25. Hi
    i 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

    ReplyDelete
    Replies
    1. 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.

      Delete
  26. Thanks 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.

    What size should my boot image be approximately

    ReplyDelete
  27. 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.

    ReplyDelete
  28. i 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

    ReplyDelete
  29. Hi Gerry

    Have 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?

    ReplyDelete
    Replies
    1. 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.

      Delete
  30. Have you ever seen boot.wim crash with DRIVER_VIOLATION error ?

    ReplyDelete
    Replies
    1. Never. That's a new one. It's no big deal though. You can re-create a boot image.

      Delete
  31. Hi Gerry,
    We 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

    ReplyDelete
    Replies
    1. 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.

      Delete
  32. Gerry, 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?

    ReplyDelete
    Replies
    1. 0x8007054b = The specified domain either does not exist or could not be contacted.
      When 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.

      Delete
  33. 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

    ReplyDelete
    Replies
    1. You're welcome Ferdi. Glad to help.

      Delete
  34. Hi 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!!

    ReplyDelete
    Replies
    1. Yes, you should add the storage controller drivers to the boot image in this case.

      Delete
  35. Hi 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?

    ReplyDelete
    Replies
    1. Use the command below to get the exact model name.
      wmic ComputerSystem Get Model

      Perhaps you could try the query below or similar
      SELECT Model FROM Win32_ComputerSystem WHERE Model LIKE '%ProDesk 600 G2%'

      Delete
    2. 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!

      Delete
  36. Nice guide!

    Just 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.

    ReplyDelete
    Replies
    1. Thanks. Yes, that's right. I've already noted it in the blog.

      Delete
  37. Hey Gerry, great guide, one of the best for sure. I ran into a problem that I believe may be useful to others.

    I 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!

    ReplyDelete
    Replies
    1. 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.

      Delete
  38. Hello Gerry,

    Yesterday 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.

    ReplyDelete