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

9

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

J'exécute un double démarrage de Windows 7 et Ubuntu 14.04 , tous deux 64 bits. Sous Windows, la carte SD fonctionne très bien. Il s'exécute un peu lentement, mais il parvient toujours à se terminer sans erreurs.

Sous Ubuntu, cela s'arrête soudainement et je reçois ces messages lorsque je tape dmesgdans 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 cela se produira à tout moment pendant le transfert, en particulier avec de gros fichiers ou de grandes quantités de fichiers. J'ai fait un clic droit sur l'icône de la carte SD sur mon panneau Ubuntu et cliqué Safely removeavant d'éjecter la SD, et j'ai même reformaté la SD afin qu'elle soit exempte d'erreurs, mais cela me pose toujours des problèmes. Mes lecteurs flash USB sont formatés au même format (FAT32) que la carte SD, et ils fonctionnent tous très bien. Pourquoi Windows peut-il bien lire / écrire sur ma carte et pas Ubuntu?


Sortie de lspci(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)

la source
3
Pourriez-vous ajouter des informations sur le matériel? Par exemple, trouver le lecteur dans lspciou lsusbet ajouter ces informations à votre question peut aider à trouver d'autres personnes pour trouver d'autres personnes ayant le même problème.
Oli
Quel format contient la carte SD?
Charles Green
1
Cela vaut la peine d'être vérifié: je pense qu'Ubuntu a un problème avec exFat qui est une variante des systèmes FAT et FAT32.
Charles Green
Cela dépend vraiment de la façon dont l'appareil en question a été formaté: puisque vous avez reformaté l'appareil dans Ubuntu, j'aurais du mal à croire que c'est exFAT
Charles Green
J'ai raté le chat - je n'ai vraiment pas grand-chose à ajouter, mais j'ai pensé que nous étions peut-être en train d'oublier une petite chose ....
Charles Green

Réponses:

5

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

  1. Créez un fichier et écrivez 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 bug tracker a mentionné qu'il ne vous donnerait peut-être pas la pleine vitesse, mais cela vaut la peine d'essayer.

(Sur 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 )

G Trawo
la source
Ça marche! Géré pour récupérer ce qu'il contenait via couper-coller (bien que tout se soit déroulé LENTEMENT ), et je suis en train de formater la carte SD. Doigts croisés!
Coupez et collez tout sur une carte SD fraîchement essuyée, et même ajouté près de 1 Go de trucs que je voulais ajouter. Les transferts sont lents, mais aucune erreur d'E / S. Un million de merci!
Heureux que cela ait fonctionné!
G Trawo
Je devais faire $ sudo setpci -s 00:1c.2 0x50.B=0x41après cela
MInner
1

J'ai rencontré ce problème sur linuxlite. La solution était de créer un fichier /etc/modprobe.d/sdhci-pci.confavec le contenu:

options sdhci debug_quirks=0x40 debug_quirks2=0x4

L'option 0x4diminue la vitesse de l'ultra haute vitesse à la haute vitesse, mais il vaut mieux cette carte non utilisable.

Alex Lee
la source
0

Une recherche rapide sur Google pour obtenir des informations sur votre contrôleur de carte renvoie d'autres messages de personnes désignant le noyau comme le coupable. Je n'ai pas de rapport de bogue spécifique à référence, je ne peux donc pas dire avec certitude si le correctif existe en amont, mais il existe un moyen facile 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 le supprimer si vous n'en avez pas besoin.

Exécutez apt-cache search linux-generic-ltspour voir les autres packages du noyau disponibles. Le dernier que je vois dans le référentiel est linux-generic-lts-wily. Vous pouvez sudo apt-get install linux-generic-lts-wilyensuite redémarrer dans le nouveau noyau et tester à nouveau le lecteur SD.

Stephen Nichols
la source
Est-ce que cela changera ma version d'Ubuntu de 14.04 (Trusty) à 15.10 (Wily), ou améliorera-t-elle simplement le noyau?
Il ne fera que mettre à jour le noyau. Votre version de sortie d'Ubuntu ne sera pas affectée.
Stephen Nichols
Non, même problème. J'ai dû forcer l'éjection, et chaque fois que je force l'éjection, la carte ne s'enregistrera jamais (Ubuntu essaiera de la lire, mais quelque chose en arrière-plan "se bloque") jusqu'à ce que je redémarre.