如何开始为Linux编写设备驱动程序?

时间:2018-06-01 12:16:35

标签: 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设备驱动程序没有很好的参考。关于我可以从哪里开始的任何指导?我唯一的经验是很久以前在使用Java的MS Windows和基于Web的业务应用程序上的一些C / C ++。

1 个答案:

答案 0 :(得分:2)

首先阅读 Linux设备驱动程序模型

你必须编写一个内核模块/驱动程序,将该卡注册为根集线器

如果在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请求块)