Automatic hardware detection & driver installs in FOG
-
It depends on the driver. Usually, you just need the folder from the driver that has the .inf for the device. (Copy the entire folder contents, not just the .inf file) You can test that driver by going to a machine that doesn’t have the driver installed, and doing an “update driver” in task manager, and pointing to the folder. If it installs, you should be good.
For some devices, the driver is an .exe that you can launch with a silent install command. In that case, the driver folder should have the exe, any associated files, and a drvinstall.bat file as per [url]http://www.fogproject.org/wiki/index.php/Auto_driver_Install#Adding_Silent_Install_drivers[/url]
-
Hey Andrew, I really like this work but I like to do it more simple.
As we are only using DELL machines at our school I can get cab files containing all drivers per model. I extract these files under /images/drivers/<modelname> and copy the appropriate directory to the client. So I’ve changed your driverinstall.sh a bit to copy these extracted drivers and the folder common to c:\Drivers. I’ ve also changed the registry key in the client image to resemble this:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DevicePath: REG_EXPAND_SZ:%SystemRoot%\Inf;c:\DriversSo windows checks c:\drivers for drivers before going to the internet when installing hardware after the client has been imaged.
This should make it all a bit easier and you don’t need the machinedrivers.sh BUT and here is the question: my script does not seem to run.
I’m running fog on ubuntu and placed my scripts in /images/postdownloadscripts on the server. And I’ve made them executable. I don’t know how these scripts are called by FOG, I guess it checks for fog.postdownload in /images/postdownloadscripts and executes that file? In my case it only contains:
#!/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>
${postdownpath}/driverinstall.sh
So I’d like to do some debugging, can I append the output to a file changing this script like this:
${postdownpath}/driverinstall.sh >> /images/drivers/postdownloadscripts.log because I tried this but with no result.Are there perhaps problems with these scripts privileges?
Maybe you can give me some tips on how to better troubleshoot?anyway I like what you’ve done and I will keep searching myself for a solution
Txs!
-
init contains cabextract so you don’t even need to extract the cabs if you want to go down the model route
-
#!/bin/sh
ceol=
tput el
;
machine=dmidecode -s system-product-name
;
machine=“${machine%”${machine##[![:space:]]}“}” #Removes Trailing Space
if [ $osid == “5” ]; then
osn=“Win7”
elif [ $osid == “6” ]; then
osn=“Win8”
elif [ $osid == “7” ]; then
osn=“Win8.1”
fi
dots “Downloading Drivers”;
mkdir /ntfs/Windows/DRV &>/dev/null;
echo -n “In Progress”;
cabextract -d /ntfs/Windows/DRV “/fog/Drivers/$osn/${machine}”/.CAB &>/dev/null;
echo -e “\b\b\b\b\b\b\b\b\b\b\b${ceol}Done”;
regfile=“/ntfs/Windows/System32/config/SOFTWARE”
key=“\Microsoft\Windows\CurrentVersion\DevicePath”
devpath=“%SystemRoot%\inf;%SystemRoot%\DRV”
reged -e “$regfile” &>/dev/null <<EOFREG
ed $key
$devpath
q
y
EOFREGcode above will do what you want - change the paths to match your environment or wherever you want to store the cabs but using code example above. you’d put a copy of the cab into /fog/Drivers/Win7/OptiPlex 7010 for example then it will extract the cab and drivers will be installed during sysprep… shouldn’t need any postscripts
-
Great, thanks for the quick reply I will try this!
-
Hello
Thanks for this great work
Where can we get the 2 scripts ? (machinedrivers.sh and driverinstall.sh) the link in: http://www.fogproject.org/wiki/index.php/Auto_driver_Install is brokenCan you repost it ?
Thanks in advance ! -
@giejo63
Link redirect in WIKI http://tinyurl.com/qe58fo2driverinstall.sh -> http://tinyurl.com/qxuxsnj
machinedrivers.sh -> http://tinyurl.com/oqtymea -
@Tom-Elliott said:
@giejo63
Link redirect in WIKI http://tinyurl.com/qe58fo2driverinstall.sh -> http://tinyurl.com/qxuxsnj
machinedrivers.sh -> http://tinyurl.com/oqtymeaSorry but the links doesnt work ?
i can’t access to them -
It works for me. My guess, somebody is filtering the link at your site.
-
@Tom-Elliott said:
It works for me. My guess, somebody is filtering the link at your site.
no i’m not filtered…
I’ve tried from work, from home, from my phone
or maybe the site is unavailable for France … -
That could be a possibility.
Are you able to access:
https://rightclick.fsdnet.ca/display/ -
@Tom-Elliott said:
That could be a possibility.
Are you able to access:
https://rightclick.fsdnet.ca/display/no…
neither from work or from smartphone.
Thanks for your help ! -
@giejo63 give me a few minutes and I’ll host the files for you.
-
@Tom-Elliott said:
@giejo63 give me a few minutes and I’ll host the files for you.
Thanks in advance !!
-
http://tinyurl.com/q4pta4s machinedrivers
http://tinyurl.com/oy5pdm4 driverinstall
-
@Tom-Elliott said:
http://tinyurl.com/q4pta4s machinedrivers
http://tinyurl.com/oy5pdm4 driverinstall
It works
Thanks a lot ! -
Hi,
My postdownloadscript driverinstall.sh is executable (chmod a+x) i’ve modified fog.postdownload but after image deployment (successfully) it doesn’t seem to run fog.postdownlad and driverinstall.sh .
So nothing is put inside c:\Drivers (i ve put some drivers)Any ideas ?
-
@Lee-Rowlett said:
#!/bin/sh
ceol=
tput el
;
machine=dmidecode -s system-product-name
;
machine=“${machine%”${machine##[![:space:]]}“}” #Removes Trailing Space
if [ $osid == “5” ]; then
osn=“Win7”
elif [ $osid == “6” ]; then
osn=“Win8”
elif [ $osid == “7” ]; then
osn=“Win8.1”
fi
dots “Downloading Drivers”;
mkdir /ntfs/Windows/DRV &>/dev/null;
echo -n “In Progress”;
cabextract -d /ntfs/Windows/DRV “/fog/Drivers/$osn/${machine}”/.CAB &>/dev/null;
echo -e “\b\b\b\b\b\b\b\b\b\b\b${ceol}Done”;
regfile=“/ntfs/Windows/System32/config/SOFTWARE”
key=“\Microsoft\Windows\CurrentVersion\DevicePath”
devpath=“%SystemRoot%\inf;%SystemRoot%\DRV”
reged -e “$regfile” &>/dev/null <<EOFREG
ed $key
$devpath
q
y
EOFREGcode above will do what you want - change the paths to match your environment or wherever you want to store the cabs but using code example above. you’d put a copy of the cab into /fog/Drivers/Win7/OptiPlex 7010 for example then it will extract the cab and drivers will be installed during sysprep… shouldn’t need any postscripts
@Lee-Rowlett - Where is it this script is supposed to be placed on the server and its name?
-
@ArchFan
Under: /images/postdownloadscripts/
Name: driverinstall.shJust make sure you call the script from fog.postdownload
${postdownloadpath}/driverinstall.sh
-
@cml said:
@ArchFan
Under: /images/postdownloadscripts/
Name: driverinstall.shJust make sure you call the script from fog.postdownload
${postdownloadpath}/driverinstall.sh
Shouldn’t entering
echo ${postdownloadpath}/driverinstall.sh
on the server output /images/postdownloadscripts/driverinstall.sh, or no? I was having some issues at first and ended up putting the absolute path to rule that out as an issue