Jump to content

Integrating SATA and RAID drivers with HFSLIP


Oleg_II

Recommended Posts

I can't even test SATA/RAID drivers....

Actually, that is not a valid excuse. :P Simply load up VMware / Virtual PC and try the installation (even if you don't have the RAID controller), if it didn't show any errors and you can complete the whole Windows installation from beginning to the end, then the driver is most likely working.

Are you sure that they aren't just 'required' based purely on their extension and not on whether they are needed?

If I am sure, I will be developing Windows for Microsoft instead :lol: My goal is to make sure the methods I used is a standard and can be repeated on all other drivers. Whether I was overdoing it or not is not as important. As long as it meets my needs and it works, that's all it matters.

Are you sure about that? Check out my ...

haha...the guy's a tough one. He reminds me of the top honchos at work who always asks "Are you sure this? Are you sure that?" whenever you try to explain things to them, as if they don't trust you. Normally I would snap back, "If I know everything I wouldn't be working for you!" or "I don't have answers to every question. Trust me or fire me!" Of course, in this case, I would say "Take it or leave it!" :lol: No offense, Yzöwl, just teasing.

Maybe iTwins is right: probably if a SYS file (in our case SiWinAcc) is listed in [sCSI.LOAD] section it also should be listed in [sCSI] section too? Maybe a dummy line should be created in STORAGE.INI for it? Something like:

I am always right! :lol:

Actually, simply try it out and see. Like I mentioned earlier, load it up in VMware or Virtual PC. Don't include in [sCSI.LOAD] and/or [sCSI] and see how it goes. If it doesn't errs during installation, then you don't need it. Otherwise, live with it!

My apologies, I haven't had the chance to lend a hand with the testing yet. I'm on vacation mood and I'll be off to Bangkok for a couple of weeks - food, spa, massage, food, spa, massage, food, spa....

Link to comment
Share on other sites


My point was that if the "dummy entries" aren't needed when TXTSETUP.OEM is used but they are when TXTSETUP.SIF is used, then there might still be an easy way out: put the SYS files which aren't supposed to be parsed by HFSLIP in the FIX folder. That way, HFSLIP doesn't add the unnecessary entry into the [sCSI.Load] section, and as a consequence you don't need to add dummy entries into STORAGE.INI.

Link to comment
Share on other sites

Tomcat76

You are absolutely right. But for those who know which SYS is needed and which is not B) it's not difficult to add all files to TXTSETUP.SIF manually :rolleyes: It would be great to do it as much automatical as possible :)

Link to comment
Share on other sites

I ran v1.0.1 with storage.ini in VMware Workstaiton v5.5.2 and I encountered this error:

a320sd9.jpg

..and teh following were added into the TXTSETUP.SIF

[SourceDisksFiles]
HFSLIPWU.INF = 1,,,,,,,20,0,0
A320RAID.CAT = 1,,,,,,,2,0,0,,1,2
A320RAID.INF = 1,,,,,,,20,0,0,,1,20
A320RAID.SYS = 1,,,,,,3_,4,1,,,1,4
AACCIN.DLL = 1,,,,,,,2,0,0,,1,2
AACMGT.INF = 1,,,,,,,20,0,0,,1,20
AACSAS.CAT = 1,,,,,,,2,0,0,,1,2
AACSAS.INF = 1,,,,,,,20,0,0,,1,20
AACSAS.SYS = 1,,,,,,3_,4,1,,,1,4
COCPYINF.DLL = 1,,,,,,,2,0,0,,1,2
DELPSEUD.INF = 1,,,,,,,20,0,0,,1,20
IAAHCI.CAT = 1,,,,,,,2,0,0,,1,2
IAAHCI.INF = 1,,,,,,,20,0,0,,1,20
IASTOR.CAT = 1,,,,,,,2,0,0,,1,2
IASTOR.INF = 1,,,,,,,20,0,0,,1,20
IASTOR.SYS = 1,,,,,,3_,4,1,,,1,4
MPIXP32.CAT = 1,,,,,,,2,0,0,,1,2
QL2300.CAT = 1,,,,,,,2,0,0,,1,2
QL2300.SYS = 1,,,,,,3_,4,1,,,1,4
QL2X00.INF = 1,,,,,,,20,0,0,,1,20
QL2XHAI2.DLL = 1,,,,,,,2,0,0,,1,2
QLPSEUDO.INF = 1,,,,,,,20,0,0,,1,20
QLSDM.DLL = 1,,,,,,,2,0,0,,1,2
SYMMPI.CAT = 1,,,,,,,2,0,0,,1,2
SYMMPI.DBG = 1,,,,,,,2,0,0,,1,2
SYMMPI.INF = 1,,,,,,,20,0,0,,1,20
SYMMPI.PDB = 1,,,,,,,2,0,0,,1,2
SYMMPI.SYS = 1,,,,,,3_,4,1,,,1,4
SYMMPI.TAG = 1,,,,,,,2,0,0,,1,2
SYMMPO.INF = 1,,,,,,,20,0,0,,1,20
ULTRA.CAT = 1,,,,,,,2,0,0,,1,2
ULTRA.INF = 1,,,,,,,20,0,0,,1,20
ULTRA.SYS = 1,,,,,,3_,4,1,,,1,4
VMSCSI.CAT = 1,,,,,,,2,0,0,,1,2
VMSCSI.INF = 1,,,,,,,20,0,0,,1,20
VMSCSI.SYS = 1,,,,,,3_,4,1,,,1,4

