Dernière mise à jour : 21/09/2003
Voici un petit article sur comment configurer facilement vos ports PCMCIA sous linux dans le cas d'une recompilation de kernel et vous assurer que vous n'oublierez rien. La configuration est basée sur un kernel de type 2.4 sous debian instable. Vous aurez donc besoin d'un kernel tout neuf, ainsi que des packages pcmcia-cs. Cet article a été revu pour intégrer quelques informations récentes, je n'ai pas tenté de faire marcher un noyau 2.6 avec pcmcia-cs, mais je crois savoir qu'il n'est pas compatible pour le moment, je rajouterais des informations dès que possible.
Commencez donc par aller faire un tour sur la page officielle du projet pcmcia-cs et voyez le type de paquet nécessaire à votre distribution selon si vous utilisez des paquets ou bien les sources. Vérifiez également que votre carte PCMCIA est bien supportée par le noyau que vous allez utiliser ou par CS.
La plupart des distributions récentes contiennent tous les packages nécessaires pour configurer PCMCIA. Le problème se situe si vous ne les avez pas installé ou bien si vous recompilez votre kernel. Dans le cas d'une recompilation, les étapes qui suivent sont indispensables. Décompactez votre nouveau kernel et paramétrez le comme vous le désirez puis éditez les options suivantes. Dans General Setup, vous devez ouvrir le PCMCIA/Carbus support et vous assurer de placer le support PCMCIA en module, sinon le kernel ne pourra pas recharger correctement les cartes en hotplug. Placez ensuite le cardbus en Yes.
Vous devez ensuite vous rendre dans la section IDE/ATA Support afin d'activer le PCMCIA IDE support. Cela vous permettra de reconnaitre les cartes PCMCIA comme disques durs ce qui se révèle indispensable pour les adaptateurs de cartes Flash Memory ou Compact Flash. Certaines cartes de supports numériques demandent également cette option.
Enfin dans les Caracter Devices, vous pouvez activer le support pour les périphériques série (serial devices). Cela peut servir aussi pour les modem PCMCIA.
Une fois ces options paramétrées, recompilez le kernel comme indiqué sur ma page kernel 2.4 dans la section système. Puis redémarrez dessus. Si vous faîtes un dmesg |grep -i pcmcia, vous devriez obtenir quelque chose ressemblant à ce qui suit :
-
Linux Kernel Card Services 3.1.22
options: [pci] [cardbus] [pm]
PCI: Assigned IRQ 9 for device 02:05.0
PCI: Assigned IRQ 9 for device 02:05.1
Yenta IRQ list 04b8, PCI irq9
Socket status: 30000006
Yenta IRQ list 04b8, PCI irq9
Socket status: 30000006
cs: IO port probe 0x0c00-0x0cff: clean.
cs: IO port probe 0x0800-0x08ff: clean.
cs: IO port probe 0x0100-0x04ff: excluding 0x4d0-0x4d7
cs: IO port probe 0x0a00-0x0aff: clean.
Cela veut dire que votre kernel est correctement initialisé, il ne reste plus qu'à tester les cartes. Pour monter une carte de type Flash, insérez la carte, vous devriez obtenir :
-
cs: memory probe 0xa0000000-0xa0ffffff: clean.
hde: , ATA DISK drive
ide2 at 0x100-0x107,0x10e on irq 3
hde: 126464 sectors (65 MB) w/1KiB Cache, CHS=247/16/32
hde: hde1 hde2
ide_cs: hde: Vcc = 3.3, Vpp = 0.0
Vous pouvez alors monter la partition de votre choix par la commande : mount /dev/hde1 /mnt/. Si vous n'obtenez rien, il y a plusieurs solutions.
- Rien n'apparait à l'insertion de la carte : le kernel est mal compilé ou bien le service cardmanager n'est pas démarré. Tentez un : /etc/init.d/pcmcia restart. Vous pouvez aussi vérifier ce qui apparaît dans : /proc/bus/pccard/.
- La carte est déclarée mais vous ne pouvez pas l'utiliser : Ici encore, le kernel peut être mal compilé (manque de module ?), sinon tentez : cardctl status. Si quelque chose apparaît, cela seraît sans doute un manque de module donc de support pour votre carte.
Cette page devraît vous permettre d'y voir plus clair sur la gestion PCMCIA sous linux. Si vous avez des questions, utilisez mon email. Je n'ai pas inclus la gestion devfs au niveau du kernel mais je travaille actuellement dessus.