ADB不再识别设备

时间:2014-10-13 13:41:29

标签: android linux adb

整个系列平板电脑不再显示在ADB设备上(一周前它们工作得很好)。其他Android设备可以正常工作(如我的Nexus 5手机)。这是我第一次遇到这个问题。我已经阅读并尝试了我在SO和其他网站上找到的大多数解决方案都无济于事。情况如下:

  • 他们在lsusb中显示为Bus 010 Device 004: ID 18d1:dddd Google Inc.
  • 创建/修改了/etc/udev/rules.d/51-android.rules并添加了SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"(以及其他几个属性组合)。
  • 通过udev重新启动sudo service udev restart
  • 通过adb kill-server重启ADB服务器; adb start-server`。
  • 尝试了PC上的所有USB端口。
  • 尝试了另一根USB线。
  • 重新启动PC和平板电脑。

奇怪的是,即使我清空/etc/udev/rules.d/51-android.rules文件并重新启动udev守护程序,adb仍会检测到我的Nexus 5手机。

我记得在这个问题开始发生之前我做过的改变:

  • 开始使用Android Studio而不是Eclipse(虽然我使用相同的ADK)和工具)
  • 将Ubuntu升级到最新版本14.04(这里可能有一些udev更改/问题?)

欢迎任何进一步的建议,谢谢。


编辑:按照评论中的建议运行lsusb -v时,我可以看到此说明:

  bInterfaceClass         8 Mass Storage
  bInterfaceSubClass      6 SCSI
  bInterfaceProtocol     80 Bulk-Only
  iInterface              1 Mass Storage

而Nexus 5显示为

  bInterfaceClass       255 Vendor Specific Class
  bInterfaceSubClass    255 Vendor Specific Subclass
  bInterfaceProtocol      0
  iInterface              4 MTP

编辑:平板电脑在其他计算机上通过ADB完美运行(Windows和Linux)。所以它一定是我的盒子的问题。


编辑:正如评论中所建议的那样,我在TCP模式下尝试了ADB并且运行正常。运行dmesg后,我可以看到系统正在尝试使用ndiswrapper加载ADB的Windows驱动程序

[277701.803751] usb 1-4: reset high-speed USB device number 48 using ehci-pci
[277701.952803] ndiswrapper (load_wrap_driver:103): couldn't load driver android_winusb; check system log for messages from 'loadndisdriver'

此消息并未在其他可通过USB工作的ADB正常工作的Linux机器上显示。

2 个答案:

答案 0 :(得分:1)

由于相同的设备可以在其他PC上运行,因此您已经可以排除平板电脑方面的硬件问题。还有待检查的事项是:

  • PC上的USB权限:虽然其他设备可以使用,但您仍可能没有足够的权限使用adb访问平板电脑。您提到的udev规则是特定于供应商的,有时也是特定于设备的。将权限排除为问题的唯一方法是以root用户身份启动adb。 adb分叉守护进程,因此在尝试执行此操作之前,您必须杀死任何adb实例:
    $ pkill adb
    $ sudo adb devices
    如果设备确实显示在列表中,您必须调整udev规则。暂时,您可以继续正常使用adb - 它将连接到现在以root身份运行的服务,因此可以按预期工作。
  • 驱动程序问题:在平板电脑的开发者菜单中,您可以选择“adb over tcp”作为选项。启用它并then connect to it from your PC。如果这样做,调试桥本身就很好,因此USB连接必须是问题的根源。我们已经可以排除有缺陷的电缆,因为该设备确实显示在lsusb中,其他功能可以按预期工作。运行dmesg应该为您提供解决问题所需的信息,可能是干扰设备驱动程序。尝试使用rmmod / modprobe
  • 卸载它

答案 1 :(得分:0)

自12.10+以来的差异是MTP支持。我知道14.04一旦插入手机就会自动使用它。这应该比#34; Mass Storage"更快更简单。也许它会妨碍你,你应该找到一种方法来从PC端或设备上禁用它?