it-swarm.com.de

SD-Karte funktioniert nicht gut unter Ubuntu, aber gut unter Windows

Ich besitze einen Laptop mit eingebautem Kartenleser. Seit etwa einem Jahr beschäftige ich mich mit einem merkwürdigen Problem, das eher mit Software als mit Hardware zu tun zu haben scheint.

Ich führe einen Dual-Boot von Windows 7 und buntu 14.04 aus, beide 64-Bit. Unter Windows funktioniert die SD-Karte einwandfrei. Es läuft etwas langsam, schafft es aber immer, fehlerfrei fertig zu werden.

Unter Ubuntu stoppt es plötzlich und ich erhalte diese Meldungen, wenn ich dmesg in ein Terminal eingebe:

[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

Dies geschieht mit jeder SD-Karte mit jeder Speichergröße, und das wird es auch passieren zu jedem Zeitpunkt während der Übertragung, insbesondere bei großen Dateien oder großen Mengen von Dateien. Ich habe mit der rechten Maustaste auf das SD-Kartensymbol in meinem Ubuntu-Bedienfeld geklickt und vor dem Auswerfen der SD auf Safely remove geklickt und die SD sogar neu formatiert, sodass sie fehlerfrei war, aber es treten immer noch Probleme auf. Meine USB-Sticks haben dasselbe Format (FAT32) wie die SD-Karte und funktionieren alle einwandfrei. Warum kann Windows meine Karte gut lesen/schreiben und nicht Ubuntu?


Ausgabe vonlspci (nur Kartenleser):

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

Ich besitze keine Hardware, hatte aber ähnliche Probleme mit Broadcom und deren Treibern. Sehr frustrierend. Davon abgesehen könnte dies einen Versuch wert sein:

  1. Erstellen Sie eine Datei und schreiben Sie diese Zeichenfolge hinein options sdhci debug_quirks=0x40:

    Sudo sh -c 'echo options sdhci debug_quirks=0x40 >> /etc/modprobe.d/sdhci-pci.conf'
    
  2. Starten Sie nun das Modul neu oder laden Sie es neu:

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

Der Bug-Tracker erwähnte, dass es Ihnen möglicherweise nicht die volle Geschwindigkeit gibt, aber es ist einen Versuch wert.

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

5
G Trawo

Ich habe mit diesem Problem auf Linuxlite konfrontiert. Die Lösung bestand darin, eine Datei /etc/modprobe.d/sdhci-pci.conf mit folgendem Inhalt zu erstellen:

options sdhci debug_quirks=0x40 debug_quirks2=0x4

Die Option 0x4 verringert die Geschwindigkeit von Ultrahochgeschwindigkeit auf Hochgeschwindigkeit, aber es ist besser, wenn die Karte nicht bedienbar ist.

1
Alex Lee

Wenn Sie schnell nach Informationen auf Ihrem Karten-Controller suchen, werden andere Posts von Personen zurückgegeben, die auf den Kernel als Täter zeigen. Ich habe keinen spezifischen Fehlerbericht zur Hand, auf den ich verweisen kann. Daher kann ich nicht mit Sicherheit sagen, ob der Fix im Upstream vorhanden ist, aber es gibt einen einfachen Weg, um herauszufinden, ob er verfügbar ist. Installieren und starten Sie einen neueren Kernel und prüfen Sie, ob sich das Problem mit der SD-Karte verbessert hat. Ihr Computer wird nicht beschädigt, und Sie können ihn jederzeit entfernen, wenn Sie ihn nicht benötigen.

Führen Sie apt-cache search linux-generic-lts aus, um die anderen verfügbaren Kernelpakete anzuzeigen. Das neueste im Repository, das ich sehe, ist linux-generic-lts-wily. Sie können Sudo apt-get install linux-generic-lts-wily und dann den neuen Kernel neu starten und das SD-Laufwerk erneut testen.

0
Stephen Nichols