Linux教程

linux开发板增加adb功能

本文主要是介绍linux开发板增加adb功能,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前言

本文将以100ask的imx6ull开发板为例,在开发板增加adb功能,该功能可以用于文件传输和开发调试;可以将pc端的文件传输到开发板。

一、Buildroot配置

Buildroot配置,需要将adb功能打开并加usb功能配置脚本

1、打开adb相关配置

进入buildroot目录执行配置命令:

make menuconfig

 
 1

打开adb相关配置,如下图所示
在这里插入图片描述

2、添加配置脚本

进入100ask_imx6ull-sdk/Buildroot_2019.02/board/100ask/bash/etc/init.d目录,进行如下步骤:
1、新建一个usb目录

mkdir usb

 
 1

2、在init.d目录下新建文件

vi S91usb
并添加如下内容,配置usb composit:
#! /bin/sh
CONFIGS_HOME=/sys/kernel/config/usb_gadget/demo
case "$1" in
  start)
        modprobe libcomposite
        mount none /sys/kernel/config -t configfs
        mkdir /sys/kernel/config/usb_gadget/demo
        cd /sys/kernel/config/usb_gadget/demo
        mkdir strings/0x409
        echo 0x1802 >  idVendor
        echo 0x1d06 >  idProduct
        echo 0x0100 >  bcdDevice
        echo "1234567ab" > strings/0x409/serialnumber
        echo "stack" > strings/0x409/manufacturer
        echo "usb composite" > strings/0x409/product
        mkdir -p /sys/kernel/config/usb_gadget/demo/configs/c.1
        mkdir -p /sys/kernel/config/usb_gadget/demo/configs/c.1/strings/0x409
        echo "adb+xxxx" > $CONFIGS_HOME/configs/c.1/strings/0x409/configuration
        echo 0xc0 > $CONFIGS_HOME/configs/c.1/bmAttributes
        echo 500 > $CONFIGS_HOME/configs/c.1/MaxPower

        /etc/init.d/usb/uvc $1
        /etc/init.d/usb/adb $1
        ls /sys/class/udc > $CONFIGS_HOME/UDC
        ;;
stop)
        echo none > /sys/kernel/config/usb_gadget/demo/UDC
        /etc/init.d/usb/adb $1
        ;;
*)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit $?


3、在usb目录下新建adb配置文件

vi adb
并添加如下内容:
#!/bin/sh
#
# Start adb....
#
case "$1" in
  start)
        cd /sys/kernel/config/usb_gadget
        killall adbd
        mkdir -p demo/functions/ffs.adb
        ln -s demo/functions/ffs.adb demo/configs/c.1
        mkdir -p /dev/usb-ffs/adb

        adb_dev="imx6ull-adb-dev"
        if [ ! -f "/usr/data/disableadb"  ];then
                echo "Starting adb ..."
                echo -n $adb_dev > demo/strings/0x409/serialnumber
                cd -
                mount -t functionfs adb /dev/usb-ffs/adb
                adbd &
                sleep 1
        else
                echo "Not start adb"
                echo -n $adb_dev > demo/strings/0x409/serialnumber
                cd -
        fi
        ;;
  stop)
        killall adbd
        sleep 1
        umount /dev/usb-ffs/adb
        rm /sys/kernel/config/usb_gadget/ -rf
        rm /sys/kernel/config/usb_gadget/ -rf
        umount /sys/kernel/config
        ;;
  restart|reload)
        ;;
  *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit $?

二、配置linux kernel

1、linux 内核usb gadget功能配置

进入kernel目录下,执行命令:

make menuconfig

 
 1

配置如下图所示:
在这里插入图片描述

三、功能使用示例

1、编译烧写

将之前配置后的buildroot和kernel进行重新编译,进入Buildroot执行编译命令,并烧写新生成的emmc.img。

2、使用adb在pc端登录开发板

在pc执行命令:

adb shell

 
 1

登录效果如下图所示:
在这里插入图片描述

2、使用adb传输文件到开发板

执行命令:

adb push filename /

 
 1

通过上述命令可以将名为filename的文件传输到开发板的根目录下,注意使用adb传输文件一次只能传输一个文件。

这篇关于linux开发板增加adb功能的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!