Linux中使用扩展USB Hub的问题
大家好,我的问题如下:
我有一个嵌入式设备为Linux系统,将主板上的一个USB口连接一个USB Hub扩展出多个USB口连接到多个不同的设备。由我的程序控制设备进行一些自动化工作。当其中的某个设备出现异常问题时,程序会自动的对USB口上挂接的设备进行断电和上电的复位操作,相当于拔插了一次设备,以此来恢复设备的工作。通过大规模测试,发现如下问题:
1、当对某一个USB口上的设备进行断电上电的复位操作时,有时会影响该USB Hub上的其它USB口设备,造成其它USB口设备短暂性的没有数据输出;
2、在某些异常情况下,会连续不断的对某个USB口上的设备进行断电上电的复位操作,知道设备正常为止,但这种频繁的复位操作往往造成USB设备不能正常挂载,造成设备丢失。错误信息如下:
Mar 30 03:28:14 KnowYouLinux kernel: usb 1-6.2: new full speed USB device using ehci_hcd and address 49
Mar 30 03:28:29 KnowYouLinux kernel: usb 1-6.2: device descriptor read/64, error -110
Mar 30 03:28:44 KnowYouLinux kernel: hub 1-6:1.0: unable to enumerate USB device on port 2
哪位大侠能否解释一下上述现象的原因,驱动问题?跟autosuspend有关?还是其它。