[Solved] Ubuntu drivers error: LIBUSB_ERROR_INVALID_PARAM

Having issues with the site, hardware, source code, or any other issues?
Post Reply
djrevmoon
Posts: 30
Joined: Fri Mar 01, 2013 4:37 am

[Solved] Ubuntu drivers error: LIBUSB_ERROR_INVALID_PARAM

Post by djrevmoon »

Hi,

just installed bladeRF-cli on stock Ubuntu 14.04 LTS as per the instruction in the wiki, and get this:

$ bladeRF-cli -p
[ERROR] Could not open bladeRF device: LIBUSB_ERROR_INVALID_PARAM
probe: Failed to probe for devices: Provided parameter was out of the allowable range

So I ran it in vebose:

[VERBOSE] Found bladeRF (based upon VID/PID)
[DEBUG] Failed to retrieve serial number
[ERROR] Could not open bladeRF device: LIBUSB_ERROR_INVALID_PARAM
[DEBUG] Probe failed on backend 0: Provided parameter was out of the allowable range
probe: Failed to probe for devices: Provided parameter was out of the allowable range

Googling for this error doesnt really get me any further.... Libusb 1.0.0 is installed.

Any pointers? Or should I just compile from source?

thanks!
jynik
Posts: 455
Joined: Thu Jun 06, 2013 8:15 pm

Re: Ubuntu drivers error: LIBUSB_ERROR_INVALID_PARAM

Post by jynik »

Hi there,

Are you installing from HoopyCat's PPA? You mentioned potentially trying to build from source, so I just want to check what you're running, and what version it is.

Code: Select all

bladerRF-cli --version
and

Code: Select all

bladeRF-cli --lib-version
should tell use what you have installed.

If you received your bladeRF quite some time ago, it may still have some old firmware on it that doesn't "understand" the request being made to read some device information from the SPI flash.
Could you try upgrading your firmware, using the "jumper method" to force the device into the bootloader mode. For what it's worth, you cannot "brick" the device in the process ; you can always recover from the bootloader. (Assuming you're not loading custom firmware that does crazy things with pin configurations.)

You can find some more information about using the bladeRF-cli program to load firmware onto the device from bootloader mode in this thread. Unlike that thread, however, you can just go directly to the v1.6.1 firmware. The business discussed in that post with using two firmware versions is to work around very particular circumstances involving an incompatible FPGA being loaded from flash....so you can most likely ignore this. The things you'll want to pay attention to are:
  • Powering on with J64 jumpered as described in the wiki
  • Removing the jumper after seeing the Cypress bootloader in dmesg
  • Running bladeRF-cli, and seeing a message noting that a device in bootloader has been detected
  • Using the recover <usb bus> <usb addr> <firmware> to load firmware to the device's ram
  • Using the "open" command to attach to the device
  • Using the 'load fx3 <firmware>" command to write the firmware to SPI flash
  • Power cycling to see the new firmware being loaded
For the record, detecting old, incompatible firmware in libbladeRF and spitting out an appropriate error code/message instead of strange failures is indeed on the near-future TO DO list. Sorry for the inconvenience.

If firmware's not the issue here, please let us know, and we'll go from there.
djrevmoon
Posts: 30
Joined: Fri Mar 01, 2013 4:37 am

Re: Ubuntu drivers error: LIBUSB_ERROR_INVALID_PARAM

Post by djrevmoon »

Yeah that sounds very likely, i bought it a while ago but didnt really get the usb3 support working on ubuntu in parallels. Also I wanted to try openbts and stuff but that did not work back then. I've dusted it off and decided to give it another twirl, but indeed did not update firmware. So I'll be doing that now, thanks for the tip!
djrevmoon
Posts: 30
Joined: Fri Mar 01, 2013 4:37 am

Re: Ubuntu drivers error: LIBUSB_ERROR_INVALID_PARAM

Post by djrevmoon »

Ok I'm running:

ralph@destroyer2:~$ bladeRF-cli --version
0.10.7-git-358160d-ppatrusty
ralph@destroyer2:~$ bladeRF-cli --lib-version
0.14.0-git-358160d-ppatrusty
ralph@destroyer2:~$

