local_config.h

Howard C. Tyler (theurgi@primenet.com)
Sun, 24 Mar 1996 17:25:59 -0700 (MST)


I propose creation of a "local_config.h" to permit individual
sites a means to tailor the kernel to the specific hardware installed.
Auto-probing mostly works, but there are cases where auto-probing not
only doesn't work, but can never work.

For example, one of my systems has an ATI Graphics Wonder video
adapter and a modem card. Since the new motherboard had two builtin
serial ports, I reconfigured the modem card to COM4, IRQ 5. Though
'/proc/ioports' and '/proc/interrups' showed no conflict, life with
linux got very strange. :-( 'Unexpected interrupt' messages often
locked up the system and video blanking resulted in garbage characters
instead of a blank screen.

It turns out that ATI's adapter responds to ioports 0x2e8-0x2ef, an
ill-documented 'feature'. These ioports are exactly the same ports used
by the standard COM4 port. Auto-probing for COM4 was trying to 'detect'
an uart on the video card! In addition, the modem card did respond to
the probing, generating interrupts, but not the default IRQ3 but IRQ5.
Note, the generic serial driver does NOT honor already-assigned
ioports, as adding a 'request_region' call to the vga driver for the
afore mentioned ports did not stop the serial driver from probing
these addresses.

If config.h included a 'local_config.h' as the last line (or 2nd-
to-last-line), parameters could be declared to set addresses, IRQ's,
and remove entries that are never used, e.g. multi-port serial card
definitions when no such card exists. Since hardware configurations
change much less freqently than the kernel, kernel patches could be
applied without having to manually resolve lots of ".rej" files.
Changes by kernel developers that affected 'local_config.h' would
result in just one '.rej' file. This one file obviously would have to
be reconciled manually, at task well worth the effort.

While I expect a 'local_config.h' will not be a panacea for all
configuration problems, it or something else is needed to reduce the
number of unpleasant side-effects of auto-probing. Also, since
hardware ports/IRQ's don't change often, entry of these values thru
the 'make config' method would be a laborious effort that could be
avoided.

-Howard

___________________________________________________________
Howard C. Tyler | email: theurgi@primenet.com
phn: (602)-866-9074 | 1KSPT: 13.96 exCOG 1741
___________________________________________________________