	ISA PnP utilities Installation
	==============================

        $Id: INSTALL,v 0.8 1999/12/02 22:51:33 fox Exp $

Note that isapnptools no longer requires pciutils as of version 1.18.

Prerequisites
=============
To compile isapnptools for linux, you will require gcc and flex.
gcc should ideally be 2.7.2.x; avoid 2.8.x. You may get away
with 2.95.x, though I've not tried this.

If you are using libc5, you will need kernel 2.0.x, and
the /usr/include/linux and /usr/include/asm set up correctly.
You cannot build using libc5 with kernels 2.2.x or later.

If you are using libc6 (glibc) you should be ok building
if your kernel is 2.0.x or 2.2.x.

I use gcc-2.7.2.3, flex 2.5.4 and libc-5.4.44 on kernel 2.0.37.

For building the DOS version, see README.DOS.

1) Edit the makefile to suit local conditions.
---------------------------------------------
Note that these will depend on your library versions. The
Makefile as supplied is for libc-5.4.44. If you have a newer
library, then some of the syscalls may already be provided
in the library, so remove the appropriate -D.
For example: If you get an error message such as

pnpdump.c:29: conflicting types for 'nanosleep'
usr/include/time.h:122: previous declaration of 'nanosleep'
make: *** [pnpdump.o] Error 1

then you need to remove the -DNEEDSNANOSLEEP from the PNPFLAGS
line in the Makefile. (This has already been done now, but
a similar comment applies to the other system calls added).

2) As anyone,
------------
make

to make the programs isapnp and pnpdump.

3) As root,
-----------
make install

or if you prefer, just make install.man or install.bin
if you do this, you'll need to copy the isapnp.gone
file to /etc manually.

4) Read the manual pages, particularly isapnp.conf.5.
-----------------------------------------------------

5) Edit the /etc/isapnp.gone file:
----------------------------------
to specify resources that are unavailable. Typically these will be
identifiable by entering the BIOS and writing down the information you
find there.

6) Run pnpdump to generate an isapnp.conf file:
-----------------------------------------------
pnpdump > /etc/isapnp.conf

pnpdump can optionally take up to two command line parameters,
see the manual page for details.

It can also take the option --config which makes it
attempt to produce a preconfigured configuration file,
see the manual page for details. If you got the entries
in /etc/isapnp.gone correct, the output file should
not require editting, and you will be able to skip the
next step, though you may still want to check it.

7) Edit the isapnp.conf file to place the device(s)
---------------------------------------------------
where your driver(s) expect. This is where step 4 would have
been useful.

If you are configuring a sound card read the FAQ section. In
fact, read the appropriate FAQ section anyway.

The purpose of this step is to insert/correct the resource assignments
in the isapnp.conf file so that the ISA PnP devices are all configured
without their resource allocations conflicting with any other devices.

The comments below assume you ran pnpdump without the --config
flag. If you did, then you will need to check the allocations don't
conflict with existing hardware whether or not it was in use at the
time you ran pnpdump.

a) All configuration information is commented out, so uncomment
the lines beginning with '# (' that you want to use.

Uncommenting lines has the same function as moving jumpers on a
non-PnP card. Generally, for each logical device you will want to
uncomment one each of the resources, and maybe change the value for
the resource within the range of the comments immediately above, such
that when you've finished there are no conflicts. You may also need to
tell the device driver the settings... (sorry, device/distribution specific).

b) If the resource data specified a range of values, then only
the first will be put in the config entry. This should be editted
to suit.

c) DON'T FORGET to uncomment the (ACT Y) at the end of the logical
device entry if you want the device enabled !

If you have a working Win95 setup, you might like to edit the
resource allocation while running Win95, so you can check the
resource allocation under My Computer -> Properties -> Device
Manager -> etc etc. See README.DOS.

To see what resources are already in use by the kernel, try
the following commands:

dmesg  | grep -i irq
cat /proc/interrupts

If you want to see what has been configured, without the noise
of the comments, grep out the comments etc thus:

cat isapnp.conf | grep -v '^#' | grep '[^ 	]' | less

where there is a tab and a space in the square brackets above.

8) Run isapnp
-------------
on the isapnp.conf file to check it has no errors. I should
sync the disks before you do this one if you have SCSI disks
or IDE disks on an ISA PnP expansion card, in case you reset
them.

9) Do whatever is necessary to initialise the device drivers:
-------------------------------------------------------------
run setserial, or insmod the drivers. Check they work.
Refer to the README, README.modules and README.ide for more details.

10) Edit the system bootup scripts
---------------------------------
to run isapnp and install the drivers etc as above.

11) Problems
------------
If you have any problems, please look at the isapnptools home
page at

http://www.roestock.demon.co.uk/isapnptools/

and read the FAQ available in the distribution, or get the latest at

http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.html

first. This has additional examples to the various READMEs
contained in the distribution, and pointers to other help
available.

See also your Linux distribution's support documentation.

11) How you can help others
---------------------------
If you have an example configuration file, or new hardware
drivers etc, which would be of assistance to others, don't keep
them to youselves, please send them, or pointers to them, to

isapnp@roestock.demon.co.uk

so that I can include them in the FAQ, thanks.

Also, if you have successfully configured a PnP device that is not
listed in the Hardware-HOWTO, please notify the maintainer, as it
requests.

Peter Fox
14-Feb-99
