Linux kernel drivers need to be compiled and linked against a specific
set of kernel headers in order to load.
"Unresolved Symbol" errors mean that the driver you are trying to load
is missing symbols from the kernel it was compiled under. No amount of
configuration is going to fix this ; the module as it stands is not
going to load.
Your question is really "How can I run this hardware under this
kernel?". The answer is that you need sources for the driver which
*do* compile under your chosen kernel version. If the vendor sources
are available, you may be able to patch them (or hire someone to patch
them). If they are not, your only hope lies with the vendor supporting
you, or with an alternate driver which runs the same hardware.
I find that the Linux driver for this hardware is the AIC79XX driver.
The best course is probably to compile support for it straight into
your kernel by setting CONFIG_SCSI_AIC79XX in your .config file, and
rebuilding your kernel.
This presumes that this driver is available in the RHEL 3.0 kernel
sources. RHEL 3.0 appears to be based on the 2.4.21 kernel ; the
support for the 29320A first seems to appear in the 2.4.28 sources (or
thereabouts, courtesy of lxr.linux.no). However, Redhat backport a lot
of features from newer kernels, and I'd imagine that device support
for scsi cards is probably one of the things they like to pay
attention to, given their market.
I can confirm that Redhat certifies at least one server containing an
Adaptec 29320 flavour as compatible with ES 3.0, using the AIC7902
driver. (from the hardware compatibility search at redhat.com)
Your course would seem to be to ditch the Vendor-provided driver and
use the Linux one, provided that you absolutely must run on that
particular kernel version. |