0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在RK3568开发板上实现USBNET?——飞凌嵌入式/USB Gadget/USB-NET/网络

飞凌嵌入式 ? 2023-09-15 15:34 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文将借助飞凌嵌入式OK3568-C开发板为大家介绍实现USBNET模式的方法,在这之前需要先知道什么是USB Gadget——USB Gadget是指所开发的电子设备以USB从设备的模式通过USB连接到主机。举个例子:将手机通过USB线插入PC后,手机就是USB Gadget。同理,在本文的操作中就是将手机替换成了OK3568-C开发板。

Gadget框架提出了一套标准API,在底层,USB设备控制器(UDC) 驱动则实现这一套API,不同的UDC(通常是SoC的一部分) 需要不同的驱动, 甚至基于同样的UDC的不同板卡也需要对代码进行修改。我们想要实现USBNET也需要驱动,它的名字叫做RNDIS。RNDIS驱动在内核中是存在的,只需要找到配置项并编译进内核即可。

首先进入源码kernel目录,进入menuconfig图形配置界面:

wKgaomUECROAYC5GAAAQXBiO6F0943.png

进入menuconfig时需要指定环境,不然直接执行make menuconfig进入的图形配置界面为X86架构。如下图进入的为ARM架构是正确的图形配置界面:

wKgZomUECROAWlF_AAAbISfZ894988.png

按 /,可以进入搜索界面:

wKgaomUECROACfkEAAAUgFQG7vo900.png

直接搜索rndis,找到写有USB Gadget字样的目录,可以看到有多个路径,可以直接进入USB Gadget目录下去看,那个就是配置RNDIS的选项。

wKgZomUECROAASRlAABWvZJN2jM760.png

经过寻找最终路径如下图所示:

wKgaomUECRKAEfScAAAm_bActYY976.png

将RNDIS驱动开启,并选中一些网络协议配置,如下图圈中所示:

wKgaomUECROAJUBeAADpZUy3QL024.jpeg

找到USB Gadget precomposed configurations,将RNDIS编译进内核(如果选择编译成模块,单独编译内核不会生成 .ko文件,为了省去繁琐挂载步骤,本篇就将RNDIS编译进内核)。

wKgaomUECROAFQhpAAAZNg45opg66.jpeg

配置完成,选择Exit按键直到退出,“是否保存”选择yes即可:

wKgZomUECROADPCbAAAV8BhZY8c027.png

返回源码目录进入build.sh脚本,注释掉defconfig生成.config文件的命令,使menuconfig配置生效,注释位置如下:

wKgZomUECROAZIEwAABYINLFi7g669.png

保存退出,单独编译内核,在源码目录下执行./build.sh kernel。编译完成之后会在kernel目录下生成boot.img文件。

wKgaomUECROAZO1LAAAY5iHuN1E075.png

单步更新镜像使用瑞芯微官方提供的烧写工具——RKDevTool。按住Recovery键按Reset,直到烧写工具显示发现一个LOADER设备后松开Recovery键。

wKgZomUECROARKQlAAAZH9Lh1ZU004.png

替换图中位置,点击设备分区表,完成后,点击执行,设备重启后,即为烧录完成,右侧也会有烧录进度。开发板重启后,ifconfig -a查看可以看到生成usb0节点。

wKgaomUECROAeemjAABIpOJQMX8192.png

利用Linux USB Gadget设备驱动可以实现一些比较有意思的功能:

1. 一个嵌入式产品中的某个存储设备,或是一个存储设备的某个分区,可以作为一个U盘被PC识别;

2. 一个嵌入式设备通过USB连接到PC后,在PC端会出现一个新的网络连接,在嵌入式设备上也会有一个网卡设备,你可以配置它们的IP地址,并进行网络通讯,俗称USBNET。

此次使用的是USB3.0接口,因此需要detect激活Type-C 5V转3.3V Type-A,硬件改动为p40的pin1连接c23的正极。将播码开关拨至ON,插入双公头USB线;

强制使USB输出为device

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

打印信息如图所示:

wKgZomUECROAIyNlAAAz3JBrQzw866.png

可以在设备管理器网络适配器上看到这个节点,配置一个IP

wKgZomUECROAOxdrAAAG_dJVzUM732.png

查看网络连接可以看到一个未识别网络,将这个也配置上IP,注意需要跟OK3568-C开发板配置的IP在同一网段:

wKgaomUECROAXJ5BAAAUeypxzBg136.png

使用OK3568-C开发板去ping刚才电脑配置的IP,发现可以ping通。

wKgZomUECRSAadcMAAAj-ONUZpc943.png

