ติดตั้งไดรฟ์ USB ที่ไม่รู้จัก


23

การใช้ Arch Linux / XFCE ฉันมีปัญหากับไดรฟ์ USB ที่ติดตั้งไม่ถูกต้อง บางครั้งพวกเขาจะปรากฏขึ้นใน Thunar โดยอัตโนมัติและฉันสามารถติดตั้งได้ด้วยคลิกเดียว อย่างไรก็ตามในบางครั้ง (ประมาณห้าสิบ / ห้าสิบ) ไดรฟ์ไม่ได้รับการยอมรับ ฉันมีปัญหานี้กับฮาร์ดไดรฟ์ภายนอก USB, เมมโมรี่สติ๊ก USB และกล้อง หากไม่รู้จักไดรฟ์ภายนอกแสดงว่าเป็นสถานการณ์:

  • ไดรฟ์ไม่แสดงfdisk -lเลย (แสดงเฉพาะฮาร์ดไดรฟ์ของฉัน)
  • ไดรฟ์ไม่ปรากฏที่ /dev/disk
  • ไดรฟ์ไมปรากฏขึ้นเมื่อทำงานlsusb

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

UPDATE

เมื่อฉันตรวจสอบ/var/log/everything.log(ไม่มีข้อมูลใน syslog) จากนั้นฉันเห็นสิ่งนี้เกิดขึ้นเมื่อเสียบ USB:

Dec 14 15:36:32 localhost kernel: [ 6591.042911] usb 1-3: new high speed USB device number 9 using ehci_hcd
Dec 14 15:36:32 localhost mtp-probe: checking bus 1, device 9: "/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-3"
Dec 14 15:36:32 localhost mtp-probe: bus: 1, device: 9 was not an MTP device

นี่เป็นอีกเอาต์พุตที่ร้องขอ:

$udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[6809.192268] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-3 (usb)
KERNEL[6809.193421] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0 (usb)
UDEV  [6809.299246] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-3 (usb)
UDEV  [6809.306074] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0 (usb)

เรียกใช้คำสั่งนี้udevadm monitorแล้วเสียบอุปกรณ์ USB ของคุณและโพสต์ชุดปัญหาใด ๆ ที่คุณพบมี
Hanan N.

@HananN คัดลอก; ฉันได้เพิ่มสิ่งนี้

1
แค่คิด: บางครั้งฉันมีปัญหานี้เมื่อเชื่อมต่อผ่าน USB Hub ซึ่งไม่ได้ขับเคลื่อนภายนอก
erch

คำตอบ:


12

ปัญหาดูเหมือนจะเป็นกฎ catchall ใน/lib/udev/rules.d/69-libmtp.rules:

# Autoprobe vendor-specific, communication and PTP devices
ENV{ID_MTP_DEVICE}!="1", ENV{MTP_NO_PROBE}!="1", ENV{COLOR_MEASUREMENT_DEVICE}!="1", ENV{libsane_matched}!="yes", ATTR{bDeviceClass}=="00|02|06|ef|ff", PROGRAM="/usr/lib/udev/mtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}", RESULT=="1", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"

การใส่ความคิดเห็นลงในบรรทัดนั้นดังที่แสดงไว้ด้านล่างได้แก้ไขปัญหา:

# Autoprobe vendor-specific, communication and PTP devices
ENV{ID_MTP_DEVICE}!="1", ENV{MTP_NO_PROBE}!="1", ENV{COLOR_MEASUREMENT_DEVICE}!="1", ENV{libsane_matched}!="yes", ATTR{bDeviceClass}=="00|02|06|ef|ff", PROGRAM="/usr/lib/udev/mtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}", RESULT=="1", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"

ในกรณีของฉันฉันต้องรีบู๊ต แต่อาจมีบริการที่สามารถรีสตาร์ทได้


ข้อมูลนี้อยู่ใน /var/log/everything.log แต่อย่างที่คุณเห็นว่าไม่มีตัวอักษรระบุไดรฟ์ (ซึ่งจะเห็นด้วย fdisk ด้วย) มีเอาต์พุตน้อยมาก แต่มีบางส่วน ฉันได้เพิ่มสิ่งนี้ไว้ที่ด้านบน

5
ตอนนี้ดูเหมือนว่าจะได้รับการแก้ไข! ในบันทึกฉันพบสิ่งนี้: 14 ธ.ค. 15:36:32 localhost mtp-probe: bus: 1, อุปกรณ์: 9 ไม่ใช่อุปกรณ์ MTP และหลังจากค้นหาสิ่งนี้ฉันพบกระทู้นี้: bbs.archlinux.org/viewtopic php? id = 119676 - และฉันสามารถแก้ปัญหาได้โดยแสดงความคิดเห็นเกี่ยวกับ catch-all line ในกฎ MTP ตอนนี้ดูเหมือนว่าจะใช้งานได้ ขอบคุณ!

4
@ user11780: หากคำตอบที่แท้จริงคือคำตอบที่คุณให้ไว้ในความคิดเห็นของคุณแล้วแทนที่จะยอมรับคำตอบที่เสนอคุณควรเขียนคำตอบใหม่ด้วยตัวคุณเองพร้อมกับข้อมูลที่คุณพบแล้วยอมรับ มิฉะนั้นผู้อ่านทั่วไปจะเข้าใจผิดในการคิดคำตอบของ kbyrd - ซึ่งเป็นความคิดเห็นมากกว่าคำตอบ - เป็นคำตอบที่ถูกต้อง
Teemu Leisti

เห็นด้วยอย่างสมบูรณ์กับ @TeemuLeisti ใส่คำตอบที่ถูกต้องที่นี่จากนั้นเปลี่ยนคำตอบที่ถูกต้องจากฉันเป็นคำตอบใหม่ของคุณ
kbyrd

โอ้และแทนที่จะเชื่อมโยงไปยังบทความโปรดทำซ้ำข้อมูลที่นี่ - หน้าท้ายลิงค์อาจหายไปทำให้คำตอบของคุณไร้ประโยชน์
Teemu Leisti

7

ฉันเคยENV{MTP_NO_PROBE}="1"หยุดโปรแกรม MTP Probe /lib/udev/rules.d/69-libmtp.rulesวิธีการที่ฉันไม่ได้มีการปรับเปลี่ยนโค้งของ

export MTP_NO_PROBE="1"

ขอบคุณ วิธีแก้ปัญหาที่สั้นและดีexport MTP_NO_PROBE="1"
kyb

แต่ดูเหมือนว่าจะทำงานเป็น USB2.0 ในพอร์ต USB3.0
kyb

0

การบันทึกแสดงว่ามีบางอย่างเกิดขึ้นกับการตรวจจับอุปกรณ์ MTP

ลองถอนการติดตั้งlibmtpหากคุณสามารถหลีกเลี่ยงได้หรือเพียงแค่แสดงความคิดเห็นกฎ udev ในไฟล์ที่เกี่ยวข้อง

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