从USB集线器快速插入和拔出USB设备时,我在Android系统上遇到奇怪的行为。发生的情况是,在快速插入/拔出集线器上的设备后,我开始得到:
<6>[18121.010764] usb 2-1: new low speed USB device number 8 using tegra-ehci
<3>[18121.253237] hub 2-0:1.0: cannot reset port 1 (err = -110)
<3>[18121.478006] hub 2-0:1.0: cannot reset port 1 (err = -110)
<3>[18121.702795] hub 2-0:1.0: cannot reset port 1 (err = -110)
<3>[18121.927899] hub 2-0:1.0: cannot reset port 1 (err = -110)
<3>[18122.153156] hub 2-0:1.0: cannot reset port 1 (err = -110)
<3>[18122.153272] hub 2-0:1.0: Cannot enable port 1. Maybe the USB cable is bad?
<3>[18122.378371] hub 2-0:1.0: cannot reset port 1 (err = -110)
<3>[18122.603889] hub 2-0:1.0: cannot reset port 1 (err = -110)
在此之后,我插入集线器的所有内容都将无法工作,直到集线器本身被拔下/再次插入为止。
通过发送带有USBDEVFS_RESET的ioctl,我已经能够解决这种无响应问题。不幸的是,这需要root权限,对吗?
是否有其他可能的方法可以解决此问题而无需root用户权限?
通过发送带有USBDEVFS_RESET的ioctl,我已经能够解决这种无响应问题。不幸的是,这需要root权限,对吗?
可能是。
是否有其他可能的方法可以解决此问题而无需root用户权限?
好吧,如果您已经在编写自己的应用程序来发送ioctl
,则可以将其设置为setuid root,因此无论谁执行它,它都始终以root权限运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句