如何从 Linux 设备驱动程序访问 USB 总线号?
How to access USB bus number from Linux device driver?
我有两个相同的 USB 设备连接到不同的 USB 主机控制器。有时设备初始化顺序更改会自发地破坏设备枚举。有没有办法在设备驱动程序中获取 USB 总线编号(这足以实现正确的初始化)就像在用户 space 中使用 lsusb 完成的那样?
我找到了决定。任务是在内核模块中获取 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);
我有两个相同的 USB 设备连接到不同的 USB 主机控制器。有时设备初始化顺序更改会自发地破坏设备枚举。有没有办法在设备驱动程序中获取 USB 总线编号(这足以实现正确的初始化)就像在用户 space 中使用 lsusb 完成的那样?
我找到了决定。任务是在内核模块中获取 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);