April 22, 2019

New HOWTO: Plug-and-Play-HOWTO - page 5

Table of Contents

  • April 26, 2001
  4.  Setting up a PnP BIOS

  When the computer is first turned on, the BIOS runs before the
  operating system is loaded.  Modern BIOSs are PnP and can configure
  some or all of the PnP devices.  Here are some of the choices which
  may exist in your BIOS's CMOS menu:

  �  ``Do you have a PnP operating  system?''

  �  ``How are bus-resources to be controlled?''

  �  ``Reset the configuration?''

  4.1.  Do you have a PnP operating system?

  In any case the PnP BIOS will PnP-configure the hard-drive, video
  card, and keyboard to make the system bootable.  If you said you had a
  PnP OS it will leave it up to the operating system (or device drivers)
  to finish the configuration job.  If you said no PnP OS then the BIOS
  should configure everything.  If you only run Linux on your PC, you
  should probably tell it truthfully that you don't have a PnP operating
  system If you also run MS Windows on your PC and said it was a PnP OS
  when you installed Windows, then you might try saying that you have a
  PnP OS to keep Windows 95/98 happy (but it might cause problems for
  Linux.  For Windows 2000 it's claimed that Windows worked OK even if
  you say you don't have a PnP OS.  In this case Windows 2000 will
  report finding new hardware (even though it already knew about the
  hardware but didn't know how the BIOS Pnp-configured it).

  If you say you have a PnP OS then you rely on the Linux device drivers
  and possibly the program isapnp to take care of the bus-resource
  configuring.  This often works OK but sometimes doesn't.  Fibbing to
  Linux this way has sometimes actually fixed problems.  This could be
  because the BIOS didn't do it's job right but Linux alone did.

  If you tell the BIOS you don't have a PnP OS, then the BIOS will do
  the configuring itself.  Unless you have added new PnP devices, it
  should use the configuration which it has stored in its non-volatile
  memory (ESCD).  See ``The BIOS's ESCD Database''.  If the last session
  on your computer was with Linux, then there should be no change in
  configuration.  See ``BIOS Configures PnP''.  But if the last session
  was with Windows9x (which is PnP) then Windows could have modified the
  ESCD.  It supposedly does this only if you "force" a configuration or
  install a legacy device.  See ``Using Windows to set ESCD''.  Device
  drivers that do configuring may modify what the BIOS has done.  So
  will the isapnp or PCI Utilities programs.

  4.1.1.  Interoperability with Windows

  If you are running both Linux and Windows on the same PC, how do you
  answer the BIOS's question: Do you have a PnP OS?  Normally (and
  truthfully) you would say no for Linux and yes for Windows.  If you're
  truthful, everything should work OK.  But it's a lot of bother to have
  to set up the BIOS's CMOS menu manually each time you want to switch
  OSs.  To fix this you need to fib about either Linux or Windows.  If
  you fib, everything may not work OK but probably can (with some
  effort) be made to work OK.

  If you intend on fibbing, should you tell the truth about Windows or
  Linux?   This depends on how good your Linux of Windows is about
  configuring itself if you fib about it.  Both Windows 2000 and Linux
  seem to be getting better about coping with such fibs.

  4.1.2.  If you say that you have a PnP OS, then Linux may work OK if
  all the drivers and isapnp (if you use it) are able to configure OK.
  Perhaps updating of the Linux OS and/or drivers will help.  Fibbing to

  4.1.3.  Fibbing to Windows9x

  Another solution is to set the CMOS for no PnP OS, including when you
  start Windows.  Now you are fibbing to Windows and since Windows is
  seemingly much more sophisticated in handling PnP.  One would expect
  Windows9x to be able to cope with with hardware that has been fully
  configured by the BIOS but it can't.  But it's reported that Windows
  2000 can cope with this.  One might expect that even if Windows9x
  didn't realize that the hardware was already configured, it would set
  the configuration of the physical devices per it's registry and then
  then everything would work OK.

  But it doesn't seem to happen this way.  It seems that Windows9x may
  just tell its device drivers what has been stored in the Windows'
  Registry.  But the actual hardware configuration (done by the BIOS) is
  what was stored in the ESCD and may not be the same as the Registry =>
  trouble.  So for Windows to work OK you need to get the Registry to
  contain the bus-resource configuration which the BIOS creates from the

  One way to try to get the Registry and the ESCD the same is to install
  (or reinstall) Windows when the BIOS is set for "not a PnP OS".  This
  should present Windows with hardware configured by the BIOS.  If this
  configuration is without conflicts, Windows will hopefully leave it
  alone and save it in it's Registry.  Then the ESCD and the registry
  are in sync.  If this works for you (and this is the latest version of
  this HOWTO), let me know as I only have one report of this working out

  Another method is to remove devices that are causing problems in
  Windows by clicking on "remove" in the Device Manager.  Then reboot
  with "Not a PnP OS" (set it in the CMOS as you start to boot).
  Windows will then reinstall the devices, hopefully using the bus-
  resource settings configured by the BIOS.  Be warned that Windows will
  likely ask you to insert the Window installation CD since it sometimes
  can't find the driver files (and the like) even though they are still
  there.  A workaround for this is to select "skip file" and continue.

  As a test I "removed" a NIC card which used a Novell compatible
  driver.  Upon rebooting, Windows reinstalled it with Microsoft
  Networking instead of Novell.  This meant that the Novell Client
  needed to be reinstalled --a lot of unnecessary work.

  4.1.4.  Fibbing to Windows 2000

  If you have Windows 2000, it's claimed that fibbing to it will work
  out OK (if you said it was a PnP-OS when you first installed Windows
  2000).  When you change to not a PnP-OS, Windows 2000 is reported to
  automatically PnP-reconfigure it's devices and tell you that it's
  finding new hardware and installing new devices.

  4.2.  How are bus-resources to be controlled?

  This may involve just deciding how to allocate IRQ and DMA bus-
  resources.  If set to "auto", the BIOS will do the allocation.  If set
  to manual, you manually reserve some IRQ's for use on "legacy" (non-
  pnp) ISA cards.  The BIOS may or may not otherwise know about such
  legacy cards.  The BIOS will only know about these legacy cards if you
  ran ICU (or the like) under Windows to tell the BIOS about them.  If
  the BIOS knows about them, then try using "auto".  If it doesn't know
  about them, then manually reserve the IRQ's needed for the legacy ISA
  cards and let the rest be for the BIOS PnP to allocate.

  4.3.  Reset the configuration?

  This will erase the BIOSs ESCD data-base of how your PnP devices
  should be configured as well as the list of how legacy (non-PnP)
  devices are configured.  Never do this unless you are convinced that
  this data-base is wrong and needs to be remade.  It was stated
  somewhere that you should do this only if you can't get your computer
  to boot.  If the BIOS loses the data on legacy devices, then you'll
  need to run ICA again under DOS/Windows to reestablish this data.

Most Popular LinuxPlanet Stories