Jump to content

My pain Story about integrating Drivers


x23piracy

Recommended Posts

Hi,

 

iam very happy because everything is working like excepted now, so my final take was the integration of drivers.

I've downloaded every driver pack offered by driverpacks.net and integrated them.

 

With my first attempt in a virtual machine i got a bluescreen after first reboot (while installing)

iam not sure if it was 0x0000007a or 0x0000007b but both standing for inaccessible boot device.

 

Well ok i thougth maybe a bug related to virtual machine drivers, lets test on a physical system.

 

So i tried it on a common hp workstation and same bluescreen...

 

Has anyone an idea how to find out which driver may is broken or accidentilly installed wrong?

 

It seems to be better to just add drivers i really need and not adding a collection?

 

 

What do you think about and how do you manage your driver integrations?

 

 

Greetz X23

Link to comment
Share on other sites

I've downloaded every driver pack offered by driverpacks.net and integrated them

 

I think that was the problem.

You could read on the driverpacks website about AMD filter driver

 

WARNING! This 3rd Party DriverPack will cause BSOD
if integrated into systems with Intel Graphics hardware.

It is meant for AMD/ATI systems ONLY.

Use at your own risk.

 

 

You don't need to integrate all driverpacks, only the most usefull ones: Chipset, Wifi, LAN, Mass Storage.

 

 

I suggest you to not integrate them but running the DP_Install_Tool.cmd at first boot, see here:

http://forum.driverpacks.net/viewtopic.php?id=5336

 

This way you can add all driverpacks without blue screen.

Link to comment
Share on other sites

Hi,

 

thank you for the quick answer :)

 

I think that was the problem.

You could read on the driverpacks website about AMD filter driver

 

That means if i want that AMD filter driver i better make two isos, one for everything except the filter drivers and one with all just for amd?

BTW. for what are the amd filter drivers used?

 

You don't need to integrate all driverpacks, only the most usefull ones: Chipset, Wifi, LAN, Mass Storage.

 

Ok i understand but it would be nice to have the maximum possible...

(if the problem haven't arrived, my next step would be printer drivers) better not ;)

 

I suggest you to not integrate them but running the DP_Install_Tool.cmd at first boot, see here:

http://forum.driverpacks.net/viewtopic.php?id=5336

 

Means having them on the iso but not integrated, and maybe giving an option in installer (as last position) to run dp_install_tool.cmd

or having them all on a network share right?

 

If iam right that tool searches for needed drivers and installs them?

 

 

Thanks for your help

 

 

 

Greetz X23

Link to comment
Share on other sites

I suggest you to not integrate them but running the DP_Install_Tool.cmd at first boot, see here:

http://forum.driverpacks.net/viewtopic.php?id=5336

 

This way you can add all driverpacks without blue screen.

 

I would really appreciate a detailed explanation of how to best incorporate this into the Win Toolkit build process.  If anything needs to be done by Lego to make it's inclusion more seamless that would be even better.

 

Cheers and Regards

Link to comment
Share on other sites

My SAD2 script (DP_Install_Tool.cmd) is free & open source and Legolash2o is free to use it as he sees fit if he wants to. :)

DP_Install_Tool.cmd has a silent switch (/s) so it can be scheduled to run via setupcomplete.cmd.

 

IF EXIST "%CDROM%\SAD2\DP_Install_Tool.cmd" Start "" /max /separate %comspec% /c %CDROM%\SAD2\DP_Install_Tool.cmd /s 

 

One way is to pre-scan the drivers "class" to match an array (HDC SCSIAdapter NET) and only integrate those drivers that match into the boot.wim since they're the only boot-critical classes of driver anyway.  This would speed up boot.wim processing a lot and keep this from happening.

Edited by Mr_Smartepants
Link to comment
Share on other sites

Hi,

 

...so it can be scheduled to run via setupcomplete.cmd.

 

IF EXIST "%CDROM%\SAD2\DP_Install_Tool.cmd" Start "" /max /separate %comspec% /c %CDROM%\SAD2\DP_Install_Tool.cmd /s 

 

