91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RK3588 Linux USB Gadget:usb_config.sh?全解析

jf_44130326 ? 來源:Linux1024 ? 作者:Linux1024 ? 2026-03-17 08:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

瑞芯微RK3588嵌入式開發(fā)中,USB功能的定制化是繞不開的核心需求——不管是做工業(yè)USB攝像頭、音視頻采集設(shè)備,還是邊緣計(jì)算終端的遠(yuǎn)程調(diào)試與網(wǎng)絡(luò)互通,都需要對USB Gadget進(jìn)行精準(zhǔn)配置。而usb_config.sh作為RK3588 Linux平臺下原生的USB Gadget配置腳本,基于Linux內(nèi)核configfs框架實(shí)現(xiàn)了UVC、UAC、RNDISADB、DFU等功能的靈活組合,是開發(fā)者快速實(shí)現(xiàn)USB功能定制的核心工具。

本文將結(jié)合RK3588的硬件特性,從腳本核心邏輯、功能模塊、實(shí)際使用到平臺化優(yōu)化,全方位解析這個(gè)腳本,讓你輕松掌握RK3588USB Gadget配置技巧。

一、前置基礎(chǔ):USB Gadgetconfigfs

首先簡單科普兩個(gè)核心概念,幫大家理解腳本的工作底層:

?USB Gadget:是Linux內(nèi)核為嵌入式設(shè)備提供的USB從設(shè)備功能框架,讓RK3588這類嵌入式芯片能模擬U盤、攝像頭、網(wǎng)卡、ADB調(diào)試設(shè)備等USB設(shè)備;

?configfs:是替代傳統(tǒng)gadgetfs的內(nèi)核態(tài)配置文件系統(tǒng),采用目錄/文件的方式配置USB Gadget參數(shù),無需修改內(nèi)核代碼,僅通過腳本即可動(dòng)態(tài)配置,是當(dāng)前嵌入式USB Gadget開發(fā)的主流方式。

RK3588作為瑞芯微高端八核64位芯片,原生支持USB2.0/3.0,內(nèi)核已默認(rèn)開啟USB Gadgetconfigfs支持,而usb_config.sh正是基于該框架,為RK3588定制了音視頻、網(wǎng)絡(luò)、調(diào)試等高頻USB功能的配置模板,開箱即用。

二、腳本核心框架:全局配置與變量定義

腳本以#!/bin/sh編寫,適配嵌入式LinuxPOSIX Shell環(huán)境,開頭的全局變量與開關(guān)配置是整個(gè)腳本的基礎(chǔ),也是開發(fā)者最易修改的部分,核心內(nèi)容如下:

# 功能開關(guān):默認(rèn)ADB開啟、DFU固件升級關(guān)閉ADB_EN=onDFU_EN=off# 第二個(gè)參數(shù)帶"off"則強(qiáng)制關(guān)閉ADB,適配調(diào)試/量產(chǎn)場景if( echo $2|grep -q"off"); thenADB_EN=offfi# USB功能/配置根目錄,基于configfs的固定路徑USB_FUNCTIONS_DIR=/sys/kernel/config/usb_gadget/rockchip/functionsUSB_CONFIGS_DIR=/sys/kernel/config/usb_gadget/rockchip/configs/b.1

RK3588專屬注意:腳本中rockchip為瑞芯微平臺的Gadget根目錄命名,RK3588Linux內(nèi)核已默認(rèn)創(chuàng)建該目錄,無需額外修改路徑,直接使用即可。

這部分的核心作用是統(tǒng)一功能開關(guān)與配置路徑開發(fā)者可根據(jù)量產(chǎn)/調(diào)試需求,直接修改ADB_EN/DFU_EN的默認(rèn)值,或通過命令行參數(shù)動(dòng)態(tài)控制ADB開關(guān),無需改動(dòng)腳本后續(xù)邏輯。

三、核心功能模塊:RK3588USB能力落地

usb_config.sh的核心價(jià)值,是為RK3588實(shí)現(xiàn)了音視頻、音頻、網(wǎng)絡(luò)、調(diào)試、固件升級五大USB功能的模塊化配置,其中UVCUSB視頻類)是腳本的核心模塊,充分適配了RK3588的硬編解碼能力。

3.1核心中的核心:UVC視頻配置,適配RK3588硬編解

