Frequently Asked Questions http://libnjb.sourceforge.net/ ------------------------------ 1. Is there a mailing list for users of libnjb? Yes. See: http://lists.sourceforge.net/lists/listinfo/libnjb-users 2. When I run the sample programs, I get "No NJB devices found", or a silent failure (i.e., nothing happens and you get a prompt back) If you are on Linux, you need to mount the usbdevfs filesystem, and ensure that you have read/write permission to the "files" there. For more information, see http://www.linux-usb.org/FAQ.html#gs3 You should also verify that you have the latest libusb sources from SourceForge (you may need to grab them via CVS) if you have libusb v0.1.3b or earlier. Under BSD, make sure you have read/write access to the ugen* and usb* devices in /dev. ugen support will need to be built in your kernel (not required for BSD 5.x and higher, which builds devices on the fly) 3. Every other connection attempt fails with an I/O error. When the NJB is "released" by the host software, there is a brief cycle time (a few seconds or so) during which you cannot reattach to the device. If you retry the command a few seconds later, it may work. Under Linux, there appears to be a problem with the communications between libnjb, libusb and the USB stack. This causes "every other connection fails" problems on some systems, and has not been root-caused. Unplugging/replugging the device (physically!) appears to get things working again, and sometimes simply retrying the command works, as well. 4. I am getting bulk data transfer failures under Linux. This is also a known issue that appears to be an interaction between libnjb and libusb. Although it has not been root-caused, the current suspicion is that libnjb is writing too aggressively to the USB stack, and usb_bulk_write may be failing on EINPROGESS. Again, this is just a guess based on some scattered evidence. There is no solution other than to retry. Using more recent kernels and libusb implementations may solve the problem. 5. I am getting shared object/shared library errors (something like "libnjb.so.0: cannot open shared object file"). See the README file under the "Shared Library Support" section. 6. How do I get USB 2.0 working? First assure yourself that your hardware is really USB 2.0 compatible. This goes for both the motherboard, hub, and the device you want to connect. Kernel 2.6.x (and newer versions of 2.4.x) have three USB driver modules: UHCI, OHCI and EHCI. USB 2.0 use the EHCI driver, leave out the others and recompile your kernel. Typical config status: # USB support CONFIG_USB=y # CONFIG_USB_DEBUG is not set # Miscellaneous USB options CONFIG_USB_DEVICEFS=y # USB Host Controller Drivers CONFIG_USB_EHCI_HCD=y CONFIG_USB_OHCI_HCD=y # CONFIG_USB_UHCI_HCD is not set See also: http://www.linux-usb.org/usb2.html