Help with Win10 Driver injection

  • Moderator

    [moderator note] This thread was moved (poorly by me) from a tutorial to technical help since this post went beyond the scope of the tutorial. Here is the original post by @kyle-heath
    Thanks for all of this…great help while I’m making a windows 10 image. I do have 1 question. When you say this script will not work and you need to add this to the unattend file. Do I need to add




    I’ve added the one 2nd picture to my unattend and I have a script written that copies all of the drivers to a drivers folder on my target machine, but they are not installing during sysprep. Below is the script. If anyone knows how to get the drivers to install after they are moved onto the target machine, I would greatly appreciate it. Thanks!


    [moderate note] Here is my first response to kyle’s question. If I would have forked the topic correctly his post would have been at the top of this thread.

    @kyle.heath First observation is that you are copying the files to c:\windows\drivers. Are the driver files there?

    In the unattend file you are referencing c:\windows\drv for your driver files.

    Which is it? Where is the true location of your driver files?

    With Win10 the OOBE setup does not look at the registry key for the driver path as it did with Win7 (which actually was a hold over from Win XP and not the recommended way of loading drivers. But it was still supported, so we go to what we know).

  • @george1421 all drivers was installed correct, so my unattended File works. And the FOG with the great Help from you. Many Thanks.

    Next Week i test it with the HP Machines i have, some HP ProDesk 600 G1 and G2, HP ProBooks G2 and G3. The Information from DMI i got todays afternun.

  • Moderator

    @george1421 After a lengthy chat session then switching to team viewer we found the issue.

    Basically the fog.driver script was throwing this error:

        /images/postdownloadscripts/fog.drivers: line 2: $’\r’: command not found
        /images/postdownloadscripts/fog.drivers: line 3: $’\r’: command not found
        /images/postdownloadscripts/fog.drivers: line 4: syntax error near unexpected token $'in\r'' 'images/postdownloadscripts/fog.drivers: line 4:case $manu in

    The key to me was seeing the \r that was being complained about.

    In a nutshell the issue was how the file was copied from the web, pasted into notepad++ on windows and then copied to the FOG server using winscp. Somewhere along the way carriage returns where added to the end of each line in the script. I installed dos2unix and ran that utility on the fog.drivers script. That cleaned up all of the errors. We again single stepped through the install process. I confirmed that the source path existed as well as the files on the target computer after the fog.drivers script completed.

    When I left MotD he started to reboot the target computer to start the Win10 OOBE process.

    Summary: The issue was related to the Windows->Unix file migration only. The script worked as outline in the thread.

  • Moderator

    @MotD OK good to know. Lets switch over to chat it will be faster to get an answer.

  • @george1421 Ok, i made it this way you say.
    The result is: 20F10026GE

    The same result from the Way with dmidecode212 under Windows:
    dmidecode212 -s baseboard-product-name
    result: 20F10026GE

  • Moderator

    @MotD I’m going to fork this discussion into a new thread since your issue is new and I don’t want to fill up this thread with a new issue.

    We really need you to setup a debug deploy to this lenovo. The numbers you have look correct for what I remember of the Lenovo systems. So you may be spot on.

    So schedule a image deploy to this computer but before you press OK, select the Debug check box. Then pxe boot the target computer. After a few enter key presses you should be dropped to the FOS engine command prompt. From there I want you to key in this command.
    dmidecode -s baseboard-product-name

  • Moderator

    @MotD There is no log file for these scripts. If you took things just as I have defined, that is for Dell hardware. That should work as I have them listed. For Lenovo you will have to make some changes to the scripts.

  • @george1421 Ok, thanks i dont know that.
    Sorry i am new on FOG Project and Linux.
    I take all Scripts from your Post, and do not make any changes but the Drivers dont copied to the Client.

    Can i see a Log File about the Image Deploy and the result of the running from the fog.postdownload and fog.drivers Scripts?

    i run a Windows Version of dmidecode called dmidecode212 under the Windows Maschine and get the Result: 20F10026GE from the Lenovo ThinkPad L560. and i create the Folder Structure /images/drivers/20F10026GE/win10/x64

    Under x64 i put all 64Bit Drivers from a SCCM Package for the ThinkPad L560

  • Moderator

    @MotD In /images/postdownloadscripts you should have the master FOG hook script called fog.postdownload that should be configured to call your fog.drivers bash shell script. That script is what should move your files.

    Also FWIW the Lenovo’s hide their system name in a different place than the Dells in SMBIOS.

    You may need to make a elaborate structure to pull the machine name from the Lenovo systems and the Dells if you random deploy to each.

    Something like:

    sysmanufact=$(dmidecode -s system-manufacturer | tr -cd '\40\60-\176')
    if [[ -z ${systemanufact} ]]; then
        #system manufacturer is blank so try to pick up name from baseboard
        # / motherboard value
        sysmanufact=$(dmidecode -s baseboard-manufacturer)
    case ${sysmanufact} in
            machine=$(dmidecode -s system-product-name)
           # Do this for all other machines i.e. Intel and Lenovo
            machine=$(dmidecode -s baseboard-product-name)

    To get the proper value into the machine variable.

  • Moderator

    @MotD You have to remember the post download scripts run from the perspective of the FOS engine that runs on the target compuer, not the FOG server. The paths are a bit different. only exists on the FOS virtual hard drive.

  • @THEMCV Right, under /images/postdownloadscripts i have the fog.postdownload, the fog.log and the fog.drivers all File rights set to 755

    But if the Script call the and this file does not exist?

  • @MotD You shouldn’t run it, it should go in /images/postdownloadscripts. The error I’m not sure about.

    in /images/postdownloadscripts do you have fog.postdownload and fog.drivers in there from the thread?

  • @THEMCV Now i have another Question, i try to run the fog.postdownload script in Terminal.
    And get a Error because i there is no Folder called “/usr/share/fog” with the called Script. The Folder is completly missing.

    I have FOG 1.3.3 installed on a Ubuntu 14.04 LTS.
    Where i get the needed Files?

  • @THEMCV Many Thanks to you, i’ll read it now and then i try it :-)

  • @MotD Check out this thread and make sure you’ve got the updated ones. This is what I’m using.

  • @THEMCV I have taken the Files and Folder Structure from this Thread and dont change anything.

    Where can i see a Log File or else?
    The Messages on the Client System runs too fast to read it.

  • @MotD What does your fog.postdownload and fog.drivers look like?

    Any error messages?

  • I Need some Help with this Scipts.
    I have HP and Lenovo Machines, and i want to test the Driver Injection with a Lenovo ThinkPad L560.

    I dont know if i had all made all required settings, my Drivers dont copied to the Client.

    I have placed the fog.drivers, fog.log and fog.postdownload into /images/postdownloadscripts and set the Files to 755.
    And i have create da drivers Folder into /images with Rights set to 755.

    Under drivers there is a Folder named to the result from “dmidecode -s system-product-name” and the other needet Folders under it.
    Looks like this:

    Under x64 i put all 64Bit Drivers from a SCCM Package for the ThinkPad L560.

    But i think the FOG dont start the Scripts unter /images/postdownloadscripts.
    The Folder C:\Windows\DRV was not created and no Drivers copied.

    Do i have any settings to make so FOG run the Scrips under /images/postdownloadscripts?

    Please can someone help me?

  • @kyle.heath In Windows 7, some drivers for newer devices must be installed after drivers for older devices are installed with a reboot in between and vice versa.

    And as @Quazz said, you can quite simply dump your entire library of drivers into ‘c:\windows\inf’, but you will still be limited by Windows 7’s ability, or inability to prioritize driver installation order.

  • @george1421 It’s not installing the same number because when i point the missing drivers to the C:\Windows\Drivers folder it installs them. I got them from the Dell website and they were on the Dell Deployment CAB. It installs certain ones like the networks ones, but SMBUS and USB ones it does not.