[PLUG] Hardware Detection, ISA-PNP, PCI (and Debian GNU/Linux)

Karl M. Hegbloom karlheg at pdxlinux.org
Tue Sep 17 20:22:47 UTC 2002


On Tue, 2002-09-17 at 11:24, Josh Zeckser wrote:
> I don't remember where, but I thought I read something about a Linux
> distro that was based on Debian, including the wonderful apt-get system,
> the major difference being that it would automatically detect all of
> your hardware accurately.

You heard about Progeny (Built on Strength).  All of the stuff they
developed is now part of the main Debian distribution.  For hardware
detection, they snagged "detect" (GPL) from Mandrakesoft.  There must
have been some problems with working together with them on it, or
perhaps Mandrake had dropped development -- iirc, Mandrake has switched
to "kudzu" -- at any rate, Progeny renamed "detect" to "discover" and
has done some further development of it.

"discover"'s advantage over kudzu is that it's designed as a command to
be used inside a script, so you have more control over the module
loading, etc.  In the unix tradition, it's a modular peice of the
overall solution, rather than a monolithic hard coded one program does
it all.  The disadvantage, vs kudzu, is that it no longer has any
support for legacy ISA PNP detection.  That support was dropped at one
point a few versions back.

# apt-get install discover

... and see if that does what you want.  It supports only PCI, not
isa-pnp.  If you need hardware detection for isa-pnp, you can:

# apt-get install kudzu

... and for sound cards:

# apt-get install sndconfig

... but be aware that those are not fully integrated with Debian at this
point, so you may need to add the things it detects to "/etc/modules" by
hand.

# apt-get install hotplug

... for hotplug support.  It works very well with my USB devices, and
also knows how to bring up a "tuntap" interface (for user mode linux)
when "tunctl -u karlheg" is run.  AFAIK, it also supports the PCI
hotplug too.

The now obsolete isa-pnp is not perfect.  I've found, for instance, that
sometimes the 3c509 NIC driver will think that a Soundblaster card is a
network card.  The solution was to put "sb" and "opl3" first in
"/etc/modules", so that they get loaded BEFORE the 3c509.  There may be
similar issues with other sets of ISA PNP hardware + drivers.

The thing is that ISA was not designed with automated hardware detection
in mind.  They didn't need that, since when you bought an add-in card,
it came with a driver diskette.  You always had the driver for the card
when you bought the card.  Now though, with Linux, the drivers are all
in the kernel source, to support these old cards and to support them
with Linux, not Windows or DOS.  The similar thing happened with
Windows, where there are drivers included with the OS.

So, at some point, they began trying to make it possible for software to
automaticly detect the hardware so it can select a driver module. 
ISA-PNP (plug and play) arose out of that need.  It does not work very
well, and when they created PCI, they improved on the design, and now
with PCI, device detection is much simpler and more fool proof.

Now it can look up, in a ROM on the card itself, the card's ID, and use
that as a key into a table that maps cards to driver modules.  The
modules themselves can get parameter information right from the card in
a specified way.  "specified", as opposed to "ad hoc", where each
manufacturer may have a different scheme for storing that information,
if it's even available on the card at all.

Plug and play monitors can tell software their scan frequency's and
video mode capability information, so that the X Window System (or
Windows 95) can gather that data directly from the monitor.  This is a
lot better than requiring a database of monitor types, which must be
maintained.  The situation is analogous to the hosts.txt vs DNS problem,
where decentralizing the maintenance of the domain name to IP mapping
solves the scalability problem.  Now when a new model of monitor comes
out, no centrally maintained database need be updated.





More information about the PLUG mailing list