我有一台用于笔记本电脑的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设备驱动程序没有很好的参考。关于我可以从哪里开始的任何指导?我唯一的经验是很久以前在使用Java的MS Windows和基于Web的业务应用程序上的一些C / C ++。
答案 0 :(得分:2)
首先阅读 Linux设备驱动程序模型
<强> https://wiki.linuxfoundation.org/tab/linux-device-driver-model 强>
http://www.staroceans.org/kernel-and-driver/The%20Linux%20Kernel%20Driver%20Model.pdf
你必须编写一个内核模块/驱动程序,将该卡注册为根集线器
如果在linux上运行lsusb
,则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请求块)