RK3588內(nèi)置強(qiáng)大的視頻硬編解碼單元,支持H264/H265硬編、MJPEG格式處理,而腳本的UVC模塊正是為該特性量身定制,支持NV12、YUYVMJPEG、H264、H265五種像素格式,以及多分辨率的定制化參數(shù)(幀率、碼率、緩沖區(qū)大?。?。

腳本通過多個(gè)分辨率配置函數(shù)實(shí)現(xiàn)格式區(qū)分,例如configure_uvc_resolution_mjpegMJPEG配置)、configure_uvc_resolution_h264H264配置),所有函數(shù)遵循統(tǒng)一邏輯:創(chuàng)建分辨率目錄寫入寬高/幀率/碼率配置像素位數(shù)/格式GUID→適配系統(tǒng)識別。

針對RK3588的硬件特性,UVC模塊做了重點(diǎn)優(yōu)化:

1.高分辨率支持MJPEG格式最高支持2592x1944,適配RK3588的高清視頻采集需求;

2.硬編格式適配:原生支持H264/H265,直接調(diào)用RK3588的硬編單元,降低CPU占用;

3.多幀率可選:基礎(chǔ)格式默認(rèn)30fps,高分辨率格式做了幀率適配,避免USB帶寬溢出。

最終通過uvc_device_config函數(shù)完成UVC總配置,創(chuàng)建UVC功能目錄、建立速率適配軟鏈接(FS/HS/SS),并初始化默認(rèn)分辨率:YUYV640x480/1280x720)、MJPEG640x4802592x1944)、H264640x4801920x1080)。

3.2 UAC音頻配置:單/雙向音頻采集與播放

腳本支持UAC1/UAC2兩種USB音頻類規(guī)范,為RK3588實(shí)現(xiàn)立體聲音頻采集與播放,核心配置uac1_device_config/uac2_device_config函數(shù)邏輯一致,適配不同的音頻傳輸協(xié)議,關(guān)鍵參數(shù)如下:

?聲道:立體聲(聲道掩碼3),采樣位深16位;

?采樣率:8000/16000/44100/48000Hz,覆蓋工業(yè)/民用音頻場景;

?音量調(diào)節(jié):播放端-20dB0dB,捕獲端-12.5dB0dB,支持靜音功能。

UAC1/UAC2的功能完全一致,開發(fā)者可根據(jù)對接的上位機(jī)(如Windows/macOS/工業(yè)主機(jī))選擇對應(yīng)的規(guī)范,腳本已做好模塊化封裝,直接調(diào)用即可。

3.3輔助功能:RNDIS網(wǎng)絡(luò)與ADB調(diào)試

這兩個(gè)功能是嵌入式開發(fā)的高頻需求,腳本通過輕量的預(yù)運(yùn)行函數(shù)實(shí)現(xiàn),適配RK3588的遠(yuǎn)程調(diào)試與網(wǎng)絡(luò)互通:

1.RNDIS網(wǎng)絡(luò):通過pre_run_rndis函數(shù)配置USB網(wǎng)卡usb0,默認(rèn)IP[172.16.110.6](172.16.110.6),也可通過/data/uvc_xu_ip_save文件持久化自定義IP,讓RK3588通過USB直連實(shí)現(xiàn)網(wǎng)絡(luò)通信,無需額外網(wǎng)卡;

2.ADB調(diào)試:通過pre_run_adb函數(shù)掛載functionfs、啟動(dòng)adbd守護(hù)進(jìn)程,以2000/2000的權(quán)限運(yùn)行,適配RK3588Android/Linux雙系統(tǒng)調(diào)試需求。

3.4量產(chǎn)必備:DFU固件升級

DFU(設(shè)備固件升級)是嵌入式量產(chǎn)的核心功能,腳本通過DFU_EN開關(guān)控制,開啟后會自動(dòng)將DFU功能鏈接到USB配置節(jié)點(diǎn),并強(qiáng)制關(guān)閉ADB,避免量產(chǎn)過程中的調(diào)試風(fēng)險(xiǎn),適配RK3588的固件批量燒錄需求。

四、主流程執(zhí)行:RK3588USB配置落地步驟

腳本的主流程是將上述模塊化功能,按環(huán)境初始化設(shè)備標(biāo)識配置功能組合綁定生效的步驟落地,全程基于configfs操作,無需重啟內(nèi)核,動(dòng)態(tài)生效,完全適配RK3588的嵌入式開發(fā)特性,核心步驟如下:

