วิธีการเชื่อมต่ออุปกรณ์ USB ที่ถูกตัดการเชื่อมต่ออย่างมีเหตุผลอีกครั้ง?


55

เป็นไปได้ที่อุปกรณ์เก็บข้อมูล USB จะถูกตัดการเชื่อมต่ออย่างมีเหตุผล: อุปกรณ์ยังคงเสียบอยู่ แต่ไม่สามารถมองเห็นได้จากระบบปฏิบัติการ (เช่นไม่มีอยู่ในรายการ/proc/bus/usb) บางทีนี่อาจเกิดขึ้นกับ USB ชนิดอื่นหรืออุปกรณ์พกพาอื่น ๆ ได้เช่นกัน สิ่งนี้สามารถเกิดขึ้นได้เช่น:

  • หลังจาก Nautilus ถอดอุปกรณ์เก็บข้อมูล USB ออกแล้ว
  • หลังจาก VirtualBox ได้อ้างสิทธิ์อุปกรณ์เก็บข้อมูล USB (อุปกรณ์ดังกล่าวจะหายไปจากโฮสต์ Linux เมื่อเชื่อมต่อกับผู้เยี่ยมชมและจะไม่ปรากฏขึ้นอีกครั้งโดยอัตโนมัติหากไม่ได้เชื่อมต่อกับแขก)

เกิดอะไรขึ้นกับไดรเวอร์หรือฮาร์ดแวร์และที่สำคัญที่สุดอุปกรณ์สามารถเชื่อมต่อใหม่ได้อย่างไร (โดยไม่ต้องเสียบปลั๊กกลับเข้าที่)

โปรดทราบว่าคำถามนี้ไม่ได้เกี่ยวกับการติดตั้ง ในสถานะ“ ตัดการเชื่อมต่อแบบลอจิคัล” เคอร์เนลเชื่อว่าไม่มีสิ่งใดบนบัส USB (และแน่นอนว่าไม่มีรายการใต้/dev)


คำตอบ:


21

บางครั้งเป็นไปได้ที่จะทำรอบกำลังไฟบนสาขาของบัส USB ที่เสียบอุปกรณ์:

# echo suspend > /sys/bus/usb/devices/1-1/power/level
# echo auto > /sys/bus/usb/devices/1-1/power/level

1-1ควรมีการปรับการตั้งค่าของคุณ คุณสามารถดูว่าส่วนใดของทรี USB ที่อุปกรณ์ของคุณเสียบอยู่โดยเรียกใช้lsusb -tก่อนที่จะดีดออก

คุณสามารถค้นหาข้อมูลรายละเอียดเกี่ยวกับลินุกซ์ลินุกซ์ - รายการจดหมายหัวข้อนี้เช่น


6
"suspend" ไม่ทำงานบนเมล็ดหลัง 2.6.36
alexisdm

สมมติว่าdmesgรายงาน ID อุปกรณ์ที่ถูกต้อง ("usb 9-4: การปลดการเชื่อมต่อ USB [... ]") สิ่งนี้ไม่สามารถใช้งานได้กับ Arch Linux ล่าสุด ไม่มีเส้นทาง/sys/bus/usb/devices/9-4หลังจากนั้น
l0b0

1
1. dmesg: คำเตือน! พลังงาน / ระดับจะเลิก ใช้พลังงาน / การควบคุมแทน 2. superuser.com/questions/371068/…
socketpair

นอกจากนี้ยังsuspendไม่ได้รับการสนับสนุนในเคอร์เนลเวอร์ชันล่าสุดอีกต่อไป ....
Gert van den Berg

6

รีเซ็ตอุปกรณ์หรือฮับที่เชื่อมต่ออยู่และอุปกรณ์ควรปรากฏขึ้นอีกครั้ง นี่เป็นโปรแกรมขนาดเล็กที่จะทำ:

http://marc.info/?l=linux-usb-users&m=116827193506484

ใช้งานได้กับไดรฟ์ USB ส่วนใหญ่ที่ฉันได้ลอง แต่มีข้อยกเว้นเช่น Kingston DT 101 II 4GB ของฉันซึ่งล้มเหลวในคำสั่งสอบถามและอ่านความจุหลังจากรีเซ็ตและยังคงใช้งานไม่ได้จนกว่าจะสิ้นเปลืองพลังงาน

คุณสามารถจ่ายไฟให้กับอุปกรณ์ได้โดยไม่ต้องถอดปลั๊กหากได้รับพลังงานจากพอร์ตและฮับ USB ของคุณรองรับการควบคุมพลังงานต่อพอร์ต นี่เป็นโปรแกรมขนาดเล็กเพื่อควบคุมพลังงาน:

