How to - System Centre Configuration Manager - Part 4c (OS Images - Drivers)
by, 13th April 2012 at 05:55 PM (23596 Views)
Welcome to Part 4c of my System Centre Configuration Manager (SCCM) series! Yes.... this one has been a while coming - so Im going to give you two for you money today! So - this time round we are going to finish off the building your first Windows 7 image. After anything specific Ive not covered, or that you think Ive missed, please comment or send me a PM. Alternatively, you can find me on Twitter @TheScarfedOne.
Drivers - aka the HELL!
One of the issues you'll probably face sooner or later with deploying OS's is not being able to access network or storage resources due to missing drivers within boot.wim - or once the OS is building and installing (well trying to) applications as part of the Task Sequences.
To deal with this - we need to give SCCM a pile of drivers, but before doing so create a share on your network and copy some into it.
Quick health warning here - PERMISSIONS! Make sure that the permissions for that share allow READ/Write access for your SCCM account (and preferably SYSTEM as well). In addition make sure that the SYSTEM account has NTFS permissions that give it full access.
A general rule of thumb here - go with a simple naming structure. So... I generally advise the following:
DATA DRIVE on SERVER
:: SCCM-IMAGES (for SCCM Build and Capture to drop its image into)
:: SCCM-SOURCES (for SCCM to read its information out of - contains subfolders of APPLICATIONS and DRIVERS)
:: SCCM-PACKAGES (for SCCM to write and maintain its own package structure - contains subfolders of DRIVERS and APPV [NB APPV uses its own package maintenance structure in SCCM. Normal packages don't, they use a SMSPKG*$ where * is the drive letter])
As with everything in SCCM, drivers must be added to packages and deployed to distribution points before computers can use them.
Adding Drivers - and best practice
What I prefer to do with drivers is maintain a single massive repository. Some people prefer to have separate Driver Sets for their machines. This is fine, but what you might find is that you get a "Driver already exists" on importing.
So, in the DRIVERS folder in SCCM-SOURCES - I create an X86 and X64 folder. Then , in there go with the common hardware types - GFX, AUDIO, CHIPSET, LAN, WIFI, etc. Some who are familiar with drivers from the RIS days (shudder) will remember a great project called DriverPacks. Well, its still running - and has pre-built driver sets by type, which you can then import into SCCM. One issue - due to the size, they are now distributed as torrents - which I doubt you can download in School. Once you have got them (a series of 7Zip files ), extract into your folders as above. Then you are good to go.
You can find out more about the DriverPacks project at www.driverpacks.net
So - the import process...
In SCCM ConfigMgr, find the Driver node under Operating System Deployment section. Right click and create folder. What we are going to do is create a "virtual" folder structure in the console to mirror the layout of our share. It will make life easier later. So - the first folder is x86, and on the same level x64. Then in each of those - LAN, CHIPSET etc...! Right click the appropriate folder (we are doing LAN drivers here) and choose import.
When the wizard appears paste in the path to your network share containing the drivers, which should be something like \\SERVER\SCCM-SOURCES\Drivers\x86\LAN (I'm using LAN here for a reason - which will become clear in a moment....)
SCCM will go away and look at all the .inf driver files in the location. After a while it will list the driver(s) it found, and you can then click on categories to place them into a category. Categories are useful to help deal with limiting what drivers are available to what machines (i.e. x86/x64 and others, where you may in future add specifics for some laptops for example).
Click on Catagories to get to the options screen. As this is our first one, its bank. Just enter a new one (something sensible like Windows 7 - x86 - LAN), and click Add, and then OK. You will see it appear in the "Assign categories for filtering..." field. Click Next, and then Next again on the Packages screen. We will be coming back to this one, so you don't need to click the "New packages" option - but you could do if you wanted to do it from here. It will trigger the same wizard we will be coming to soon.
Next you have the option to add these drivers to our boot.wim files, as we are adding Network drivers then you should select the X86 and X64bit SCCM boot.wim files listed, make sure to also place a checkmark in Update distribution points when finished.
You will be clicking Next twice, and then sitting back and waiting for a while. Seriously - this can take a while too, Ive thrown a set of 50 odd drivers at it once, it took about 45 mins. Bear in mind, with LAN drivers, it is also updating your boot.wim too. You only need to do this with LAN drivers. Some people do it with GFX as well, to make their boot screens look pretty, but thats up to you. Remember, the more drivers you put in - the bigger your initial wim - and the longer the first SCCM boot.
Next up, dealing with driver packages. Drivers have to be in packages to be assigned to machines. So far - all we have done it inject them into our boot file. You can think of this like adding a software app, without all of the setup files... it isn't going to work...!
Adding driver packages
As you will have got the idea of by now - most things in SCCM are where you'd expect them. We need the Driver Packages node in SCCM ConfigMgr and right-click, choose New Driver Package.
Remember earlier on we created that share SCCM-PACKAGES? Well, we need that now too. Have that open in one window - as annoyingly - you can't create a driver package in a folder that doesn't exist - and it will moan at you else. I went through in advance creating SCCM-PACKAGES\Drivers\x86\LAN; AUDIO; WIFI; GFX; CHIPSET... just to be ready.
In the wizard that appears fill in the details and point it to your share (its important to make sure that this share is separate from the drivers share - SCCM stores a load of extra information with the packaged drivers). Then, simply click ok to create the package, we now have an empty driver package.
Back in your SCCM tree, you then need to go to the Driver node again. Down to the LAN folder we made in x86 - and we should see all the LAN drivers we had imported earlier. If you can't see them - press F5. We need to select all of them (this is where when doing other Packages later - you could use the Create package and Add to package all as part of the import process; alternatively, pre make all of the packages then do the import and add at that point as the import wizard will show you the packages that exist). Once you have selected them all ("Ctrl - A"should do the trick) - in the Actions Menu on the right - choose Add or Remove Drivers from Package. You could right click, but you run the risk of loosing your selection!
A bit of clicking next, and thats that done. You can check it by going to the Package under the Packages node - again, you may need to F5 for a refresh.
Now that we have our drivers imported into our drivers package, we need to Create a distribution point, so lets right-click on Distribution points and choose new distribution points. We only want standard "Server" ones again here - so don't choose the PXE one.
So - all you have to do is repeat that process for all your drivers and SCCM should be able to deploy onto any hardware (x86 or x64 - assuming you do both sets) - with all drivers. Now we have done that - time to actually make the master image in SCCM by doing that Build and Capture - the title of this section of the series. For that, we learn about a new concept called Task Sequences.
That will be next... so stay tuned!!!
Total Trackbacks 0