How do you add your drivers to make universal images?



  • I’ve googled for hours and I’m just not getting it. How do you guys add all the drivers to make an image hardware independent?


  • Senior Developer

    6 weeks? I threw together my golden image in 2 days… Yours was definitely more well documented and probably supported more computer models though as mine only had to work on about 5 different models ^^



  • For our needs, the 6 weeks I spent building, scripting, documenting and testing for a universal image methodology for Windows 7, 8.1, 32bit and 64bit was well worth it.


  • Moderator

    Well, if you have 23 different models and 9 different needs, it’s more reasonable.

    I don’t have that many, I might have 6 or 7 different models and they all get 1 recipe, and doing what you do in my environment wouldn’t make sense.


  • Senior Developer

    I agree with @sudburr on the approach, however testing all drivers is not always needed. For example when making a golden image I just dumped a ~3 GB driver pack onto the machine and it worked perfectly on all hardware I was using. No extra configuration was needed.



  • And then I’d have 23 images instead of 1.

    And then I’d have 207 images for 9 recipes instead of just 9.


  • Moderator

    @sudburr While that is amazing, it grosses me out too lol.

    I couldn’t imagine such complexity and effort going into just one image…

    When it takes a day to build an image for a particular model… and that image will work for that one model without fail.



  • Adding drivers using pnputil and forfiles will bloat your registry and risk killing your image irrevocably.

    I extract the drivers to the point I can see the .inf . If I can then manually install that driver without issue by using dpinst32 or dpinst64, I know I can proceed with dumping that driver into my repository.

    I then test that driver against other versions of the same or similar drivers. That means I have a sample of every hardware out there for testing on.

    That repository “xinf” is copied to c:\windows\inf .

    Windows 7 recursively searches c:\windows\inf for drivers when coming out of sysprep with no other configuration.

    This does not apply to those drivers that require supporting apps, like Intel USB3.0, and Infrared Receivers. For those I’ve crafted a script that applies those OEM and brand-specific drivers and apps during an Administrative auto-logon after sysprep completes.

    There are also situations where a driver is badly crafted, identifying as for Hardware A but is meant for Hardware B, then loads Hardware B’s driver onto Hardware A, poisoning the system.

    It is straight forward but there is a LOT of testing.

    Here’s a list of the driver folders in my xinf:

    AMD Graphics Radeon HD (2xxx,3xxx,4xxx)
    AMD Graphics Radeon HD (5xxx,6xxx,7xxx,8xxx,R5,R7,R9)
    Authentec Inc. (AES16(16)0,2501b,2550,266(015),2810)
    Broadcom Ethernet NetXtreme I Desktop-Mobile
    Broadcom Wireless 802.11abgn (BCM43xx)
    Dell P2212H
    Dell Wireless
    DisplayLink USB Display Adapter
    Intel Chipset Device Software
    Intel Ethernet Connections Software
    Intel Graphics (82945 Express)
    Intel Graphics (GMA 3150)
    Intel Graphics (GMA B43, G41, G43, G45, Q43, Q45 Express, 4 Series)
    Intel Graphics (GMA G31, G33, G35, Q33, Q35, Q963, Q965 Express)
    Intel Graphics 1st Gen Core (HD)
    Intel Graphics 2nd Gen Core (HD 2000,3000)
    Intel Graphics 3rd Gen Core (HD 2500,4000)
    Intel Graphics 4th Gen Core (HD 4(246)00,5(012)00)
    Intel Management Engine Interface (AMT)
    Intel Matrix Storage Manager (3,4,5 Series, 900 Series)
    Intel Rapid Start Technology
    Intel Rapid Storage Technology
    Intel Smart Connect Technology
    Intel USB 3.0 eXtensible Host Controller
    Intel Wireless Networking
    Lava Dual Serial 16550 PCI (Minitel)
    nVidia Graphics GeForce ((89)xxx,GTX(1234567)xx)
    O2Micro USB CCID Smartcard Reader (OZ776)
    Prolific Technology USB-to-Serial COM Port (PL-2303 HXD,EA,RA,SA,TA,TB)
    Qualcomm Atheros Ethernet (PCIE 1Gb)
    Qualcomm Atheros Wireless Adapter
    Realtek Card Reader (RTS51xx,52xx,84xx)
    Realtek Ethernet (PCIE 1Gb)
    Realtek HD Audio
    Realtek WiFi 802.11bgn Single-Chip (RTL8188,8191,8192)
    Renesas Electronics USB 3.0 Host Controller (UPD720200)
    Ricoh PCIe Media Controller R5(c8xx,u23x,u24x)
    SoundMAX HD Audio (AD1882,1986,1988)
    SoundMAX HD Audio (AD1984)2015-03-02 04:11 PM <DIR>
    ST Microelectronics Accelerometer (DE351DL)
    Startech PEX2S5521P
    Texas Instruments USB 3.0 xHCI Host Controller (TUSB73x0)
    TOSHIBA HDD Protection Utility
    Validity Sensors
    Vimicro Video Camera

    Within these folders are the many extracted x86 AND x64 drivers that can be automatically distinguished and installed correctly by Windows 7.

    For instance, the Dell Wireless folder has these drivers:

    drv&util.Win7(32+64) - 6.20.55.51
    drv.Win7(32) - 9.2.0.512
    drv.Win7(64) - 9.2.0.512

    … and the Intel Management Engine Interface (AMT) folder has these extracted drivers:

    drv.MEI.Win(32+64) - 9.5.15.1730
    drv.MEI.Win7(32+64) - 3.2.20.1046
    drv.MEI.Win7(32+64) - 5.2.0.1008
    drv.MEI.Win7(32+64) - 6.0.0.1179
    drv.SOL.Win(32+64) - 9.5.15.1730
    drv.SOL.Win7(32+64) - 5.4.1.1051
    drv.SOL.Win7(32+64) - 5.5.1.1012
    drv.SOL.Win7(32+64) - 8.1.0.1252

    … and the Intel Rapid Storage Technology folder has:

    11.2.0.1006 (4 Series - unsigned)
    12.9.0.1001 (8 Series, C220 Series)

    My particular Universal Image recipe is compatible with the following Systems:

    • Dell Latitude 2100 with BIOS A06
    • Dell Latitude 2110 with BIOS A00
    • Dell Latitude 2120 with BIOS A02
    • Dell OptiPlex 755 with BIOS A22
    • Dell OptiPlex 760 with BIOS A16
    • Dell OptiPlex 790 with BIOS A18
    • Dell OptiPlex 960 with BIOS A18
    • Dell OptiPlex 7020 with BIOS A01
    • Dell XPS 2720 with BIOS A07
    • Dell XPS One 2710 with BIOS A12
    • Lenovo ThinkCentre M58 with BIOS 5ckt77aus
    • Lenovo ThinkCentre M72z with BIOS f6kt35a
    • Lenovo ThinkCentre M73z with BIOS fgkt28a
    • Toshiba Portege R30-A with BIOS 310
    • Toshiba Portege R40t-A
    • Toshiba Portege R830 with BIOS 410
    • Toshiba Portege R930 with BIOS 680
    • Toshiba Portege Z30-A with BIOS 330
    • Toshiba Portege Z40t-A
    • Toshiba Portege Z930 with BIOS 680
    • Toshiba Tecra M10
    • Toshiba Tecra M11 with BIOS 350
    • Toshiba Tecra R700 with BIOS 220

    I recommend starting simply with just the chipset, controller, ethernet and wireless drivers, which shouldn’t require any post-sysprep scripting to add OEM programs.



  • @sudburr Windows 7



  • For what operating system?



  • I remember hearing something about a DISM.exe? What’s that?


  • Moderator

    @nengelhardt

    You can do something like this https://anothermike2.wordpress.com/2011/05/07/adding-drivers-using-pnputil-and-forfiles/

    But it will make your images HUGE


  • Moderator

    @cml has some ideas on how to add most drivers, but he says it’ll increase your image size by 40-50 GB.


  • Moderator

    @nengelhardt You can’t do that…

    You must add the drivers you need for your environment, and then update as you get other models of computers in your environment.



  • @Tom-Elliott
    What if I don’t know what drivers I want and want to include all the drivers I’ll ever need? Is that possible?


  • Senior Developer


Log in to reply
 

452
Online

38927
Users

10692
Topics

101463
Posts

Looks like your connection to FOG Project was lost, please wait while we try to reconnect.