Novell is now a part of Micro Focus

NSBS 5 Install Magic: Loading the CD-ROM Device Driver

Novell Cool Solutions: Feature
By Sandy Duncan

Digg This - Slashdot This

Posted: 11 Feb 2000
 

Anyone examining the autoexec.bat of the NSBS 5 license diskette will discover that it is loading device drivers after the initial boot sequence. This is puzzling to a lot of people because it is backwards from the usual order, and we thought it would be a good idea to explain why it works that way, and offer some things you can try if it's not working well for you.

Introduction

Device drivers are special programs that accompany hardware that is added to the computer. For example, when you add a printer to your computer you have to add a printer driver, when you add a scanner, you add a scanner driver. Every device, whether it be a printer, CD-ROM, disk drive, or keyboard, must have a driver. Many drivers, such as the keyboard driver, come with the operating system. For other devices, you may need to load a new driver when you connect the device to your computer. In Windows environments, drivers often have a .DRV extension.

A driver acts like a translator between the device and programs that use the device. Each device has its own set of specialized commands that only its driver knows. In contrast, most programs access devices by using generic commands. The driver, therefore, accepts generic commands from a program and then translates them into specialized commands for the device.

In DOS, device drivers are usually loaded from the config.sys. The reason everyone does it that way is so that the device drivers can be loaded before the machine loads the operating system. In that way, the operating system can interact with a device that is already in place. If we loaded device drivers in the NSBS 5 product before the machine loads the operating system, our users would have to answer a lot of questions during the installation process about the devices in their machines. Because NSBS 5 is all about being easy enough for anyone to install and use, we went a different direction with it.

How Device Drivers are loaded in NSBS 5

Part of the charter for the Novell Small Business team was to create an install that anyone could use without having to enter a lot of information. We needed to create an install that could run on virtually any computer that met the basic requirements for running the Small Business software. In order to do that, we had to have a way of discovering exactly what CD-ROM hardware was in the machine and then loading the necessary driver without user intervention.

The solution for us was to load device drivers after the operating system came up. So the first thing that happens is we load DR DOS, then we begin a process of discovering what CD-ROM is in the machine. This is not an extremely elegant process: the batch file calls a program by the name of loddvc.com using the name of one of the many device drivers included in the \drivers directory on the diskette. It's a simple process of elimination, as the batch file works its way through the list. When a driver successfully loads, the install process proceeds.

Now while this makes this very easy for most people, there are some times when it doesn't go quite that smoothly. When device drivers are loaded in this way, we have to use some undocumented BIOS and DOS calls, so it doesn't always work. These undocumented calls are put in by Microsoft and the manufacturers of the different BIOSs, and they are free to change them at any time. We code the very beginning of the Install to work with the BIOS and DOS calls as they existed when we were creating our software, but if the manufacturers ever change those calls, this can present problems for the installer.

