Jump to content

RASOR - Textmode Driver Utility


trainee

Recommended Posts

RASOR Alpha 4 is out. RASOR will automatically download the new version when you run it. Please test the nvRaid definition.

You *MUST* have the .NET framework installed to use this utility.

If you successfully integrate a driver with this program and it is not listed as *verified* please post your success to this thread (I'm sure people will post if it doesn't work).

RASOR is only designed for use with XP (currently)

WHAT IS RASOR?

Raid Ata Sata Oem Repackager (RASOR) is a little utility to slipstream disk controller drivers into the textmode portion of unattended XP installs. It was spawned from trying to get my 3ware 7000-2 raid card working and from my desire to help others get their drivers working after I did. Rasor utilizes Method 2 (M2) style slipstreaming which is different (and less tested/verified) than the method (M1) used in Bashrat's Driver Pack. My2001 has written a good overview of the different types of slipstreaming here. I have previously written a guide about M2 style slipstreaming here,which may give you a better idea of what the utility is doing (atleast trying to do at this point). As I have before, I would like to thank rcordorica for his help in furthering the developement of the M2 method. While not a complete list I would also like to thank Bilou_Gateux, cfeedback, EDDI, my2001, and of course Bâshrat the Sneaky for their insights and support. Here is a Screenshot so you know what you are getting yourself into.

CUTTING TO THE CHASE - SUPPORTED DRIVERS

The list of currently supported drivers will be maintained (I hope) :D

  • 3ware 6000 Series
  • 3ware 7000/8000 Series (*verified*, trainee)
  • Acard AEC-67160
  • Acard AEC-671x
  • Acard AEC-6880
  • Adaptec Ultra160 Family
  • nVidia nvRaid (*verified*, rcordorica)
  • Silicon Image SiL 3x12A Raid
  • Silicon Image SiL 3114 Raid (*verified*, rcordorica)

CUTTING TO THE CHASE - HOW TO GET IT

You can download Alpha 3 here: Rasor.exe (Right-Click Save-As).

The current release is Alpha 3. There is little to no reason for me to call it alpha 3 or to even have versions but what the heck, its fun! I have chosen to distribute this software under the Academic Free License v. 2.1 It can be viewed here. Basically it says: use, distribute, have fun, screw up, anything you want, but you still can't sue me. Please keep in mind that this is a very early release and there isn't very much 'ohh-crap' code. If you do something wierd to the software, it will most likely eat-sh*t-and-die. Generally this is easily solved: restart the software. That said, the software has only 1 known stability issue at this time (see bug list below).

CUTTING TO THE CHASE - USING IT

After you download RASOR you should put it in its own directory. RASOR does not create any registry entries or actually do anything at all outside of the directory you run it from and the directory you point it at when you use it (your XPCD source). If you are tired of having RASOR's useless carcass cluttering up your hard drive (all 60K of it) you can calmly delete the directory and all will be as before. If you didn't bother to read the big red .NET framework requirement at the top, please do so now. Back?...okay the only other requirement is that you *must* be connected to the internet for RASOR to work properly. All of the driver packages are stored remotely. This means you don't have to go and get them yourself. It also means that they *should* always be up to date (in the future I might get some help for this). If you can't handle my little program downloading things to your computer from the internet then you shouldn't use it.

When you first run RASOR it *may* take a few seconds to load and may flash some windows. This is perfectly normal! Rasor will first go out to the internet and look for a new version of itself. If a new version is found it will download it and restart. This makes sure that everyone is using the latest version. It also means that if I introduce some horrible bug, it will make everyone's copy break, yay! Then RASOR will grab the latest driver configuration list and ask you to choose the drivers to download.

The rest of the program should be pretty self-expanatory. You should pick a directory for the utility to repackage the drivers to. The program will find and append to an existing winnt.sif or will generate a new one (not a complete one, just a new one). It will create the necessary folders and it will copy the files <crossing-fingers>.

ANTICIPATED FAQ - BECUASE NOBODY HAS ASKED ANY QUESTIONS YET