[SCSI.Load]
A320RAID = A320RAID.SYS,4
AACSAS = AACSAS.SYS,4
IASTOR = IASTOR.SYS,4
QL2300 = QL2300.SYS,4
SYMMPI = SYMMPI.SYS,4
ULTRA = ULTRA.SYS,4
VMSCSI = VMSCSI.SYS,4

;--------------------------------------------------
;VMWARE

[HardwareIdsDatabase]
PCI\VEN_104B&DEV_1040 = "vmscsi", "VMware SCSI Controller"

[SCSI]
vmscsi = "VMware SCSI Controller"

;--------------------------------------------------

The reason?

If you look in DOS, you will notice that the files A320RAID.SY_ and all other .SY_ files that are declared in [sCSI.LOAD] are missing in the $WIN_NT$.~BT directory. To correct that, you need to match those files into DOSNET.INF's [FILES] and [FLOPPYFILES.2] sections as well.

Sadly, in this case, even if you fixed the DOSNET.INF issue, you still get a BSoD. :huh:

bsodhr6.jpg

I am still investigating...

A proprosal

Rather than using STORAGE.INI, is it possible to get HFSLIP to do everything intelligently and automated. To do that, follow these steps:

*** I use QLOGIC's driver because its one of the more complicated ones

1) scan for each INF file within HKEXPERT\STORAGE for the string under the [Manufacturer] header. There can only be one string in [Manufacturer].

Example:

[Manufacturer]
%QLOGIC%=QLOGIC,NT.5.2

Watch out though, not all drivers include a comma. Most drivers look like this:

[Manufacturer]
%ADP%= ADAPTEC

2) Skip the value name but keep the value. In the above example, rename the comma in ",NT 5.2" and replace it with a period. ex ".NT.5.2"

3) Search for the [QLOGIC.NT.5.2] header and scan all the PCI\VEN entries.

Example:

[QLOGIC.NT.5.2] 
%ql2300.DeviceDesc% = ql2300_Inst, PCI\VEN_1077&DEV_2432&SUBSYS_01371077

extract the vendor and device codes

PCI\VEN_1077&DEV_2432&SUBSYS_01371077

4) Take the code and intelligently place it into TXTSETUP.SIF as:

[HardwareIdsDatabase]
PCI\VEN_1077&DEV_2432&SUBSYS_01371077 = "qlogic", "????"

5) Finally, search for the value name "Floppy_Desc" under the [sTRINGS] header and you can find the device name. Stick the device name into these two areas in TXTSETUP.SIF:

[HardwareIdsDatabase]
PCI\VEN_1077&DEV_2432&SUBSYS_01371077 = "qlogic", "QLogic Software Diskette"

[SCSI]
qlogic = "QLogic Software Diskette"

Oh. Be sure to declare in DOSNET.INF as well. :)

If you can succeed here, then you are home free. :thumbup

QL2X00.INF

