У меня есть карта USB 3.0 для ноутбука.Есть драйверы только до 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 и спецификации Renesas для начала работы.
У меня нет хороших рекомендаций по Linuxдрайверы устройств.Любое руководство о том, где я могу начать?Мой единственный опыт работы с C / C ++ давным-давно связан с MS Windows и веб-приложениями для бизнеса с Java.
первое чтение о модели драйвера устройства Linux
https://wiki.linuxfoundation.org/tab/linux-device-driver-model
https://static.lwn.net/images/pdf/LDD3/ch14.pdf
http://www.staroceans.org/kernel-and-driver/The%20Linux%20Kernel%20Driver%20Model.pdf
вы должны написать модуль / драйвер ядра, который регистрирует карту как корневой концентратор
, если вы запуститеlsusb в Linux порты хоста USB являются корневыми хабами
lsusb
также запускают lspci -v для получения устройств PCI, ваш модуль ядра должен включать ссылку на драйвер ядра pcieport и Extensible HostИнтерфейс контроллера xhci_hcd (модель драйвера устройства Linux)
lspci -v
pcieport
xhci_hcd
https://forums.linuxmint.com/viewtopic.php?t=112069
пример с исходным кодом для этого находится в
https://github.com/geoffreytran/AX88179_178A
https://github.com/geoffreytran/AX88179_178A/blob/master/ax88179_178a.c
USB-концентраторы в целом находятся в https://github.com/torvalds/linux/blob/master/drivers/usb/core/hub.c
ключевые компоненты модулей ядра USB являются URB (запрос USB)Блоки)