Q: Why RASOR? Why not Method-Two Freakin-Cool Slipstreaming Utility?

A: Because RASOR is cooler and I can't pronounce MTFCSU.

Q: I don't like M$ and I don't want to install .NET. Will there be a non .NET version in the future?

A: No. I am a computer engineer by training (not a computer scientist), and my programming language of choice for small projects is C#.NET.

Q: Where do I put my driver files?

A: RASOR will download all of the necessary files for you. Again, you do NOT need to provide the driver files to RASOR.

Q: Will more drivers be provided in the future?

A: Yes! I will add driver files as I can, with priority to requests.

Q: Why is RASOR so ugly?

A: Becuase I wanted to make it work before I tried to make it pretty.

Q: Why wouldn't I just want to add every driver from the driver list to my CD?

A: Some of the drivers conflict with one another. In the future RASOR will not let you add drivers that conflict with one another but until then, you should only add the drivers you need. This will also make debugging problems much easier.

KNOWN BUGS & PLANNED IMPROVEMENTS

  • RASOR always downloads the drivers, even if it already has the latest ones cached locally
  • RASOR always downloads the Update utility, even if it already has the latest one
  • RASOR crashes when not connected to the internet or when the rasor website is down
  • File format has a compatibility problem with nvRaid drivers (fixed very soon)
  • RASOR is not pleasant to look at
  • Driver description is not properly updated when switching back and forth between the currently active available and selected drivers treeviews
  • No progress bar when downloading files

:o I TALK A LOT!

Edited by Bâshrat the Sneaky
Link to comment
Share on other sites


In order to extend the list of supported drivers, can you add this one :

Driver and Megaraid Configuration Console for onboard IDE Raid controller version 3.10

Don't download the file (18.6 Mb), needed files sent to you by E-Mail.

below my working installation on Windows 2000 with MegaRAID version 3.0 and Adaptec Ultra160 version 6.1

TXTSETUP.OEM

####################################################################################
#
#This txtsetup.oem file can be used for unattended installs of Windows 2000 only.
#
####################################################################################
[Disks]
d3 = "LSI Logic MegaRAID IDE Driver",.\MEGAIDE,""
d4 = "Adaptec Ultra160 Family Driver",.\U160DSK1,""

[Defaults]
scsi = MegaIDE_NT5

[scsi]
MegaIDE100_NT5 =   "LSI Logic MegaRAID IDE 100 Driver With Backplane Support (Windows 2000)", MegaIDE
adpu160m = "Adaptec Ultra160 Family PCI SCSI Controller (Windows 2000)", adpu160m

# This section lists the files that should be copied if the user
# selects a particular component option.
#
# <file_type> is one of driver, port, class, dll, hal, inf, or detect.
#   See below.
# <source_disk> identifies where the file is to be copied from, and must
#   match en entry in the [Disks] section.
# <filename> is the name of the file. This will be appended to the
#   directory specified for the disk in the [Disks] section to form the
#   full path of the file on the disk.

[Files.scsi.MegaIDE100_NT5]
driver  = d3, MegaIDE.sys, MegaIDE
inf     = d3, MegaIDE.inf
inf = d3, Nodev.inf
catalog = d3, Mega2k.cat

[Files.scsi.adpu160m]
driver = d4,adpu160m.sys, aic7892
inf    = d4,adpu160m.inf
catalog = d4,adpu160m.cat

[HardwareIds.scsi.MegaIDE100_NT5]
id="PCI\VEN_1095&DEV_0649&SUBSYS_0649101E", "MegaIDE"

[HardwareIds.scsi.adpu160m]
id = "PCI\VEN_9005&DEV_008F","adpu160m"

[Config.MegaIDE]
value = "", Tag, REG_DWORD, 1

[Config.adpu160m]
value = "",tag,REG_DWORD,20

MEGAIDE.INF

