EmbedFire i.MX 6ull开发板学习笔记(十)---添加adbd支持
为了方便往板子里push文件,进行调试,我给你板子添加了adbd。
Target packages --->
System tools --->
android-tools
adbd
编译后在/usr/bin便拥有了adbd,再编写一个脚本启动它即可。
- 2、参考RV1126上使用adbd的脚本,在/etc/init.d/下新建脚本文件S50usbdevice,脚本文件修改如下,注意修改USB
vendor id为0x15A2。
#!/bin/sh
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)
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了。
|