Copyright (c) 1998-2001 by David S. Lawyer mailto:dave@lafn.org
Please freely copy and distribute (sell or give away) this document in any format. Send any corrections and comments to the document maintainer. You may create a derivative work and distribute it provided that you:
If you're considering making a derived work other than a translation, it's requested that you discuss your plans with the current maintainer.
While I haven't intentionally tried to mislead you, there are likely a number of errors in this document. Please let me know about them. Since this is free documentation, it should be obvious that I cannot be held legally responsible for any errors.
Any brand names (starts with a capital letter) should be assumed to be a trademark). Such trademarks belong to their respective owners.
Please let me know of any errors in facts, opinions, logic, spelling, grammar, clarity, links, etc. But first, if the date is over a month old, check to see that you have the latest version. Please send me any info that you think belongs in this document.
I haven't studied the code used by various Linux drivers to implement Plug-and-Play. Nor do I fully understand how PnP is configured by the BIOS (it depends on which BIOS) nor how Windows9x updates the ESCD. Thus this HOWTO is still incomplete and may be inaccurate (let me know where I'm wrong). In this HOWTO I've sometimes used ?? to indicate that I don't really know the answer.
New versions of the Plug-and-Play-HOWTO should appear every couple of months or so and will be available to browse and/or download at LDP mirror sites. For a list of mirror sites see: http://linuxdoc.org/mirrors.html. Various formats are available. If you only want to quickly check the date of the latest version look at: http://linuxdoc.org/HOWTO/Plug-and-Play-HOWTO.html. The version you are now reading is: v1.04, March 2002 .
v1.04 March 2002 finding a device driver, PCI serial ports, alias example in modules.conf, PnP needed for linmodems v1.03 August 2001: error messages, boot-prompt parameters v1.02 July 2001: PCI config regs. v1.01 April 2001: less shortage today of bus-resources, clarity in sect. 2, Windows 2000 OK (even if "not a PnP OS" in CMOS) v1.01 April 2001: less shortage today of bus-resources, clarity in sect. 2, Windows 2000 OK (even if "not a PnP OS" in CMOS)
The version 1.0 (Nov. 2000) was long overdue and recognized that the kernel is doing more in helping device drivers set up PnP. Kernel 2.4 is significantly improved in this respect. There's still a lot of improvement needed in both this HOWTO and the way that Linux does PnP.
Plug-and-play (PnP) is a system which automatically detects PC devices such as disks, sound cards, ethernet cards, modems, etc. It also does some low-level configuring of them. To be detected by PnP, the device must be designed for PnP. Non-PnP devices (or PnP devices which have been correctly PnP-configured), can often be detected by non-PnP methods.
While the Linux kernel has no centralized plug-and-play system, it does provide programs which various device drivers can use to do their own plug-and-play. Many drivers take advantage of this and find your PnP devices OK. The BIOS hardware of your PC likely may also do some plug-and-play work. Thus if everything works OK PnP-wise, you can use your computer without needing to know anything about plug-and-play. But if some devices which are supported by Linux don't work (because they not discovered or configured correctly by PnP) then you may need to read some of this HOWTO. You'll learn not only about PnP but also something about how communication takes place inside the computer.
If you're having problems with a device, first check to see that you
have the right driver for a device, and that the driver is being found
and used. If the driver is a module, type "lsmod" (as the root user)
to see it it's loaded (in use). If it's not a module then it should
be built into the kernel. There should be a file somewhere that tells
what drivers are built into the kernel: (such as: /boot/config-2.4-20
in Debian). Sometimes a device name (such as /dev/eth0) doesn't get a
driver assigned to it unless the assignment is found in the file:
/etc/modules.conf: For example, to assign the "tulip" driver to eth0
you add a line to this file:
alias eth0 tulip
This HOWTO doesn't cover the problem of finding and installing device drivers. Perhaps it should. One problem is that a certain brand of a card (or other physical device) may not say what kind of chips are used in it. The driver name is often the same as the chip name and not the brand name. One way to start to check on a driver is to see if it is discussed in the kernel documentation, in another HOWTO, or on the Internet. Warning: Such documentation may be out of date.
In this document I mention so many things that can go wrong that one who believes in Murphy's Law (If something can go wrong it will) may become quite alarmed. But for PnP for most people: If something can go wrong it usually doesn't. Remember that sometimes problems which seem to be PnP related are actually due to defective hardware or to hardware that doesn't fully conform to PnP specs.