; MegaIDE.Inf -- This file contains descriptions of the MegaRAID IDE Family
;
; Copyright (c) 1999 ...2000, LSI Logic Corporation.,
[Version]
signature="$CHICAGO$"
Class=SCSIAdapter
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Provider=%LSI%
CatalogFile=Mega2K.cat
DriverVer=06/17/2002,3.0.2002.0617

[Manufacturer]
%LSI%=LSI

[LSI]
%PCI\VEN_1095&DEV_0649&SUBSYS_0649101E.DeviceDesc%=MegaIDE,PCI\VEN_1095&DEV_0649&SUBSYS_0649101E
%PCI\VEN_1095&DEV_0649&SUBSYS_005D0E11.DeviceDesc%=MegaIDE,PCI\VEN_1095&DEV_0649&SUBSYS_005D0E11
%PCI\VEN_1095&DEV_0649&SUBSYS_007E0E11.DeviceDesc%=MegaIDE,PCI\VEN_1095&DEV_0649&SUBSYS_007E0E11

[MegaIDE.NT]
CopyFiles=MoveMiniPort.NT
AddReg=MegaIDE.reg.NT
Reboot

[MegaIDE.reg.NT]
HKLM,System\CurrentControlSet\Services\Disk,"TimeOutValue", 0x00010001, 0x1e

[MegaIDE.NT.Services]
AddService = MegaIDE, 2, MegaIDE_Service_Inst, Miniport_EventLog_Inst

[MegaIDE_Service_Inst]
ServiceType    = 1    ; SERVICE_KERNEL_DRIVER
StartType      = 0    ; SERVICE_BOOT_START
ErrorControl   = 1    ; SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\MegaIDE.sys
LoadOrderGroup = SCSI Miniport
AddReg         = pnpsafe_pci_addreg

;*************************************************************
;These addreg sections should be used when installins services to indicate
;which interface types are safe for PNP and which aren't.  INTERFACE_TYPE
;is defined in NTDDK.H

[pnpsafe_pci_addreg]
HKR, "Parameters\PnpInterface", "5", 0x00010001, 0x00000001
HKR, , "Tag", 0x00010001, 0x00000001

;*************************************************************
;The EventLog entries are the same for all SCSI miniports.
[Miniport_EventLog_Inst]
AddReg = Miniport_EventLog_AddReg

[Miniport_EventLog_AddReg]
HKR,,EventMessageFile,%REG_EXPAND_SZ%,%SystemRoot%"\System32\IoLogMsg.dll"
HKR,,TypesSupported,%REG_DWORD%,7

[DestinationDirs]
DefaultDestDir=12;
MoveMiniPort.NT = 12;

[SourceDisksFiles]
MegaIDE.sys = 1

[MoveMiniPort.NT]
MegaIDE.sys

[SourceDisksNames]
1 = %LSI_DRIVER_DISKETTE%,,,,

[strings]
LSI="LSI Logic Corporation."

PCI\VEN_1095&DEV_0649&SUBSYS_0649101E.DeviceDesc="LSI MegaRAID IDE 100 Controller"
PCI\VEN_1095&DEV_0649&SUBSYS_005D0E11.DeviceDesc="Integrated Ultra ATA-100 Dual Channel Controller"
PCI\VEN_1095&DEV_0649&SUBSYS_007E0E11.DeviceDesc="Integrated Ultra ATA-100 IDE RAID Controller"

LSI_DRIVER_DISKETTE="LSI MegaRAID IDE Driver Diskette"

;*******************************************
;Handy macro substitutions (non-localizable)
REG_EXPAND_SZ          = 0x00020000
REG_DWORD              = 0x00010001

ADPU160M.INF

;----------------------------------------------------------------
;
; OEMSETUP.INF -- This is a preliminary INF that installs support
;                 for the Adaptec PCI SCSI devices under Win 2000
;
; Copyright (c) 2002 Adaptec Incorporated
;
;----------------------------------------------------------------

;----------------------------------------------------------------
;
; [Version]
;
; Class and ClassGUID are defined in devguid.h
;
;----------------------------------------------------------------