All of which is to say, the magic works most of the time. But if you are installing on unusual equipment or equipment that has a special (or revised) BIOS in it, the installation may not work for you. (It won't be able to continue installing. You may see an error like, "Bad or Missing CD-ROM).

Here's what to do if it's not working for you.

Four Things to Try (if the magic doesn't work)

Here are four things you can try if you're installing on something unusual.

  1. Create your own config.sys

    The most obvious work-around is to edit the existing config.sys on the NSBS boot diskette using a device driver that you know will work in the machine you are working with. This, of course, requires that you know enough about the machine and the CD-ROM and have the driver. If you add a driver line to the config.sys, you must, of course, copy the driver itself to the diskette. Then you will need to edit the autoexec.bat and find the line that says rem goto skip_ldrvrs; remove the rem and save the file.

    To add device driver directions to the config.sys, edit the config.sys with any text editor. (Important: be sure not to use a word processor like Word Perfect or Word. You could use Wordpad, or some such thing.) Following the model that we have set up on the boot diskette, you would add a line such as:

    DEVICE=A:\DRIVERS\IDE\MYDRIVER.SYS.

    (Note: It isn't a requirement that you put the driver in the drivers directory, but it's a tidy way to do it. This way you can keep all the drivers in the same directory. Suit yourself...)

    Here's what you do:

    1. Copy the device driver into a directory, preferably the \DRIVERS directory. Whether it is in the IDE or ASPI will depend on whether you have an IDE or a SCII drive.
    2. Edit the config.sys to add the device= line.
    3. Edit the autoexec.bat as indicated above.
    4. Then you can boot the machine with the altered diskette and proceed normally.

  2. Edit the list of drivers (ldrvrs.bat)

    One of the problems that occasionally comes up is that attempting to load the wrong driver will cause some CD-ROM devices to hang. (Some CD-ROM devices don't like you to guess wrong during the process of elimination.)

    The workaround in this case is a little more difficult. You can look in the ldrvrs.bat at the order in which we attempt to load the drivers. If you see a driver that you think SHOULD work, put it first in the list, by cutting and pasting. Don't worry that you might mess something up by rearranging the order. There is nothing special about the order we chose. We found that most IDE drives will run with the AOATAPI.SYS so we attempt that one first. Then we attempt to load drivers in the order that we discovered to cause the least trouble in our own testing.

    For Example

    Supposing you wanted to load the TOSH_IDE.SYS first. You would open the ldrvrs.bat in a text editor and highlight the last entry and move it to the top of the list. Be sure to include the if not errorlevel ... line.

    Then paste the entry into the file so it is the first entry. like this:

    Now start the Installation again.

  3. Make sure you're using the right driver manager

    Be aware that SCSI drives, unlike IDE drives, require two pieces: the actual driver and the driver manager. The ASPI standard was created to eliminate some of the problems with multiple SCSI standards, but some SCSI drives still require machine specific managers (notably Compaq: FWS2ASPI.SYS (actual driver) + FWS2CD.SYS (manager) ). If you think this might be your problem, check with the manufacturer of your computer or the CD-ROM.

  4. Find the right driver somewhere else

    There are some machines/CD-ROMs for which none of the shipping drivers will work. In this case you must find a CD-ROM driver for the device and create a config.sys and make the necessary change to the autoexec.bat. Note that it must be a DOS driver and not a Windows driver.

    As we said before, CD-ROM drivers are made freely available by CD-ROM manufacturers, in the hopes that you'll find it convenient to buy and use their products. Some good websites to check are:

Drivers Included in NSBS 5

In case you're wondering exactly which drivers we include with NSBS 5, here's a handy list.

 

IDE DRIVERS: (FOR IDE DEVICES)

Name

filesize

created on

created at

NEC_IDE SYS

21,669

02/18/94

12:05p

NEC2IDE SYS

23,460

03/30/95

03:07p

MTMCDAI SYS

16,276

06/10/96

01:53a

AOATAPI SYS

32,452

07/05/96

08:56a

TOSH_IDE SYS

18,295

12/11/97

11:18a

 

 

 

ASPI DRIVERS: (FOR SCSI DEVICES)

Name

filesize

created on

created at

AMSIDA.SYS

27,029

04/22/96

02:02a

ASPIEDOS.SYS

10,720

11/11/96

04:01a

ASPI8DOS.SYS

37,552

08/12/97

04:02a

ASPI2DOS.SYS

35,340

08/12/97

04:02a

ASPI4DOS.SYS

14,324

08/12/97

04:02a

ASPI7DOS.SYS

36,160

08/12/97

04:02a

MA358.SYS

12,316

08/12/97

04:02a

FWS2ASPI.SYS

46,253

10/20/97

12:00p

ASPI8U2.SYS

40,780

12/03/97

10:51a

ASPI Manager

ASPICD.SYS; 29,628; 08/12/97; 04:02a
This manager works with all the ASPI drivers in this directory.

(Note: Rumor has it that Compaq has recently released a FWS2ASPI.SYS that seems to require their own FWS2CD.SYS manager.)

For More Information

For more info about the steps and prerequisites for server installation, see the NSBS Installation and Administration Guide

About the Author

Sandy Duncan has worked for Novell for over twelve years. She has been on the Novell Small Business team since 1998. She enjoys programming in Assembly but has resigned herself to programming in C, in order to work on such a fun project, and discovered that it's not a bad language after all!


Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com

© Micro Focus