男女一起愁愁愁:那些藏在琐碎里的爱与无奈

核心内容摘要

青春的交响曲:男生女生的“差差差差”之美
QQC.LIVE.VIP十年沉淀:2022官网,开启你的无限精彩

揭秘娱乐圈:明星“黑料”背后的浮华与真相

内核编译配置

必需的内核选项# USB Gadget 支持核心Device Drivers ---[*]USB support ---MUSB Gadget Support ---MUSB Gadget Drivers# USB 网络功能关键Device Drivers ---[*]USB support ---MUSB Gadget Support ---MEthernet Gadget(with CDC Ethernet support)MRNDIS supportMECM support

具体配置项配置项说明为什么需要CONFIG_USB_GADGETy/mUSB Gadget 框架使 Linux 设备作为 USB 从设备CONFIG_USB_CONFIGFSy/mConfigFS 支持允许通过文件系统动态配置 USBCONFIG_USB_ETHmUSB Ethernet Gadget提供基础以太网功能CONFIG_USB_ETH_RNDISyRNDIS 协议Windows 兼容性必需CONFIG_USB_ETH_EEMyEEM 协议高性能以太网模拟CONFIG_USB_G_ETHERmEthernet Gadget 驱动实际的网络驱动程序

推荐的额外选项CONFIG_USB_LIBCOMPOSITEm# 组合 USB 设备支持CONFIG_USB_F_ECMm# ECM 功能Mac/LinuxCONFIG_USB_F_RNDISm# RNDIS 功能WindowsCONFIG_USB_F_EEMm# EEM 功能

为什么需要这些配置

USB Gadget 框架原理硬件层 (USB Controller) ↓ USB Gadget 驱动层 (内核模块) ↓ USB 功能层 (RNDIS/ECM/EEM) ↓ 网络协议栈 (usb0 虚拟网卡)Gadget 模式让 Linux 设备充当 USB 从设备而非主机功能复用同一个 USB 接口可以模拟多种设备网卡、串口、存储等

RNDIS 的必要性Windows 兼容Windows 原生支持 RNDIS 协议无需驱动Windows 自动识别为网络适配器即插即用连接后自动创建网络连接

ECM/EEM 的作用ECMLinux/macOS 的标准协议性能好EEM最新协议效率最高开销最小跨平台配置多种协议确保兼容性

运行时配置两种方法方法 1使用 g_ether 模块简单# 加载模块modprobe g_ether# 配置 IP 地址ifconfigusb

0192.

168.

2 netmask

255.

255.

2

0 up# 启用路由转发可选echo1/proc/sys/net/ipv4/ip_forward方法 2使用 ConfigFS灵活推荐#!/bin/bash# 挂载 configfsmount-t configfs none /sys/kernel/configcd/sys/kernel/config/usb_gadget/# 创建 gadgetmkdirg1cdg1# 设置 USB 描述符echo0x1d6bidVendor# Linux Foundationecho0x0104idProduct# Multifunction Composite Gadgetecho0x0100bcdDevice# v

1.

0echo0x0200bcdUSB# USB

0# 创建字符串描述符mkdirstrings/0x409echo0123456789strings/0x409/serialnumberechoMyCompanystrings/0x409/manufacturerechoUSB-Ethernetstrings/0x409/product# 创建配置mkdirconfigs/c.1mkdirconfigs/c.1/strings/0x409echoConfig 1: RNDIS networkconfigs/c.1/strings/0x409/configurationecho250configs/c.1/MaxPower# 创建 RNDIS 功能mkdirfunctions/rndis.usb0# 设置 MAC 地址可选echo02:00:00:00:00:01functions/rndis.usb0/dev_addrecho02:00:00:00:00:02functions/rndis.usb0/host_addr# 链接功能到配置ln-s functions/rndis.usb0 configs/c.1/# 绑定到 UDCUSB Device Controllerls/sys/class/udcUDC# 配置网络接口sleep2ifconfigusb

0192.

168.

2 netmask

255.

255.

2

0 up

验证配置#

检查内核模块lsmod|grepusb#

查看网络接口ipaddr show usb0#

查看 USB 设备状态cat/sys/kernel/config/usb_gadget/g1/UDC#

测试连接从 PC 端ping

192.

168.

2

五、

常见问题排查问题原因解决方法usb0 不出现内核选项未启用检查CONFIG_USB_G_ETHERWindows 无法识别缺少 RNDIS 支持确保CONFIG_USB_ETH_RNDISy连接后无法通信IP 地址冲突PC 和板子使用不同 IP无法加载模块UDC 驱动未加载检查 USB 控制器驱动

开机自动配置创建 systemd 服务或在/etc/rc.local中添加#!/bin/sh# USB 网络初始化modprobe g_etherifconfigusb

0192.

168.

2 netmask

255.

255.

2

0 upexit0

总结核心要点内核支持编译时启用 USB Gadget RNDIS/ECM 功能运行时配置加载模块并配置 IP 地址协议选择RNDISWindows、ECMLinux/MacIP 规划确保 PC 和开发板 IP 在同一网段但不冲突

小小水蜜桃电视剧免费瑜伽-小小水蜜桃电视剧免费瑜伽应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123