Jump to content

Having Windows Keep The Drivers


X-Savior

Recommended Posts

Ok, no prob.

Just to let you guys know, I jumped the gun a little. I did a ful out CAB file with lots of drivers. I then removed them from $OEM$\$1\Drivers

Good News... The Drivers were detected on Initial OS install and used them to install existing Hardware. AWESOME. Solution for an overcrowded TXTSETUP.SIF with too many directory references. :)

Bad News... With what I mentioned the USB LAN did not detect and install post OS install. I am starting to return to the NON-Streamlined way of doing this to find where it makes a difference. ??? I added the USB100M.SYS back into the TXTSETUP.SIF and didn't make a difference. I will try adding it to DOSNET.SIF instead. :(

What EXACTLY is the purpose of DOSNET.SIF???

I know TXTSETUP.SIF is to copy all the files to the proper location and DRVINDEX.SIF is a database of all the device drivers and where to find them.

We will see what tomorrow brings. :wacko:

**********************************

EDIT:

**********************************

SORRY! No Problem. I made a Typo and never caught it. :blushing:

I am trying it again right now but it will turn out fine with my method.

Link to comment
Share on other sites


@X-Savior

Thanks for all the testing, this really helped me a lot :thumbup:thumbup

Okay, I did some test the last few days, and I now have some results myself.

Test 1: No success !!

My first test had everything to do with presetup.cmd (see post nr. 35)

My goal was the following.

- I wanted to create a Erik.cab file, and get it copied to the %systemroot%\driver cache\ and %systemroot%\driver cache\i386 folder during presetup.cmd

I modified presetup.cmd like in post nr. 42 (but with some different filenames

Of course I modified my driver DRVINDEX.INF file. Now it looks like this:

[Version]
CabFiles=erik,SP2,Driver

[erik]
BCMWL5.SYS
LSBCMNDS.CAT
LSIPNDS.CAT
LSIPNDS.SYS
LSIPNDSX.SYS
WMP11NDS.CAT
WMP11NDS.SYS

[Cabs]
erik=erik.cab

the *.INF files I place here

$OEM$\$$\INF

I did not modify txtsetup.sif and dosnet.inf because I didn’t want the drivers to get installed during setup. I only wanted to test if the drivers get installed after setup.

I had the following error:

De following value in the SIF file is corrupt or missing
De value 0 on the line with the key erik.cab

Note that I never modified txtsetup.sif, so this means that setup also looks inside DRVINDEX.INF before it starts copying the files.

This means that if you modify DRVINDEX.INF like I did, erik.cab has to present in the i386 folder.

This method will not work!

Test 2: success :thumbup

This time I did it more your way, but with a twist .

It looks very much like the way you did it in post nr. 44

The driver installation part during setup is done by Bashrat's method 2

(presetup.cmd)

I believe that this is far more efficient than modifying txtsetup.sif for every file in the new driver pack. The only thing that we need the new .CAB file for, is for detecting driver after the setup.

DOSNET.INF

[Files]
d1,erik.cab

DRVINDEX.INF

[Version]
CabFiles=erik,SP2,Driver

[erik]
BCMWL5.SYS
LSBCMNDS.CAT
LSIPNDS.CAT
LSIPNDS.SYS
LSIPNDSX.SYS
WMP11NDS.CAT
WMP11NDS.SYS

[Cabs]
erik=erik.cab

TXTSETUP.SIF

[SourceDiskFiles]
erik.cab = 100,,,,,,,39,0,0

DriverCabName=Driver.cab,SP2.cab,erik.cab

[FileFlags]
erik.cab = 16

Ok, so then I just add a copy of the *.Cab to...

$OEM$\$$\Driver Cache

And the *.INF to...

$OEM$\$$\INF

My install went great,

And when I plug & played my wireless card, windows detected it. I only had the question if I wanted to search for them, like you had as well.

This method works, and tells us that we can use Bashrat's method 2 and this method together :thumbup

EDIT:

I still don't have a clue how to work wit subdirs in DRVINDEX.INF when you use a .CAB file

Edited by erik_demon
Link to comment
Share on other sites

Thanks,

In that case I wonder if this works with a .cab file:

If the folder structure of that .CAB file = DP\W\L\2\name of file

DRVINDEX.INF

[Version]
CabFiles=erik,SP2,Driver

[Directories]
d1 = \DP\W

[erik]
d1,BCMWL5.SYS, L\2\BCMWL5.SYS
d1,LSBCMNDS.CAT, L\2\BCMWL5.SYS
d1,LSIPNDS.CAT, L\2\BCMWL5.SYS
d1,LSIPNDS.SYS, L\2\BCMWL5.SYS
d1,LSIPNDSX.SYS, L\2\BCMWL5.SYS
d1,WMP11NDS.CAT, L\2\BCMWL5.SYS
d1,WMP11NDS.SYS, L\2\BCMWL5.SYS

[Cabs]
erik=erik.cab

Link to comment
Share on other sites

Yeah, I will try it out sometime this weekend.

In your example you did this:

[Files]
d1,driverfile.sys, subfolder\driverfile.sys

In dosnet.inf there is the following line that is doing the same thing:

d1,ntdll.dll,system32\ntdll.dll

Note that there isn't a space between the file and the subdir, so shouldn't your example be like this?

d1,driverfile.sys,subfolder\driverfile.sys

Link to comment
Share on other sites

Hey All! B)