步驟1:基礎(chǔ)環(huán)境初始化

卸載并重新掛載configfs,啟動(dòng)回環(huán)網(wǎng)卡lo(保證ADB正常運(yùn)行),創(chuàng)建USB功能掛載目錄,為后續(xù)配置做準(zhǔn)備;

步驟2USB設(shè)備標(biāo)識配置

寫入瑞芯微專屬廠商ID0x2207)、產(chǎn)品ID0x0017),以及設(shè)備版本、廠商名、產(chǎn)品名、硬件序列號(從/proc/cpuinfo讀取RK3588的唯一Serial),同時(shí)配置Windows適配的OS描述符(MSFT100),保證RK3588模擬的USB設(shè)備能被Windows/macOS/ Linux正常識別;

步驟3UVC初始化+清理默認(rèn)配置

優(yōu)先初始化UVC核心功能,同時(shí)清理內(nèi)核默認(rèn)的ADB配置,避免與自定義配置沖突(兼容瑞芯微老平臺,RK3588可忽略此兼容邏輯);

步驟4:參數(shù)化功能組合(核心)

腳本通過第一個(gè)命令行參數(shù)實(shí)現(xiàn)功能的靈活組合,這是最實(shí)用的部分,RK3588開發(fā)者可直接通過參數(shù)調(diào)用不同功能,無需修改腳本,核心組合如下:

執(zhí)行參數(shù)

功能組合

適用場景

無參數(shù)

UVC

USB攝像頭設(shè)備

rndis

UVC+RNDIS

帶網(wǎng)絡(luò)的高清視頻采集終端

uac1/uac2

UVC+UAC1/UAC2

音視頻一體采集設(shè)備

uac1_rndis/uac2_rndis

UVC+UAC+RNDIS

帶網(wǎng)絡(luò)的音視頻采集終端

步驟5DFU/ADB動(dòng)態(tài)綁定

根據(jù)DFU_EN/ADB_EN開關(guān),動(dòng)態(tài)將DFU/ADB鏈接到USB配置節(jié)點(diǎn),自動(dòng)計(jì)算節(jié)點(diǎn)編號,避免沖突,開啟后會更新配置名(如uvc→uvc_adb/uvc_dfu);

步驟6:綁定UDC生效

讀取RK3588USB設(shè)備控制器UDC)名稱,寫入Gadget根目錄的UDC文件,這一步是配置生效的關(guān)鍵,寫入后RK3588立即模擬成配置好的USB設(shè)備;

步驟7RNDIS網(wǎng)絡(luò)初始化

若參數(shù)包含rndis,自動(dòng)配置usb0網(wǎng)卡IP并啟動(dòng),實(shí)現(xiàn)USB網(wǎng)絡(luò)互通。

整個(gè)主流程無需人工干預(yù),一鍵執(zhí)行即可完成USB配置,完全適配RK3588的嵌入式自動(dòng)化開發(fā)需求。

五、RK3588實(shí)戰(zhàn):腳本使用命令示例

結(jié)合實(shí)際開發(fā)場景,給大家整理了RK3588usb_config.sh的常用執(zhí)行命令,直接在終端運(yùn)行即可,建議將腳本放到/etc/init.d/目錄,設(shè)置開機(jī)自啟,實(shí)現(xiàn)USB功能的開機(jī)即有。

# 場景1:純USB攝像頭(僅UVC,ADB開啟,調(diào)試用)./usb_config.sh# 場景2:純USB攝像頭(僅UVC,ADB關(guān)閉,量產(chǎn)用)./usb_config.sh off# 場景3:UVC+RNDIS(高清視頻采集+USB網(wǎng)絡(luò),遠(yuǎn)程調(diào)試)./usb_config.sh rndis# 場景4:UVC+UAC2(音視頻一體采集,工業(yè)攝像頭)./usb_config.sh uac2# 場景5:UVC+UAC2+RNDIS(音視頻采集+USB網(wǎng)絡(luò),邊緣計(jì)算終端)./usb_config.sh uac2_rndis

六、RK3588平臺專屬優(yōu)化建議

原腳本是瑞芯微通用平臺腳本,針對RK3588的硬件特性,我們可以做一些輕量化優(yōu)化,讓USB功能更貼合RK3588的性能,同時(shí)提升腳本的健壯性:

1.合并UAC1/UAC2冗余代碼

