Kartu SD tidak berfungsi dengan baik di bawah Ubuntu, tetapi bekerja dengan baik di Windows

9

Saya memiliki laptop dengan pembaca kartu built-in. Selama sekitar setahun terakhir, saya telah mengatasi masalah aneh yang tampaknya lebih terkait perangkat lunak daripada perangkat keras.

Saya menjalankan dual-boot Windows 7 dan Ubuntu 14.04 , keduanya 64-bit. Di bawah Windows, kartu SD berfungsi dengan baik. Ini berjalan agak lambat, tetapi selalu berhasil menyelesaikan tanpa kesalahan.

Di bawah Ubuntu, tiba-tiba berhenti, dan saya mendapatkan pesan-pesan ini ketika saya mengetik dmesgterminal:

[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

Ini terjadi dengan kartu SD apa pun dari ukuran penyimpanan apa pun , dan itu akan terjadi kapan saja saat mentransfer, terutama dengan file besar atau file dalam jumlah besar. Saya telah mengklik kanan pada ikon kartu SD pada panel Ubuntu saya dan mengklik Safely removesebelum mengeluarkan SD, dan bahkan memformat ulang SD sehingga bebas dari kesalahan, tetapi masih memberi saya masalah. USB flash drive saya diformat dalam format yang sama (FAT32) seperti kartu SD, dan semuanya bekerja dengan baik. Mengapa Windows dapat membaca / menulis ke kartu saya dengan baik dan bukan Ubuntu?


Output dari lspci(pembaca kartu saja):

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)

sumber
3
Bisakah Anda menambahkan informasi tentang perangkat keras? Misalnya, menemukan pembaca di lspciatau lsusbdan menambahkan informasi itu ke pertanyaan Anda mungkin membantu menemukan orang lain menemukan orang lain dengan masalah yang sama.
Oli
Format apa yang dimiliki kartu SD?
Charles Green
1
Perlu dicek: Saya rasa Ubuntu memiliki beberapa masalah dengan exFat yang merupakan varian dari sistem FAT dan FAT32.
Charles Green
Itu benar-benar tergantung pada bagaimana perangkat yang dimaksud diformat: Karena Anda telah memformat ulang perangkat di Ubuntu, saya akan kesulitan mempercayai itu exFAT
Charles Green
Merindukan obrolan - Saya benar-benar tidak punya banyak hal untuk ditambahkan, tetapi saya pikir mungkin kita mengabaikan hal kecil ....
Charles Green

Jawaban:

5

Saya tidak memiliki perangkat keras Anda, tetapi memiliki masalah serupa dengan Broadcom dan drivernya. Sangat membuat frustrasi. Selain itu, ini mungkin patut dicoba:

  1. Buat file dan tulis string ini ke dalamnya options sdhci debug_quirks=0x40:

    sudo sh -c 'echo options sdhci debug_quirks=0x40 >> /etc/modprobe.d/sdhci-pci.conf'
    
  2. Sekarang reboot, atau muat kembali modul:

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

Pelacak bug menyebutkan bahwa itu mungkin tidak memberi Anda kecepatan penuh, tetapi patut dicoba.

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

G Trawo
sumber
Bekerja! Berhasil menyelamatkan apa yang ada di dalamnya melalui cut-and-paste (meskipun semuanya berjalan lambat ), dan saya saat ini memformat kartu SD. Semoga saja!
Potong dan rekatkan semuanya kembali ke kartu SD yang baru dihapus, dan bahkan menambahkan hampir 1 GB hal yang ingin saya tambahkan. Transfer lambat, tetapi tidak ada kesalahan I / O. Sejuta terima kasih!
Senang itu berhasil!
G Trawo
Saya harus melakukan $ sudo setpci -s 00:1c.2 0x50.B=0x41setelah itu
MInner
1

Saya menghadapi masalah ini di linuxlite. Solusinya adalah membuat file /etc/modprobe.d/sdhci-pci.confdengan konten:

options sdhci debug_quirks=0x40 debug_quirks2=0x4

Opsi ini 0x4mengurangi kecepatan dari kecepatan sangat tinggi ke kecepatan tinggi, tetapi lebih baik kartu tidak dapat dioperasikan.

Alex Lee
sumber
0

Beberapa googling cepat untuk informasi tentang pengontrol kartu Anda mengembalikan pos-pos lain dari orang-orang yang menunjuk kernel sebagai penyebabnya. Saya tidak memiliki laporan bug khusus untuk referensi, jadi saya tidak bisa mengatakan dengan pasti apakah perbaikannya ada di hulu tetapi ada cara mudah untuk mengetahui apakah itu tersedia. Instal dan boot ke kernel yang lebih baru dan lihat apakah masalah kartu SD telah membaik. Tidak ada salahnya akan datang ke komputer Anda dan Anda selalu dapat menghapusnya jika Anda tidak membutuhkannya.

Jalankan apt-cache search linux-generic-ltsuntuk melihat paket kernel lain yang tersedia. Yang terbaru yang saya lihat di repositori adalah linux-generic-lts-wily. Anda dapat sudo apt-get install linux-generic-lts-wilydan kemudian reboot ke kernel baru dan menguji drive SD lagi.

Stephen Nichols
sumber
Apakah ini akan mengubah versi Ubuntu saya dari 14,04 (Terpercaya) menjadi 15.10 (Wily), atau sekadar meningkatkan kernel?
Itu hanya akan meningkatkan kernel. Versi rilis Ubuntu Anda tidak akan terpengaruh.
Stephen Nichols
Tidak, masalah yang sama. Harus memaksa-eject, dan setiap kali saya paksa-eject, kartu tidak akan pernah mendaftar (Ubuntu akan mencoba membacanya, tetapi sesuatu di latar belakang "hang") sampai saya reboot.