Edited by iTwins
Link to comment
Share on other sites

Can't be done. The biggest hurdle is that DOS can't parse sections of a file... like search for the header [Whatever] and output anything below it until the next header.

Pure batch programming cannot but 3rd party DOS programs can. It's not like HFSLIP is purely batch file only so using 3rd party programs doesn't break that rule. I think I have such a program tucked away somewhere here...CHGINI16.EXE and INIFILE.EXE (attached)

I don't remember what are the differences between the two but...

Sample commandline:

CHGINI16 C:\UNATTEND.TXT "GuiUnattended" "TimeZone" %TIMEZONE% > nul

INIFILE SET C:\UNATTEND.TXT -s"params.MS_TCPIP.Adapter1" -kDHCP -vYES > nul

If push comes to shove, you can always get HFSLIP to call up a VBScript or Kixtart script. Either one of them can be easily done. Both compilers can be run in XP/2000/2003/Vista.

Cheers.

chgini16.exe

inifile.exe

Link to comment
Share on other sites

Less universal but easier to implement: HFSLIP will write all entries into TXTSETUP.SIF only from prepared STORAGE.INI and won't write anything else by itself. Files from STORAGE folder will only be cabbed and added to i386 folder.

STORAGE.INI will contain ALL four sections to include into TXTSETUP.SIF for all known drivers.

If needed there should be one more helper file like STOREDOSNET.INI that will aslo include some settings for DOSNET.INF.

That way it should be easier to integrate and it should work for all existing drivers but it will need regualar updating of these helper INI files cause some new storage drivers may be introduced.

Edited by Oleg_II
Link to comment
Share on other sites

  • 2 weeks later...

I have made some changes to the STORAGE DRIVERS section of the HFSLIP file in order to rid myself of the error I was getting.

Basically what I am doing is putting the emphasis on having correct storage*.ini(s).

The procedure parses the ini file(s) and only puts existing files mentioned under its [sCSI] section under the [sCSI.Load] section of TXTSETUP.SIF.

Here is the code:

REM ======================STORAGE DRIVERS=================================================
:HFSTOR
TITLE %T1% - Processing Storage Drivers
:: THANKS TO OLEG II FOR ANOTHER GREAT IDEA
>HFSTOR.TXT DIR/B HFEXPERT\STORAGE
>HFSTORI.TXT DIR/B HFEXPERT\STORAGE\STORAGE*.INI
FOR /F %%I IN ('FINDSTR/VG:HFSTORI.TXT HFSTOR.TXT') DO (
MAKECAB /D CompressionMemory=%COMPMEM% /D CompressionType=LZX HFEXPERT\STORAGE\%%I /L SOURCESS\I386 >NUL
>>SOURCESS\I386\DOSNET.INF ECHO/d1,%%I
IF /I "%%~xI"==".SYS" (
>>SOURCESS\I386\TXTSETUP.SIF ECHO/%%I = 1,,,,,,3_,4,1,,,1,4) ELSE (
IF /I "%%~xI"==".INF" (
>>SOURCESS\I386\TXTSETUP.SIF ECHO/%%I = 1,,,,,,,20,0,0,,1,20) ELSE (
>>SOURCESS\I386\TXTSETUP.SIF ECHO/%%I = 1,,,,,,,2,0,0,,1,2)))
>>SOURCESS\I386\TXTSETUP.SIF (ECHO/&ECHO/[SCSI.Load])
FOR /F %%I IN (HFSTORI.TXT) DO (CALL :DOINIS %%I)
FOR /F %%I IN (HFSTORI.TXT) DO (>>SOURCESS\I386\TXTSETUP.SIF (ECHO/&TYPE HFEXPERT\STORAGE\%%I&ECHO/))
ECHO/>>SOURCESS\I386\TXTSETUP.SIF
DEL/Q/F HFSTOR*.TXT
GOTO EOF
:DOINIS
FOR /F "EOL=[ DELIMS== " %%I IN ('FIND /V "\" ^<HFEXPERT\STORAGE\%1') DO (
IF EXIST HFEXPERT\STORAGE\%%I.SYS (>>SOURCESS\I386\TXTSETUP.SIF ECHO/%%I = %%I.SYS,4))
GOTO EOF
REM ======================================================================================