http://marc.info/?l=linux-usb-devel&m=113724451205634

น่าเสียดายที่เกือบจะไม่มีฮับ USB รองรับคุณสมบัตินี้และเป็นการยากมากที่จะหาอุปกรณ์ที่รองรับ ผู้ผลิตไม่โฆษณา ฮับจำนวนมากยังโกหกเกี่ยวกับมันเช่นถ้าคุณทำ "lsusb -v" คุณสามารถเห็น "การสลับพลังงานแบบพอร์ตต่อพอร์ต" ที่โฆษณาใน "wHubCharacteristic" แต่ในความเป็นจริงมันไม่ทำงาน ชิปเซ็ตอาจรองรับ แต่จะง่ายกว่า / ถูกกว่าสำหรับผู้ผลิตในการเชื่อมต่อพินพาวเวอร์พอร์ตเข้ากับแหล่งจ่ายไฟโดยตรงแทนที่จะผ่านชิปเซ็ต


5

ฉันพบคำตอบนี้เพื่อใช้งานได้ดีกับระบบ Gentoo ของฉัน โปรดอย่าลืมเปิดใช้งานอุปกรณ์ของคุณอีกครั้งหากเป็นส่วนสำคัญของระบบของคุณ (เช่นเมาส์หรือแป้นพิมพ์)

sudo sh -c 'AUTHFILE="/sys/bus/usb/devices/5-2/authorized" ; echo 0 > "$AUTHFILE" ; sleep 1 ; echo 1 > "$AUTHFILE"'

หากต้องการดูสิ่งที่คุณปิดใช้งาน / เปิดใช้งานอีกครั้ง:

cat /sys/bus/usb/devices/5-2/product

นี่ดูเหมือนจะเป็นการหลอกลวงในระบบ Fedora 25 ที่ทันสมัยของฉัน วิธีการอื่นไม่สามารถทำได้อีกต่อไป
xenithorb

5
udevadm info -a -n /dev/sdb

ตอนนี้ตรวจสอบเคอร์เนล เช่นถ้าเชื่อมต่อกับพอร์ต 2 ของ Front UIP ก็จะเป็น 1-1.2 และหากเชื่อมต่อกับพอร์ต 1 ของ Front UIP ก็จะเป็น 1-1.1

สำหรับพอร์ต 2: วิธียกเลิกการเชื่อมต่อ USB:

echo '1-1.2' | tee /sys/bus/usb/drivers/usb/unbind

ในการเชื่อมต่อ USB:

echo '1-1.2' | tee /sys/bus/usb/drivers/usb/bind

3

ฉันลองทำตามคำแนะนำด้านบนเกือบทั้งหมดแล้ว แต่มันไม่ได้ผลสำหรับฉัน ฉันพบวิธีรีเซ็ตอุปกรณ์ USB จากบรรทัดคำสั่ง: https://askubuntu.com/a/290519

echo $i >/sys/bus/pci/drivers/ehci_hcd/bind

ที่ซึ่ง$iคุณสามารถใช้ ID อุปกรณ์ที่เหมาะสม/sys/bus/pci/drivers/ehci_hcdได้


กรุณาโพสต์มากกว่าลิงค์; รวมถึงรายละเอียดบางอย่างเพื่อให้ผู้คนไม่ต้องคลิกเพื่อตอบคำถาม
jasonwryan


-5

ฉันไม่แน่ใจว่าฉันเข้าใจคำถามของคุณอย่างถูกต้อง แต่ในระบบของฉันหากเสียบอุปกรณ์ usb แต่ไม่ได้ติดตั้งฉันสามารถ 'เห็น' โดย

$> fdisk -l

นั่นบอกฉันว่ามันเกี่ยวข้องกับอุปกรณ์อะไร (เช่น / dev / sdd1 หรืออะไรบางอย่าง) จากนั้นฉันก็เมามันด้วยตัวเอง


5
อีกครั้ง: ไม่คำถามไม่เกี่ยวกับระบบไฟล์ที่ไม่สามารถเข้าถึงได้ (เช่นถูกยกเลิกการต่อเชื่อม) เป็นเรื่องเกี่ยวกับอุปกรณ์ที่ไม่สามารถเข้าใช้งานได้ (เคอร์เนลไม่เห็นอุปกรณ์ดังนั้นแน่นอนว่าไม่มีรายการใต้/dev)
Gilles 'หยุดความชั่วร้าย' Gilles
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.