Thẻ SD không hoạt động tốt trong Ubuntu, nhưng hoạt động tốt trong Windows


9

Tôi sở hữu một máy tính xách tay với đầu đọc thẻ tích hợp. Trong khoảng một năm qua, tôi đã phải đối phó với một vấn đề tò mò có vẻ liên quan đến phần mềm nhiều hơn phần cứng.

Tôi chạy một khởi động kép của Windows 7Ubuntu 14.04 , cả 64 bit. Trong Windows, thẻ SD hoạt động tốt. Nó chạy hơi chậm, nhưng nó luôn luôn hoàn thành mà không có lỗi.

Trong Ubuntu, nó đột nhiên dừng lại và tôi nhận được những tin nhắn này khi tôi nhập dmesgvào một thiết bị đầu cuối:

[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

Điều này xảy ra với bất kỳ thẻ SD kích thước lưu trữ bất kỳ và nó sẽ xảy ra bất cứ lúc nào trong khi chuyển, đặc biệt là với các tệp lớn hoặc số lượng lớn tệp. Tôi đã nhấp chuột phải vào biểu tượng thẻ SD trên bảng điều khiển Ubuntu của mình và nhấp vào Safely removetrước khi đẩy SD, và thậm chí đã định dạng lại SD để nó không có lỗi, nhưng nó vẫn gây ra sự cố cho tôi. Ổ đĩa flash USB của tôi được định dạng theo cùng định dạng (FAT32) với thẻ SD và tất cả đều hoạt động tốt. Tại sao Windows có thể đọc / ghi vào thẻ của tôi tốt mà không phải Ubuntu?


Đầu ra của lspci(chỉ đọc thẻ):

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
Bạn có thể thêm bất kỳ thông tin về phần cứng? Ví dụ: tìm người đọc trong lspcihoặc lsusbthêm thông tin đó vào câu hỏi của bạn có thể giúp tìm người khác tìm người khác có cùng vấn đề.
Oli

Thẻ SD có định dạng gì trên đó?
Charles Green

1
Thật đáng để kiểm tra: Tôi nghĩ Ubuntu có một số vấn đề với exFat, một biến thể của hệ thống FAT và FAT32.
Charles Green

Nó thực sự phụ thuộc vào cách thiết bị được đề cập được định dạng: Vì bạn đã định dạng lại thiết bị trong Ubuntu, tôi sẽ gặp khó khăn khi tin rằng đó là exFAT
Charles Green

Bỏ lỡ điều trò chuyện - Tôi thực sự không có nhiều thứ để thêm, nhưng nghĩ rằng có lẽ chúng tôi đang xem xét một điều nhỏ ....
Charles Green

Câu trả lời:


5

Tôi không có phần cứng của bạn, nhưng có vấn đề tương tự với Broadcom và trình điều khiển của họ. Rất bực bội. Điều đó sang một bên, điều này cũng có thể đáng giá một shot:

  1. Tạo một tệp và viết chuỗi này vào nó options sdhci debug_quirks=0x40:

    sudo sh -c 'echo options sdhci debug_quirks=0x40 >> /etc/modprobe.d/sdhci-pci.conf'
    
  2. Bây giờ khởi động lại hoặc tải lại mô-đun:

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

Trình theo dõi lỗi đề cập rằng nó có thể không cung cấp cho bạn tốc độ tối đa, nhưng nó đáng để thử.

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


Nó đang hoạt động! Được quản lý để cứu vãn những gì có trong đó thông qua cắt và dán (mặc dù mọi thứ đều chạy TUYỆT VỜI ) và tôi hiện đang định dạng thẻ SD. Ngón tay đan chéo!

Cắt và dán mọi thứ trở lại thẻ SD mới xóa và thậm chí đã thêm gần 1 GB nội dung mà tôi muốn thêm. Chuyển chậm, nhưng không có lỗi I / O. Cảm ơn rất rất nhiều!

Vui mừng nó đã làm việc!
G Trawo

Tôi phải làm $ sudo setpci -s 00:1c.2 0x50.B=0x41sau đó
MInner

1

Tôi đã phải đối mặt với vấn đề này trên linuxlite. Giải pháp là tạo một tệp /etc/modprobe.d/sdhci-pci.confcó nội dung:

options sdhci debug_quirks=0x40 debug_quirks2=0x4

Tùy chọn 0x4giảm tốc độ từ tốc độ cực cao xuống tốc độ cao, nhưng tốt hơn là không hoạt động được thẻ.


0

Một số thông tin nhanh về thông tin trên bộ điều khiển thẻ của bạn trả về các bài đăng khác từ những người chỉ vào kernel là thủ phạm. Tôi không có báo cáo lỗi cụ thể trong tay để tham khảo vì vậy tôi không thể chắc chắn liệu bản sửa lỗi có tồn tại ngược dòng hay không nhưng có một cách dễ dàng để tìm hiểu xem nó có sẵn không. Cài đặt và khởi động vào kernel gần đây hơn và xem sự cố thẻ SD đã được cải thiện chưa. Không có hại sẽ đến máy tính của bạn và bạn luôn có thể loại bỏ nó nếu bạn không cần nó.

Chạy apt-cache search linux-generic-ltsđể xem các gói kernel có sẵn khác. Cái mới nhất tôi thấy trong kho lưu trữ là linux-generic-lts-wily. Bạn có thể sudo apt-get install linux-generic-lts-wilyvà sau đó khởi động lại vào kernel mới và kiểm tra lại ổ SD.


Điều này sẽ thay đổi phiên bản Ubuntu của tôi từ 14.04 (Trusty) thành 15.10 (Wily) hay chỉ đơn giản là cải thiện kernel?

Nó sẽ chỉ nâng cấp kernel. Phiên bản phát hành Ubuntu của bạn sẽ không bị ảnh hưởng.
Stephen Nichols

Không, cùng một vấn đề. Phải buộc đẩy ra và mỗi lần tôi buộc đẩy, thẻ sẽ không bao giờ đăng ký (Ubuntu sẽ cố đọc nó, nhưng một cái gì đó trong nền "treo") cho đến khi tôi khởi động lại.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.