1、环境:ADB over USB on Ubuntu12.04(32-bit) PC.
2、问题:adb devices 后只显示:List of devices attached,不现实设备列表
3、问题排查:
确定usb调试模式已经打开;
确定usb线已经链接上;
具体问题如下:
mike@mike-laptop:~$ adb devices * daemon not running. starting it now on port 5037 * * daemon started successfully * List of devices attached
3、解决方法:
第一步、
修改文件:/etc/udev/rules.d/51-android.rules
文件内容:SUBSYSTEM==”usb”, ATTR{idVendor}==”04e8″, MODE=”0666″, GROUP=”plugdev”
注意事项:
- 如果没有/51-android.rules文件,则新建一个。
- 修改权限:sudo chmod a+x 51-android.rules;
- 如果有多个设备,可以增加多行;
上面的参数“04e8”是设备的型号标志,如何找你的设备型号呢?
使用命令:lsusb
发现如下内容:
mike@mike-laptop:~$ lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 083: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II]
发现了吗?最后一行,是我的设备,在ID后面的第一个参数即是。
现在先杀掉adb的进程:
sudo killall -9 adb
然后,adb devices
如果,出现了设备列表,则已经成功了。
!!!!!!!!!这是第一步解决方案。主要目的:让adb有对创建的usb节点有访问权限。
其实,在做这一步之前,最简单的方法是通过root来启动adb server,如果能发现设备列表,那么就是权限问题。
如果以上方法没有解决问题,继续看。
第二步、
可能是你的android设备的vid未能加入adb中,下面手动添加。
添加的位置:$HOME/.android/adb_usb.ini
***在做这步的时候,我把root的这个位置也添加了。如果你不成功,也可以试试。
adb_usb.ini的示例: #for OKWAP C900 0x14b4 #for K-Touch W606 0x0525 #for lenovo speic 0x2006
添加好了之后,杀掉adb server,然后启动adb server。
做完这两步,应该能解决问题了。如果还不能……..ok,继续Google吧!
——————————————————————————–
其中一个环节:
我的adb环境位置是存放在.bash里,因为udev服务是需要root权限,
而sudo adb之后,root下可能没找到adb的位置,
所以,我把.bash复制到/root/下。
——————————————————————————–
提供其他解决方案:
http://linfengdu.blog.163.com/blog/static/11771073201362551915534/
http://yishanhe.net/linux-android-debug-on-real-phones/
http://blog.csdn.net/mr_driver/article/details/8449642
转载随意~:陶醉 » List of devices attached