IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> EmbedFire i.MX 6ull开发板学习笔记(十)---添加adbd支持 -> 正文阅读

[移动开发]EmbedFire i.MX 6ull开发板学习笔记(十)---添加adbd支持

EmbedFire i.MX 6ull开发板学习笔记(十)---添加adbd支持

为了方便往板子里push文件,进行调试,我给你板子添加了adbd。

  • 1、配置buildroot
Target packages  --->
	System tools  --->
		android-tools			#选中
			adbd				#选中

编译后在/usr/bin便拥有了adbd,再编写一个脚本启动它即可。

  • 2、参考RV1126上使用adbd的脚本,在/etc/init.d/下新建脚本文件S50usbdevice,脚本文件修改如下,注意修改USB
    vendor id为0x15A2。
#!/bin/sh
#
# setup configfs for adbd
#

ADB_PID=0x0006
USB_VENDOR_ID=0x15A2

USB_ATTRIBUTE=0x409
USB_GROUP=freescale
USB_SKELETON=b.1

CONFIGFS_DIR=/sys/kernel/config
USB_CONFIGFS_DIR=${CONFIGFS_DIR}/usb_gadget/${USB_GROUP}
USB_STRINGS_DIR=${USB_CONFIGFS_DIR}/strings/${USB_ATTRIBUTE}
USB_FUNCTIONS_DIR=${USB_CONFIGFS_DIR}/functions
USB_CONFIGS_DIR=${USB_CONFIGFS_DIR}/configs/${USB_SKELETON}

test_write()
{
	test -e $2 && echo $1 > $2
}

function_init()
{
	mkdir ${USB_FUNCTIONS_DIR}/ffs.adb
}

configfs_init()
{
	echo "Debug: configfs_init"
	mkdir /dev/usb-ffs

	mount -t configfs none ${CONFIGFS_DIR}
	mkdir ${USB_CONFIGFS_DIR} -m 0770
	echo $USB_VENDOR_ID > ${USB_CONFIGFS_DIR}/idVendor
	echo 0x0310 > ${USB_CONFIGFS_DIR}/bcdDevice
	echo 0x0200 > ${USB_CONFIGFS_DIR}/bcdUSB
	mkdir ${USB_STRINGS_DIR}   -m 0770
	SERIAL=`cat /proc/cpuinfo | grep Serial | awk '{print $3}'`
	if [ -z $SERIAL ];then
		SERIAL=0123456789ABCDEF
	fi
	echo $SERIAL > ${USB_STRINGS_DIR}/serialnumber
	echo "freescale"  > ${USB_STRINGS_DIR}/manufacturer
	echo "imx6ull"  > ${USB_STRINGS_DIR}/product

	function_init

	mkdir ${USB_CONFIGS_DIR}  -m 0770
	mkdir ${USB_CONFIGS_DIR}/strings/${USB_ATTRIBUTE}  -m 0770
}

pre_run_binary()
{
	mkdir /dev/usb-ffs/adb -m 0770
	mount -o uid=2000,gid=2000 -t functionfs adb /dev/usb-ffs/adb
	start-stop-daemon --start --quiet --background --exec /usr/bin/adbd
}

syslink_function()
{
	ln -s ${USB_FUNCTIONS_DIR}/$1 ${USB_CONFIGS_DIR}/f${USB_FUNCTIONS_CNT}
	let USB_FUNCTIONS_CNT=USB_FUNCTIONS_CNT+1
}

bind_functions()
{
	USB_FUNCTIONS_CNT=1

	syslink_function ffs.adb

	echo adb > ${USB_CONFIGS_DIR}/strings/${USB_ATTRIBUTE}/configuration
}

program_kill()
{
	P_PID=`ps | grep $1 | grep -v grep | awk '{print $1}'`
	test -z ${P_PID} || kill -9 ${P_PID}
}

usb_device_stop()
{
	echo "none" > ${USB_CONFIGFS_DIR}/UDC
	program_kill adbd
	ls ${USB_CONFIGS_DIR} | grep f[0-9] | xargs -I {} rm ${USB_CONFIGS_DIR}/{}
}

case "$1" in
start)
	test -d ${USB_CONFIGFS_DIR} || configfs_init
	echo $ADB_PID > ${USB_CONFIGFS_DIR}/idProduct
	bind_functions
	pre_run_binary
	sleep 1
	UDC=`ls /sys/class/udc/| awk '{print $1}'`
	echo $UDC > ${USB_CONFIGFS_DIR}/UDC
	;;
stop)
	usb_device_stop
	;;
restart|reload)
	# Do restart usb by udev
	usb_device_stop
	sleep 1
	$0 start
	;;
*)
	echo "Usage: $0 {start|stop|restart}"
	exit 1
esac

exit 0

  • 3、修改内核,记得添加USB_GADGET支持,这部分一般都是已配置了的。
  • 4、查看设备树,板子的USB_OTG部分是否已添加,特别时USB_OTG _ID引脚设置和初始化电平是否与板子原理图相对应。

完成以上部分修改即可,使用adb了。
在这里插入图片描述

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:41:49  更:2022-03-15 22:44:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 17:21:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码