usb gadget driver上层驱动如何加载?
how usb gadget driver upper layer driver get loaded?
我的嵌入式 linux 开发板具有 usb-net 小工具功能。从我的主机上,我可以通过 usb 连接建立以太网。我试图了解 usb 小工具子系统层的不同层如何协同工作。
在设备树中,我可以看到特定于平台的 udc 驱动程序,在内核配置中,我可以看到在内核驱动程序中启用了 USB Gadget 和 Ethernet Gadget 支持。据我了解,g_ether 驱动程序是内核的内置部分。
什么配置创建了 usb gadget 接口和端点并将其链接到上层驱动程序 (g_ether) 并创建了 usb-net gadget 以太网接口?
小工具的usbclass函数在哪里定义,加载不同的上层驱动?
我的系统上 运行 版本 5.10.36 内核。经过一些研究和学习,这就是我目前所知道的。
所以在 linux 内核构建期间,我在 menuconfig 中设置了以下选项。
Symbol: USB_ETH [=m]
Prompt: Ethernet Gadget (with CDC Ethernet support)
Defined at drivers/usb/gadget/Kconfig:628
Depends on: <choice> && NET
Location:
-> Kernel configuration
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
-> USB Gadget Support (USB_GADGET [=y])
-> USB Gadget Drivers (<choice> [=y])
此配置提供预定义的 USB 网络小工具接口,支持 CDC 以太网和所需的 end-point 配置。这个driver就是g_ether。
端点配置在文件中预定义
drivers->usb->gadget->function->f_ecm.c
configFS 可用于从 user-space 级别配置自定义 usb 小工具接口。
我的嵌入式 linux 开发板具有 usb-net 小工具功能。从我的主机上,我可以通过 usb 连接建立以太网。我试图了解 usb 小工具子系统层的不同层如何协同工作。
在设备树中,我可以看到特定于平台的 udc 驱动程序,在内核配置中,我可以看到在内核驱动程序中启用了 USB Gadget 和 Ethernet Gadget 支持。据我了解,g_ether 驱动程序是内核的内置部分。
什么配置创建了 usb gadget 接口和端点并将其链接到上层驱动程序 (g_ether) 并创建了 usb-net gadget 以太网接口? 小工具的usbclass函数在哪里定义,加载不同的上层驱动?
我的系统上 运行 版本 5.10.36 内核。经过一些研究和学习,这就是我目前所知道的。 所以在 linux 内核构建期间,我在 menuconfig 中设置了以下选项。
Symbol: USB_ETH [=m]
Prompt: Ethernet Gadget (with CDC Ethernet support)
Defined at drivers/usb/gadget/Kconfig:628
Depends on: <choice> && NET
Location:
-> Kernel configuration
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
-> USB Gadget Support (USB_GADGET [=y])
-> USB Gadget Drivers (<choice> [=y])
此配置提供预定义的 USB 网络小工具接口,支持 CDC 以太网和所需的 end-point 配置。这个driver就是g_ether。 端点配置在文件中预定义
drivers->usb->gadget->function->f_ecm.c
configFS 可用于从 user-space 级别配置自定义 usb 小工具接口。