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

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

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

Ejecuto un arranque dual deventana 7yubuntu 14.04, ambos de 64 bits. En Windows, la tarjeta SD funciona bien. Corre algo lento, pero siempre logra completarse sin errores.

En Ubuntu, se detiene repentinamente 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 concualquiertarjeta SD decualquiertamaño de almacenamiento, y sucederá encualquiertiempo durante la transferencia, especialmente con archivos grandes o grandes cantidades de archivos. Hice clic derecho en el ícono de la tarjeta SD en mi panel de Ubuntu y hice clic Safely removeantes de expulsar la SD, e incluso volví a formatear la SD para que no tuviera 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 en 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)

Respuesta1

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

  1. Crea un archivo y escribe 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 le brinde la máxima velocidad, pero vale la pena intentarlo.

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

Respuesta2

Me he enfrentado a 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 0x4reduce la velocidad de velocidad ultra alta a velocidad alta, pero es mejor que la tarjeta no funcione.

Respuesta3

Al buscar rápidamente en Google información sobre el controlador de su tarjeta, se obtienen otras publicaciones de personas que señalan al kernel como el culpable. No tengo a mano un informe de error específico para consultar, 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 e inicie con un kernel más reciente y vea si el problema de la tarjeta SD ha mejorado. Su computadora no sufrirá ningún daño y siempre podrá 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. sudo apt-get install linux-generic-lts-wilyLuego puede reiniciar en el nuevo kernel y probar la unidad SD nuevamente.

información relacionada