原腳本中UAC1/UAC2函數(shù)邏輯完全一致,可合并為一個(gè)函數(shù),通過參數(shù)區(qū)分,減少腳本體積,適配RK3588的小型根文件系統(tǒng);

2.適配USB3.0,調(diào)整UVC最大數(shù)據(jù)包

RK3588支持USB3.0,可將UVCstreaming_maxpacket3072調(diào)整為10240,提升視頻傳輸帶寬,避免高清視頻卡頓;

3.增加H265高分辨率定制配置

原腳本H265僅支持基礎(chǔ)幀率,可基于RK3588H265硬編能力,添加1920x1080/2560x1440H265分辨率配置;

4.添加錯(cuò)誤處理,提升健壯性

原腳本缺少mkdir/echo等操作的失敗檢查,可添加set -eif [ $? -ne 0 ],避免配置中斷導(dǎo)致的USB功能異常;

5.實(shí)現(xiàn)配置持久化

ADB/DFU開關(guān)、RNDIS IP等配置寫入/etc/usb_gadget.conf配置文件,腳本讀取該文件實(shí)現(xiàn)參數(shù)化配置,無需修改腳本本身,適配量產(chǎn)化管理;

6.關(guān)閉無用兼容邏輯

原腳本包含RK1808 4.4內(nèi)核的兼容代碼,RK3588Linux內(nèi)核為5.10+/6.1+,可直接刪除該兼容邏輯,簡化腳本。

七、總結(jié)

usb_config.shRK3588 Linux平臺下USB Gadget開發(fā)的最佳實(shí)踐模板,它基于configfs框架,將UVC、UAC、RNDIS、ADBDFU等高頻功能做了模塊化封裝,通過簡單的命令行參數(shù)即可實(shí)現(xiàn)功能組合,無需深入內(nèi)核開發(fā),極大降低了RK3588 USB功能的定制門檻。

對于RK3588開發(fā)者而言,掌握這個(gè)腳本的核心邏輯,不僅能快速實(shí)現(xiàn)音視頻、網(wǎng)絡(luò)、調(diào)試等USB功能,還能基于RK3588的硬件特性做二次優(yōu)化,讓USB功能充分發(fā)揮RK3588的性能優(yōu)勢。無論是做工業(yè)攝像頭、音視頻采集終端,還是邊緣計(jì)算設(shè)備,這個(gè)腳本都是不可或缺的核心工具。

最后,如果你在RK3588USB Gadget配置中遇到了問題,比如UVC識別失敗、RNDIS網(wǎng)絡(luò)不通、ADB無法連接等,歡迎在評論區(qū)留言交流,一起解鎖RK3588USB更多玩法!

