ubuntu 10.04 使能新设备的adb功能

在Ubuntu 10.04中,当遇到Linux系统不识别adb端口的情况,通常是因为udev规则缺少设备配置或设备未正确切换到adb接口。本文介绍了如何解决此问题,包括安装和更新usb_modeswitch工具,以及如何手动导入新设备的规则,以确保adb能够正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux系统不认终端adb端口有两种情况,一是终端的vID和pID在udev的rules里面没有对应项,在

http://blog.youkuaiyun.com/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,遂决定安装最新版,操作过程如下:


1,下载usb-modeswitch-1.2.3.tar.bz2和usb-modeswitch-data(这俩好基友好最好下同一版本的)和device_reference.txt

2,sudo apt-get install libusb-dev安装usb-modeswitch所需的库libusb

3,解压usb-modeswitch-1.2.3.tar.bz2后,进入该目录make install(如果之前安装过旧版本,先make uninstall)

4,解压usb-modeswitch-data后,进入该目录make install

整完这4步之后,C8812连PC之后adb已经可以用了,lsusb看到切换到了12d1:1035。


如果以后有新设备linux认不出来,可以下载最新的device_reference.txt,使用命令usb_modeswitch -C device_reference.txt导入新的规则来支持新设备。

(其实之前2010版的usb_modeswitch也可以通过这种方式更新规则,不需重新安装)


简单看下/usr/share/usb_modeswitch(应该是根据usb-modeswitch-data里的usb_modeswitch.d生成的)里有一个名字是12d1:1031的文件,内容如下:

  1 # Huawei U8110 / Joy, Vodafone 845 (Android smartphone)
  2 
  3 TargetVendor=  0x12d1
  4 TargetProduct= 0x1035
  5 
  6 MessageContent="55534243123456780600000080010a11060000000000000000000000000000"
  7 
  8 # for Android SDK
  9 NoDriverLoading=1

可以看到这个就是切换的规则。


usb_modeswitch相关参考以及下载链接:

http://www.draisberghof.de/usb_modeswitch/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值