The following is a list of the most prominent issues that are
occasionally encountered with PCMCIA. More information about this is
available in the PCMCIA README
(/usr/share/doc/packages/pcmciautils/README.SuSE).
Your machine crashes when PCMCIA is started on boot. To find out what caused your machine to crash, set it up manually as described below. In carefully setting up PCMCIA manually, you can clearly identify the step or component that crashed your machine. Once the culprit has been identified, you can circumvent the problematic step or component.
To manually set up PCMCIA, proceed as follows:
Prevent PCMCIA from being started on system boot and enable
option sysrq for easier debugging by appending
the following options to the boot prompt:
init=3 pcmcia=off sysrq=1
For more information about sysrq, refer to
/usr/src/linux/Documentation/sysrq.txt.
Boot the system into a text-based environment and log in as
root.
Add the appropriate PCMCIA modules to the kernel:
/sbin/modprobe yenta_socket /sbin/modprobe pcmcia
Start the PCMCIA socket:
/sbin/pcmcia-socket-startup NReplace N with the number of the
socket. Repeat this step for each socket.
If the previous step crashed your machine, this might have
been caused by wrong I/O or memory ranges specified in
/etc/pcmcia/config.opts. To prevent this,
do one of the following:
Exclude ranges in
/ect/pcmcia/config.opts and retry the
socket setup.
Add the ranges manually as described below.
After you successfully added the appropriate ranges
manually, set them permanently by including them in
/etc/pcmcia/config.opts.
After the socket setup has been successfully completed, card initialization and interface setup work as described in Section 26.2.2, “Card Initialization” and Section 26.2.3, “Interface Setup”.
To manually add I/O ranges, proceed as follows (for each socket):
Change into the directory that holds the range
configurations (in this case, pcmcia_socket0,
adapt for other socket numbers):
cd /sys/class/pcmcia_socket/pcmcia_socket0
Execute the following command:
echobegin-end> available_resources_io
Replace begin and
end with the addresses where the new
range should start and end. The correct values can only be determined by
trial and error.
Manually adding the following ranges:
echo 0x800 - 0x8ff > available_resources_io echo 0xc00 - 0xcff > available_resources_io
equals the following line from
/etc/pcmcia/config.opts:
include port 0x800-0x8ff, port 0xc00 0xcff
The same procedure applies for the memory ranges under
available_resources_mem.
![]() | Identifying Faulty Default Settings |
|---|---|
If you find a faulty range in the default configuration file
( | |
Whenever suspending your system (suspend to disk, suspend to RAM, or standby), do not plug or unplug any hardware items while the system is in suspend mode. Otherwise, the system might not resume properly.
To automatically eject PCMCIA cards on suspend, proceed as follows:
Log in as root.
Open the file /etc/powersave/sleep.
Set the following variables:
SUSPEND2DISK_EJECT_PCMCIA="yes" SUSPEND2RAM_EJECT_PCMCIA="yes" STANDBY_EJECT_PCMCIA="yes"
Save the file to apply your settings.
If additional modules need to be ejected on suspend, proceed as above and add the module names to the following variables:
UNLOAD_MODULES_BEFORE_SUSPEND2DISK="" UNLOAD_MODULES_BEFORE_SUSPEND2RAM="" UNLOAD_MODULES_BEFORE_STANDBY=""
For general information about the powersave daemon, refer to Section 28.5, “The powersave Package”.
Find the latest up-to-date information about PCMCIA in
/usr/share/doc/packages/pcmciautils/README.SuSE.
For a comprehensive overview of PCMCIA hardware and its fields
of use, turn to the official PCMCIA Web site (http://www.pcmcia.org/pccard.htm).
To check whether a certain card or device is generally
supported by Linux, refer to the Linux PCMCIA/CF/CardBus
Card Survey at http://tuxmobil.org/pcmcia_linux.html.