@Erik

Good work. I installed windows about 5 times making small changes before I realized I made a spelling error. :blushing:

I would like to know about the Subdir's as well. This would finish it off nice.

Well, I think we have now achieved our goal. What Direction should we go with this now? WHat about disabling the Driver Search (Internet) that comes up. Unless it is not a big deal.

---

Last night I made a full out CAB file with everything except for Chipset & Mass Storage. I figure we should keep the usual way for them. It's not like your gonna change the MB very often w/o re-installing the OS. Just the drivers for things that are changed more often (Video Cards, Network, USB, Sound, Etc.)

I had no problems at all. It found the Driver's. Also, during OS install it will scan the New CAB anyways and install the drivers in it. SO technically you could have EVERYTHING in the CAB and it would work fine. I think it will not work during TEXTMODE though. So Mass Storage will still need to be integrated individually.

What we need now is a simple program to make upgrading the CAB file a simple process. I am not good with this department so...

I am asking anyone who reads this...

If you can make a program to scan a directory, and list all the file names it finds in a .TXT file. That way we can then copy and paste out of it and into our DRVINDEX.INF it will make maintaining the CAB a very simple matter. :thumbup

@Bashrat

Any Idea's??? I think this would not be a Big Issue to create this. Should simplify for you as well.

---

So now I am starting on a whole new setup this weekend. I will start creating a x64 DVD with all the 64-Bit drivers I can find. I am using RC2 right now but when I get the Retail at the end of the month I will "Transplant" my work into that Version. I am going to use the new Technique we have discovered and see if I can refine it further and try and learn more about it.

BTW: I have already made some Progress with x64!!!! ***Cheer!!!***

Link to comment
Share on other sites

@erik_demon: you're right there... And that's the exact spot where I got my information ;)

@X-Savior: nice nice :)

I'll try to make it, but vacation is over, school is starting and less spare time again... I'll see what I can do :)

But I would like to see ONE more feature: BETTER COMPRESSION!!!!

I know Windows can only read .cab files... But couldn't we hack that someway, to let us use 7zip compression instead? Because this will take *some* space on the HDD...

Link to comment
Share on other sites

@X-Savior

Great work again :thumbup

I had no problems at all. It found the Driver's. Also, during OS install it will scan the New CAB anyways and install the drivers in it.
Is this without editing txtsetup.sif? that would be GREAT :w00t:
Last night I made a full out CAB file with everything except for Chipset & Mass Storage. I figure we should keep the usual way for them. It's not like your gonna change the MB very often w/o re-installing the OS. Just the drivers for things that are changed more often (Video Cards, Network, USB, Sound, Etc.)

Yeah, I agree

WHat about disabling the Driver Search (Internet) that comes up
I tried this key, and it works. Windows now only asks if you want to search for the drivers somewhere on your computer.

;-----  Don't search Windows Update for drivers (when new HW detected)
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DriverSearching]
"DontSearchWindowsUpdate"=dword:00000001
"DontPromptForWindowsUpdate"=dword:00000001

Keep up the very good job :thumbup

@Bashrat

I'll try to make it

If you have time, please do. It's a hell of a job to put them in manually.

But I would like to see ONE more feature: BETTER COMPRESSION!!!!

Yeah, I would like to see that to. With .7zip files all DP's except MassStorage and chipset are around 127 MB. When you use .CAB files, this will be around 270 MB :wacko:

EDIT:

I think I found an aswer to this problem, see my next post!!

@ All

Is it possible to put 1 file, two times in the txtsetup.sif file?

I ask this because the new DP.CAB has to be both in %systemroot%\driver cache\ and %systemroot%\driver cache\i386.

Is there someway to tell txtsetup.sif to copy this file to both location?

(of course you can put the file in $OEM$\$$\driver cache but then you would have two files with a filezise of ~270 MB on your CD)

Edited by erik_demon
Link to comment
Share on other sites

Okay, I did an interesting discovery today,

I think I found a way to save some space on the CD B) .

For this method, I used Bashrat's DP method 2 to install the drivers during setup.

