【FAQ】全志R329 多台设备的adb device id相同,无法指定设备,如何指定设备的adb device id?
- 
					
					
					
					
 问题背景 系统平台:R329 + Tina 问题描述 多块R329开发板连接电脑后的adb device id相同,均为一串0,同时连接时无法通过adb -s [device id] shell指定设备连接,需要给每个设备指定不同的device id。 问题分析 一串0的长度与chip id的长度相似,猜测默认是将chip id 作为device id,但是这几块开发板没有烧码导致device id相同; cat /sys/class/sunxi_info/sys_info查看sunxi_serial确实是一串0。 解决方法 Tina_Linux_USB_开发指南.pdf中有配置USB序列号的介绍,其中是在uboot将chip id作为androidboot.serialno,由adbd脚本读取该值,写入节点/sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber 读取serialnumber的代码如下: get_serialnumber() { str=`cat /proc/cmdline |tr ' ' '\n' | grep 'androidboot.serialno' | awk -F "=" '{print $2}'` [ -z $str ] || SERIALNUMBER=$str }这里我直接修改脚本而不去修改dts: 修改/etc/rc.d/K99adbd中的get_serialnumber函数为: get_serialnumber(){ SERIALNUMBER="12345678" }其中的12345678即为指定的device id。 也可以读取将指定文件内容作为serialnumber,文件不存在时随机生成并保存为文件: ADB_SERIAL_CONF="/etc/adb_serial.conf" get_serialnumber() { if [ ! -f $ADB_SERIAL_CONF ];then rand_var=$(head -200 /dev/urandom | cksum | cut -f1 -d " ") if [ -n "$rand_var" ];then SERIALNUMBER=$(printf %010d $rand_var) echo $SERIALNUMBER > $ADB_SERIAL_CONF fi else SERIALNUMBER=$(cat $ADB_SERIAL_CONF) fi }
- 
				Referenced by q1215200171 q1215200171
- 
				Referenced by q1215200171 q1215200171
- 
				Referenced by q1215200171 q1215200171
- 
				Referenced by q1215200171 q1215200171
- 
				Referenced by q1215200171 q1215200171
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号