La tarjeta SD no funciona bien en Ubuntu, pero funciona bien en Windows

9

Tengo una computadora portátil con un lector de tarjetas incorporado. Durante el último año más o menos, he estado lidiando con un problema curioso que parece estar más relacionado con el software que con el hardware.

Ejecuto un arranque dual de Windows 7 y Ubuntu 14.04 , ambos de 64 bits. En Windows, la tarjeta SD funciona bien. Funciona un poco lento, pero siempre se completa sin errores.

En Ubuntu, se detiene de repente y recibo estos mensajes cuando escribo dmesgen una 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

Esto sucede con cualquier tarjeta SD de cualquier tamaño de almacenamiento, y sucederá en cualquier momento durante la transferencia, especialmente con archivos grandes o grandes cantidades de archivos. He hecho clic con el botón derecho en el icono de la tarjeta SD en mi panel de Ubuntu e hice clic Safely removeantes de expulsar la tarjeta SD, e incluso he formateado la tarjeta SD para que esté libre de errores, pero todavía me da problemas. Mis unidades flash USB están formateadas en el mismo formato (FAT32) que la tarjeta SD, y todas funcionan bien. ¿Por qué Windows puede leer / escribir bien en mi tarjeta y no Ubuntu?


Salida de lspci(solo lectores de tarjetas):

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)

fuente
3
¿Podría agregar alguna información sobre el hardware? Por ejemplo, encontrar al lector en lspcio lsusby agregar esa información a su pregunta podría ayudar a encontrar a otras personas a encontrar a otras personas con el mismo problema.
Oli
¿Qué formato tiene la tarjeta SD?
Charles Green el
1
Vale la pena verificarlo: creo que Ubuntu tiene algún problema con exFat, que es una variante de los sistemas FAT y FAT32.
Charles Green el
Realmente depende de cómo se formateó el dispositivo en cuestión: dado que ha formateado el dispositivo en Ubuntu, tendría problemas para creer que es exFAT
Charles Green
Se perdió la cosa de chat - Realmente no tengo mucho que añadir, pero pensé que tal vez nos quedamos con vistas a una pequeña cosa ....
Verde Charles

Respuestas:

5

No tengo su hardware, pero tuve problemas similares con Broadcom y sus controladores. Muy frustrante. Aparte de eso, vale la pena intentarlo:

  1. Cree un archivo y escriba esta cadena en él options sdhci debug_quirks=0x40:

    sudo sh -c 'echo options sdhci debug_quirks=0x40 >> /etc/modprobe.d/sdhci-pci.conf'
    
  2. Ahora reinicie o vuelva a cargar el módulo:

    sudo modprobe -r sdhci-pci sdhci
    sudo modprobe sdhci-pci
    

El rastreador de errores mencionó que es posible que no te dé toda la velocidad, pero vale la pena intentarlo.

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

G Trawo
fuente
¡Esta funcionando! Logré salvar lo que había en él mediante cortar y pegar (aunque todo funcionó LENTAMENTE ), y actualmente estoy formateando la tarjeta SD. ¡Dedos cruzados!
Corta y pega todo de nuevo en una tarjeta SD recién limpiada, e incluso agregué casi 1 GB de cosas que he querido agregar. Las transferencias son lentas, pero no hay errores de E / S. ¡Un millón de gracias!
Me alegro de que funcionó!
G Trawo
Tenía que hacer $ sudo setpci -s 00:1c.2 0x50.B=0x41después de eso
MInner
1

Me he enfrentado con este problema en linuxlite. La solución fue crear un archivo /etc/modprobe.d/sdhci-pci.confcon el contenido:

options sdhci debug_quirks=0x40 debug_quirks2=0x4

La opción 0x4disminuye la velocidad de velocidad ultra alta a alta velocidad, pero es mejor que la tarjeta no operable.

Alex Lee
fuente
0

Un poco de búsqueda rápida en Google para obtener información sobre el controlador de su tarjeta devuelve otras publicaciones de personas que señalan al kernel como el culpable. No tengo un informe de error específico disponible para hacer referencia, por lo que no puedo decir con certeza si la solución existe en sentido ascendente, pero hay una manera fácil de averiguar si está disponible. Instale y arranque en un kernel más reciente y vea si el problema de la tarjeta SD ha mejorado. No se dañará su computadora y siempre puede eliminarla si no la necesita.

Ejecute apt-cache search linux-generic-ltspara ver los otros paquetes de kernel disponibles. Lo último que veo en el repositorio es linux-generic-lts-wily. Puede sudo apt-get install linux-generic-lts-wilyy luego reiniciar en el nuevo núcleo y probar la unidad SD nuevamente.

Stephen Nichols
fuente
¿Esto cambiará mi versión de Ubuntu de 14.04 (Trusty) a 15.10 (Wily), o simplemente mejorará el kernel?
Solo actualizará el kernel. Su versión de lanzamiento de Ubuntu no se verá afectada.
Stephen Nichols
No, el mismo problema. Tuve que expulsar a la fuerza, y cada vez que expulso a la fuerza, la tarjeta nunca se registrará (Ubuntu intentará leerla, pero algo en el fondo se "cuelga") hasta que reinicie.