
3.1 Base PCMCIA kernel modules do not load
Symptoms:
• Kernel version mismatch errors are reported when the PCMCIA startup script runs.
• After startup, lsmod does not show any PCMCIA modules.
• cardmgr reports ``no pcmcia driver in /proc/devices'' in the system log.
Kernel modules contain version information that is checked against the current kernel when a module is
loaded. The type of checking depends on the setting of the CONFIG_MODVERSIONS kernel option. If this is
false, then the kernel version number is compiled into each module, and insmod checks this for a match
with the running kernel. If CONFIG_MODVERSIONS is true, then each symbol exported by the kernel is
given a sort of checksum. These codes are all compared against the corresponding codes compiled into a
module. The intent was for this to make modules less version−dependent, because the checksums would only
change if a kernel interface changed, and would generally stay the same across minor kernel updates. In
practice, the checksums have turned out to be even more restrictive, because many kernel interfaces depend
on compile−time kernel option settings. Also, the checksums turned out to be an excessively pessimistic
judge of compatibility.
The practical upshot of this is that kernel modules are closely tied to both the kernel version, and the setting
of many kernel configuration options. Generally, a set of modules compiled for one 2.0.31 kernel will not
load against some other 2.0.31 kernel unless special care is taken to ensure that the two were built with
similar configurations. This makes distribution of precompiled kernel modules a tricky business.
You have several options:
• If you obtained precompiled drivers as part of a Linux distribution, verify that you are using an
unmodified kernel as supplied with that distribution. If you intend to use precompiled modules, you
generally must stick with the corresponding kernel.
• If you have reconfigured or upgraded your kernel, you will probably need to compile and install the
PCMCIA package from scratch. This is easily done if you already have the kernel source tree
installed. See Compilation and installation for detailed instructions.
• In some cases, incompatibilities in other system components can prevent correct loading of kernel
modules. If you have upgraded your own kernel, pay attention to the ``minimal requirements'' for
module utilities and binutils listed in the Documentation/Changes file in the kernel source
code tree.
3.2 Some client driver modules do not load
Symptoms:
• The base modules (pcmcia_core, ds, i82365) load correctly.
• Inserting a card gives a high beep + low beep pattern.
• cardmgr reports version mismatch errors in the system log.
Some of the driver modules require kernel services that may or may not be present, depending on kernel
Linux PCMCIA HOWTO
3.1 Base PCMCIA kernel modules do not load 14
Comentarios a estos manuales