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.