[Version]
signature="$Windows NT$"
Class=SCSIAdapter
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Provider=%INF_PROVIDER%
CatalogFile=adpu160m.cat
DriverVer=05/14/2002,6.1.530.201


;----------------------------------------------------------------
;
; [SourceDisksNames]
;
; diskid = description[,[tagfile][,<unused>,subdir]]
;
;----------------------------------------------------------------
[SourceDisksNames]
1 = %FLOPPY_DESCRIPTION%,,,

;----------------------------------------------------------------
;
; [SourceDisksFiles.x86]
;
; filename_on_source = diskid[,[subdir][,size]]
;
;----------------------------------------------------------------
[SourceDisksFiles]
adpu160m.sys= 1,,,,,,,,

;----------------------------------------------------------------
;
; [Manufactuerer]
;
; manufacturer-name
; %strkey%=models-section-name
; [%strkey%=models-section-name] ...
;
;----------------------------------------------------------------
; Table of Contents
[Manufacturer]
%ADP%= ADAPTEC

;----------------------------------------------------------------
;
; [ControlFlags]
;
;----------------------------------------------------------------
[ControlFlags]
;
; Exclude the following PnP devices from Select Device list.
;
;ExcludeFromSelect = *

;----------------------------------------------------------------
;
; Models
;
; device-description=install-section-name,hw-id[,compatible-id...]
;
; "*" indicates that device is supported by more than one
;     enumerator.
;
;----------------------------------------------------------------
[ADAPTEC]
;**************************
; Adaptec Ultra160 SCSI Controllers
;
%PCI\VEN_9005&DEV_00C0.DeviceDesc% = adpu160m_Inst,PCI\VEN_9005&DEV_00C0
%PCI\VEN_9005&DEV_00C0&SUBSYS_F6209005.DeviceDesc% = adpu160m_Inst,PCI\VEN_9005&DEV_00C0&SUBSYS_F6209005
%PCI\VEN_9005&DEV_00C0&SUBSYS_F6200E11.DeviceDesc% = adpu160m_Inst,PCI\VEN_9005&DEV_00C0&SUBSYS_F6200E11

%PCI\VEN_9005&DEV_0080.DeviceDesc% = adpu160m_Inst,PCI\VEN_9005&DEV_0080

%PCI\VEN_9005&DEV_0080&SUBSYS_E2A09005.DeviceDesc% = adpu160m_Inst,PCI\VEN_9005&DEV_0080&SUBSYS_E2A09005
%PCI\VEN_9005&DEV_0080&SUBSYS_E2A00E11.DeviceDesc% = adpu160m_Inst,PCI\VEN_9005&DEV_0080&SUBSYS_E2A00E11
%PCI\VEN_9005&DEV_0080&SUBSYS_62A09005.DeviceDesc% = adpu160m_Inst,PCI\VEN_9005&DEV_0080&SUBSYS_62A09005
%PCI\VEN_9005&DEV_0080&SUBSYS_E2209005.DeviceDesc% = adpu160m_Inst,PCI\VEN_9005&DEV_0080&SUBSYS_E2209005

;**************************
; Adaptec Ultra160 ASIC's
;
%PCI\VEN_9005&DEV_00CF.DeviceDesc% = adpu160m_Inst,PCI\VEN_9005&DEV_00CF
%PCI\VEN_9005&DEV_008F.DeviceDesc% = adpu160m_Inst,PCI\VEN_9005&DEV_008F

;----------------------------------------------------------------
;
; Install
;
;----------------------------------------------------------------
[adpu160m_Inst.NT]
CopyFiles=@adpu160m.sys

;----------------------------------------------------------------
;
; Services
;
; Flag = 0x1 (SPSVCINST_TAGTOFRONT)
;        Make sure that device loads at
;        the front of its group
;
;----------------------------------------------------------------
[adpu160m_Inst.NT.Services]
AddService = adpu160m,0x2,adpu160m_Service_Inst,Miniport_EventLog_Inst,System,

