April 25, 2019

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

Table of Contents

  • April 26, 2001
  6.  Tell the Driver the Configuration

  6.1.  Introduction

  Just how this is done depends upon the driver.  Some drivers have more
  than one way to find out how their physical device is configured.  At
  one extreme is the case where you must hard-code the bus-resources
  into the kernel and recompile.  At the other extreme, the driver does
  everything automatically and you have nothing to do.  It may even set
  the bus-resources in the hardware using PnP methods.

  In the middle are cases where you run a program to give the resource
  info to the driver or put the info in a file.  In some cases the
  driver may probe for the device at addresses where it suspects the
  device resides.  It may then try to test various IRQs to see which one
  works.   It may or may not automatically do this.  In other cases the
  driver may use PnP methods to find the device and how the bus-
  resources have been set, but will not actually set them.  It may also
  look in some of the files in the /proc directory.

  One may need to give the bus-resources as a parameter to the kernel or
  to a loadable module.  See /usr/lib/modules_help/descr.gz for a list
  of possible parameters.  The module to load is listed in /etc/modules
  along with its parameters.  In some other case the bus-resources may
  be given as parameters to the kernel.  These are put into the
  lilo.conf file as append="...".   Then the lilo program must be run to
  save this in the kernel boot code.

  While there is great non-uniformity about how drivers find out about
  bus-resources, the end goal is the same.  If you're having problems
  with a driver you may need to look at driver documentation (check the
  kernel documentation tree).  Some brief info on a few drivers is
  presented in the following sections:

  6.2.  Serial Port Driver: setserial

  For the standard serial port driver (not for multiport cards) you use
  setserial to configure the driver.  It is often run from a start-up
  file.  In newer versions there is a /etc/serial.conf file that you
  "edit" by simply using the setserial command in the normal way and
  what you set using setserial is saved in the serial.conf configuration
  file.  The serial.conf file should be consulted when the setserial
  command runs from a start-up file.  Your distribution may or may not
  set this up for you.

  There are two different ways to use setserial depending on the options
  you give it.  One way is used to manually tell the driver the
  configuration.  The other way is to probe at a given address and
  report if a serial port exists there.  It can also probe this address
  and try to detect what IRQ is used for this port.  The driver runs
  something like setserial at start-up but it doesn't probe for IRQs, it
  just assigns the "standard" IRQ which may be wrong.  It does probe for
  the existence of a port.  See Serial-HOWTO for more details.

  For PCI serial, the serial driver may detect certain modems and
  configure the bus-resources.

  6.3.  Sound Card Drivers

  6.3.1.  OSS-Lite

  You must give the IO, IRQ, and DMA as parameters to a module or
  compile them into the kernel.  But some PCI cards will get
  automatically detected (likely by using the lspci command or the
  like).  RedHat supplies a program "sndconfig" which detects ISA PnP
  cards and automatically sets up the modules for loading with the
  detected bus-resources.

  6.3.2.  OSS (Open Sound System) and ALSA

  These will detect the card by PnP methods and then select the
  appropriate driver and load it.  It will also set the bus-resources on
  an ISA-PnP card.  You may need to manually intervene to avoid
  conflicts.  For the ALSA driver, support for ISA-PnP is optional and
  you may use isapnp tools if you want to.

Most Popular LinuxPlanet Stories