Linux : résoudre le problème de carte SD non reconnue après hibernation

Je continue sur mes résolutions de problèmes liés à la migration de mon système Salix OS. Je vais encore parler d’hibernation mais en lien avec mon lecteur de cartes SD.

Comme expliqué dans un précédent article, mon ordinateur possède un lecteur de cartes mémoire, qui fonctionnait bien pour mon utilisation (lecture de cartes SD, pas d’écriture) sous Salix OS 13.37.

Acte 1 : Salix OS 14.1 et la solution du rechargement de module

Suite au passage à la version 14.1 de Salix OS, j’ai constaté que le lecteur de cartes SD ne fonctionnait plus lors d’un retour d’hibernation. Lorsque j’insérais la carte SD, elle n’était pas reconnue.

J’avais trouvé la solution sur le forum Slackware de LinuxQuestions.org. Il suffisait de recharger le module sdhci_pci :

$ rmmod sdhci_pci
$ modprobe sdhci_pci

L’insertion de la carte SD était alors reconnue.

Acte 2 : Salix OS 14.2 et la solution du déchargement de module avant hibernation

Malheureusement, la situation s’est empirée avec la migration vers la version 14.2 de Salix OS. Le même problème persistait lors du retour d’hibernation mais la solution de rechargement du module sdhci_pci ne résolvait plus le problème.

Dans /var/log/syslog, je constatais des messages de ce genre lorsque j’insérais la carte SD :

Aug  5 00:19:14 darkstar kernel: [432740.383264] mmc0: Timeout waiting for hardware interrupt.
Aug  5 00:19:14 darkstar kernel: [432740.385457] mmc0: error -110 whilst initialising SD card

Après quelques recherches, j’ai finalement trouvé une solution dans cette page de documentation consacrée à la compatibilité de Linux avec les ordinateurs portables de type IBM/Lenovo ThinkPad.

La solution consiste à créer un fichier /etc/pm/config.d/00sleep_module dans lequel la ligne suivante est présente :

SUSPEND_MODULES="$SUSPEND_MODULES sdhci"

Cette ligne a pour effet de décharger le module sdhci avant l’hibernation. Le module est alors proprement rechargé lors du retour d’hibernation, et le lecteur de carte SD devient utilisable.

Cette solution ne fonctionne qu’avec les outils pm-utils (pm-suspend et pm-hibernate), le fichier créé étant un fichier de configuration pour ces outils.

Fin

Il reste à voir quelle nouvelle surprise me réservera la prochaine version de Slackware/Salix OS.

En tout cas, sous Linux, je constate qu’il y a (presque) toujours une solution aux problèmes.

Vus : 185
Publié par Julien L : 23