web-dev-qa-db-ja.com

SDカードはUbuntuではうまく機能しませんが、Windowsではうまく機能します

カードリーダーを内蔵したラップトップを所有しています。過去1年ほどの間、私はハードウェアよりもソフトウェアに関連すると思われる奇妙な問題に対処してきました。

Windows 7およびbuntu 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

これは、anySDカードのanyストレージサイズで発生し、特に大きなファイルまたは大量のファイルの場合、転送中にany時に発生します。 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)
9
user454723

ハードウェアはありませんが、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
    

バグトラッカーは、完全な速度が得られない可能性があると述べましたが、試してみる価値はあります。

https://bugzilla.kernel.org/show_bug.cgi?id=73241 および http://www.linuxtechtips.com/2013/08/sd-mmc-msから) -pro-card-reader-not-working.html

5
G Trawo

Linuxliteでこの問題に直面しました。解決策は、コンテンツを含むファイル/etc/modprobe.d/sdhci-pci.confを作成することでした:

options sdhci debug_quirks=0x40 debug_quirks2=0x4

オプション0x4は、速度を超高速から高速に低下させますが、操作できないカードの方が優れています。

1
Alex Lee

カードコントローラーに関する情報をすばやく検索すると、カーネルを犯人とする人々から他の投稿が返されます。参照できる特定のバグレポートはありませんので、修正がアップストリームに存在するかどうかはわかりませんが、利用できるかどうかを確認する簡単な方法があります。最新のカーネルをインストールして起動し、SDカードの問題が改善されたかどうかを確認します。コンピューターに害が及ぶことはありません。不要な場合はいつでも削除できます。

apt-cache search linux-generic-ltsを実行して、他の利用可能なカーネルパッケージを確認します。リポジトリにある最新のものは、linux-generic-lts-wilyです。 Sudo apt-get install linux-generic-lts-wilyしてから新しいカーネルで再起動し、SDドライブを再度テストできます。

0
Stephen Nichols