[adpu160m_Service_Inst]
ServiceType    = 1    ; SERVICE_KERNEL_DRIVER
StartType      = 0    ; SERVICE_BOOT_START
ErrorControl   = 1    ; SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\adpu160m.sys
LoadOrderGroup = SCSI Miniport
AddReg         = pnpsafe_pci_addreg

[pnpsafe_pci_addreg]
HKR, "Parameters\PnpInterface", "5", 0x00010001, 0x00000001

;[num_of_requests]
HKLM,"SYSTEM\CurrentControlSet\Services\adpu160m\Parameters\Device","NumberOfRequests",0x10001,255

;----------------------------------------------------------------
;
; Event Log Install
;
;The NT EventLog entries are the same for all SCSI miniports.
;
;----------------------------------------------------------------
[Miniport_EventLog_Inst]
AddReg = Miniport_EventLog_AddReg

[Miniport_EventLog_AddReg]
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll"
HKR,,TypesSupported,0x00010001,7

;----------------------------------------------------------------
;
; [DestinationDirs]
;
; file-list-section=dirid[,subdir]] ...
;
;----------------------------------------------------------------
[DestinationDirs]
DefaultDestDir = 12            ; DIRID_DRIVERS (this is IOSubsys on
                             ; Win95, and System32\Drivers on NT)

;----------------------------------------------------------------
;
; [Strings]
;
;----------------------------------------------------------------
[Strings]
INF_PROVIDER="Adaptec"
ADP="Adaptec"
FLOPPY_DESCRIPTION="Windows 2000 Ultra160 Driver"

;**************************
; Adaptec Ultra160 SCSI Controllers
;
;
PCI\VEN_9005&DEV_00C0.DeviceDesc = "Adaptec SCSI Card 39160 - Ultra160 SCSI"
PCI\VEN_9005&DEV_00C0&SUBSYS_F6209005.DeviceDesc = "Adaptec SCSI Card 39160/3960D - Ultra160 SCSI"
PCI\VEN_9005&DEV_00C0&SUBSYS_F6200E11.DeviceDesc = "Adaptec SCSI Card 39160/3960D - Ultra160 SCSI"

PCI\VEN_9005&DEV_0080.DeviceDesc = "Adaptec SCSI Card 29160 - Ultra160 SCSI"
PCI\VEN_9005&DEV_0080&SUBSYS_E2A09005.DeviceDesc = "Adaptec SCSI Card 29160 Ultra160 SCSI"
PCI\VEN_9005&DEV_0080&SUBSYS_E2A00E11.DeviceDesc = "Adaptec SCSI Card 29160 Ultra160 SCSI"  
PCI\VEN_9005&DEV_0080&SUBSYS_62A09005.DeviceDesc = "Adaptec SCSI Card 29160N - Ultra160 SCSI"
PCI\VEN_9005&DEV_0080&SUBSYS_E2209005.DeviceDesc = "Adaptec SCSI Card 29160LP Low Profile Ultra160 SCSI"

;**************************
; Adaptec Ultra160 ASIC's
;
PCI\VEN_9005&DEV_008F.DeviceDesc = "Adaptec AIC-7892 - Ultra160 SCSI"
PCI\VEN_9005&DEV_00CF.DeviceDesc = "Adaptec AIC-7899 - Ultra160 SCSI"

TEXTMODE folder

ADPU160M.CAT
ADPU160M.INF
ADPU160M.SYS
MEGA2K.CAT
MEGAIDE
MEGAIDE.INF
MEGAIDE.SYS
NODEV.INF
TXTSETUP.OEM
U160DSK1

WINNT.SIF

[OEMBootFiles]
ADPU160M.SYS
ADPU160M.INF
ADPU160M.CAT
MegaIDE.sys
MegaIDE.inf
Mega2k.cat
nodev.inf
TXTSETUP.OEM
[MassStorageDrivers]
"LSI Logic MegaRAID IDE 100 Driver With Backplane Support (Windows 2000)" = "OEM"
"Adaptec Ultra160 Family PCI SCSI Controller (Windows 2000)" = "OEM"
"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller"=RETAIL

I will do some tests and reports the results.

Link to comment
Share on other sites