wKgZPGm4nQaAGjjVAAIzCsH5qJc841.png
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    8447

    瀏覽量

    284951
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11778

    瀏覽量

    219164
  • 瑞芯微
    +關(guān)注

    關(guān)注

    27

    文章

    801

    瀏覽量

    54443
  • RK3588
    +關(guān)注

    關(guān)注

    8

    文章

    564

    瀏覽量

    7399
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    瑞芯微RK3588開發(fā)板RK3588 EVB和RK3588S EVB解讀

    瑞芯微RK3588開發(fā)板RK3588 EVB和RK3588S EVB解讀 瑞芯微旗艦芯RK3588系列開發(fā)板受到廣大開發(fā)者伙伴的關(guān)注和問詢。針對相關(guān)的開發(fā)板功能、操作指南等問題,我們一
    的頭像 發(fā)表于 09-22 15:54 ?2.3w次閱讀
    瑞芯微<b class='flag-5'>RK3588</b>開發(fā)板<b class='flag-5'>RK3588</b> EVB和<b class='flag-5'>RK3588</b>S EVB解讀

    外協(xié):RK3588適配linux

    RK3588適配linux 功能:RK3588J+16GB+64GB 接口支持: 1.HDMI1 2.EDP1 3.USB3.02,USB2
    發(fā)表于 07-09 16:31

    rk3588 SDk 編譯報(bào)錯(cuò) 執(zhí)行./build.sh buildroot

    : source(174) 30-rootfs.sh: main(317) ERROR: Running /home/user/Rk3588J/rk3588_linux_release/device
    發(fā)表于 03-12 09:55

    如何實(shí)現(xiàn)基于RK3588的Android系統(tǒng)與Linux系統(tǒng)切換呢

    概述RK3588雙系統(tǒng)啟動(dòng)流程如下圖uboot根據(jù)按鍵來識別要啟動(dòng)的系統(tǒng),這里可以使用撥碼開關(guān)來代替。uboot在加載分區(qū)的時(shí)根據(jù)分區(qū)名字來區(qū)分加載android或者linux的分區(qū),所以在
    發(fā)表于 05-26 10:16

    RK3588 SDK編譯與固件燒寫步驟

    /envsetup.sh  $ lunch rk3588_s-userdebug  $ 。/build.sh-AUCKu -d rk3588
    發(fā)表于 08-31 17:45

    RK3588單獨(dú)編譯kernel的方式

    中。以 RK3588樣機(jī)為例,編譯時(shí)替換對應(yīng)的boot.img及dts:其中 BOOT_IMG=../rockdev/Image-rk3588_s/boot.img 這里指定的是舊的boot.img
    發(fā)表于 09-20 17:01

    RK3588 Android 12.0 SDK編譯步驟分享

    rk3588sevb1-lp4x-v10.img -j24單獨(dú)編譯uboot$ ./make.sh rk35882、固件燒寫升級工具版本:AndroidTool_Release_v2.84
    發(fā)表于 09-20 17:11

    怎樣去解決RK3588編譯kernel的問題呢

    : *** [rk3588-firefly-itx-3588j.img] Error 2附wiki編譯方法Core-3588J 產(chǎn)品編譯方法整體編譯HDMI 固件編譯./FFTools/make.sh -d
    發(fā)表于 10-14 15:18

    【飛凌RK3588開發(fā)板試用】源碼編譯

    OK3588-linux-source.tar.bz2.a*拷貝到虛擬機(jī)~/rk3588 目錄??截愇募姆绞接泻芏啵P者使用的是共享文件夾方式。3.解壓源碼$ cat
    發(fā)表于 03-28 22:32

    AMD Xilinx Linux 2022.1 USB Gadget使用

    有客戶使用Linux中的USB Gadget功能,把MPSoC器件做USB從設(shè)備
    的頭像 發(fā)表于 07-07 14:15 ?1389次閱讀

    USB Gadget serial應(yīng)用實(shí)例(上)

    1. 硬件體驗(yàn) 使用 Linux 自帶的 USB Gadget 驅(qū)動(dòng) /drivers/usb/gadget/legacy/serial.c
    的頭像 發(fā)表于 07-13 11:06 ?5317次閱讀
    <b class='flag-5'>USB</b> <b class='flag-5'>Gadget</b> serial應(yīng)用實(shí)例(上)

    rk3588rk3588s的區(qū)別

    rk3588rk3588s的區(qū)別 Rockchip是一家專業(yè)的半導(dǎo)體公司,成立于2001年,總部位于中國深圳,主要從事集成電路的設(shè)計(jì)、開發(fā)和銷售。他們的熱門產(chǎn)品RK3588RK3588
    的頭像 發(fā)表于 08-15 16:44 ?2.1w次閱讀

    迅為RK3588Linux 系統(tǒng)中使用 NPU

    迅為RK3588Linux 系統(tǒng)中使用 NPU
    的頭像 發(fā)表于 09-08 14:14 ?2719次閱讀
    迅為<b class='flag-5'>RK3588</b>在 <b class='flag-5'>Linux</b> 系統(tǒng)中使用 NPU

    快速上手RK3588常用接口測試

    前言:在之前的幾期中,我們詳細(xì)介紹了RK3588開發(fā)板的大部分基礎(chǔ)功能調(diào)試方法,本期是針對常用通信接口以及IO口的測試,主要包括的調(diào)試內(nèi)容有:USB2.0測試、CAN通信測試、UART測試
    的頭像 發(fā)表于 12-26 08:33 ?4779次閱讀
    快速上手<b class='flag-5'>RK3588</b>常用接口測試

    RK3588平臺USB攝像頭調(diào)試實(shí)戰(zhàn):從報(bào)錯(cuò)到穩(wěn)定運(yùn)行

    在嵌入式開發(fā)中,RK3588 憑借強(qiáng)勁的算力常被用于邊緣計(jì)算、工業(yè)視覺等場景,而 USB 攝像頭作為常見外設(shè),調(diào)試過程中難免遇到各類 “卡殼” 問題。最近我們在 RK3588 上調(diào)試 USB
    的頭像 發(fā)表于 02-04 16:13 ?408次閱讀