安装无法识别的USB驱动器


23

使用Arch Linux / XFCE,我经常遇到USB驱动器未正确安装的问题。有时它们会自动出现在Thunar中,我可以一键安装它们。但是,在其他时间(大约五十/五十),驱动器只是无法识别。USB外部硬盘驱动器,USB记忆棒和相机出现了此问题。如果无法识别外部驱动器,则是这种情况:

  • 该驱动器根本不显示fdisk -l(仅显示我的硬盘驱动器)
  • 驱动器未出现在 /dev/disk
  • 运行时驱动器确实出现lsusb

因此,存在某种识别,但是我不理解为什么,也不知道在这种情况下如何安装驱动器。我只是重新启动并希望下次可以使用,这显然不方便...

更新

当我监视/var/log/everything.log(系统日志中没有信息)时,然后插入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集线器进行连接时,有时会遇到这个问题
erch 2013年

Answers:


12

问题似乎是/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
好吧,现在看来已经修复了!在日志中,我找到了这个:Dec 14 15:36:32 localhost mtp-probe:bus:1,device:9不是MTP设备,在搜索之后,我发现了这个线程:bbs.archlinux.org/viewtopic。 php?id = 119676-并且我能够解决该问题,并注释掉了MTP规则中的“ 包罗万象”行,现在看来它正在运行。谢谢!

4
@ user11780:如果实际答案是您在评论中给出的答案,则应该接受发现的信息,然后自己写一个新答案,而不是接受所提供的答案,然后接受。否则,随便的读者就会被误导认为kbyrd的答案是正确的答案-实际上,这是评论而不是答案。
Teemu Leisti

完全同意@TeemuLeisti。在这里输入正确的答案,然后将正确的答案从我的答案更改为新的答案。
kbyrd

哦,不仅要链接到该文章,还请在此处重复信息-链接末尾的页面可能会消失,从而使您的答案无用。
Teemu Leisti

7

我曾经ENV{MTP_NO_PROBE}="1"停止过MTP探针。这样,我就无需修改Arch的/lib/udev/rules.d/69-libmtp.rules

export MTP_NO_PROBE="1"

谢谢。简短而不错的解决方案export MTP_NO_PROBE="1"
kyb

但是它似乎可以在USB3.0端口中用作USB2.0。
kyb

0

记录显示MTP设备检测发生了某些事情。

libmtp如果可以的话,请尝试卸载,或者只是在相关文件中注释掉udev规则。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.