I can only say this: WOW! SUPERB work you've done there!

Still I have a couple of questions:

-If I well understood your (quite huge :P) post, RASOR doesn't look into the txtsetup.oem files for the necessary winnt.sif entries, but they're stored inside the program itself?

-Could you please add nVRAID support ASAP? As I can't get it to work for everyone with my DriverPack (but it does work for some... :s )

Keep on the good work!

Bâshrat the Sneaky

Link to comment
Share on other sites

Well, Im glad to see that people are interested in the program. Obviously there is a demand for nvRaid support. The difficulty with nvRaid lies in the fact that it actually makes two (2) [MassStorageDrivers] entries. I started working on the fix for it last night and I am about 40% done. I have rewritten the driver description files, something that is completely transparent to the user, but is more robust on the server side. I plan to have nvRaid in no later than 23:59 October 18th (aka midinight tomorrow). I haven't had any communication from rcordorica yet, and I don't have any hardware to test nvRaid on, so someone will need to do the test and tell me if it works.

@Bilou_Gateux: I see no reason why RASOR couldn't incorporate these drivers. However RASOR was designed with windows XP in mind and I don't know if it will work correctly for win2k. I also don't want to have win2k drivers mixed in to RASOR at this time, unless they are the same drivers for winXP. With the driverpack you are using, are the win2k and the winXP drivers the same? If they are then I will gladly integrate them as best I can.

@Bâshrat: RASOR doesn't look into the txtsetup.oem file for its information, but it does USE that information. What happens is I actually pull apart the txtsetup.oem file from the driver package and I rewrite it in a more generic way that RASOR can understand. This is the greatest strenght and also the greatest weakness of RASOR. It is the greatest strenght because the user has to do very little to make the drivers work, they just select them and they are integrated. It is the greatest weakness becuase I or someone else has to write and maintain these on a regular basis. When using M2 from an unattended CD you can only have one (1) txtsetup.oem file. So if you have more than one driver to integrate you have to manually marry the different txtsetup.oem files together. RASOR does this for you which I found could only be done reliably by hand (hence the reason I rewrite the txtsetup.oem files).

@Atlas95: YES! After you have repackaged the drivers you can totally delete the rasor files. You will not need them anymore. No registry or any other entries were made so it won't leave anything behind on your computer. Question: were you able to integrate drivers with RASOR? If yes, which ones?

I have been very busy because I have just accepted a position at a different company and I need to relocate to the East Coast (from the West Coast) by Nov.1 to start my job. I wanted to make sure to get RASOR out for people to use before that happens, but I am seriously looking for someone to help me on this project. If you know C# and/or XML and think you can pull apart txtsetup.oem's for M2 style driver integration please let me know. Actually if you understand txtsetup.oem's I can teach you how to convert them to RASOR's XML format.

Link to comment
Share on other sites

I wanted to make sure to get RASOR out for people to use before that happens, but I am seriously looking for someone to help me on this project.  If you know C# and/or XML and think you can pull apart txtsetup.oem's for M2 style driver integration please let me know.  Actually if you understand txtsetup.oem's I can teach you how to convert them to RASOR's XML format.

Although I don't know any C# or XML... I would really like to support you in this. XML won't be to hard, if I can get an example, I'll be able to do this.

But don't expect extremely fast and huge submits, I want to do everything a bit slower the coming week(s), because I've put very, very much work in the DriverPacks.

You can add me to your contact list if you want.

Bâshrat the Sneaky

Link to comment
Share on other sites

So I'm a few minutes late :P !

Rasor Alpha3 came online this evening and just a few minutes ago I put a definition for nvRaid for people to test. I don't have a MB with nvRaid on it to test with so I'm trying my best. rcordorica...where are you? There was a minor change from the older nForce and I wasn't quite sure how to deal with it, so if this one doesn't work I will put it up a different way. PLEASE TEST.

Ohhh and the nvraid package is ~900K so you will wait a bit for it to download. Download progress bar is on my list of revisions, but not until nvRaid works.

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...