Redefinindo o dispositivo USB sem permissões de root

2

Estou tendo um comportamento estranho em um sistema Android ao conectar e desconectar rapidamente dispositivos usb de um hub USB. O que acontece é que, depois de algum rápido plug-in / desconectar de um dispositivo no hub, eu começo a receber:

<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)

Depois disso, qualquer coisa que eu conecto ao hub não funciona até que o próprio hub seja desconectado / conectado novamente.

Eu consegui corrigir essa falta de resposta enviando um ioctl com USBDEVFS_RESET. Infelizmente isso requer permissões de root, estou correto?

Existe alguma outra maneira possível de corrigir isso sem exigir permissões de root?

    
por Luca Carlon 07.08.2013 / 09:27

1 resposta

0

I've been able to fix this non-responsiveness by sending an ioctl with USBDEVFS_RESET. Unfortunately this requires root permissions, am I correct?

Provavelmente sim.

Is there any other possible way to fix this without requiring root permissions?

Bem, se você já está escrevendo seu próprio aplicativo para enviar o ioctl , você pode simplesmente setuid root para que ele sempre seja executado com permissões de root, independentemente de quem o estiver executando.

    
por 16.09.2013 / 17:36