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

    文章

    8653

    浏览量

    361875
  • 嵌入式
    +关注

    关注

    4983

    文章

    18295

    浏览量

    288609
  • usb
    usb
    +关注

    关注

    59

    文章

    7438

    浏览量

    258270
  • 网络
    +关注

    关注

    14

    文章

    7251

    浏览量

    87449
  • 开发板
    +关注

    关注

    25

    文章

    4437

    浏览量

    94085
  • 飞凌嵌入式
    +关注

    关注

    0

    文章

    68

    浏览量

    55
收藏 人收藏

    评论

    相关推荐

    toybrick_RK3568X开发板:跑通 android 开发流程

    前段时间买了一块官方的开发板,瑞芯微的 RK3568 芯片的 toybrick TB-RK3568X 开发板,配置是 4G 内存,32G 存储,想用这个
    发表于 11-16 21:30

    嵌入式OK3568开发板试用 」开箱和Ubuntu镜像测试

    自带USB串口模块,这个在一些工业开发板是省略的。可以看出嵌入式硬件设计的也很贴心,PCI
    发表于 11-07 23:01

    文档升级 | iTOP-RK3568开发板ADB工具的安装和使用

    iTOP -RK3568开发板使用手册更新,后续资料会不断更新,不断完善,帮助用户快速入门,大大提升研发速度。 《iTOP-3568开发板ADB使用手册》进行了文档升级,对ADB工具的
    发表于 09-25 10:48

    RK3568开发板SG90 舵机模块的功能实现

    RK3568开发板SG90 舵机模块的功能实现-迅为电子
    的头像 发表于 09-20 14:29 438次阅读
    <b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>SG90 舵机模块的功能<b class='flag-5'>实现</b>

    在瑞芯微RK3568开发板实现USBNET模式的方法

    本文将借助嵌入式OK3568-C开发板为大家介绍实现US
    发表于 09-18 16:40

    何在RK3568开发板实现USBNET模式?

    本文将借助飞凌嵌入式OK3568-C开发板为大家介绍实现USBNET模式的方法,在这之前需要先知道什么是
    的头像 发表于 09-15 17:17 937次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>上<b class='flag-5'>实现</b><b class='flag-5'>USBNET</b>模式?

    迅为RK3568开发板GPIO之外接模块

    迅为RK3568开发板GPIO之外接模块
    的头像 发表于 08-24 17:41 673次阅读
    迅为<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>GPIO之外接模块

    rk3568有多少引脚?

    rk3568有多少引脚? 首先,让我们来了解一下什么是rk3568rk3568是由瑞芯微推出的一款高性能、低功耗的嵌入式处理器,它是rk3
    的头像 发表于 08-15 17:25 1012次阅读

    迅为RK3568开发板保姆级3900页手册_415期视频_426G文档

    10.互斥锁实验基于RK3568 11.并发与竞争总结 第四期-高级字符设备进阶>嵌入式学习之Linux驱动 1.引入I0模型 2.使用等待队列实验阻塞访问 3.实现非阻塞访问方式
    发表于 08-11 11:14

    瑞芯微RK3568主板开发板PET_RK3568_P01简述

    瑞芯微RK3568主板开发板PET_RK3568_P01简述
    的头像 发表于 08-08 11:41 1773次阅读
    瑞芯微<b class='flag-5'>RK3568</b>主板<b class='flag-5'>开发板</b>PET_<b class='flag-5'>RK3568</b>_P01简述

    嵌入式国产平台大盘点之瑞芯微系列

    分类带大家一起盘点。 本篇文章,为大家介绍的是瑞芯微系列的核心。 瑞芯微电子 × 嵌入式 2020年至今,
    发表于 08-05 11:12

    迅为RK3568/RK3588开发板视频教程 | RKNPU2 从入门到实践一套搞定!

    迅为RK3568/RK3588开发板视频教程 | RKNPU2 从入门到实践一套搞定!
    的头像 发表于 06-30 15:07 993次阅读
    迅为<b class='flag-5'>RK3568</b>/<b class='flag-5'>RK</b>3588<b class='flag-5'>开发板</b>视频教程 | RKNPU2 从入门到实践一套搞定!

    ipkvm之RK3568 usb gadget

    开发板既要当USB OTG口既要当键盘,又要当鼠标使用。则要生成两个hid:,一个键盘hidg0,一个鼠标hidg1。
    的头像 发表于 06-09 18:01 1442次阅读
    ipkvm之<b class='flag-5'>RK3568</b> <b class='flag-5'>usb</b> <b class='flag-5'>gadget</b>

    迅为RK3568开发板2800页手册+220集视频

    RK3568开发板移植Android11。内含硬件原理图分析、底层驱动编写与Android底层框架,JNI编程等众多技能点,让您的学习和使用过程更加轻松。 重磅更新《嵌入式Linux
    发表于 06-01 10:25

    迅为基于RK3568开发板嵌入式学习之Linux驱动视频

    迅为基于RK3568开发板嵌入式学习之Linux驱动视频
    的头像 发表于 05-19 16:30 570次阅读
    迅为基于<b class='flag-5'>RK3568</b><b class='flag-5'>开发板</b>的<b class='flag-5'>嵌入式</b>学习之Linux驱动视频