亚行不再承认设备了

整个平板电脑不再在亚行设备上显示(他们在一周前工作得很好)。 其他Android设备的工作(如我的Nexus 5手机)。 这是我第一次面对这个问题。 我已经阅读并尝试了我在SO和其他站点find的大多数解决scheme,但都无济于事。 情况如下:

  • 他们在lsusb显示为Bus 010 Device 004: ID 18d1:dddd Google Inc. .。
  • 创build/编辑/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电缆。
  • 重新启动电脑和平板电脑。

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

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

  • 开始使用Android Studio而不是Eclipse(尽pipe我使用相同的ADK)和工具)
  • 升级Ubuntu到最新版本14.04(也许一些udev变化/问题在这里?)

欢迎提出任何进一步的build议,在此先感谢。


编辑:当按照build议运行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 

编辑: 平板电脑在其他电脑 (Windows和Linux) 通过亚行完美工作 。 所以这一定是我的盒子有问题。


编辑:正如在评论中所build议的,我尝试在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' 

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

由于相同的设备在其他PC上工作,您可以排除平板电脑方面的硬件问题。 更多的事情要检查:

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

自12.10+以来的差异是MTP支持。 我知道14.04在手机插入后自动使用它,这应该比“大容量存储”更快,更简单。 也许这是阻碍你,你应该找到一种方法来禁用它从PC端或设备?