Lecteur de cartes SD sur un Toshiba u200-162
Je 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.