Now I always thought that DRVINDEX.INF in the i386 folder needed to be edited before a format. After my testing it now seems that you can also edit DRVINDEX.INF which is in the %systemroot%\inf folder after a format.

Since there now is no reference in DRVINDEX.INF about the new DP.cab, you don't have to include the .Cab file on your CD (which saves you 2x 270MB !!! :D ).

Normaly Bashrat's pack add's these lines to winnt.sif

command8= "%SystemDrive%\DP\BTS_DPs_Control_Panels.cmd"
command9= "%systemdrive%\DP\Delete_after_reboot.cmd"

I changed that into this:

command7= "%SystemDrive%\DP\BTS_DPs_Control_Panels.cmd"
command8= "%SystemDrive%\DP\create_cab_file.cmd"
command9= "CMD /C RD /S /Q %SystemDrive%\DP"

create_cab_file.cmd

cmdow @ /HID
@echo off

SET tagfile=\I386\presetup.cmd
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:%tagfile%" set CDDRIVE=%%i:

REM   +===============================================+
REM   |             Create DP-Erik.cab                |
REM   +===============================================+

%CDDRIVE%\WINXP\OEM\bin\cabarc.exe -m LZX:21 -r -p N %SystemDrive%\DP\DP-Erik.cab %SystemDrive%\DP\*

REM   +===============================================+
REM    | Copy DP-Erik.cab to the \Driver Cache, and the \Driver Cache\i386 folders|
REM   +===============================================+

COPY "%SystemDrive%\DP\DP-Erik.cab" "%systemroot%\Driver Cache\"
COPY "%SystemDrive%\DP\DP-Erik.cab" "%systemroot%\Driver Cache\i386"

REM   +===============================================+
REM    | Copy the INF files and the new DRVINDEX.INF to the %systemroot%\INF folder|
REM   +===============================================+

start /wait %CDDRIVE%\WINXP\OEM\bin\inf.exe

EXIT

INF.exe is a self extarcting winrar file that copies all .INF files, and a new (edited) version of DRVINDEX.INF to the %systemroot%\INF folder

Beside the space saving element, you now also don't have to edit dosnet.inf, and txtsetup.sif anymore :w00t: !!

EDIT:

We could of course change INF.exe into INF.7zip if we want to safe more space

Edited by erik_demon
Link to comment
Share on other sites

I am back with some good news :)

I Tried using subdirs in my DRVINDEX.INF like I mentioned in post nr. 49 (but without the spaces). That didn't work.

I tried everything with subdirs, but no go.

Then I just removed the subdirs path's, and it works!! :w00t:

It seems that The entire .Cab file with all it's subdirs is searched when the filename is inside DRVINDEX.INF.

This was the last big obstacle. Now the method seems to work perfect :thumbup

@Bashrat

I haven't tried that yet, I will get back to you in about half an hour!!

EDIT:

I just finished a test with all your DP's except the DP MassStorage, and it took me 14 min. to compress the drivers on a P4 3,2 GHZ system with 1 GHZ DDR RAM of memory. (nice guess)

@RyanVM

Thanks, I have to say that I am quite a compression N00b, and that I was quite happy that I got Cabarc to work :D I will give it another shot.

EDIT:

I tried it again, but this time with LZX:21 compression, and the filesize went down from 270 tot 196 MB, Thanks alot!!

EDIT 2:

I think that I will write a detailed 'how-to-guide' sometime this week.

Edited by erik_demon
Link to comment
Share on other sites

:D Good Work Erik!

At Last, the Mystery is solved. I didn't expect the results though. VERY interestting. :wacko:

@Erik

Interesting Idea. I might adapt part of your idea. Yes, it does save space, I agree, but the Extra 15 - 20 Mins on install time.... Is it worth it? After All, any major install will already be on a DVD so there is more than enough space to accomidate any setup. I am currently at about 3.8 GB Now and It is a HUGE install.

I still think maby we should follow through with creating the Cab in advance and have it copy it 2 times. Then we do not need all the files and folder RAW in the $OEM$ folder. You only need Chipset and Mass Storage. :thumbup

Just a thought...

Also, Glad to hear about the alternate DRVINDEX.INF, I wonder what it is created from? How did you modify it? Just added your CAB file? or the entire file listing as per my method?

@Bashrat

Thank you for taking the time to look into creating the program. It would be a HUGE time saver.

Also, I downloaded your latest Driver Pack to update my existing install. Wow, you made some changes. I used Method 2 and Manually integrated the stuff the way I wanted. The only pain was putting ALL the directory's in the WINNT.SIF, I am not prepared to re-work this install. I will be starting my MCE 2005 Version2 disc soon and I am going to use RUN ONCE method for software and try combining your method with mine. ;)

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...