lsusb gives:
Bus 001 Device 009: ID 1d50:6066 OpenMoko, Inc.

If I set the jumper I get:
Bus 001 Device 010: ID 04b4:00f3 Cypress Semiconductor Corp.

Then, I tried to flash:

ralph@destroyer2:~$ bladeRF-cli -v verbose
[VERBOSE] Using libusb version: 1.0.17.10830
[INFO] Found FX3 bootloader device on bus=1 addr=10. This may be a bladeRF.
[INFO] Use bladeRF-cli command "recover 1 10 <FX3 firmware>" to boot the bladeRF firmware.
[DEBUG] No devices available on the libusb backend.
No device(s) attached.
ralph@destroyer2:~$ bladeRF-cli recover 1 10 Downloads/bladeRF_fw_v1.6.1.img
ralph@destroyer2:~$

I then repositioned the jumper and powercycled the device and ran:

ralph@destroyer2:~$ bladeRF-cli -p
[ERROR] Could not open bladeRF device: LIBUSB_ERROR_INVALID_PARAM
probe: Failed to probe for devices: Provided parameter was out of the allowable range

So, no luck....
Any more pointers?
jynik
Posts: 455
Joined: Thu Jun 06, 2013 8:15 pm

Re: Ubuntu drivers error: LIBUSB_ERROR_INVALID_PARAM

Post by jynik »

It looks like you didn't quite follow the procedure. Allow me to clarify it better here, and I'll update the wiki accordingly tonight if you find this description to be easier to follow.

The parts I believe you missed were that you need to remove the jumper after powering the board on and running 'load fx3 <firmware>' after the 'recover command'. (This also indicates to me that the 'recover' command is poorly named, and should either be renamed, or be changed to inherently flash the firmware to the device. I'll talk to some other devs and open a ticket regarding this.)
  • 1. Unplug all bladeRF devices from your machine. If you are powering the device(s) from a DC barrell jack, ensure this is disconnected.

    2. Connect a jumper on J64, as shown here. This forces the loading of firmware from SPI flash to fail, which results in the device falling back to the USB bootloader.

    3. Power the board on. You should see the bootloader enumerate as 04b4:00f3 Cypress Semiconductor Corp. in dmesg output.

    4. Remove the jumper on J64. This is very important, as otherwise the SPI flash writes will not be able to succeed in the following steps.

    5. From a shell, run bladeRF-cli -i. You should now be at a bladeRF> prompt, with a message indicating that the bootloader detected via a string like: [INFO] Found FX3 bootloader device on bus=1 addr=10. This may be a bladeRF. All of the following commands should be entered in the bladeRF-cli's prompt -- not from your shell.

    6. Run recover <bus> <addr> <path to firmware>, where <bus> and <addr> are the values shown in your [INFO] message, and <path to firmware> is the path to the firmware you want to load. This command does not write the firmware to flash; it only loads it into RAM. We will write the firmware to the SPI flash in the next two steps.

    7. Run open. This will attach to the first available bladeRF. Spefifically, this will attach to the device that you just booted bladeRF firmware on via the 'recover' command.

    8. Run load fx3 <firmware>. This will will write the firmware to flash.

    9. Unplug and replug the device. A power cycle is required to boot the new firmware.
Give this a shot -- I suspect this should get you up and running. Please post back either way. :)
djrevmoon
Posts: 30
Joined: Fri Mar 01, 2013 4:37 am

Re: Ubuntu drivers error: LIBUSB_ERROR_INVALID_PARAM

Post by djrevmoon »

Woop! That worked! thank you very much!

It now detects:

$ bladeRF-cli -p

Backend: libusb
Serial: 0bb3137c20ae145a367357ddd61cb4ae
USB Bus: 1
USB Address: 6
jynik
Posts: 455
Joined: Thu Jun 06, 2013 8:15 pm

Re: [Solved] Ubuntu drivers error: LIBUSB_ERROR_INVALID_PARA

Post by jynik »

Glad to hear it!

I'll update the firmware upgrade wiki page to include the above instructions tonight.

Update: The wiki has been updated with the instructions from this post: https://github.com/Nuand/bladeRF/wiki/U ... F-firmware
Post Reply