linux系统不认终端adb端口有两种情况,一是终端的vID和pID在udev的rules里面没有对应项,在
http://blog.csdn.net/yang_hui1986527/article/details/7665989#comments
的文章提到了怎么解决这个问题。
另外一种情况是,终端映射出来的vID和pID不是adb interface的vID/pID:目前的手机或者数据卡连接PC的时候会首先映射出一个U盘或者光驱,里面会包含驱动或拨号工具等等必需软件,windows在碰到这样的设备的时候会自动切换(mode switch)终端的功能(所谓的ZeroCD功能,厂商可省掉驱动光盘的成本)。
在linux界自然也有对应的办法来处理这种情况,这就是usb_modeswitch工具。我机器上安装的是“老迈”的ubuntu 10.04,默认连usb_modeswitch也没有,于是C8812连接之后使用lsusb看到的ID是12d1:1031,adb不可用;在别人11.10系统上lsusb看到的是12d1:1035,必然是没有进行切换了。用apt-get install安装之后发现自动安装的是2010年的版本,里面的切换规则也不全。谷歌了一通发现usb_modeswitch的最新版本已经到了1.2.3,支持的设备列表也更新到了2012-05-19,遂决定安装最新版,操作过程如下: