调试记录-RK平台用指令开启ADB功能

需求

嵌入式Linux系统调试过程中,为了方便,我们会借鉴Android调试的方法,在Linux系统添加adb功能,主要功能是通过USB线连接开发板和PC,实现两者之间传输文件,在PC上执行指令操作开发板。

实现

前提:kernel的dts需要配置好USB相关的配置,defconfig配置好gadget和ffs驱动;应用层移植好adbd

这里操作的Linux环境是buildroot,如果是RK平台的SDK,默认是有USB初始化脚本的,不需要自己实现。

如果要自己实现,需要把RK平台默认的USB初始化脚本去掉,一般是S50usbdevice和usbdevice两个脚本,然后执行下面指令:

bash 复制代码
mount -t configfs none /sys/kernel/config
mkdir /sys/kernel/config/usb_gadget/rockchip -m 0770
echo "0x2207" > /sys/kernel/config/usb_gadget/rockchip/idVendor
echo "0x0006" > /sys/kernel/config/usb_gadget/rockchip/idProduct
echo "0x0310" > /sys/kernel/config/usb_gadget/rockchip/bcdDevice
mkdir /sys/kernel/config/usb_gadget/rockchip/strings/0x409 -m 0770
echo "rockchip" > /sys/kernel/config/usb_gadget/rockchip/strings/0x409/manufacturer
echo "rv1126" > /sys/kernel/config/usb_gadget/rockchip/strings/0x409/product
echo "0123456789ABCDEF" > /sys/kernel/config/usb_gadget/rockchip/strings/0x409/serialnumber
mkdir /sys/kernel/config/usb_gadget/rockchip/configs/b.1 -m 0770
mkdir /sys/kernel/config/usb_gadget/rockchip/configs/b.1/strings/0x409 -m 0770
echo 500 > /sys/kernel/config/usb_gadget/rockchip/configs/b.1/MaxPower
echo "adb" > /sys/kernel/config/usb_gadget/rockchip/configs/b.1/strings/0x409/configuration
mkdir /sys/kernel/config/usb_gadget/rockchip/functions/ffs.adb
ln -s /sys/kernel/config/usb_gadget/rockchip/functions/ffs.adb /sys/kernel/config/usb_gadget/rockchip/configs/b.1/ffs.adb
mkdir -p /dev/usb-ffs/adb
mount -o uid=2000,gid=2000 -t functionfs adb /dev/usb-ffs/adb
export service_adb_tcp_port=5555
adbd &
sleep 1
echo ffd00000.dwc3 > /sys/kernel/config/usb_gadget/rockchip/UDC
#注意:这里的ffd00000.dwc3是rv1126的usb控制器地址,不同主控这里的名字和地址是不一样的
相关推荐
羽获飞几秒前
从零开始学嵌入式之STM32——9.STM32的时钟系统
stm32·单片机·嵌入式硬件
旖旎夜光28 分钟前
Linux(13)(中)
linux·网络
飞睿科技44 分钟前
乐鑫智能开关方案解析:基于ESP32-C系列的低功耗、高集成设计
嵌入式硬件·物联网·esp32·智能家居·乐鑫科技
威迪斯特1 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.1 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔1 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
ONE_SIX_MIX1 小时前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞051 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
*小海豚*1 小时前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器
June`1 小时前
muduo项目排查错误+测试
linux·c++·github·muduo网络库