• Announcements

    • xper

      MSFN Sponsorship and AdBlockers!   07/10/2016

      Dear members, MSFN is made available via subscriptions, donations and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, become a site sponsor and ads will be disabled automatically and by subscribing you get other sponsor benefits.
Oleg_II

Integrating drivers with HFSLIP?

80 posts in this topic

There is a very simple method of integrating your drivers into Windows source with HFSLIP.

(Simple method of integrating SATA/RAID drivers could be found here.)

First step: preparing driver binaries.

All driver binaries should be in extracted format as if they are used for installation through OEM folder structure or like in Bashrat the Sneaky's drivers packs.

Most drivers that come in one EXE file could be extracted with archievers like WinRar. Or you can use Universal Extractor.

For finding right files among all extracted binaries and getting rid of some garbage I recommend using simple and great tool - Driver Compressor (but you have to extract cabbed files again after using it).

Second step: creating folders structure.

Create folder HFEXPERT in HFSLIP directory, go inside this folder and create the folder DRIVERCAB.

Place all your extracted driver files into DRIVERCAB (for later updates it's better to place drivers in separate subfolders like DRIVECAB\Modem, DRIVECAB\Sound, DRIVECAB\Video, etc.).

Comment:

What happens if there are files with the same names? You can rename them. I even advise you to rename INF according to the driver type: MYMODEM.INF, MYSOUND.INF, MYVIDEO.INF, etc. But if you rename other files from the packages you should try to rename all entries refferencing this file in an appropriate installation INF. This can be usefull for troubleshouting later problems with replacing some files with doublicated names in DRIVER.CAB too.

Third step: editing INF files.

We came to the most difficult part as it needs some manuall work. You have to open each INF in DRIVERCAB folder and search for the section [sourceDisksNames] or [sourceDisksNames.x86] and inseart right after it and before any line this code:

[SourceDisksNames.x86]
1 = %W2Kcd%,driver.cab,,"I386"

(For troubleshouting purposes I'd recommend change %W2Kcd% to drivers nature like VIDEO, SOUND, MODEM - in this case if any error occure you can see clearly which driver has a problem.)

Search for the section [sourceDisksFiles] and make sure all entries have '= 1' in it like:

[SourceDisksFiles]
file1.sys=1
file2.dll=1

Comment:

Some INF has a few SourceDisksFiles sections and you have to change them all or add all files to the one section with '= 1' part.

I confirm this method works with Windows 2000 Professional and FDV's fileset (maybe it needs Windows Files Protection Mode off) for a least a douzen drivers I used. I have not tried to follow it on other OS and without FDV's modified DLL yet. If you tryed this method with other OS and without WFP off please let us know your results.

Issues I had with this method (IMHO all is about of not "well-formed" installation INF files):

- Intel graphic driver asks for distribution CD but installs fine without providing it.

- My CDMA driver doesn't install (asks for CD too).

Edited by Oleg_II
0

Share this post


Link to post
Share on other sites

Nice find Oleg. If you want, I can integrate this into the script. Report back if you have success with the drivers and I'll think of a nice method for using driver integration without intefering with file reduction. Please advise......

0

Share this post


Link to post
Share on other sites

TommyP :hello:

Just sent you a message about this. This method works! But it's not for every user because some INF editing is involved.

I've just have a thought: we may have a small database about drivers - which are easy to edit and which are more complex. Or I think if there are more successfull installation it would be better to introduce this method in Drivers section?

0

Share this post


Link to post
Share on other sites

Maybe craft a webpage and ask FDV to host it? I'd like to put the codec and other info there too.

0

Share this post


Link to post
Share on other sites

Good idea! But we are all a little busy ;) I'll have a long hollidays at the end of January and may help with the site. And why placing to the Drivers Forum - let them know B) about HFSLIP of course :thumbup

0

Share this post


Link to post
Share on other sites

Oh that drivers section. Sure, post it. I'm sure others will get mad that HFSLIP actually slipstreams this too. HAHAHA.

0

Share this post


Link to post
Share on other sites

Don't think it would be a "big thread" :rolleyes: because the method is only semi-automatic for those only who knows something about INFs and don't afraid of editing them. But it would be convinient to have one MYDRV.CAB with all drivers for the system. And for a few systems too - one CAB for systems with one type of hardware, other for the systems with different hardware. Just replace the files in the installation source and you are ready to go ;) Or just make one CAB for a few types of configuration...

0

Share this post


Link to post
Share on other sites

This is nice. I'd like to see it succeed.

WinXP Pro (English)

The following value in the .SIF file used by Setup is corrupted or missing:

Value 0 on the line in section [SourceDisksFiles]
with key "HFDRV.CAB."

Setup cannot continue. To quit Setup, press F3.

