web-dev-qa-db-fra.com

La carte SD ne fonctionne pas bien sous Ubuntu, mais fonctionne bien sous Windows

Je possède un ordinateur portable avec un lecteur de carte intégré. Depuis environ un an, je fais face à un problème curieux qui semble plus lié aux logiciels qu’au matériel.

Je lance un double démarrage de Windows 7 et buntu 14.04, à la fois 64 bits. Sous Windows, la carte SD fonctionne très bien. Il est un peu lent, mais il réussit toujours sans erreur.

Sous Ubuntu, cela s’arrête soudainement et je reçois ces messages lorsque je tape dmesg dans un terminal:

[12535.092927] mmcblk0: mmc0:b368 SD    1.88 GiB 
[12535.096167]  mmcblk0: p1
[12653.904243] mmc0: Timeout waiting for hardware interrupt.
[12653.904974] mmcblk0: error -110 transferring data, sector 158279, nr 1024, cmd response 0x900, card status 0xc00
[12663.930682] mmc0: Timeout waiting for hardware interrupt.
[12663.930823] end_request: I/O error, dev mmcblk0, sector 158279
[12663.930838] end_request: I/O error, dev mmcblk0, sector 158287
[12663.930845] end_request: I/O error, dev mmcblk0, sector 158295
[12663.930852] end_request: I/O error, dev mmcblk0, sector 158303
[12663.930858] end_request: I/O error, dev mmcblk0, sector 158311
[12663.930864] end_request: I/O error, dev mmcblk0, sector 158319
[12663.930871] end_request: I/O error, dev mmcblk0, sector 158327
[12663.930877] end_request: I/O error, dev mmcblk0, sector 158335
[12663.930883] end_request: I/O error, dev mmcblk0, sector 158343
[12663.930889] end_request: I/O error, dev mmcblk0, sector 158351
[12673.957122] mmc0: Timeout waiting for hardware interrupt.
[12674.002269] mmcblk0: error -110 transferring data, sector 159303, nr 1024, cmd response 0x900, card status 0xc00

Cela se produit avec n’importe quelle carte SD de n’importe quelle taille de stockage , et se produire à à tout moment lors du transfert, en particulier avec des fichiers volumineux ou volumineux. J'ai cliqué avec le bouton droit de la souris sur l'icône de la carte SD de mon panneau Ubuntu et cliqué sur Safely remove avant d'éjecter le SD. J'ai même reformaté le SD afin qu'il soit exempt d'erreurs, mais cela me pose toujours des problèmes. Mes clés USB sont formatées au même format (FAT32) que la carte SD et fonctionnent correctement. Pourquoi Windows peut-il bien lire/écrire sur ma carte et pas Ubuntu?


Sortie delspci (lecteurs de cartes uniquement):

02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57785 Gigabit Ethernet PCIe (rev 10)
02:00.1 SD Host controller: Broadcom Corporation BCM57765/57785 SDXC/MMC Card Reader (rev 10)
02:00.2 System peripheral: Broadcom Corporation BCM57765/57785 MS Card Reader (rev 10)
02:00.3 System peripheral: Broadcom Corporation BCM57765/57785 xD-Picture Card Reader (rev 10)
9
user454723

Je n'ai pas votre matériel, mais j'ai eu des problèmes similaires avec Broadcom et leurs pilotes. Très frustrant. Cela dit, cela pourrait valoir le coup:

  1. Créez un fichier et écrivez-y cette chaîne options sdhci debug_quirks=0x40:

    Sudo sh -c 'echo options sdhci debug_quirks=0x40 >> /etc/modprobe.d/sdhci-pci.conf'
    
  2. Maintenant, redémarrez ou rechargez le module:

    Sudo modprobe -r sdhci-pci sdhci
    Sudo modprobe sdhci-pci
    

Le système de suivi des bugs a mentionné que cela ne vous donnerait peut-être pas toute la vitesse voulue, mais cela en vaut la peine.

(De https://bugzilla.kernel.org/show_bug.cgi?id=73241 et http://www.linuxtechtips.com/2013/08/sd-mmc-ms -pro-card-reader-not-working.html )

5
G Trawo

J'ai fait face à ce problème sur linuxlite. La solution consistait à créer un fichier /etc/modprobe.d/sdhci-pci.conf avec le contenu:

options sdhci debug_quirks=0x40 debug_quirks2=0x4

L'option 0x4 diminue la vitesse d'une vitesse très élevée à une vitesse élevée, mais il vaut mieux qu'une carte non utilisable.

1
Alex Lee

Une recherche rapide d'informations sur votre contrôleur de carte renvoie d'autres publications de personnes désignant le noyau en tant que coupable. Je n'ai pas de rapport de bogue spécifique à référencer, donc je ne peux pas dire avec certitude si le correctif existe en amont, mais il existe un moyen simple de savoir s'il est disponible. Installez et démarrez sur un noyau plus récent et voyez si le problème de la carte SD s'est amélioré. Aucun dommage ne viendra à votre ordinateur et vous pouvez toujours l'enlever si vous n'en avez pas besoin.

Exécutez apt-cache search linux-generic-ltspour voir les autres packages de noyau disponibles. La dernière que je vois dans le référentiel est linux-generic-lts-wily. Vous pouvez Sudo apt-get install linux-generic-lts-wily puis redémarrez dans le nouveau noyau et testez à nouveau le lecteur SD.

0
Stephen Nichols