Most PCMCIA-related difficulties with laptops or certain cards can
be identified and solved by approaching the problem systematically.
First, find out if the problem is caused by the card or by the PCMCIA
base system. To do this, boot the computer without inserting any card.
If the base system seems to work smoothly, insert the card.
All messages are logged in
While searching for the cause of the problem, monitor this
file with tail
In this way, the problem can be narrowed down to one of the following
If the system hangs at the message
Starting services or other strange things
happen when the system is booted, reboot the system and
disable PCMCIA by entering
at the boot prompt. To isolate the error,
manually load the three base modules of the PCMCIA system
one at a time.
To load the PCMCIA modules manually, execute the commands modprobe
yenta_socket, and modprobe
ds as the user
root. In very rare cases,
must be used instead of
yenta_socket. The two modules that
are loaded first are the critical modules.
If the error occurs while loading
pcmcia_core, refer to the manual page pcmcia_core(4). The options described in this manual page can first be tested
with the command modprobe. For example, consider the
testing of free I/O areas. Sometimes, this test can cause problems if it
disrupts other hardware components. This can be avoided with the option
modprobe pcmcia_core probe_io=0
If the selected option is successful, set the variable
PCMCIA_CORE_OPTS in the file
probe_io=0. Separate multiple
options with spaces:
Errors that occur while loading the
module indicate problems of a more basic nature, such as
the resource allocation by ACPI.
/etc/pcmcia/config.opts are interpreted by the card
manager. The settings they contain are partly used for starting cardmgr and
partly for loading the driver modules for PC cards.
IRQs, I/O ports, and memory address ranges can be included or excluded in
/etc/pcmcia/config.opts. In rare cases,
access to an incorrect I/O area can result in a system crash. If this is
the case, try to limit these areas.
Basically, there are three types of errors: the card is not detected, the driver cannot be loaded, or the interface provided by the driver is misconfigured. It is important to know whether the card is controlled by the card manager or by hotplug. The card manager controls PC cards, and the hotplug controls CardBus cards.
If the system does not react when inserting a card
and manual execution of the command
does not help either, the interrupt allocation to PCI
devices may be incorrect. If this is the case, other PCI
devices such as the network card may also have problems.
In this case, the boot parameter
or other PCI or ACPI parameters may be useful.
If the card is not detected, the message
unsupported Card in Slot x appears
/var/log/messages. This message
merely indicates that the card manager is not able to
assign a driver to the card. The file
/etc/pcmcia/*.conf is needed for
this assignment. This driver database can easily be
extended by using existing entries as a template.
Enter the command cardctl
to find out details about the card. More information about this is
available in the PCMCIA HOWTO (Section 6) and in the manual page
pcmcia(5). After editing
/etc/pcmcia/*.conf, reload driver assignment
with the command
One reason for this may be that the driver database contains an incorrect assignment. This may happen if, for example, a manufacturer uses a different chip in an outwardly unmodified card model. Some models may only work or work better with drivers other than the preselected drivers. In this case, you need detailed information about the card. If necessary, post your problem on a mailing list or ask the Advanced Support.
For CardBus cards, the entry
HOTPLUG_DEBUG=yes must be
inserted in the file
Subsequently, check the system log for messages indicating
whether the driver was loaded successfully.
A resource conflict is another possible cause.
For most PCMCIA cards, it does not matter with
which IRQ, I/O port, or memory area they are
operated, but there may be exceptions.
If this is the case, test only one card at a time and
disable other system components, such as the sound card, IrDA,
modem, and printer, temporarily.
View the resource allocation of the system with the command
as the user
It is perfectly acceptable if several PCI devices use
the same IRQ.
One possible solution is to find a suitable option for the card driver
module. Enter modinfo
driver to list the options.
A manual page is
available for most modules. rpm
| grep man lists all manual pages the
pcmcia package contains. To
test the options, the card drivers can be unloaded manually.
Once you have found a solution,
you can generally permit or prohibit the use of a certain resource in
/etc/pcmcia/config.opts. The options for
card drivers can also be entered in this file. For example, to
pcnet_cs module exclusively with
IRQ 5, add the following entry:
module pcnet_cs opts irq_list=5
In this case, carefully check the configuration of the interface
and the name of the configuration with getcfg
to eliminate configuration errors. The variable
DEBUG in the file
/etc/sysconfig/network/config and the
HOTPLUG_DEBUG in the file
be set to
yes. For other cards or if
this does not help, you can add the line
-vx in the
script executed by the card manager or by hotplug
/var/log/messages). In this
way, every single command of the script is logged
in the system log. If you find a critical section in a
script, enter and test the respective commands
in a terminal.