diff --git a/LDP/howto/docbook/HOWTO-INDEX/howtoChap.sgml b/LDP/howto/docbook/HOWTO-INDEX/howtoChap.sgml
index 3c8febe2..ae0b2668 100644
--- a/LDP/howto/docbook/HOWTO-INDEX/howtoChap.sgml
+++ b/LDP/howto/docbook/HOWTO-INDEX/howtoChap.sgml
@@ -1984,7 +1984,7 @@ nfs server attached by a Null-Modem parallel cable.
Plug-and-Play-HOWTO,
The Linux Plug-and-Play HOWTO
-Updated: August 2001.
+Updated: March 2002.
How to get your Linux system to support Plug-and-Play.
@@ -2314,7 +2314,7 @@ Addresses Linux localization issues specific to Serbian users
Serial-HOWTO,
Serial HOWTO
-Updated: November 2001.
+Updated: March 2002.
Describes serial port features other than those which should be
covered by other HOWTOs. Lists information on multiport serial cards
and contains detailed technical information about the serial port
diff --git a/LDP/howto/docbook/HOWTO-INDEX/hwSect.sgml b/LDP/howto/docbook/HOWTO-INDEX/hwSect.sgml
index 19257087..1afbf63c 100644
--- a/LDP/howto/docbook/HOWTO-INDEX/hwSect.sgml
+++ b/LDP/howto/docbook/HOWTO-INDEX/hwSect.sgml
@@ -999,7 +999,7 @@ SCSI-Generic-HOWTO for more current information.
Serial-HOWTO,
Serial HOWTO
-Updated: November 2001.
+Updated: March 2002.
Describes serial port features other than those which should be
covered by other HOWTOs. Lists information on multiport serial cards
and contains detailed technical information about the serial port
@@ -1257,7 +1257,7 @@ How to install and use PCMCIA Card Services for Linux.
Plug-and-Play-HOWTO,
The Linux Plug-and-Play HOWTO
-Updated: August 2001.
+Updated: March 2002.
How to get your Linux system to support Plug-and-Play.
diff --git a/LDP/howto/linuxdoc/Plug-and-Play-HOWTO.sgml b/LDP/howto/linuxdoc/Plug-and-Play-HOWTO.sgml
index 889f46fa..a2f2ae33 100644
--- a/LDP/howto/linuxdoc/Plug-and-Play-HOWTO.sgml
+++ b/LDP/howto/linuxdoc/Plug-and-Play-HOWTO.sgml
@@ -3,13 +3,15 @@
Plug-and-Play-HOWTO David S.Lawyer
- v1.03, August 2001
+ v1.04, March 2002
Help with understanding and dealing with the complex Plug-and-Play
(PnP) issue. How to get PnP to work on your PC (if it doesn't already).
It doesn't cover what's called "Universal Plug and Play"
-(UPnP). See
@@ -57,18 +59,18 @@ provided that you:
If it's not a translation: Email a copy of your derivative work
- (in a format LDP accepts) to the author(s) and maintainer (could be
- the same person). If you don't get a response then email the LDP
- (Linux Documentation Project): submit@linuxdoc.org.
+ (in a format LDP accepts) to the author(s) and maintainer (could be
+ the same person). If you don't get a response then email the LDP
+ (Linux Documentation Project): submit@linuxdoc.org.
License the derivative work in the spirit of this license or use
- GPL. Include a copyright notice and at least a pointer to the
+ GPL. Include a copyright notice and at least a pointer to the
license used.
Give due credit to previous authors and major contributors.
If you're considering making a derived work other than a
translation, it's requested that you discuss your plans with the
-current maintainer.
+current maintainer.
Disclaimer
While I haven't intentionally tried to mislead you, there are
@@ -84,12 +86,12 @@ be a trademark). Such trademarks belong to their respective owners.
Credits
-
- Daniel Scott proofread this in March 2000 and found many
+
+ Daniel Scott proofread this in March 2000 and found many
typos, etc.
Pete Barrett gave a workaround to prevent Windows from zeroing
PCI IRQs.
-
+ Future Plans; You Can Help
Please let me know of any errors in facts, opinions, logic,
@@ -112,21 +114,23 @@ url="http://linuxdoc.org/mirrors.html">. Various formats are
available. If you only want to quickly check the date of the latest
version look at: . The
-version you are now reading is: v1.03, August 2001 .
+version you are now reading is: v1.04, March 2002 .
New in Recent Versions
+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,
+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
-improvements needed in both this HOWTO and the way that Linux does
+improvement needed in both this HOWTO and the way that Linux does
PnP.
General Introduction. Do you need this HOWTO?
@@ -135,7 +139,7 @@ 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.
+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
@@ -148,12 +152,32 @@ 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 conform to PnP specs.
+hardware that doesn't fully conform to PnP specs.
What PnP Should Do: Allocate "Bus-Resources"
What is Plug-and-Play (PnP)?
@@ -198,7 +222,7 @@ there are a number of devices such as various kinds of disk-drives, a
video card, a keyboard, network cards, modem cards, sound cards, the
USB bus, serial and parallel ports, etc. There is also a power supply
to provide electric energy, various buses on a motherboard to connect
-the devices to the CPU, and a case to put all this into.
+the devices to the CPU, and a case to put all this into.
In olden days most all devices had their own plug-in cards (printed
circuit boards). Today, in addition to plug-in cards, many "devices"
@@ -212,15 +236,19 @@ control of its "device driver". This is software which is a part of
the operating system (perhaps loaded as a module) and runs on the CPU.
Device drivers are associated with "special files" in the /dev
directory although they are not really files. They have names such as
-hda1 (first partition on hard drive a), ttyS0 (the first serial port),
-eth1 (the second ethernet card), etc. To make matters more
-complicated, the particular device driver selected, say for eth1, will
-depend on the type of ethernet card you have. Thus eth1 can't just be
-assigned to any ethernet driver. It must be assigned to a certain
-driver that will work for the type of ethernet card you have
-installed. For modules, some of these assignments might be found in
-/etc/modules.conf (called "alias") while others may reside in an
-internal kernel table.
+hda3 (third partition on hard drive a), ttyS1 (the second serial port),
+eth0 (the first ethernet card), etc.
+
+To make matters more complicated, the particular device driver
+selected, say for example eth0, will depend on the type of ethernet
+card you have. Thus eth0 can't just be assigned to any ethernet
+driver. It must be assigned to a certain driver that will work for
+the type of ethernet card you have installed. If the driver is a
+module, some of these assignments might be found in /etc/modules.conf
+(called "alias") while others may reside in an internal kernel table.
+For example, if you have an ethernet card that uses the "tulip" chip
+put "alias eth0 tulip" into /etc/modules.conf so that when your
+computer asks for eth0 it finds the tulip driver.
To control a device, the CPU (under the control of the device driver)
sends commands (and data) to and reads info from the various devices.
@@ -238,7 +266,7 @@ device. Also, there is a reverse part of the channel (known as
interrupts) which allows devices to send an urgent "help" request to
their device driver.
- Addresses
+ Addresses
PCs have 3 address spaces: I/O, main memory (IO memory), and
configuration (except that the old ISA bus lacks a "configuration"
address space). All of these 3 types of addresses share the same bus
@@ -257,10 +285,10 @@ range" are also used. Don't confuse these IO ports with "IO memory"
located in main memory. There are two main steps to allocate the I/O
addresses (or other bus-resources such as interrupts):
-
- Set the I/O address, etc. on the card (in one of its registers)
+
+ Set the I/O address, etc. on the card (in one of its registers)
Let its device driver know what this I/O address, etc. is
-
+
The two step process above is something like the two part problem of
finding someone's house number on a street. Someone must install a
@@ -279,7 +307,7 @@ to a serial port without realizing that this only tells the driver an
address. It doesn't set the address in the serial port hardware
itself. If the serial port hardware doesn't have the address you told
setserial (or doesn't have any address set in it) then you're in
-trouble.
+trouble.
An obvious requirement is that before the device driver can use an
address it must be first set on the physical device (such as a card).
@@ -311,7 +339,7 @@ is shared between the device and the CPU (running the device driver)
just as IO address space is shared between the device and the CPU.
This shared memory serves as a means of data "transfer" between the
device and main memory. It's IO but it's not done in IO space. Both
-the card and the device driver need to know where it is.
+the card and the device driver need to know where it is.
ROM is different. It is likely a program (perhaps a device driver)
which will be used with the device. It could be initialization code
@@ -319,7 +347,7 @@ so that a device driver is still required. Hopefully, it will work
with Linux and not just MS Windows ?? It may need to be shadowed
which means that it is copied to your main memory chips in order to
run faster. Once it's shadowed it's no longer "read only".
- IRQs --Overview