工作中接触了USB转网口设备,通过USB口连接到电视盒子上,会被识别成一个网卡,遇到USB转网口无法获取IP的问题,学习和调试了这部分usb host端的usbnet驱动,进行一下总结。
USB host端的驱动,包括usb host controller(如xhci, ehci), usb core(负责usb设备插入识别,枚举,设备与驱动匹配), usb driver (具体某种USB设备的驱动,如鼠标,USB网卡,U盘)
本篇文章主要介绍USB网卡驱动,属于usb driver。
USB网卡驱动的代码目录在:/kernel/drivers/net/usb/
主要文件包括usbnet.c: 通用核心代码,每个usb网卡驱动都会用到
不同的USB网卡设备会有各自的.c驱动文件,如ax88179_178a.c,rtl8150.c等
每一个这种.c文件中,都会有一个usb_driver结构体,初始化了一些回调函数,如:
static struct usb_driver ax88179_178a_driver = {
.name = "ax88179_178a",
.id_table = products,
.probe =