Here's a patch for spectro/usbio.c that should address this issue. The question remains, if the device has the right permissions to be opened by the user, is there any remaining problem with calling usb_detach_kernel_driver_np() ? Graeme Gill. ------------------------------------- cut here -------------------------------------- *** usbio.old.c Fri Oct 19 23:40:19 2007 --- usbio.new.c Sat Dec 15 15:46:07 2007 *************** *** 397,402 **** --- 397,408 ---- p->cnfg = config; p->uflags = usbflags; + #if LIBUSB_HAS_DETACH_KERNEL_DRIVER_NP == 1 + if (p->uflags & icomuf_detach) { + usb_detach_kernel_driver_np(p->usbh, 0); + } + #endif + /* (Should use bConfigurationValue ?) */ if ((rv = usb_set_configuration(p->usbh, p->cnfg)) < 0) error("Configuring USB port '%s' to %d failed with %d (%s)",p->ppath->path,config,rv,usb_strerror()); *************** *** 410,421 **** for (iface = 0; iface < p->nifce; iface++) { /* (Second parameter is bInterfaceNumber) */ - #if LIBUSB_HAS_DETACH_KERNEL_DRIVER_NP == 1 - if (p->uflags & icomuf_detach) { - usb_detach_kernel_driver_np(p->usbh, iface); - } - #endif - if ((rv = usb_claim_interface(p->usbh, iface)) < 0) error("Claiming USB port '%s' interface %d failed with %d",p->ppath->path,iface,rv); --- 416,421 ---- ------------------------------------- cut here --------------------------------------