Jump to content

Integrating drivers with HFSLIP?


Oleg_II

Recommended Posts

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
Link to comment
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......

Link to comment
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?

Link to comment
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

Link to comment
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...

Link to comment
Share on other sites

  • 2 weeks later...

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

Link to comment
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?

Link to comment
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.

Link to comment
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
Link to comment
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.

Link to comment
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?

Link to comment
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.
×
×
  • Create New...