Automatic hardware detection & driver installs in FOG
-
@giejo63 I’m running into the same issues. I have a sysprepped Win 7 image that has the C:\drivers location set to look for drivers. I have the drivers on the FOG server in /images/drivers and the scripts are executable. The postdownload file is set to run the script, and I have SetupComplete.cmd on the image set as described in Andrew’s wiki page.
Anyone have some ideas?
-
Feeling pretty discouraged at the moment
My postdownloadscript works perfectly unless I use variables, at which point it no longer works. You can see a few of the things I’ve attempted and commented out. Even using ${postdownloadpath} doesn’t seem to work - I can only call my postdownload script if I specify the absolute path. My cabs are in /images/drivers/Win7/. So for the Optiplex 9020M, the location is /images/drivers/Win7/Optiplex 9020M/*.CAB - I’ve also tried Optiplex9020M - still doesn’t work. I’m on Rev 3606, Debian 7
The only things in /images/postdownloadscripts are fog.postdownload and driverinstall.sh. Permissions on both are 777
Contents of fog.postdownload:
#!/bin/sh ## This file serves as a starting point to call your custom postimaging scripts. ## <SCRIPTNAME> should be changed to the script you're planning to use. ## Syntax of post download scripts are #. ${postdownpath}<SCRIPTNAME> #. ${postdownloadpath}driverinstall.sh . /images/postdownloadscripts/driverinstall.sh
Contents of driverinstall.sh:
#!/bin/sh #This script was adapted from Lee Rowlett's fog.drivers postdownload script (https://forums.fogproject.org/topic/4278/utilizing-postscripts-rename-joindomain-drivers-$ #This script assumes your image has been modified to look in C:\Windows\Drivers in addition to the default location for Windows drivers (http://technet.microsoft.com/$ #Make sure this script is called from your fog.postdownload file by adding ${postdownloadpath}/driverinstall.sh to the /images/postdownloadscripts/fog.postdownload fi$ mkdir /ntfs &>/dev/null; #Create new directory called ntfs and supress any system or error messages mount.ntfs-3g /dev/sda2 /ntfs; #Mount the NTFS Windows OS partition to the new ntfs directory machine=`dmidecode -s system-product-name`; #Get the model name of the computer being imaged #machine=$(dmidecode -s system-product-name) #machine=$(echo $machine | tr -d ' ') #Remove the trailing spaces from the model info #Get the OS version info and set it equal to the osn variable for later use #if [ $osid == "5" ]; then osn="Win7" #elif [ $osid == "6" ]; then #osn="Win8" #elif [ $osid == "7" ]; then #osn="Win8.1" #fi #osn="Win7" mkdir /ntfs/Windows/Drivers &>/dev/null; #Create the C:\Windows\Drivers directory and supress any system or error messages echo -e "Extracting Drivers..."; #Tell the user that FOG is extracting the drivers within C:\Windows\Drivers #cabextract -d /ntfs/Windows/Drivers "/images/drivers/$osn/Optiplex9020M/9020M-Win7-A04-JG7GH.CAB" &>/dev/null; cabextract -d /ntfs/Windows/Drivers "/images/drivers/$osn/$machine"/*.CAB &>/dev/null echo -e "DONE!"; #Tell the user that FOG has finished copying the drivers and finish the imaging process
-
@MRCUR Still no luck for me
image is correctly deployed but fog.postdownload doesn’t seem to run…
i don’t know why … -
Debugging i found 2 problems:
-
${postdownloadpath} variable is not recognized
-
when i put the full path /images/postdownloadscripts/driverinstall.sh, i have an error which says that /bin/bash^M: bad interpreter. -> i dont have any ^M at the end of the line.
Any ideas for the variable and bad interpreter ??
Thanks in advance -
-
Did you by chance transfer the file from a windows machine? If so you may need to convert line endings.
dos2unix /images/postdownloadscripts/driverinstall.sh
-
@cml i will try that. Maybe it comes from a windows machine.
Do you konw why i can’t use the ${postdownloadpath} variable ? (my fog server is a ubuntu 14.04) -
@giejo63 where are you check the variable? Is it on the server or the system downloading the image?
-
@Tom-Elliott it is the postdownloadscript location variable in fog.postdownload
-
I mean where are you checking the variable being set?
Are you checking directly on the fog server with
echo $postdownloadscript
or are you checking on the system receiving the image? -
@Tom-Elliott as it is in the fog.postdownload script, i think it is the system receiving the image