This is what the bottom of TXTSETUP.SIF looks like:

[SetupData] 
[SourceDisksFiles]
[SourceDisksFiles]
[SetupData]
DriverCabName=HFDRV.CAB,driver.cab
[FileFlags]
HFDRV.CAB=16

I've modified HFDRV.CMD a bit, but that only consisted of removing the superfluous spaces before and after the arrows (> and >>). This is the relevant part:

ECHO INCLUDING HFDRV.CAB INTO TXTSETUP.SIF
REM I am not sure if it is needed but just in case...
echo DriverCabName>>txtsetup.log
findstr /v /b /i /g:txtsetup.log sourcess\i386\txtsetup.sif>txtsetup.sif
move txtsetup.sif sourcess\i386\txtsetup.sif
del /f /q txtsetup.log

ECHO [SourceDisksFiles]>>SOURCESS\I386\TXTSETUP.SIF
ECHO HFDRV.CAB = 2,,,,,,_x,39,0,0>>SOURCESS\I386\TXTSETUP.SIF
ECHO [SetupData]>>SOURCESS\I386\TXTSETUP.SIF
ECHO DriverCabName=HFDRV.CAB,driver.cab>>SOURCESS\I386\TXTSETUP.SIF
ECHO [FileFlags]>>SOURCESS\I386\TXTSETUP.SIF
ECHO HFDRV.CAB=16>>SOURCESS\I386\TXTSETUP.SIF

0

Share this post


Link to post
Share on other sites

Tomcat76 :hello:

I only tried it on W2k an it works fine here :P I took the numbers from the original TXTSETUP.SIF for SP4.CAB. This file doesn't exist in HFSLIPed W2k so I thought I can use it ;)

Not sure which should be taken for XP. As far as I understand HFSLIP also merges SP*.CABs and DRIVER.CAB for XP? Maybe find out the info for these SP* in original file and try to combine?

0

Share this post


Link to post
Share on other sites

I just modified TXTSETUP.SIF manually to what it should be. I don't understand why the line isn't added.

I also cleaned some of "the bloat":

[SourceDisksFiles]
CMDOW.EXE = 1,,,,,,,1101,0,0;HFEXPERT
iuctl.cat = 1,,,,,,,1101,0,0;HFEXPERT
iuctl.dll = 1,,,,,,,1101,0,0;HFEXPERT
iuctl.inf = 1,,,,,,,1101,0,0;HFEXPERT
HFDRV.CAB = 2,,,,,,_x,39,0,0
[SetupData]
DriverCabName=HFDRV.CAB,driver.cab
[FileFlags]
HFDRV.CAB=16

(I added the reference to HFDRV.CAB in the [sourceDisksFiles] section created by HFSLIP and removed the empty [setupData] and [sourceDisksFiles] sections.)

This allowed me to continue setup (second attempt), but somewhere near the end of the file copy stage, this message comes up:

Insert the CD labeled:
Windows XP Professional CD 2
into your CD-ROM drive

• Press ENTER when ready.

This is probably caused by the fact that this is inserted at the end of LAYOUT.INF:

[SourceDisksFiles]
[SourceDisksFiles]

This apparantly activates the "need" for CD2.

For some reason, these two lines in your CMD are not inserted into the relevant files:

ECHO HFDRV.CAB	  = 2,,,,,,_x,39,0,0>>SOURCESS\I386\LAYOUT.INF

ECHO HFDRV.CAB	  = 2,,,,,,_x,39,0,0>>SOURCESS\I386\TXTSETUP.SIF

Instead, an additional [sourceDisksFiles] section title is created.

So I don't think it's a Windows version problem... but I don't know what's causing this LAYOUT.INF/TXTSETUP.SIF editing to fail.

0

Share this post


Link to post
Share on other sites

I think you need "= 1" for WinXP instead of "= 2".

1 = \i386

2 = \cmpnents\tabletpc\i386

0

Share this post


Link to post
Share on other sites

Changing the "2" to "1" got me to the end of the file copy stage. A bit into the second stage (after the reboot), I get a fatal error.

I just went to take a look at the TXTSETUP.SIF file for Win2K, and the "= 2" is apparantly something special. Its XP equivalent is "= 100". I'm gonna try this now and see if it gets me any further.

Edited by Tomcat76
0

Share this post


Link to post
Share on other sites

Tomcat76

One little note - I use FDV's fileset. Maybe that's the reason? (in modified DLL)

Edited by Oleg_II
0

Share this post


Link to post
Share on other sites

It's possible. I figured out that the "Fatal Error" is caused by editing LAYOUT.INF. If I use the original (unmodified) version, setup goes on to the end but then the drivers are not installed. I've never used FDV's fileset, but if I'm correct he employs a modded setupapi dot whatever which disables driver signing.

