ผมมีปัญหาเดียวกัน. ในกรณีของฉันสมาร์ททำงานอย่างถูกต้องบนอุปกรณ์เป็นเวลาหลายปีในขณะที่ใช้Ubuntu 12.04และจากนั้นภายใต้Ubuntu 14.04มันเกิดขึ้นอย่างที่คุณบอกในคำถาม
ปัญหาเกี่ยวข้องกับเคอร์เนลโมดูลใหม่ที่นำมาใช้ในLinux Kernel 3.15ชื่อuas
(USB Attached SCSI ) (ดูประกาศการเปิดตัว )
ขณะนี้โมดูลดังกล่าวเป็นความรับผิดชอบในการจัดการอุปกรณ์เก็บข้อมูล USB มีเธรดที่ผู้คนบ่นว่าuas
ในเคอร์เนล 3.15 ทำให้อุปกรณ์ USB ของพวกเขาล้มเหลว อีกคนหนึ่งบอกว่ามันอาจเป็นสาเหตุของปัญหาสมาร์ท
โชคดีที่ปัญหาเหล่านี้ดูเหมือนจะหายไปที่เคอร์เนล 3.19 (ซึ่งฉันกำลังใช้) เนื่องจากอุปกรณ์ของฉันถูกตรวจพบอย่างถูกต้อง ยังคงมีเพียงปัญหาสมาร์ท
ในการแก้ไขคุณต้องปิดการใช้งานuas
โมดูลสำหรับอุปกรณ์ที่กำหนด
ปิดใช้งานuas
โดยไม่ต้องรีบูตเครื่อง
ก่อนอื่นให้ถอดอุปกรณ์ USB ทั้งหมดที่อาจใช้งานอยู่ จากนั้นลบโมดูลuas
และusb-storage
:
sudo modprobe -r uas
sudo modprobe -r usb-storage
จากนั้นโหลดusb-storage
โมดูลพร้อมพารามิเตอร์ที่บอกให้ไม่ใช้uas
สำหรับอุปกรณ์ที่กำหนด:
sudo modprobe usb-storage quirks=VendorId:ProductId:u
VendorId
และProductId
ต้องถูกแทนที่โดยผู้จำหน่ายอุปกรณ์และรหัสผลิตภัณฑ์ของคุณซึ่งสามารถรับได้ด้วยlsusb
คำสั่ง (เป็นอักขระหลังจากID
)
ตัวอย่างเช่นฉันมีอุปกรณ์ต่อไปนี้:
Bus 002 Device 011: ID 0bc2:3320 Seagate RSS LLC SRD00F2 [Expansion Desktop Drive]
ดังนั้นรหัสผู้ให้บริการของฉันคือและรหัสสินค้าของฉันคือ0bc2
3320
คำสั่งของฉันคือ:
sudo modprobe usb-storage quirks=0bc2:3320:u
คนสุดท้ายu
บอกusb-storage
ให้ไม่สนใจuas
อุปกรณ์ (ดูแหล่งที่มา )
ณ จุดนี้คุณสามารถใส่อุปกรณ์ USB และจะรู้ว่าจะไม่ใช้uas
ทำให้สมาร์ททำงานอย่างถูกต้อง คุณจะเห็นบรรทัดแบบนี้dmesg
เมื่อใส่อุปกรณ์ USB:
usb 2-2: UAS is blacklisted for this device, using usb-storage instead
usb-storage 2-2:1.0: USB Mass Storage device detected
usb-storage 2-2:1.0: Quirks match for vid 0bc2 pid 3320: 800000
scsi host12: usb-storage 2-2:1.0
ทำการเปลี่ยนแปลงอย่างถาวร
มุมแหลมก่อนหน้านี้จะคงอยู่จนกว่าคุณจะรีบูตระบบ เพื่อให้ถาวรคุณต้องทำตามขั้นตอนที่อธิบายไว้ที่นี่ซึ่งฉันคัดลอกด้านล่าง:
ก่อนอื่นให้สร้างไฟล์ที่มีชื่อignore_uas.conf
ใน/etc/modprobe.d/
ไดเรกทอรีซึ่งมีเนื้อหาดังต่อไปนี้:
options usb-storage quirks=VendorId:ProductId:u
เมื่อก่อนแทนVendorId
และโดยผู้จำหน่ายอุปกรณ์ของคุณและรหัสสินค้าที่ได้รับจากProductId
lsusb
ถัดไปสร้าง ramdisk inital ใหม่ของคุณ:
mkinitcpio -p linux
หรือใน Ubuntu รุ่นใหม่กว่า:
sudo update-initramfs -u
ในที่สุดรีบูตคอมพิวเตอร์ของคุณ
แก้ไข: พื้นหลังเพิ่มเติมเกี่ยวกับปัญหาและวิธีอื่นในการหลีกเลี่ยงโดยไม่ต้องปิดการใช้งาน uas (ซึ่งมีปริมาณงานที่ดีกว่า usb-storage) สามารถดูได้ที่นี่: https://www.smartmontools.org/ticket/971#comment:12
ดูเหมือนว่าเคอร์เนลกำลังขึ้นบัญชีดำSAT ATA PASS-THROUGH
ในอุปกรณ์บางอย่างเมื่อทำงานในโหมด uas เนื่องจากมีเฟิร์มแวร์ที่ใช้งานไม่ได้
ดังนั้นการขึ้นบัญชีดำสามารถปิดการใช้งานได้ (โดยคุณต้องรับความเสี่ยงเอง) โดยใช้วิธีการก่อนหน้านี้ที่ฉันพูดถึงในคำตอบ แต่การลบรายการสุดท้ายu
ออกจากการเล่นโวหารคือ:
quirks=VendorId:ProductId:
โปรดทราบว่าฉันยังไม่ได้ทดสอบวิธีการนี้