如何通过USB连接到主机
1. 一个
嵌入式产品中的某个存储设备,或是一个存储设备的某个分区,可以作为一个U盘被PC识别; 2. 一个嵌入式设备通过USB连接到PC后,在PC端会出现一个新的
网络连接,在嵌入式设备上也会有一个网卡设备,你可以配置它们的IP地址,并进行网络通讯,俗称USBNET。
本文将借助
飞凌嵌入式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功能,实现网络共享。
Win11开机音效怎么关闭?有的小伙伴使用久了Win11系统,想要关闭开机声音,怎么关呢?方法很简单,只需要打开主题设置的声音即可,下面看看具体操作吧。 教程如下: 1、首先打开开始菜单里的“设置”。 2、接着打开左边的“个性化”。 3、然后打开其中的“主题”设置。 4、随后点开右边的“声音”选项。 5、最后取消“播放windows启动声音”并确定保存即可。 以上就
win7用户在安装驱动的时候,经常会遇到因为提示需要数字签名导致安装失败的情况。因此,很多小伙伴想把这个提示取消掉。那具体该怎么做呢?本期小编为大家整理了一期win7禁用驱动签名的方法,有需要的小伙伴快来看看吧。 win7禁用驱动签名的方法 1、点击右下角的按钮,打开“所有设置”。 2、点击“更新和安全”,然后点击左侧的“恢复”。 3、找到高级启动,点击下面的立即重启按钮。 4、重启完成后,进入如
Go语言已经在多平台编程领域取得了显著的成功,这可以归功于其强大的可移植性、静态链接和纯静态编译能力。这篇文章将探讨Go的编译方案,以及使用cgo与否对可移植性的影响。 一、GO 的可移植性 Go语言的强大之处在于其极佳的可移植性。它的源代码可以在任何平台上编译,生成的二进制可执行文件可以在同种类型的操作系统下运行,不同于如Java诸如此类需要特定运行环境的语言,Go的二进利用了静态链接,不需要任
深度Linux系统是一款非常优秀的国产Linux发行版,具有易用性、稳定性和高效性等特点,备受用户青睐,在安装深度Linux系统时,分区是一个非常重要的环节,它决定了系统文件和数据在硬盘上的存储方式,本文将为大家介绍深度Linux系统安装分区的详细步骤和注意事项。 分区前的准备工作 在进行分区之前,需要做好以下准备工作: 备份重要数据:分区会删除硬盘上的所有数据,因此在进行分区之前,务必备份重要的
本文目录导读: 1、前言 2、MBR分区表 3、GPT分区表 4、Hybrid分区表 5、小贴士:如何查看当前分区表类型 6、小结 7、为您分享 前言 作为一个LINUX,Ubuntu是我们最熟悉的操作系统之一。在使用Ubuntu时,我们经常需要对硬盘进行分区。然而,分区时需要选择分区表类型,而不同的分区表类型对于硬盘的使用和管理有着不同的影响。本文将为大家介绍Ubuntu分区表是什么类型,并详细