linux开发板增加adb功能

本文档详细介绍了如何在100ask imx6ull开发板上配置和使用ADB功能,包括在Buildroot中开启ADB及USB配置,修改Linux内核的usbgadget设置,以及如何通过ADB进行文件传输和远程登录开发板的操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux开发板增加adb功能


前言

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

一、Buildroot配置

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

1、打开adb相关配置

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

make menuconfig

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

2、添加配置脚本

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

mkdir usb

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、编译烧写

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

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

在pc执行命令:

adb shell

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

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

执行命令:

adb push filename /

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值