xpa*_*ast 2 usb linux-device-driver
我有一个用于笔记本电脑的 USB 3.0 PCI 卡。仅提供 Windows 7 及以上版本的驱动程序。我有的设备https://www.startech.com/Cards-Adapters/USB-3.0/Cards/2-Port-ExpressCard-SuperSpeed-USB-3-Card-Adapter~ECUSB3S22#dnlds
我有运行 Ubuntu 16 的旧笔记本电脑。我想为这张卡创建一个 Linux 驱动程序。
关于谁编写了该软件的一些提示。安装软件时,会显示不同的公司。这是公司https://www.renesas.com/en-us/products/software-tools/software-os-middleware-driver.html
我想知道是否可以利用一些 Windows 7 驱动程序文件和瑞萨电子规范来开始使用。
我没有关于 Linux 设备驱动程序的很好的参考。关于我可以从哪里开始的任何指导?我唯一的经验是很久以前在 MS Windows 上使用 C/C++ 以及使用 Java 的基于 Web 的业务应用程序。
首先阅读Linux 设备驱动程序模型
https://wiki.linuxfoundation.org/tab/linux-device-driver-model
http://www.staroceans.org/kernel-and-driver/The%20Linux%20Kernel%20Driver%20Model.pdf
你必须编写一个内核模块/驱动程序来将卡注册为根集线器
如果你跑lsusb在 Linux 上运行,则 USB 主机端口是根集线器
还运行lspci -v以获取 PCI 设备,您的内核模块必须包含到内核驱动程序pcieport和可扩展主机控制器接口的链接 xhci_hcd(Linux 设备驱动程序模型)的链接
https://forums.linuxmint.com/viewtopic.php?t=112069
一个带有源代码的示例位于
USB集线器一般都在https://github.com/torvalds/linux/blob/master/drivers/usb/core/hub.c
USB 内核模块的关键组件是 URB(USB 请求块)