31.3. Dépannage

Vous trouverez ci-dessous une liste des principaux problèmes rencontrés avec PCMCIA. Pour plus d'informations à ce sujet, vous pouvez consulter le fichier LISEZMOI PCMCIA (/usr/share/doc/packages/pcmciautils/README.SuSE).

31.3.1. Arrêts de machines sur PCMCIA

Votre machine s'arrête si PCMCIA démarre à l'amorçage. Pour connaître la cause de l'arrêt de votre machine, configurez-la manuellement comme décrit ci-dessous. Lors de la configuration manuelle de PCMCIA, vous pouvez clairement identifier l'étape ou le composant ayant causé l'arrêt de votre machine. Une fois le problème identifié, vous pouvez contourner l'étape ou le composant problématique.

Pour configurer manuellement PCMCIA, procédez de la manière suivante :

  1. Évitez de démarrer PCMCIA à l'amorçage du système et activez SysRq pour un débogage plus facile en ajoutant les options suivantes à l'invite d'amorçage :

    init=3 pcmcia=off sysrq=1

    Pour plus d'informations sur SysRq, reportez-vous à /usr/src/linux/Documentation/sysrq.txt.

  2. Démarrez le système dans un environnement de type texte et connectez-vous en tant qu'utilisateur root.

  3. Ajoutez les modules PCMCIA appropriés au kernel :

    /sbin/modprobe yenta_socket
    /sbin/modprobe pcmcia
    
  4. Lancez le socket PCMCIA :

    /sbin/pcmcia-socket-startup N

    Remplacez N par le nombre de sockets. Répétez cette étape pour chaque socket.

  5. Si l'étape précédente a entraîné l'arrêt de votre machine, cela peut être dû aux plages d'E/S ou de mémoire erronées spécifiées dans /etc/pcmcia/config.opts. Pour éviter cela, procédez de la manière suivante :

    • Retirez les plages dans /ect/pcmcia/config.opts et reconfigurez le socket.

    • Ajoutez les plages manuellement comme décrit ci-dessous.

      Après avoir ajouté manuellement les plages appropriées, configurez-les de manière permanente en les incluant dans /etc/pcmcia/config.opts.

  6. Une fois la configuration du socket terminée, l'initialisation de la carte et la configuration de l'interface fonctionnent comme décrit dans la Section 31.2.2, « Initialisation de la carte » et la Section 31.2.3, « Configuration de l'interface ».

Pour ajouter manuellement les plages d'E/S, procédez de la manière suivante (pour chaque socket) :

  1. Accédez au répertoire qui contient les configurations de plage (dans ce cas, pcmcia_socket0, adaptez pour d'autres numéros de sockets) :

    cd /sys/class/pcmcia_socket/pcmcia_socket0
  2. Exécutez la commande suivante :

    echo begin - end > available_resources_io

    Remplacez begin et end par les adresses où la nouvelle plage doit commencer et se terminer. Les valeurs correctes peuvent être déterminées uniquement par essais et erreurs.

Ajoutez manuellement les plages suivantes :

echo 0x800 - 0x8ff > available_resources_io
echo 0xc00 - 0xcff > available_resources_io

équivaut à la ligne suivante de /etc/pcmcia/config.opts :

include port 0x800-0x8ff, port 0xc00 0xcff

La même procédure s'applique aux plages de mémoire sous available_resources_mem.

[Important]identification des paramètres par défaut

Si vous identifiez une plage incorrecte dans le fichier de configuration par défaut (/etc/pcmcia/config.opts) envoyé avec ce produit, créez un fichier répertoriant le bogue dans http://bugzilla.novell.com pour que les développeurs puissent en prendre connaissance.

31.3.2. Problèmes généraux liés à la mise en veille avec PCMCIA

Lorsque vous mettez votre système en veille (mise en veille sur disque, mise en veille sur RAM ou mise en attente), ne branchez pas et ne débranchez pas des éléments matériels lorsque le système est en mode veille. Sinon, le système risque de ne pas reprendre correctement.

Pour éjecter automatiquement des cartes PCMCIA en mode veille, procédez de la manière suivante :

  1. Loguez-vous en tant qu'utilisateur root.

  2. Ouvrez le fichier /etc/powersave/sleep.

  3. Paramétrez les variables suivantes :

    SUSPEND2DISK_EJECT_PCMCIA="yes"
    SUSPEND2RAM_EJECT_PCMCIA="yes"
    STANDBY_EJECT_PCMCIA="yes"
    
  4. Enregistrez le fichier pour appliquer vos réglages.

Si vous devez éjecter d'autres modules en mode veille, procédez comme ci-dessus et ajoutez les noms des modules aux variables suivantes :

UNLOAD_MODULES_BEFORE_SUSPEND2DISK=""
UNLOAD_MODULES_BEFORE_SUSPEND2RAM=""
UNLOAD_MODULES_BEFORE_STANDBY=""

Pour plus d'informations sur le démon powersave, reportez-vous à la Section 33.5, « Paquetage powersave ».

31.3.3. Pour plus d'informations

Reportez-vous aux toutes dernières informations sur PCMCIA dans /usr/share/doc/packages/pcmciautils/README.SuSE. Pour obtenir une vue d'ensemble complète du matériel PCMCIA et de ses domaines d'utilisation, visitez le site Web officiel de PCMCIA (http://www.pcmcia.org/pccard.htm). Pour savoir si une carte ou un périphérique spécifique est pris en charge par Linux, reportez-vous à Linux PCMCIA/CF/CardBus Card Survey à l'adresse http://tuxmobil.org/pcmcia_linux.html.