Copyright (C) 2000-2012 |
Whole document tree 6. Tell the Driver the Configuration6.1 IntroductionJust 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 (or a module) 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 "manually" tell a driver what bus-resources it should use. You give such bus-resources as a parameter to the kernel or to a loadable module. If the driver is built into the kernel, you pass the parameters to the kernel via the "boot-prompt". See The Boot-Prompt-HOWTO which describes some of the bus-resource and other parameters. Once you know what parameters to give to the kernel, one may put them into lilo.conf file as append="...". Then the lilo program must be run to get this info into the kernel loader. If the driver is loaded as a module, in many cases the module will find the bus-resources it needs and set them in the device. In other cases (mostly for older PCs) you may need to give bus-resources as parameters to the module. In some versions of Linux /usr/lib/modules_help/descr.gz shows a list of possible module parameters. Parameters to a module (including ones that automatically load) may be specified in /etc/modules.conf. There are usually tools used to modify this file which are distribution-dependent. A comment in this file should help regarding how to modify it. Also, any module your put in /etc/modules will get loaded along with its parameters. 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: setserialFor PCI serial ports (and for newer 2.4 kernels for ISA), the serial driver detects the type of serial port and PnP configures it. Unfortunately, there may be some PCI serial ports that are not supported yet. For the standard ISA serial port with older versions of the kernel and
serial driver (not for multiport cards) you use setserial to configure
the driver. Using setserial is also a must for non-pnp serial ports.
Setserial 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
There are two different ways to use For PCI serial, the serial driver may detect certain modems and configure the bus-resources.
6.3 Old ISA Sound Card DriversOSS-LiteYou 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.
OSS (Open Sound System) and ALSAThese 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.
Next Previous Contents |