linux开发板增加adb功能

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传输文件一次只能传输一个文件。

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
为了在Linux开发板上启用adb,你可以按照以下步骤进行操作: 1. 首先,打开终端并输入`lsusb`命令来查看USB设备列表。你可以确保开发板USB设备被正确识别。 2. 确认你的开发板上是否已经安装了adb工具。通常情况下,adb工具已经预装在Android开发环境中。你可以通过在终端输入`adb version`命令来验证adb是否已安装并正常工作。 3. 如果adb未正确识别你的开发板,你可以尝试以下解决方法: - 确保你的开发板已正确连接到计算机的USB端口。你可以尝试更换USB端口或使用其他数据线来排除硬件问题。 - 检查你的开发板是否已正确配置为允许USB调试模式。你可以在开发板的设置中找到该选项,并确保其已启用。 - 如果你的开发板使用的是自定义的Linux发行版,你可能需要根据具体的操作系统版本和配置来调整相关设置。你可以参考Linux开发社区的文档和讨论来获取更多帮助。 4. 如果以上步骤仍无法解决问题,你可以考虑使用第三方的adb替代方案,如adbd-linux或Android Debug Bridge daemon implementation in RT-Thread。这些工具提供了更多的定制选项和支持,可以适应不同的开发板和环境需求。你可以参考相关文档和讨论来获取更多关于这些工具的信息和使用方法。 请注意,具体的解决方法可能因开发板和操作系统的不同而有所差异。建议你查阅开发板和操作系统的官方文档,并参考开发社区的讨论来获取更准确和详细的指导。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Linux(Ubuntu) adb 无法识别的问题解决方法](https://download.csdn.net/download/weixin_38689477/14091282)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Linux usb 7. Linux 配置 ADBD](https://blog.csdn.net/kunkliu/article/details/122814710)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值