У меня есть ноутбук со встроенным кард-ридером. В течение прошлого года или около того я справлялся с любопытной проблемой, которая скорее связана с программным обеспечением, чем с аппаратным обеспечением.
Я запускаю двойную загрузку Windows 7 и Ubuntu 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-картой любого размера, и это происходит в любое время при передаче, особенно с большими файлами или большими объемами файлов. Я щелкнул правой кнопкой мыши значок SD-карты на панели Ubuntu и щелкнул Safely remove
перед извлечением SD-карты , и даже переформатировал SD-карту, чтобы она не содержала ошибок, но она все еще вызывает у меня проблемы. Мои USB-накопители отформатированы в том же формате (FAT32), что и SD-карта, и все они работают нормально. Почему 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)
lspci
илиlsusb
и добавление этой информации в ваш вопрос может помочь найти других людей, которые найдут других людей с такой же проблемой.Ответы:
У меня нет вашего оборудования, но у меня были похожие проблемы с Broadcom и их драйверами. Очень расстраивает. Кроме того, это может стоить того:
Создайте файл и запишите в него эту строку
options sdhci debug_quirks=0x40
:Теперь перезагрузите или перезагрузите модуль:
Баг-трекер упоминал, что он может не дать вам полной скорости, но стоит попробовать.
(Из https://bugzilla.kernel.org/show_bug.cgi?id=73241 и http://www.linuxtechtips.com/2013/08/sd-mmc-ms-pro-card-reader-not-working. html )
источник
$ sudo setpci -s 00:1c.2 0x50.B=0x41
после этогоЯ сталкивался с этой проблемой на linuxlite. Решением было создать файл
/etc/modprobe.d/sdhci-pci.conf
с содержанием:Опция
0x4
снижает скорость со сверхвысокой скорости до высокой скорости, но это лучше, чем неработающая карта.источник
Некоторый быстрый поиск информации о контроллере вашей карты возвращает другие сообщения от людей, указывающих на ядро как на виновника. У меня нет под рукой конкретного отчета об ошибке, поэтому я не могу точно сказать, существует ли исправление в апстриме, но есть простой способ узнать, доступно ли оно. Установите и загрузите более новое ядро и посмотрите, не улучшилась ли проблема с SD-картой. Ваш компьютер не причинит вреда, и вы всегда можете удалить его, если он вам не нужен.
Запустите,
apt-cache search linux-generic-lts
чтобы увидеть другие доступные пакеты ядра. Последнее, что я вижу в репозитории - это linux-generic-lts-wily. Вы можетеsudo apt-get install linux-generic-lts-wily
перезагрузить новое ядро и снова протестировать SD-диск.источник