SD卡在Ubuntu下不能很好地工作,但在Windows下可以很好地工作


9

我有一台带有内置读卡器的笔记本电脑。在过去的一年左右的时间里,我一直在解决一个奇怪的问题,该问题似乎与软件有关而不是与硬件有关。

我运行Windows 7Ubuntu 14.04(均为64位)的双启动。在Windows下,SD卡可以正常工作。它的运行速度有些慢,但始终可以成功完成而不会出错。

在Ubuntu下,它突然停止了,当我dmesg在终端上输入时,我得到了这些消息:

[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

出现这种情况有任何的SD卡任意存储大小,它会发生在任何在传输,尤其是对于大型文件或大量文件的时间。我右键单击了Ubuntu面板上的SD卡图标,Safely remove然后在弹出SD卡之前单击了它,甚至重新格式化了SD卡,使其没有错误,但仍然给我带来了问题。我的USB闪存驱动器的格式与SD卡相同(FAT32),并且它们都可以正常工作。为什么Windows可以很好地读/写我的卡而不是Ubuntu?


输出lspci(仅读卡器):

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)

3
您可以添加有关硬件的任何信息吗?例如,在lspci或中找到读者lsusb并将该信息添加到您的问题中可能会帮助找到其他人找到存在相同问题的其他人。
奥利(Oli)

SD卡具有哪种格式?
格林

1
值得检查:我认为Ubuntu在FAT和FAT32系统的变体exFat上存在一些问题。
格林

这实际上取决于问题设备的格式:由于您已在Ubuntu中重新格式化了设备,因此我很难相信它是exFAT
Charles Green

错过了聊天的东西-我真的没有很多的增加,但认为也许我们眺望小东西....
查尔斯·格林

Answers:


5

我没有您的硬件,但是Broadcom及其驱动程序存在类似问题。非常沮丧。除此之外,这很值得一试:

  1. 创建一个文件并将此字符串写入其中options sdhci debug_quirks=0x40

    sudo sh -c 'echo options sdhci debug_quirks=0x40 >> /etc/modprobe.d/sdhci-pci.conf'
    
  2. 现在重新启动,或重新加载模块:

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

Bug跟踪程序提到它可能无法使您全速运行,但是值得一试。

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


工作正常!通过剪切和粘贴(尽管一切运行缓慢)设法挽救了其中的内容,目前我正在格式化SD卡。手指交叉!

将所有内容剪切并粘贴回新擦除的SD卡,甚至添加了将要添加的将近1 GB的内容。传输速度慢,但没有I / O错误。一百万谢谢!

很高兴它有效!
G Trawo 2015年

$ sudo setpci -s 00:1c.2 0x50.B=0x41之后,我必须做
MInner's

1

我已经在linuxlite上遇到了这个问题。解决方案是创建一个/etc/modprobe.d/sdhci-pci.conf包含以下内容的文件:

options sdhci debug_quirks=0x40 debug_quirks2=0x4

该选件0x4将速度从超高速降低到高速,但最好是不可操作的卡。


0

快速搜索一下卡控制器上的信息,还会返回其他人以内核为罪魁祸首的帖子。我手头没有具体的错误报告,因此无法确定上游是否存在此修复程序,但是有一种简单的方法可以确定该修复程序是否可用。安装并引导至更新的内核,然后查看SD卡问题是否已得到改善。不会对您的计算机造成伤害,如果不需要,可以随时将其删除。

运行apt-cache search linux-generic-lts以查看其他可用的内核软件包。我在存储库中看到的最新版本是linux-generic-lts-wily。您可以sudo apt-get install linux-generic-lts-wily然后重新启动进入新内核并再次测试SD驱动器。


这会将我的Ubuntu版本从14.04(Trusty)更改为15.10(Wily),还是只是改进内核?

它只会升级内核。您的Ubuntu发行版本将不受影响。
史蒂芬·尼科尔斯

不,同样的问题。必须强制退出,并且每次我强制退出时,该卡将永远不会注册(Ubuntu会尝试读取它,但后台的某些内容“挂起”),直到我重新启动为止。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.