usb_set_configuration failed

If you’ve been trying to transfer a GPX file to your GPS unit from a Linux machine, using GPSBabel, and have seen this message:

$> gpsbabel -r -i gpx -f FOO.gpx -o garmin -F usb: 
usb_set_configuration failed, probably
because kernel driver 'garmin_gps' is
blocking our access to the USB device.

…then don’t despair. Help is here.

This error occurs because gpsbabel doesn’t use the kernel module garmin_gps, and that module gets in the way of other applications writing to the GPS device. The simple solution is to unload the blocking module thus:

sudo rmmod garmin_gps

which will then allow you to repeat the original command without problems. Note that removing the kernel module is temporary: without more jiggery pokery it will come back when next you reboot.

2 Replies to “usb_set_configuration failed”

  1. Hi, Google Alert tipped me off to this posting. A few things caught my eye.

    You’re running an old version of GPSBabel. In current versions, the text of that error is:

    fatal(“usb_set_configuration failed, probably because kernel driver ‘%s’\n is blocking our access to the USB device.\n”
    “For more information see http://www.gpsbabel.org/os/Linux_Hotplug.html \n”, drvnm);

    If you want to use the kernel module (and it doesn’t work correctly for a large number of people) use /dev/ttyUSBwhatever instead of usb:

  2. Hi Robert, thanks for the post. The error message you quote is what I posted, isn’t it? Apart from the “For more information…” part, which I omitted.

    I’d been using /dev/ttyUSB0 before, but on the current machine I was testing it on, using that was causing only partial transfer of the data, resulting in truncated data sets on the GPS device. I’ve seen other people mention that in the past as well.

    Finally, a big thanks to you and your team from all of us who use GPSBabel. Good work!

Leave a Reply

Your email address will not be published.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.