การ์ด SD ทำงานได้ไม่ดีใน Ubuntu แต่ทำงานได้ดีบน Windows


9

ฉันเป็นเจ้าของแล็ปท็อปที่มีเครื่องอ่านการ์ดในตัว สำหรับปีที่ผ่านมาฉันจัดการกับปัญหาแปลก ๆ ที่ดูเหมือนว่าซอฟต์แวร์เกี่ยวข้องกับฮาร์ดแวร์มากกว่า

ฉันเรียกใช้ดูอัลบูทของ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)

3
คุณสามารถเพิ่มข้อมูลเกี่ยวกับฮาร์ดแวร์ได้หรือไม่? ตัวอย่างเช่นการค้นหาผู้อ่านในlspciหรือlsusbและการเพิ่มข้อมูลลงในคำถามของคุณอาจช่วยให้คนอื่นพบคนอื่นที่มีปัญหาเดียวกัน
Oli

การ์ด SD มีรูปแบบใดบ้าง?
ชาร์ลส์กรีน

1
เป็นการตรวจสอบที่คุ้มค่า: ฉันคิดว่า Ubuntu มีปัญหากับ exFat ซึ่งแตกต่างจากระบบ FAT และ FAT32
ชาร์ลส์กรีน

มันขึ้นอยู่กับวิธีการจัดรูปแบบของอุปกรณ์ที่เป็นปัญหา: เนื่องจากคุณทำการฟอร์แมตอุปกรณ์ใน Ubuntu ฉันจะมีปัญหาในการเชื่อว่ามันเป็น exFAT
Charles Green

พลาดการแชท - ฉันไม่มีอะไรเพิ่มอีก แต่คิดว่าบางทีเราอาจมองข้ามสิ่งเล็ก ๆ น้อย ๆ ไปได้ ....
ชาร์ลส์กรีน

คำตอบ:


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
    

เครื่องมือติดตามข้อผิดพลาดระบุว่าอาจไม่ให้ความเร็วเต็มที่ แต่คุ้มค่าที่จะลอง

(จากhttps://bugzilla.kernel.org/show_bug.cgi?id=73241และhttp://www.linuxtechtips.com/2013/08/sd-mmc-ms-pro-card-reader-not-working html )


มันใช้งานได้! จัดการเพื่อกอบกู้สิ่งที่อยู่ในนั้นผ่านการตัดและวาง (แม้ว่าทุกอย่างจะวิ่งช้า ) และตอนนี้ฉันกำลังฟอร์แมตการ์ด SD ไขว้นิ้วเอาไว้!

ตัดและวางทุกอย่างกลับไปยังการ์ด SD ที่เช็ดใหม่และยังเพิ่มสิ่งที่ฉันต้องการเพิ่มอีกเกือบ 1 GB โอนช้า แต่ไม่มีข้อผิดพลาด I / O หนึ่งล้านขอบคุณ!

ดีใจที่มันใช้งานได้!
G Trawo

ผมต้องทำ$ sudo setpci -s 00:1c.2 0x50.B=0x41หลังจากนั้น
Minner

1

ฉันได้พบกับปัญหานี้ใน linuxlite ทางออกคือการสร้างไฟล์ที่/etc/modprobe.d/sdhci-pci.confมีเนื้อหา:

options sdhci debug_quirks=0x40 debug_quirks2=0x4

ตัวเลือกจะ0x4ลดความเร็วจากความเร็วสูงพิเศษเป็นความเร็วสูง แต่จะดีกว่าถ้าใช้การ์ดไม่ได้


0

googling อย่างรวดเร็วสำหรับข้อมูลเกี่ยวกับตัวควบคุมการ์ดของคุณจะส่งคืนโพสต์อื่น ๆ จากผู้ที่ชี้เคอร์เนลว่าเป็นผู้ร้าย ฉันไม่มีรายงานข้อผิดพลาดในมือเพื่ออ้างอิงดังนั้นฉันจึงไม่สามารถบอกได้อย่างแน่นอนว่าการแก้ไขนั้นมีต้นน้ำหรือไม่ แต่ก็มีวิธีที่ง่ายในการตรวจสอบว่ามีอยู่หรือไม่ ติดตั้งและบูตเคอร์เนลที่ใหม่กว่าและดูว่าปัญหาการ์ด 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 จะพยายามอ่าน แต่มีบางอย่างในพื้นหลัง "แฮงค์") จนกว่าฉันจะรีบูท
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.