如何从Linux设备驱动程序访问USB总线号码?

问题描述:

我有两个相同的USB设备连接到不同的USB主机控制器。有时候,设备初始化顺序会自发地改变设备枚举。有没有办法在设备驱动程序中获取USB总线编号(这对于执行正确的初始化就足够了),就像使用lsusb在用户空间中完成一样?如何从Linux设备驱动程序访问USB总线号码?

+0

不完全清楚你的要求,但浏览SYS-FS,也许你找到你所需要的。 (例如在'/ sys/bus/usb'中) – h0ch5tr4355

我发现了这个决定。任务是在内核模块中获取USB总线编号,类似的任务发现在this post。得到在驱动程序初始化函数USB_DEVICE结构的BUS-> BUSNUM成员有必要:

struct usb_device *usbdev; 
struct usb_bus *mybus; 
usbdev=interface_to_usbdev(pusb_intf); 
mybus=usbdev->bus; 
printk("USB Bus number is %d\n",mybus->busnum);