If your USB device is not being recognized, execute the command “dmesg” and check if the following output is there:
usb 1-1.4: rejected 1 configuration due to insufficient available bus power
The “1-1.4” ID may be different for your configuration.
If, and only if, you are absolutely sure that your USB hub and/or hardware configuration have a safe way to actually supply enough power, you can override this barrier and force the device to be activated despite of the error message. A possible situation is where you manually applied 5V external power on your USB device and/or USB hub, like I did on my Bifferboard.
Here is how you can override the power safety mechanism:
echo 1 > /sys/bus/usb/devices/1-1.4/bConfigurationValue
Replace “1-1.4” with your USB device ID. Be careful and have fun!
Resources:
August 17, 2014 at 7:58 pm
Can you explain the reason for this and how typing this command make it work?
August 17, 2014 at 9:12 pm
To be honest, I didn’t spend too much time trying to understand what “1” exactly means… The kernel docs can be found at “https://www.kernel.org/doc/Documentation/ABI/stable/sysfs-bus-usb“. That’s regarding the thing we’re forcing to value “1”. However, I couldn’t find any good docs what the magic value “1” is about.
USB devices support more than one configuration. You can see this using “lsusb -v”. Each USB device has a “bNumConfigurations” value which shows the number of possible configurations. The kernel in our case reported that it rejected one configuration due to insufficient power on the bus. With the “echo” command we force the kernel to use configuration “1” (the first available).
More information about the USB devices and Linux: http://www.beyondlogic.org/usbnutshell/usb5.shtml