อุปกรณ์ USB ถูกรีเซ็ตอะไร


20

ฉันมีซอฟต์แวร์ RAID-1 ใหม่เอี่ยมที่สร้างขึ้นด้วยไดรฟ์ USB ภายนอก WD Elements สองตัวและฉันเห็นได้ว่า Linux ทำซ้ำข้อความต่อไปนี้ได้เล็กน้อย:

...
[302148.036912] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
[302153.052029] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302186.031481] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302217.050210] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302281.043543] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302312.090158] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302351.076851] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
...

ดังนั้นมันพูดว่าอะไร? เป็นเรื่องปกติหรือไม่ นี่เป็นปัญหาที่ฉันควรลองแก้ไขไหม

อัปเดต
จริงข้อความเหล่านี้ไม่ใช่สำหรับไดรฟ์ที่ฉันคิดว่าเป็น ฉันมีไดรฟ์ USB อื่น ๆ ที่เชื่อมต่อกับคอมพิวเตอร์เครื่องนี้ผ่านฮับ USB ด้วย อย่างไรก็ตามคำถามของฉันคือสิ่งที่ข้อความนี้มีความหมายในภาษาอังกฤษธรรมดา?


3
การสร้าง RAID จากไดรฟ์ USB ไม่ได้เสียงอย่างที่คิด RAID คือทั้งหมดที่เกี่ยวกับการมีไดรฟ์ทั้งหมดของคุณและ USB คือทั้งหมดที่เกี่ยวกับการเสียบและถอดปลั๊กอุปกรณ์ เนื่องจากคุณใช้ RAID-1 มันก็ไม่ได้แย่มาก แต่ก็ไม่ควรคิดเช่นกัน
mvp

1
ไม่มีอะไรผิดปกติกับการใช้อุปกรณ์ USB ในการกำหนดค่า RAID มันเป็นความคิดที่สมบูรณ์แบบที่สุดเมื่อพิจารณาแล้วเห็นว่ามันเป็นคอมพิวเตอร์ที่บ้านไม่ใช่เซิร์ฟเวอร์องค์กร คุณสามารถโต้แย้งข้อ จำกัด ปริมาณงานผ่าน USB ได้ แต่นั่นไม่ใช่ข้อกังวลสำหรับฉันเป็นการส่วนตัว การโจมตีครั้งนี้เป็นวิธีการสันหลังยาวในการสำรองข้อมูลมากกว่าสิ่งอื่นใด
ILIV

1
คุณระบุว่าไดรฟ์ของคุณเชื่อมต่อกับพอร์ต USB ของโน้ตบุ๊ก พูดในสิ่งที่คุณต้องการ แต่นี่เป็นเพียงระเบิดเวลาที่จะรอ นอกจากนี้หากอุปกรณ์ของคุณเป็น USB3 เคอร์เนลต้องใช้ xhci_hcd หากใช้ ehci_hcd แสดงว่าอุปกรณ์ของคุณกำลังทำงานด้วยความเร็ว USB2
mvp

1
ทำไมจึงเป็น "ระเบิดเวลา"?
ILIV

2
ฉันเห็นครั้งต่อไปโปรดพยายามหาสาเหตุที่แท้จริงในการเรียกบางสิ่งบางอย่างระเบิดครั้ง สำหรับบันทึกฉันไม่มีแมวหรือสัตว์เลี้ยงอื่น ๆ ฉันไม่เคยดึงสายเคเบิลสมุดบันทึกนี้ยังคงเป็นเครื่องเขียนสองสามปีแล้วโอกาสที่จะมีพอร์ต USB หมดโอกาสที่จะเท่ากับ การเชื่อมต่อโดยตรงใช้งานไม่ได้ "อย่างอื่น" เป็นเรื่องตลกสามารถเกิดขึ้นได้แม้กับเซิร์ฟเวอร์องค์กรที่ตั้งค่าไว้อย่างละเอียดที่สุด ดังนั้นหยุดการหวาดระแวง นี่คือ RAID-1 การมีดิสก์ 2 แผ่นออกไปพร้อมกันจึงไม่น่าเป็นไปได้ นี่เป็นทางออกที่มั่นคง ระยะเวลา
ILIV

คำตอบ:


22

ให้ฉันพยายาม.

