Help with Win10 Driver injection
-
@george1421 I can’t imagine the drivers would install correctly with the persist & do not clean set to true. This is probably your issue @kyle-heath.
-
@MRCUR Thanks MRCUR and George1421…I also think that this is the issue. This is a copy of a windows 7 Unattend.xml that the guy before me used to push out his images to machines and had the drivers on a flash drive. He would install the drivers to the machines after the golden image is pushed out and then re upload them with appropriate names…etc (LenovoE550, LenovoE440). I’m getting away from that and just using 1 image for all 64 bit machines. I’ll test this out and see if it works. Thanks!!
-
I’m late, but if you’re using inf files and such to install drivers, it’s sufficient to place them in a folder under Windows\inf and windows will install them during first boot. (which means I’ll also recommend copying them over during postdownloadscript stage of imaging)
Just my two cents
-
@Quazz So you think pushing them into the Windows\inf folder would work better than pushing them into a C\windows\driver folder? I may try this also and see if it works. Looks like I can approach this in multiple ways. Thanks for the input!
-
@kyle.heath I have a folder with network drivers on all my images and that works fine. I just put all of them there from the universal driverpacks.
Cool thing is, you don’t need to specify windows to install those drivers, it does so by itself.
-
@MRCUR I tested this by changing the values of those to false and it still didn’t install all the drivers. It installed a couple, but I’m missing
I’m going to try dpinst.exe to see if that works.
-
@Quazz So right now I have a folder on my FOG server that pushes out a folder called Drivers onto my machines. If I push out a folder called INF into windows instead of Drivers that should push them into the correct area for Microsoft installation. It’s installing some of my drivers but not all. SMBus and some USB drivers don’t install.
-
@kyle.heath Its installing the same number of drivers as when you place them in c:\windows\drivers?
If that is the case you need to check the drivers to see if they are unpacked.
I do have to ask the question where did you get all of these drivers from? Were they on the Dell Deployment CAB for your hardware model or did you download them individually from the Dell site.?
Also note as a Moderator I’m going to fork this section of the thread since its a bit off topic of the original tutorial. I’ll clean it up after the issue has been resolved or come to an end.
-
@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.
-
@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.
-
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:
/images/drivers/20F10026GE/win10/x64Under 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?
-
@MotD What does your fog.postdownload and fog.drivers look like?
Any error messages?
-
@THEMCV I have taken the Files and Folder Structure from this Thread and dont change anything.
https://forums.fogproject.org/topic/8889/fog-post-install-script-for-win-driver-injection/2Where can i see a Log File or else?
The Messages on the Client System runs too fast to read it. -
@MotD Check out this thread and make sure you’ve got the updated ones. This is what I’m using.
-
@THEMCV Many Thanks to you, i’ll read it now and then i try it
-
@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 funcs.sh 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? -
@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?
-
-
-
@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') sysmanufact="${sysmanufact%"${sysmanufact##*[![:space:]]}"}" if [[ -z ${systemanufact} ]]; then #system manufacturer is blank so try to pick up name from baseboard # / motherboard value sysmanufact=$(dmidecode -s baseboard-manufacturer) sysmanufact="${sysmanufact%"${sysmanufact##*[![:space:]]}"}" fi case ${sysmanufact} in *[Dd][Ee][Ll][Ll]*) machine=$(dmidecode -s system-product-name) ;; *) # Do this for all other machines i.e. Intel and Lenovo machine=$(dmidecode -s baseboard-product-name) ;; esac
To get the proper value into the machine variable.