O cartão SD não funciona bem no Ubuntu, mas funciona bem no Windows

O cartão SD não funciona bem no Ubuntu, mas funciona bem no Windows

Eu possuo um laptop com leitor de cartão integrado. Durante o último ano, tenho lidado com um problema curioso que parece mais relacionado a software do que a hardware.

Eu executo uma inicialização dupla deJanelas 7eUbuntu 14.04, ambos de 64 bits. No Windows, o cartão SD funciona perfeitamente. Funciona um pouco lento, mas sempre consegue concluir sem erros.

No Ubuntu, ele para repentinamente e recebo estas mensagens quando digito dmesgem um 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

Isso acontece comqualquerCartão SD dequalquertamanho de armazenamento, e isso acontecerá emqualquertempo durante a transferência, especialmente com arquivos grandes ou grandes quantidades de arquivos. Cliquei com o botão direito do mouse no ícone do cartão SD no painel do Ubuntu e cliquei Safely removeantes de ejetar o SD, e até reformatei o SD para que ficasse livre de erros, mas ainda me dá problemas. Minhas unidades flash USB são formatadas no mesmo formato (FAT32) do cartão SD e todas funcionam bem.Por que o Windows pode ler/gravar bem no meu cartão e não no Ubuntu?


Saída de lspci(somente leitores de cartão):

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)

Responder1

Não tenho o seu hardware, mas tive problemas semelhantes com a Broadcom e seus drivers. Muito frustrante. Deixando isso de lado, pode valer a pena tentar:

  1. Crie um arquivo e escreva esta string nele options sdhci debug_quirks=0x40:

    sudo sh -c 'echo options sdhci debug_quirks=0x40 >> /etc/modprobe.d/sdhci-pci.conf'
    
  2. Agora reinicie ou recarregue o módulo:

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

O rastreador de bugs mencionou que pode não oferecer velocidade total, mas vale a pena tentar.

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

Responder2

Eu enfrentei esse problema no Linuxlite. A solução foi criar um arquivo /etc/modprobe.d/sdhci-pci.confcom o conteúdo:

options sdhci debug_quirks=0x40 debug_quirks2=0x4

A opção 0x4diminui a velocidade de ultra alta velocidade para alta velocidade, mas é melhor que a placa não operável.

Responder3

Uma pesquisa rápida no Google por informações sobre o controlador da sua placa retorna outras postagens de pessoas apontando o kernel como o culpado. Não tenho um relatório de bug específico disponível para referência, então não posso dizer com certeza se a correção existe no upstream, mas há uma maneira fácil de descobrir se ela está disponível. Instale e inicialize com um kernel mais recente e veja se o problema do cartão SD melhorou. Nenhum dano ocorrerá ao seu computador e você sempre poderá removê-lo se não precisar dele.

Execute apt-cache search linux-generic-ltspara ver os outros pacotes de kernel disponíveis. O mais recente que vejo no repositório é linux-generic-lts-wily. Você pode sudo apt-get install linux-generic-lts-wilyreiniciar no novo kernel e testar a unidade SD novamente.

informação relacionada