ข้อความบอกว่า Linux USB stack ได้ออก "USB_RESET" ไปยังอุปกรณ์ของคุณโดยเฉพาะ (อุปกรณ์ # 19 และ # 20 ไม่ว่าจะเป็นอะไรก็ตาม) ดูเหมือนว่าข้อผิดพลาดจะเกิดขึ้นหนึ่งครั้งต่อ 10-30 วินาที หลังจากรีเซ็ตแล้วบันทึกควรมีข้อความแจงนับใหม่เนื่องจากการรีเซ็ต USB จะบังคับให้อุปกรณ์ที่เชื่อมต่อเข้าสู่ "สถานะเริ่มต้น" ดูเหมือนว่าการบันทึกข้อมูลของคุณจะลดน้อยลงมาก

การรีเซ็ตอุปกรณ์ USB ในระหว่างการดำเนินการเป็นสถานการณ์ที่ค่อนข้างรุนแรง ตัวควบคุมเปลี่ยนเป็น "พอร์ต" นี้หากรีเซ็ตพบ "ข้อผิดพลาดในการทำธุรกรรม" ข้อผิดพลาดของการทำธุรกรรมเกิดขึ้นเมื่อการเชื่อมโยงไม่เสร็จสมบูรณ์ทุกขั้นตอนของการทำธุรกรรม USB หรือมีข้อผิดพลาด CRC ใน USB ปกติคอนโทรลเลอร์ EHCI จะลองทำธุรกรรมที่ล้มเหลวอีกครั้งโดยอัตโนมัติ (สูงสุด 3 ครั้งโดยทั่วไป) จากนั้นจะตั้งค่าอินเตอร์รัปต์ XACT_ERROR ในทางสถิติโดยทฤษฎีข้อผิดพลาดหากลิงก์ไม่ตอบสนองอย่างถูกต้องถึงสามครั้งติดต่อกันมีบางอย่างผิดปกติกับเซ็กเมนต์ USB เฉพาะซึ่งส่วนใหญ่เป็นระบบไฟฟ้า ดังนั้นข้อผิดพลาดในการทำธุรกรรมจึงถือเป็นข้อผิดพลาดร้ายแรงและซอฟต์แวร์พยายามกู้คืนลิงก์ หาก tree-Four พยายามกู้ลิงค์ที่ล้มเหลวโฮสต์จะพิจารณาพอร์ตนี้ว่าเป็น Dead และจะหยุดทำงาน

อย่างไรก็ตามใน Linux มีบางคนตัดสินใจว่าความพยายามในเชิงทฤษฎี 3 ครั้งนั้นไม่เพียงพอและซอฟต์แวร์ Linux มีความพยายามเพิ่มขึ้น 32 (สามสิบสอง) ครั้งทำให้มีทั้งหมด 96 (!!!) หากการเชื่อมโยงฮาร์ดแวร์เกิดขึ้นเพียงเล็กน้อยทางไฟฟ้าความพยายาม 96 ครั้งอาจประสบความสำเร็จใน 99.99% ของเวลา ผู้เชี่ยวชาญด้านซอฟต์แวร์ Linux อ้างว่าสิ่งนี้ช่วยปรับปรุงความสามารถในการทำงานของอุปกรณ์ / สายเคเบิลที่น่าสงสัย โดยพื้นฐานแล้วเทคนิคนี้ซ่อนปัญหาร้ายแรงกับการเชื่อมต่อ USB นี้โดยเฉพาะซึ่งไม่ได้ช่วยผู้ใช้ในระยะยาว

ปัญหาอาจเกิดขึ้นในการจ่ายแรงดันไฟฟ้าส่วนเกิน (VBUS) ไปยังไดรฟ์หรือความบกพร่องของ VBUS หรือการลดลงของสัญญาณบนสายสัญญาณ ฉันจะลองใช้สายที่ผ่านการรับรองคุณภาพสูงสั้น ๆ ก่อนและตรวจสอบสถิติการเปลี่ยนแปลงข้อผิดพลาด


สรุป Super ขอบคุณ! แหล่งข้อมูลเพิ่มเติมบางอย่างน่าจะดี
Christian Benke

1
คุณรู้หรือไม่ว่านั่นเป็นไปได้ที่จะเพิ่มจำนวนการลองใหม่โดยehci_hcdโมดูล หรือเป็นไปได้ที่จะบังคับใช้ohci_hcdสำหรับอุปกรณ์เฉพาะ (เช่น/dev/sdaจัดการโดยehci_hcdและ "มีปัญหา" /dev/sdbถูกจัดการโดยohci_hcd)?
dma_k

5

ข้อผิดพลาดนี้อธิบายไว้ในบทความ Linux: รีเซ็ตอุปกรณ์ USB ความเร็วสูงโดยใช้ข้อผิดพลาด ehci_hcd และวิธีแก้ไข :

ข้อผิดพลาดนี้ระบุว่า USB 2.0 อาจไม่ทำงานในระบบของคุณหรืออาจทำงานที่ความเร็ว USB 1.1 เท่านั้น ในการแก้ไขปัญหานี้:

  1. แทนที่ฮาร์ดแวร์: ในกรณีส่วนใหญ่คุณต้องเปลี่ยนเมนบอร์ด
  2. ลบไดรเวอร์ ehci_hcd
  3. ปิดใช้งานอินเทอร์เฟซ ehci_hcd ไดรฟ์ USB 2.0 และใช้เป็น USB 1.1 ในระยะสั้นปิดการใช้งาน ehci_hcd

หากคุณไม่ต้องการเปลี่ยนเมนบอร์ดให้ลบไดรเวอร์ ehci_hcd แก้ไขไฟล์/etc/modprobe.d/blacklist.conf และเพิ่มบรรทัด:

blacklist ehci_hcd

สุดท้ายใช้สคริปต์ mkinitrd เพื่อสร้างโครงสร้างไดเรกทอรีที่สามารถใช้เป็นระบบไฟล์รูท initrd โดยไม่ใช้ ehci_hcd:

# mkinitrd -o /boot/initrd.$(uname -r).img $(uname -r)

รีบูตเป็นการทดสอบ

บทความที่มีคำแนะนำคล้ายกันคือ: ทำไมข้อผิดพลาด "เคอร์เนล: usb 1-2.2: รีเซ็ตอุปกรณ์ USB ความเร็วสูงโดยใช้ ehci_hcd และที่อยู่ 6" เขียนลงในไฟล์ / var / log / messages

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.