what or where is that setupcomplete.cmd? is it a windows 7 thing or something related to wintoolkit?

Can't i also make a bat file that triggers dp_install_tool as last thing under sfx in wintoolkit?

 

 

Greetz X23

Link to comment
Share on other sites

You can make further customizations after Windows Setup completes by adding commands to the %WINDIR%\Setup\Scripts\SetupComplete.cmd file. This file enables you to install additional applications, run custom Windows scripts (cscript/wscript), or make other modifications to the system before a user logs on.
 
Note: Commands in the Setupcomplete.cmd file are executed with local system privilege.

After Windows is installed, but before the logon screen appears, Windows Setup searches for the SetupComplete.cmd file in the %WINDIR%\Setup\Scripts\ directory.
 
If a SetupComplete.cmd file is found, the file is executed. Otherwise, installation continues normally. Windows Setup logs the action in the Setupact.log file.
 
Here's the post on how to use SAD2: http://forum.driverpacks.net/viewtopic.php?id=5336

 

You double-click it and it works.
Otherwise you can use the "setupcomplete.cmd" method
Create the following folder structure to your Win7 disc:
%Win7-Disc%\sources\$oem$\$1\D\SAD2 (entire SAD2 folder with all DriverPacks goes here)
%Win7-Disc%\sources\$oem$\$$\Setup\scripts\setupcomplete.cmd
Add the following code to the setupcomplete.cmd file.

Link to comment
Share on other sites

You can make further customizations after Windows Setup completes by adding commands to the %WINDIR%\Setup\Scripts\SetupComplete.cmd file. This file enables you to install additional applications, run custom Windows scripts (cscript/wscript), or make other modifications to the system before a user logs on.

 

As sidenote, it also looks into: DVD\sources\$OEM$\$$\Setup\Scripts , as it resembles %WINDIR%\Setup\Scripts\ in installation media.

So its much better to use that instead, as If you want to change something, you dont have to Mount and recompile image for that

 

DVD\sources\$OEM$

     $$ <<- C:\Windows

            $$\Web\Wallpaper <<- Wallpapers here

            $$\Setup\Scripts <<- setupcomplete.cmd, OOBE.CMD, OEM.reg, SLP.cmd

            $$\System32

                $$\System32\OEM <<- OEM *.xrm-ms, OEM logos. you can copy these folders from Windows\System32\OEM

                $$\SYSWOW64\OEM <<- replica of system32\oem for 64 bit systems OEM *.xrm-ms, OEM logos. you can copy these folders from Windows\System32\OEM

                $$\System32\oobe

     $1 <<- Drive Root

                $1\Drivers <<- where some OEM place driver files

                $1\Install <<- where I place most things and call from there. EX: %SystemRoot%\Install\Firstlog.cmd

                $1\ProgramData\ <<- ProgramData folder

[code][/spoiler]

.

Edited by Etz
Link to comment
Share on other sites

One way is to pre-scan the drivers "class" to match an array (HDC SCSIAdapter NET) and only integrate those drivers that match into the boot.wim since they're the only boot-critical classes of driver anyway.  This would speed up boot.wim processing a lot and keep this from happening.

 

I'm not sure what this means.  Can you give an example where and how to do this?

 

And if you have a set of already installed drivers on your running system, can you give a recommendation of a tool that can save these drivers in an appropriate format?  And can they then be added either to the boot wim or somewhere so that SAD2 can find them?  How, and can you give an example?

 

It would be great if Lego could incorporate the use of SAD2 into Win Toolkit.

 

Cheers and Regards

Link to comment
Share on other sites

IMHO I also feel that adding drivers still seems to be a rather complicated and often problematic part of the overall integration process. I do manage to make images that use DriverPacks in WinToolKit but it's anything but an "elegant" solution and I would welcome a more streamlined and manageable method. I can only imagine that a collaborative brainstorming with Jeff &, Erik of DriverPacks and Liam would produce an incredible solution that could be considered the standard for future integration's. In addition I think its important to note that the actual integration process is not the only important aspect of drivers, the maintenance and creation of them is also a key part and the team at DriverPacks is quite busy with real life as noted here http://forum.driverpacks.net/viewtopic.php?id=6327

 

