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을 전송하여 이 무응답 문제를 해결할 수 있었습니다. 불행히도 루트 액세스가 필요합니다. 그렇죠?
루트 권한 없이 이 문제를 해결할 수 있는 다른 방법이 있습니까?
답변1
USBDEVFS_RESET을 사용하여 ioctl을 전송하여 이 무응답 문제를 해결할 수 있었습니다. 불행히도 루트 액세스가 필요합니다. 그렇죠?
아마도.
루트 권한 없이 이 문제를 해결할 수 있는 다른 방법이 있습니까?
글쎄, 당신이 send를 위한 당신의 애플리케이션을 작성했다면 ioctl
, 그것을 누가 실행하든 상관없이 항상 루트 권한으로 실행되도록 setuid 루트로 설정할 수 있습니다.