0

Share this post


Link to post
Share on other sites

I've got a question - I'm trying to figure out if this is the appropriate topic, because Fred Vorck referred me here and said Oleg was the expert in this idea.

I'm trying to set up a Win2k disc made with this process (HFslip and Fred's SP5 method) and I've got boards which have SATA (as well as a few SCSI and ATA) both controllers and raid setups. What I'm trying to do is figure out a way to make it so I DO NOT have to hit F6 to get the appropriate drivers loaded in via legacy floppy. What I'd like to do is include (in the commonly loaded drivers) the appropriate drivers for my boards such that my Win2k Pro install disc supports all my boards. What I mean by this is the textmode raid and sata drivers, not necessarily the OS level drivers for things like vid card etc.

That way, when setting up, all that has to be done after win2k is installed is to install appropriate extra drviers when prompted from CD. I could include all the appropriate win2k OS level drivers into the disc, but I don't want to add bloat of unneeded drivers to any of the systems. Plus, I usually tend to download the newest driver updates whenever I do any installs, so those parts integrated would serve no purpose as they'd be replaced and harder to deal with.

What suggestions can be made?

0

Share this post


Link to post
Share on other sites

@Gedrean:

You could follow the instructions here:

http://www.ntcompatible.com/thread.php?id=25442

Scroll down to the post of zen69x

The thread is about XP but it just works fine for Windows 2000 as well.

I've integrated an adaptec U320 SCSI controller and now it works just fine for me without having to press F6.

This method works only for mass storage controllers I think.

I've tried Oleg II's method for a gf2_mx videocard driver and it gave me an error - one like Tomcat76 described. I'm not using FDV's file set. For me I got no success with Oleg II's method - maybe it only works with FDV's file set.

0

Share this post


Link to post
Share on other sites

I have a problem integrating drivers with last HFSLIP. But it works with a CMD file I've made to automate the process described in the first post. Investigating.

For your note (I got it somewhere in our Forum, sorry, can't remember in which topic):

I will post what I changed to get my Adaptec 2930U2 SCSI controller recognized during the install without having to use a floppy. I would imagine that the changes required for your device should be pretty similar.

First, what you will want to use the makecab utility found in the \winnt\system32 directory to make cab files of your .sys (driver) and .inf (setup) files. Mine were 2930U2.sys and 2930U2.inf which in turn became 2930U2.sy_ and 2930U2.in_ respectively. You will need to copy these files to the i386 directory that will be burned on your CD.

There are only 2 files that you will have to edit:

DOSNET.INF and TXTSETUP.SIF

Under DOSNET.INF I made the following changes:

[FloppyFiles.2]
I added:
d1,2930U2.sys

[Strings]
I added:
2930U2 = "Adaptec 2930U2 Ultra2 PCI SCSI Controller"

[Files]
(Be careful, there are two sections labeled this, you want the 2nd, it also has a very long list after it.) I added:
d1,2930U2.sys


Under TXTSETUP.SIF I made the following changes:

[SourceDisksFiles]
I added:
2930U2.inf = 1,,,,,,,20,0,0
2930U2.sys = 1,,,,,,3_,4,1

[HardwareIdsDatabase]
I added:
PCI\VEN_9005&DEV_0011&SUBSYS_01819005 = "2930U2"


[SCSI.Load]
I added:
2930U2 = 2930U2.sys,4

[SCSI]
I added:
2930U2 = "Adaptec 2930U2 Ultra2 PCI SCSI Controller"

The stuff in quotes is just a text string so nothing special there that I can tell. The only item I see that would be a problem is the PCI\Ven... etc. part. I got the value by opening the registry on a box that already had the adapter installed and went to the HKLM\System\ControlSet001\Enum\PCI key and searched through the values until I found the key that had the adapter that I was looking for.

Alternately, there was a similar setting in the .inf file that is provided with your hardware, I'm not sure if that would work, but I'd bet that it probably would. Mine showed PCI\VEN_9005&DEV_0011 vs. what I entered above.

0

Share this post


Link to post
Share on other sites

@oleg_II

You suggest modding the inf files using HFDRF, but your script creates MYDRV.

Also, your script needledly renames the compressed INF files to mydrvx. Or are you just renaming to keep track of the files added? Also, you include the inf files inside the cab file.

Is there some case where they are needed, because normally, they won't be read from inside the cab?.

(Or am I missing something?) None of the cab's included 'au natural' have the inf's inside. If naming the cab WAS enough, then I could move the inf's out of i386 to exist only in the cab. Would that work?

Anyway, I used your idea/technique and a modinfied form of your script to build a version that has my intel driver files in a cab {they used to exist individually as compressed files in i386}. -inf's outside-

The darn thing is 11MB 11.3 counting the inf files. :o

Works like a charm! :thumbup

0

Share this post


Link to post
Share on other sites

Electrician

I have to modify my first post. Please use HFSLIP - it handles drive integration now and rename all MYDRV names to HFDRV in my instructions.

No reason for INFs in CAB. Just don't think they are worth deleted and I like all my drivers in one CAB just in case ;)

Still have issues:

- my CDMA modem is not installing at all (asks for distributive disk);

- Intel graphic driver asks for distributive disk too, but installs fine without providing it :wacko:

Edited by Oleg_II
0

Share this post


Link to post
Share on other sites

Oleg II,

I don't have any probs with intel installs. (always the VIA and AMD that are the pain).

I like hfslip, but prefer to keep some mods my own way.

I can add seperate mobo sets by using dif cabs, or leave off if I get squeezed for space. besides, I can update drivers sets if need be .

btw: You gotta have the inf files avail outside the cab. I tried with them ONLY in a cab and the install played stupid. figures.

0

Share this post


Link to post
Share on other sites

Hi,

I am experiencing the following setback. Upon installation I receive the

The following value in the .SIF file used by Setup is corrupted or missing:

Value 0 on the line in section [sourceDisksFiles]with key "driver.cab."

Setup cannot continue. To quit Setup, press F3.

All drivers were extracted according to the [sourceDisksFiles] directive within each Driver's INF. Then copied to the HFDRV directory under HFSLIP. Each INF in the HFDRV directory were then manually edited to add

1. "1 = %W2Kcd%,hfdrv.cab,,"I386"" under the [sourceDisksNames] directive and

2. All files mentioned under [sourceDisksFiles] where amended to have the "= 1" at the end

e.g. e1000nt5.din = 1

This did not improve the problem, so I furthermore edited the Source TXTSETUP.SIF to add

1. Drivercabname=HFDRV.CAb,driver.cab under [setupData] and

2. HFDRV.CAB=16 under [FileFlags]

This has allowed the reading of the HFDRV.CAB situated under \Sourcess\I386.

May I ask wether I am in the correct direction? :wacko: Getting there though...

Textsetup requires all INF's (and SYS files for NIC's) in the \386 folder