If integrating drivers is important to us all then maybe we could all put our heads together on this.

Link to comment
Share on other sites

This is exactly the idea I also try to implement... I find it much easier to make updates etc to items and then just drop them in the $OEM$ folders and as you stated, then their is no need to mount and integrated again. I am still expanding this idea further on my images and now after reading this and DotFusion's post I am going to change my driver integration methods

 
As sidenote, it also looks into: DVD\sources\$OEM$\$$\Setup\Scripts , as it resembles %WINDIR%\Setup\Scripts\ in installation media.
So its much better to use that instead, as If you want to change something, you dont have to Mount and recompile image for that
 

DVD\sources\$OEM$     $$ <<- C:\Windows            $$\Web\Wallpaper <<- Wallpapers here            $$\Setup\Scripts <<- setupcomplete.cmd, OOBE.CMD, OEM.reg, SLP.cmd            $$\System32                $$\System32\OEM <<- OEM *.xrm-ms, OEM logos. you can copy these folders from Windows\System32\OEM                $$\SYSWOW64\OEM <<- replica of system32\oem for 64 bit systems OEM *.xrm-ms, OEM logos. you can copy these folders from Windows\System32\OEM                $$\System32\oobe     $1 <<- Drive Root                $1\Drivers <<- where some OEM place driver files
                $1\Install <<- where I place most things and call from there. EX: %SystemRoot%\Install\Firstlog.cmd
                $1\ProgramData\ <<- ProgramData folder
[code=auto:0][/spoiler]

.

Link to comment
Share on other sites

Good day to all!


Also use the SAD2 in my process, but using the Autounattend.xml to the installation, as follows:

 

1-put the folder SAD2 already populated with the drivers at the root of the DVD.


2-Add the lines FirstLogon below into the Autounattend.xml, in settings pass="oobeSystem":

 

  <settings pass="oobeSystem">
    <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="NonSxS" xmlns:wcm="
http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <UserAccounts>
        <LocalAccounts />
        <AdministratorPassword>
          <Value />
        </AdministratorPassword>
      </UserAccounts>
      <AutoLogon>
        <Password>
          <Value />
        </Password>
        <Enabled>true</Enabled>
        <LogonCount>2</LogonCount>
        <Username>Administrator</Username>
      </AutoLogon>
      <OOBE>
        <NetworkLocation>Home</NetworkLocation>
        <HideEULAPage>true</HideEULAPage>
        <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
        <SkipMachineOOBE>true</SkipMachineOOBE>
        <SkipUserOOBE>true</SkipUserOOBE>
      </OOBE>
      <DisableAutoDaylightTimeSet>true</DisableAutoDaylightTimeSet>
      <TimeZone>E. South America Standard Time</TimeZone>

<!--FirstLogon Begin-->
      <FirstLogonCommands>
        <SynchronousCommand wcm:action="add">
           <Description>
SAD2</Description>
           <Order>3</Order>
           <CommandLine>cmd /q /c for %i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %i:\SAD2\DP_Install_Tool.cmd start /wait %i:\SAD2\DP_Install_Tool.cmd</CommandLine>
           <RequiresUserInput>false</RequiresUserInput>
        </SynchronousCommand>
      </FirstLogonCommands>  

<!--FirstLogon End-->
    </component>
  </settings>

 

And it works like a charm.

Link to comment
Share on other sites

I'm not sure what this means.  Can you give an example where and how to do this?

 

And if you have a set of already installed drivers on your running system, can you give a recommendation of a tool that can save these drivers in an appropriate format?  And can they then be added either to the boot wim or somewhere so that SAD2 can find them?  How, and can you give an example?

Well, I incorporated the below code into my much larger utility that does things in a similar fashion to W7T, but it's in batch script.

