RK3568開發(fā)板上實現(xiàn)USBNET

原創(chuàng) 2023-09-23 09:33:00 USBNET USBNET模式 rk3568
 

本文將借助飛凌嵌入式OK3568-C開發(fā)板為大家介紹實現(xiàn)USBNET模式的方法,在這之前需要先知道什么是USB Gadget——USB Gadget是指所開發(fā)的電子設(shè)備以USB從設(shè)備的模式通過USB連接到主機(jī)。舉個例子:將手機(jī)通過USB線插入PC后,手機(jī)就是USB Gadget。同理,在本文的操作中就是將手機(jī)替換成了OK3568-C開發(fā)板



Gadget框架提出了一套標(biāo)準(zhǔn)API,在底層,USB設(shè)備控制器(UDC)驅(qū)動則實現(xiàn)這一套API,不同的UDC(通常是SoC的一部分)需要不同的驅(qū)動, 甚至基于同樣的UDC的不同板卡也需要對代碼進(jìn)行修改。我們想要實現(xiàn)USBNET也需要驅(qū)動,它的名字叫做RNDIS。RNDIS驅(qū)動在內(nèi)核中是存在的,只需要找到配置項并編譯進(jìn)內(nèi)核即可。

首先進(jìn)入源碼kernel目錄,進(jìn)入menuconfig圖形配置界面

進(jìn)入menuconfig時需要指定環(huán)境,不然直接執(zhí)行make
menuconfig進(jìn)入的圖形配置界面
X86架構(gòu)。如下圖進(jìn)入的為ARM架構(gòu)是正確的圖形配置界面:

按 /,可以進(jìn)入搜索界面:

直接搜索rndis,找到寫有USB Gadget字樣的目錄,可以看到有多個路徑,可以直接進(jìn)入USB Gadget目錄下去看,那個就是配置RNDIS的選項。

經(jīng)過尋找最終路徑如下圖所示:

將RNDIS驅(qū)動開啟,并選中一些網(wǎng)絡(luò)協(xié)議配置,如下圖圈中所示:

找到USB Gadget precomposed configurations,將RNDIS編譯進(jìn)內(nèi)核(如果選擇編譯成模塊,單獨編譯內(nèi)核不會生成 .ko文件,為了省去繁瑣掛載步驟,本篇就將RNDIS編譯進(jìn)內(nèi)核)。


配置完成,選擇Exit按鍵直到退出,“是否保存”選擇yes即可:

返回源碼目錄進(jìn)入build.sh腳本,注釋掉defconfig生成.config文件的命令,使menuconfig配置生效,注釋位置如下:

保存退出,單獨編譯內(nèi)核,在源碼目錄下執(zhí)行./build.sh kernel。編譯完成之后會在kernel目錄下生成boot.img文件。

單步更新鏡像使用瑞芯微官方提供的燒寫工具—— RKDevTool按住Recovery鍵按Reset,直到燒寫工具顯示發(fā)現(xiàn)一個LOADER設(shè)備后松開Recovery鍵。

替換圖中位置,點擊設(shè)備分區(qū)表,完成后,點擊執(zhí)行,設(shè)備重啟后,即為燒錄完成,右側(cè)也會有燒錄進(jìn)度。開發(fā)板重啟后,ifconfig -a查看可以看到生成usb0節(jié)點。


利用Linux USB Gadget設(shè)備驅(qū)動可以實現(xiàn)一些比較有意思的功能:

1. 一個嵌入式產(chǎn)品中的某個存儲設(shè)備,或是一個存儲設(shè)備的某個分區(qū),可以作為一個U盤被PC識別;

2. 一個嵌入式設(shè)備通過USB連接到PC后,在PC端會出現(xiàn)一個新的網(wǎng)絡(luò)連接,在嵌入式設(shè)備上也會有一個網(wǎng)卡設(shè)備,你可以配置它們的IP地址,并進(jìn)行網(wǎng)絡(luò)通訊,俗稱USBNET。

此次使用的是USB3.0接口,因此需要detect激活Type-C 5V轉(zhuǎn)3.3V Type-A,硬件改動為p40的pin1連接c23的正極。將播碼開關(guān)撥至ON,插入雙公頭USB線;強(qiáng)制使USB輸出為device

echo peripheral > /sys/devices/platform/fe8a0000.usb2-phy/otg_mode

打印信息如圖所示:

可以在設(shè)備管理器網(wǎng)絡(luò)適配器上看到這個節(jié)點,置一個IP

查看網(wǎng)絡(luò)連接可以看到一個未識別網(wǎng)絡(luò),將這個也配置上IP,注意需要跟OK3568-C開發(fā)板配置的IP在同一網(wǎng)段

使用OK3568-C開發(fā)板去ping剛才電腦配置的IP,發(fā)現(xiàn)可以ping通。

通過以上信息可以看出,OK3568-C開發(fā)板已實現(xiàn)USBNET功能,實現(xiàn)網(wǎng)絡(luò)共享。

相關(guān)產(chǎn)品 >

  • FET3568-C核心板

    RK3568性能強(qiáng)而穩(wěn) 國產(chǎn)芯|飛凌嵌入式RK3568系列核心板,采用瑞芯微國產(chǎn)高性能AI處理器RK3568設(shè)計生產(chǎn),RK3568兼具CPU、GPU、NPU、VPU于一身,RK3568 性能、性價比在同類產(chǎn)品中具有較高優(yōu)勢,RK3568處理器是一款定位中高端的通用型SoC, 飛凌RK3568核心板主要面向工業(yè)互聯(lián)網(wǎng)、HMI、NVR存儲、車載中控、工業(yè)網(wǎng)關(guān)等領(lǐng)域。目前RK3568系列已經(jīng)批量穩(wěn)定出貨

    了解詳情
    FET3568-C核心板
  • OK3568-C開發(fā)板

    強(qiáng)而穩(wěn),國產(chǎn)芯,1Tops算力,多路高速接口|飛凌RK3568系列RK3568開發(fā)板基于國產(chǎn)工業(yè)級AI處理器RK3568四核64位Cortex-A55 處理器設(shè)計。RK3568作為國產(chǎn)化高性能處理器,瑞芯微RK3568芯片是一款定位中高端的通用型SoC,瑞芯微RK3568芯片是一款定位中高端的通用型SoC,NPU達(dá)到1Tops,飛凌RK3568系列核心板提供瑞芯微RK3568規(guī)格書_datasheet_數(shù)據(jù)手冊_原理圖等,


    了解詳情
    OK3568-C開發(fā)板

推薦閱讀 換一批 換一批