企业网站备案资料样本,自建网站要多少钱,seo站长之家,广东网页设计本文将借助飞凌嵌入式OK3568-C开发板为大家介绍实现USBNET模式的方法#xff0c;在这之前需要先知道什么是USB Gadget——USB Gadget是指所开发的电子设备以USB从设备的模式通过USB连接到主机。举个例子#xff1a;将手机通过USB线插入PC后#xff0c;手机就是USB Gadget。同…本文将借助飞凌嵌入式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图形配置界面 进入menuconfig时需要指定环境不然直接执行make menuconfig进入的图形配置界面为X86架构。如下图进入的为ARM架构是正确的图形配置界面 按 /可以进入搜索界面 直接搜索rndis找到写有USB Gadget字样的目录可以看到有多个路径可以直接进入USB Gadget目录下去看那个就是配置RNDIS的选项。 经过寻找最终路径如下图所示 将RNDIS驱动开启并选中一些网络协议配置如下图圈中所示 找到USB Gadget precomposed configurations将RNDIS编译进内核如果选择编译成模块单独编译内核不会生成 .ko文件为了省去繁琐挂载步骤本篇就将RNDIS编译进内核。 配置完成选择Exit按键直到退出“是否保存”选择yes即可 返回源码目录进入build.sh脚本注释掉defconfig生成.config文件的命令使menuconfig配置生效注释位置如下 保存退出单独编译内核在源码目录下执行./build.sh kernel。编译完成之后会在kernel目录下生成boot.img文件。 单步更新镜像使用瑞芯微官方提供的烧写工具——RKDevTool。按住Recovery键按Reset直到烧写工具显示发现一个LOADER设备后松开Recovery键。 替换图中位置点击设备分区表完成后点击执行设备重启后即为烧录完成右侧也会有烧录进度。开发板重启后ifconfig -a查看可以看到生成usb0节点。 利用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
打印信息如图所示 可以在设备管理器网络适配器上看到这个节点配置一个IP 查看网络连接可以看到一个未识别网络将这个也配置上IP注意需要跟OK3568-C开发板配置的IP在同一网段 使用OK3568-C开发板去ping刚才电脑配置的IP发现可以ping通。 通过以上信息可以看出OK3568-C开发板已实现USBNET功能实现网络共享。