What this does is scans each .inf for "class=" and if it finds a match then builds a .txt file with the path to the matching driver.  Then later on, it feeds DISM the paths from this .txt file for only the boot.wim images.

I can't give all the code, but this should give you an idea.  Legolash2o will see this and know how to interpret it (and laugh at my sloppy code!) ;)

 

REM :: Counts the number of boot-critical driver .inf files found.  Stores the paths in bCache.txt for use later.SET "B_Drv_cnt=1"FOR /F %%x IN ('DIR /b /s %driverp%\*.inf') DO (REM :: Scans for boot-critical drivers whose .inf contents match classes "HDC, SCSIAdapter, and NET".  Additional classes (like 'USB') may be added to the array below.  FOR %%t IN (HDC SCSIAdapter NET) DO (  FOR /F "tokens=1 delims=|" %%a IN ('TYPE %%x ^| FINDSTR /I "class" ^| FINDSTR /I "%%t"') DO %INL% (    ECHO>>%dCache%\bCache.txt 2>>NUL %%x    SET /a "B_Drv_cnt=!B_Drv_cnt!+1")))ECHO>>"%LOGFILE%" 2>>&1 ** %time%- Boot-critical driver cache built successfully. & ECHO ** Boot-critical driver cache built successfully. 

For your other question, I think that Siginet's DriverGrabber is a good tool to try.

http://www.wincert.net/forum/topic/9874-release-drivergrabber-20-one-click-driver-backup/?hl=drivergrabber

 

Edited by Mr_Smartepants
Link to comment
Share on other sites

Hi,

 

i have now SAD2 integrated to oem folder and it will executed but i have one problem, it

seems that the lan pakage broke the virtualbox network driver.

 

After SAD2 was runnning and a reboot was done, the nic in the virtual machine is not

working anymore.

 

I dont know why that happens because i allready have lan drivers integrated into my

win7 iso and that are the same like SAD2 uses.

 

So what is the difference here?

 

 

Greetz X23

Edited by x23piracy
Link to comment
Share on other sites

Hi,

 

i have tested the same image without automated run of sad2, everything fine...

Then i manual started sad2 and let it running after that i rebooted.

 

Then NIC, Sound, Graphic and a Base System Device have a ! in device manager.

 

I hope this is related to virtualbox behavior and will hopefully not happen on a physical machine.

 

Had someone a similiar problem?

 

The bit strange thing with this problem is that i have integrated, lan, wlan, mass storage and chipset

drivers from the same archives sad2 uses into my image.

 

Is there a difference of integrating driver packs into image to run the sad2 script?

Iam wondering that ! devices not happen without running sad2 script.

 

 

Greetz X23

Edited by x23piracy
Link to comment
Share on other sites

Hi,

 

I don't understand why you would want to use SAD2 in VirtualBox.  Just click the "Devices" menu option to "Install Guest Additions" (or 'Host+D') and be done with it.

 

the way i test my AIO is to install it into a vm, if there is confusion because the special needs of virtual box with drivers, then i should stop testing sad2 in a vm and more likely on a physically machine.

 

I just asked to get sure if there are maybe problems in vms with sad2.

 

 

Greetz X23

Edited by x23piracy
Link to comment
Share on other sites

If you have space to spare on your hard drive you could try to reduce your windows partition by lets say 16gb and install your custom build and test that way on real hardware. Then once tested remove the OS using Easy Boot Manager to remove the test installation and reclaim the hard drive space. Another option would be to test on a virtual hard drive. If you search the forum, I think Ricktendo64 has a tutorial on how to install Window 7 on a VHD.

Edited by dotfusion
Link to comment
Share on other sites

Hi,

 

I don't understand why you would want to use SAD2 in VirtualBox.  Just click the "Devices" menu option to "Install Guest Additions" (or 'Host+D') and be done with it.

 

just to see if it works nothing else. I didn't knew that it makes problems in vm's.

 

 

Greetz X23

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...