SDcardJe viens de mettre à jour le portable de ma dulcinée de dapper à gutsy. Il est resté si longtemps dans une vieille version parce qu'elle l'utilisait de manière critique et selon l'adage si ce n'est pas cassé, pas besoin de le réparer !

Seulement, voila, la mise à jour à cassé le fonctionnement du lecteur de carte SD qui en l'occurrence ne marche plus du tout :( C'est un problème connu avec les lecteurs de carte de Texas[1]. Dans la doc ubuntu-fr, il est marqué comme ne fonctionnant pas depuis feisty et l'on trouve de nombreux bugs reportés dans Launchpad : 53923, 18706, 180076 ou encore 137686[2].

Parmi tous ces bugs de nombreux contournements sont proposés, comme par exemple décharger/charger les modules en boucle jusqu'à ce que le lecteur soit reconnu ! Bref rien de satisfaisant, ni même de fonctionnel chez moi :( . Mais la vérité est ailleurs, nos amis de Mandriva ont aussi le problème et ont trouvé une solution !

Et effectivement, ça marche ! Un patch à appliquer, un module à recompiler et voila, le lecteur fonctionne parfaitement ! Voici en quelques points la procédure à appliquer :

  • préparer la compilation d'un noyau comme indiqué dans la doc
  • avant de lancer la compilation, appliquer le patch fournit par Mandriva soit avec un petit patch -p1 < DB35_mmc_power_up_delay.patch soit en modifiant directement les 2 lignes concernées dans drivers/mmc/core/mmc_core.c[3]
  • compiler, perso j'ai recompilé tout le noyau, mais on devrait pouvoir se contenter des modules, profitez en comme moi pour aller à la plage ;)
  • enfin il suffit de sauvegarder l'ancien module (/lib/modules/2.6.22-14-generic/kernel/drivers/mmc/core/mmc_core.ko) et de le remplacer par votre nouveau
  • et voila, un reboot[4] plus tard tout est rentré dans l'ordre \o/

Pour conclure, ce n'est qu'une solution temporaire, à la prochaine maj officielle des modules, il faudra recommencer, mais j'ai bon espoir que le problème étant corrigé, ce sera inclus dans celle-ci.

Notes

[1] PCI id: 104c:803b

[2] Notez bien ce dernier

[3] c'est ce que j'ai fait

[4] pas compris pourquoi il fallait rebooter sur ce coup, rmmod/modprobe n'ont pas suffit