One last thing you may notice from it, is that you can have multiple ini files in your \STORAGE directory.

(if you find it easier to manage that way)

e.g.

  1. storage_ibm.ini
  2. storage_adaptec.ini
  3. storage_intel.ini
  4. storage_sii.ini
  5. storage_jmicron.ini

I have as yet been unable to test the results of this on my particular machines, it does get rid of the error and allows a full install in my virtual machine.

Hope it helps a little!

Link to comment
Share on other sites

Yzöwl :thumbup

Thank you very much! Some people agree that it would be easier to have a few STORAGE*.INI files according to manufactories. I've got a copy of Universal Installation Utility that should contain a lot of them. When I have some free time I'll make a couple of these INI :)

Link to comment
Share on other sites

  • 2 weeks later...

Hi there. After reading many threads about how to do the integration (other forums, too) I must admit that I am quite like :wacko::blink: .

I want to integrate the drivers for the Controllers on the Asus P5W DH Deluxe (mainboard popular with many gamers) in order to avoid pressing F6 (I don't have a floppy drive). Actually it contains 3 Controllers, the ICH7R Southbridge, Jmicron JMB363 SATA, Silicon Image 4723 Hardware RAID Controller (EZ Backup). For the JMicron Controller there is a folder for the disk to be created on the support cd, containing these files:

jgogo.sys

jraid.cat

Jraid.sys

jraid_finf (attached)

txtsetup.oem (attached)

I was editing the storage.ini like the following, but got stuck with the first value. However, you were diskussing a different method.

[HardwareIdsDatabase]

PCI\VEN_197B&DEV_2360&CC_0104 = " :blink: ", "JMicron JMB36X Controller"

...

The ICH7R Southbridge RAID Controller drivers are included in the chipset drivers. I attached the corresponding inf-file, too.

Could anyone help me integrating these drivers? I could test the result for you ;)

jraid_f.inf

ich7core.inf

txtsetup.oem.txt

Link to comment
Share on other sites

Tinnitus :hello:

I had a quick look at the provided files. Try this (copy, past into Notepad and save as STORAGE.INI):

[scsi]
jraid = "JMicron JMB36X Controller"

[HardwareIdsDatabase]
PCI\VEN_197B&DEV_2360&CC_0104 = "jraid"
PCI\VEN_197B&DEV_2361&CC_0104 = "jraid"
PCI\VEN_197B&DEV_2363&CC_0104 = "jraid"
PCI\VEN_197B&DEV_2365&CC_0104 = "jraid"
PCI\VEN_197B&DEV_2366&CC_0104 = "jraid"
PCI\VEN_197B&DEV_2360&CC_0106 = "jraid"
PCI\VEN_197B&DEV_2361&CC_0106 = "jraid"
PCI\VEN_197B&DEV_2363&CC_0106 = "jraid"
PCI\VEN_197B&DEV_2365&CC_0106 = "jraid"
PCI\VEN_197B&DEV_2366&CC_0106 = "jraid"

After running HFSLIP check (open with Notepad and look at the end of the file) if the lines above are included into TXTSETUP.SIF along with these few lines:

[SourceDisksFiles]
jraid.sys = 1,,,,,,3_,4,1
Jgogo.sys = 1,,,,,,3_,4,1
jraid_f.inf = 1,,,,,,,2,0,0
jraid.cat = 1,,,,,,,2,0,0

[SCSI.Load]
jraid = jraid.sys,4
;Jgogo = Jgogo.sys,4; This entry is made automatically and probably wrong!

You aslo can add your ich7core.inf into STORAGE or DRIVER folders.

If you have any other questions I'll try to help you (if I can).

Edited by Oleg_II
Link to comment
Share on other sites

That did not work :no:

I connected the drives to the ICH7R Controller and configured them as a RAID 1 Volume, but the created installation CD will not detect the drive.

I edited the storage.ini (which I took from the first post) and added what you told me (concerning the JMicron controller). Also, I copied all .cat and .inf from the Chipset driver (ICHxx.inf ICHxx.cat) to the STORAGE-Directory. I guess I have to add something for the Chipset driver, too.

storage.ini

Edited by Tinnitus
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...