通过以上信息可以看出,OK3568-C开发板已实现USBNET功能,实现网络共享。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9374

    浏览量

    378805
  • 嵌入式
    +关注

    关注

    5159

    文章

    19735

    浏览量

    318750
  • usb
    usb
    +关注

    关注

    60

    文章

    8216

    浏览量

    274207
  • 网络
    +关注

    关注

    14

    文章

    7840

    浏览量

    91167
  • 开发板
    +关注

    关注

    25

    文章

    5730

    浏览量

    105712
  • 飞凌嵌入式
    +关注

    关注

    3

    文章

    104

    浏览量

    563
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【HZ-RK3568开发板免费体验】合众HZ-RK3568开发板初次使用

    做特写啦。 三、框图 硬件框图与芯片框图如下: 四、电 先连接好必备的外设,然后采用自备好的12V DC圆头的电源适配器给开发板电,硬件实物连线如下: 连接HDMI的显示器,开机后桌面显示很是细腻
    发表于 07-27 23:52

    RK3568 EVB开发板 深度休眠与快速醒的工作流程

    RK3568 EVB开发板关于深度休眠和唤醒流程的分析
    的头像 发表于 07-22 09:49 ?169次阅读
    <b class='flag-5'>RK3568</b> EVB<b class='flag-5'>开发板</b> 深度休眠与快速醒的工作流程

    【HZ-RK3568开发板免费体验】1、开发板资源、SDK使用和镜像烧写

    网络模型。 RK3568 具有高性能的DDR4,能够提供高性能场景下所需的内存带宽。 通过查看开发板的芯片型号,可知开发板板载1GB DDR4内存和8GB EMMC存储,
    发表于 07-21 20:52

    RK3568开发板暗藏32位兼容开关?嵌入式带你一键解锁!

    RK3568是一款64位处理器,嵌入式为其提供的交叉编译器也是64位的,然而部分用户可能需要在RK3568
    的头像 发表于 07-19 08:49 ?3751次阅读
    <b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>暗藏32位兼容开关?<b class='flag-5'>飞</b><b class='flag-5'>凌</b><b class='flag-5'>嵌入式</b>带你一键解锁!

    【HZ-RK3568开发板免费体验】合众HZ-RK3568开发板测评

    合众HZ-RK3568开发板是合众恒跃科技最新推出的嵌入式开发板,采用核心+底板的分体式设计,基于 Rockchip RK3568 处理器
    发表于 07-14 22:24

    【HZ-RK3568开发板免费体验】HZ-RK3568开发板初步接触

    首先感谢合众恒跃与发烧友论坛提供的机会! 一、开箱 首先是一个大盒子,上面赫然“工业领域嵌入式产品专家”! 打开后,一块很大的黑色PCB。 开发板由底板和核心组成,核心基于瑞芯微
    发表于 07-10 23:19

    RK3568开发板教程:以iTOP-RK3568开发板为例 Android13通过CIFS协议挂载Windows共享目录

    开发板与PC端的高效文件交互尤为重要。现以iTOP-RK3568开发板为例,详细演示Android13系统如何通过CIFS协议挂载Windows共享目录,实现
    的头像 发表于 04-16 14:08 ?878次阅读
    <b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>教程:以iTOP-<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>为例 Android13通过CIFS协议挂载Windows共享目录

    嵌入式RK3568核心的司机权限信息采集器方案

    在某厂商的司机权限采集器项目中,选择了嵌入式的FET3568J-C工业级核心作为主控平台。该核心
    的头像 发表于 03-20 14:27 ?1098次阅读
    <b class='flag-5'>飞</b><b class='flag-5'>凌</b><b class='flag-5'>嵌入式</b><b class='flag-5'>RK3568</b>核心<b class='flag-5'>板</b>的司机权限信息采集器方案

    迅为RK3568开发板驱动指南Linux中通用SPI设备驱动

    迅为RK3568开发板驱动指南Linux中通用SPI设备驱动
    的头像 发表于 01-23 11:02 ?2933次阅读
    迅为<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>驱动指南Linux中通用SPI设备驱动

    基于迅为RK3568开发板全国产平台,快速实现APP开机自启动技术分享

    基于迅为RK3568开发板全国产平台,快速实现APP开机自启动技术分享
    的头像 发表于 11-21 13:58 ?1000次阅读
    基于迅为<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>全国产平台,快速<b class='flag-5'>实现</b>APP开机自启动技术分享

    【迅为】瑞芯微RK3588开发板RK3568开发板区别及优势

    RK3568开发板
    的头像 发表于 11-18 14:19 ?1564次阅读
    【迅为】瑞芯微<b class='flag-5'>RK</b>3588<b class='flag-5'>开发板</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>区别及优势

    瑞芯微RK3568 USB驱动

    瑞芯微RK3568 USB驱动程序
    发表于 11-11 14:18 ?12次下载

    北京迅为RK3568开发板嵌入式学习之Linux驱动全新更新-CAN+

    北京迅为RK3568开发板嵌入式学习之Linux驱动全新更新-CAN+
    的头像 发表于 09-04 15:29 ?1107次阅读
    北京迅为<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b><b class='flag-5'>嵌入式</b>学习之Linux驱动全新更新-CAN+

    如何get RK3568核心的音频功能

    的是,嵌入式RK3568核心凭借采样范围为0~1.8V、采样精度为10bits的ADC采样接口的加持,辅以巧妙的电路设计,可轻松
    发表于 08-29 14:34

    嵌入式OK3576-C开发板体验】开箱报告

    简介 很荣幸参与到本次由嵌入式和电子发烧友提供的OK3576-C开发板的试用机会。
    发表于 08-22 02:13