
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 dmesg
em 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 remove
antes 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:
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'
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.conf
com o conteúdo:
options sdhci debug_quirks=0x40 debug_quirks2=0x4
A opção 0x4
diminui 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-lts
para 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-wily
reiniciar no novo kernel e testar a unidade SD novamente.