Linux: 在内核模块中发送原始 usb 数据包

Linux: Send raw usb packets in kernel module

我知道usb数据包有一个非常特殊的格式,但是我想自己写这些数据包,我知道usb_control_msg是一种控制数据包的接口,但是这个函数已经负责了从发送 setup_token、in/out 令牌,并可能检查 ACKS。我如何自己构建这些数据包然后发送它们?

看来你想要的是编写自己的usb主机驱动程序。我建议您尝试分析现有的 USB 主机驱动程序 (ehci/xhci),然后尝试编写您自己的驱动程序,但请注意,这并非易事。另请注意,对于给定的 USB 主机控制器 (ehci/xhci),不可能存在多个驱动程序。如果你真的想做这些事情,你需要完全了解:USB 协议和 ehci/xhci 规范,这可能会花费很多时间。还需要丰富的编写 Linux 驱动程序的经验。正如我所说,这不是一件容易的事。