The newer HFSLIP solved the above problem.

Only the Intel Graphics Accelerator Drivers goes MIA on required files

HFSLIP is way kewl.

Thanks

Edited by StormRage
0

Share this post


Link to post
Share on other sites

Hi folks!

Unforunetely I have to confirm the error mentioned above... I get the same message about missing value in .sif file. I've prepared HFDRV folder as Oleg said to. I tried installing from source with and witout fdv's file set. Txtsetup.sif files look the same in both cases:

(...)
[SourceDisksFiles]
(Here is a loooooong list of files)

[SetupData]
[SourceDisksFiles]
HFDRV1.inf=1,,,,,,,20,0,0
[SourceDisksFiles]
HFDRV.CAB = 2,,,,,,_x,39,0,0
[SetupData]
DriverCabName=HFDRV.CAB,driver.cab
[FileFlags]
HFDRV.CAB=16

There are such lines in layout.inf from nonFDVed source, and not in FDVed one:

[SourceDisksFiles] 
HFDRV1.inf=1,,,,,,,20,0,0

Dosnet.inf is the same in both sources:

[Files] 
d1,HFDRV1.inf
[Files]
d1,HFDRV.CAB

Please help us with it! Best regards!

Btw. Am I wrong, or Oleg hasn't been visiting the board for a long time?

Edited by januh
0

Share this post


Link to post
Share on other sites

For hfslip_60307.cmd all is fine with HFDRV - folder. (example attached)HFDRV.zip

the example includes only svga and mouse for vmware-machine... just for testing. editet as told in the former posts:

[sourceDisksNames]1 = %W2Kcd%,hfdrv.cab,,"I386"

display works fine, already while setup(gui). for the mouse setup selected the standard-ps/2-driver. vm-mouse was selectable as a new driver and works fine after restart...

don't wait for an other hfslipversion for solving your problems, solve your problems:

  1. try one driver and then the next and then the next...
  2. expand all the files with an underline in your hfdrv - folder (use 7zip or expand)

edit on august 2006: the HFDRV - folder is the same level as hfcabs, hf, source, ...

and HFDRV.CAB is only build if you have *.inf in your hfdrv-folder

Edited by murvun
0

Share this post


Link to post
Share on other sites

Thanks guys! I hfsliped drivers with 60306 version succesfully :)

0

Share this post


Link to post
Share on other sites

Whew. Glad this little plugin works. Kudos to januh for sending me his sample fileset so I could troubleshoot.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.