How to use IEEE 1394 CardBus adapters

There are two ways to utilize 1394 pccards on Linux  -  with the kernel's own CardBus driver or with pcmcia-cs. See pcmcia-cs' README-2.4 for explanation of differences. Both or only one of the two ways may work for you. Both work for me. I can test only ohci1394, not pcilynx.

a)  CardBus driven by the kernel

This is the way supported by the IEEE 1394 linux driver maintainers.

To have CardBus support in the kernel, build it with CONFIG_PCMCIA=Y ("CardBus support") and with the ohci1394 and/or pcilynx driver. The kernel module responsible for 1394 pccards is called ohci1394.o or pcilynx.o and can be loaded manually (use modprobe) or by the hotplug subsystem.

Note that suspend + resume do not work yet, and card ejection is unstable. I recommend to unload all IEEE 1394 kernel modules before ejecting the pccard or before putting the computer into power saving mode.

You can run pcmcia-cs' cardmgr in parallel to a CardBus enabled kernel for traditional configuration of 16bit PCMCIA cards using /etc/pcmcia scripts.

If you experience problems regarding resource management, try kernel 2.4.20 --- or pcmcia-cs:

b)  CardBus driven by pcmcia-cs

This way is not supported by the IEEE 1394 linux driver maintainers. But you may be forced to this option if the 2.4/ 2.5 kernel does not work properly with your CardBus bridge. Let standalone pcmcia-cs drivers operate the CardBus then. You need

Build a kernel without CardBus support: CONFIG_PCMCIA=N, but with IEEE 1394 support. Install kernel and modules. Change to the directory containing pcmcia-cs sources and apply the patch:

  bzcat /path/to/patchfile | patch -p0

Read and understand PCMCIA-HOWTO, build and install pcmcia-cs:

  make config
  make all
  make install

The kernel module associated to 1394 pccards is then called ohci1394_cb.o or pcilynx_cb.o and should be loaded by the pcmcia-cs cardmgr.

Be warned that the system locks up hard when a 1394 pccard served by pcmcia-cs is ejected (at least my system does so). Avoid this by unloading IEEE 1394 high-level drivers such as sbp2 and then running cardctl eject every time before ejecting the pccard or before putting the computer into power saving mode.

-- 
created in June 2002
updated on Mon Mar 10 2003
Stefan Richter