Failed to open device : Insufficient permissions

Having issues with the site, hardware, source code, or any other issues?
Post Reply
andrew77
Posts: 29
Joined: Mon Mar 02, 2015 2:02 pm

Failed to open device : Insufficient permissions

Post by andrew77 »

As I update the software, through
apt-get install bladerf
and the libraries I got this problem:
and@and-HP-250-G4-Notebook-PC:~$ bladeRF-cli -i
Failed to open device (first available): Insufficient permissions for the requested operation

these are the features:
ldd `which bladeRF-cli`
linux-vdso.so.1 => (0x00007ffced442000)
libbladeRF.so.1 => /usr/local/lib/libbladeRF.so.1 (0x00007fcccfc91000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fcccfa73000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fcccf76c000)
libtecla.so.1 => /usr/lib/libtecla.so.1 (0x00007fcccf548000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcccf183000)
libusb-1.0.so.0 => /lib/x86_64-linux-gnu/libusb-1.0.so.0 (0x00007fcccef6a000)
/lib64/ld-linux-x86-64.so.2 (0x000055601ff6e000)
libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007fccced59000)
libcgmanager.so.0 => /lib/x86_64-linux-gnu/libcgmanager.so.0 (0x00007fccceb3e000)
libnih.so.1 => /lib/x86_64-linux-gnu/libnih.so.1 (0x00007fccce925000)
libnih-dbus.so.1 => /lib/x86_64-linux-gnu/libnih-dbus.so.1 (0x00007fccce71b000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007fccce4d6000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fccce2cd000)

and@and-HP-250-G4-Notebook-PC:~$ bladeRF-cli -p

Backend: libusb
Serial: c36781bf545973547fdfed05e6edd3a7
USB Bus: 2
USB Address: 2

and@and-HP-250-G4-Notebook-PC:~$ bladeRF-cli -v verbose
[VERBOSE @ libusb.c:541] Using libusb version: 1.0.20.11004
[VERBOSE @ libusb.c:422] Found a bladeRF (idx=2)
[VERBOSE @ libusb.c:484] USB port reset succeeded for bladeRF c36781bf545973547fdfed05e6edd3a7
[VERBOSE @ capabilities.c:45] Capability mask before FPGA load: 0x0000000700000000
[VERBOSE @ usb.c:112] Changing to USB alt setting 0
[VERBOSE @ usb.c:112] Changing to USB alt setting 2
[VERBOSE @ usb.c:112] Changing to USB alt setting 3
[VERBOSE @ usb.c:112] Changing to USB alt setting 2
[VERBOSE @ usb.c:112] Changing to USB alt setting 3
[DEBUG @ config.c:80] Loading FPGA from: /usr/share/Nuand/bladeRF/hostedx40.rbf
Failed to open device (first available): Insufficient permissions for the requested operation

I had to "sudo" in order to work:
and@and-HP-250-G4-Notebook-PC:~$ sudo bladeRF-cli -i
[sudo] password for and:
bladeRF> info

Serial #: c36781bf545973547fdfed05e6edd3a7
VCTCXO DAC calibration: 0x9004
FPGA size: 40 KLE
FPGA loaded: yes
USB bus: 2
USB address: 2
USB speed: SuperSpeed
Backend: libusb
Instance: 0

bladeRF> version

bladeRF-cli version: 1.4.0-2016.06-1-ppatrusty
libbladeRF version: 1.7.2-2016.06-1-ppatrusty

Firmware version: 2.0.0
FPGA version: 0.6.0

bladeRF>

Previous installation of libbladerf, fx3 and libusb (1.0.17) that didn't happen
how can I get it to work without "sudo"?

Thanks
Andrea
jynik
Posts: 455
Joined: Thu Jun 06, 2013 8:15 pm

Re: Failed to open device : Insufficient permissions

Post by jynik »

It looks like you might need to update your udev rules. The 2.0.0 firmware introduces a new VID/PID that you'll need to ensure is in there.

Here's an example - replace @BLADERF_GROUP@ with the desired group name (e.g., plugdev).

https://github.com/Nuand/bladeRF/blob/m ... d.rules.in
andrew77
Posts: 29
Joined: Mon Mar 02, 2015 2:02 pm

Re: Failed to open device : Insufficient permissions

Post by andrew77 »

I did it:

# Nuand bladeRF
ATTR{idVendor}=="2cf0", ATTR{idProduct}=="5246", MODE="660", GROUP="plugdev"

# Nuand bladeRF, legacy VID/PID
ATTR{idVendor}=="1d50", ATTR{idProduct}=="6066", MODE="660", GROUP="plugdev"

# Cypress Bootloader
ATTR{idVendor}=="04b4", ATTR{idProduct}=="00f3", MODE="660", GROUP="plugdev"

and then
sudo udevadm control --reload-rules

after unplug the device is always the same;
lsusb -v:
.....
Bus 002 Device 002: ID 2cf0:5246
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 9
idVendor 0x2cf0
idProduct 0x5246
bcdDevice 0.00
iManufacturer 1 Nuand
iProduct 2 bladeRF
iSerial 3 c36781bf545973547fdfed05e6edd3a7
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 123
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 200mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 1
bNumEndpoints 4
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 3
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 1
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 22
bNumDeviceCaps 2
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000002
Link Power Management (LPM) Supported
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000e
Device can operate at Full Speed (12Mbps)
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 3
Lowest fully-functional device speed is SuperSpeed (5Gbps)
bU1DevExitLat 0 micro seconds
bU2DevExitLat 0 micro seconds
Device Status: 0x0000
(Bus Powered)
...
still the same problem.
dmesg | grep usb:
....
15.675040] usbcore: registered new interface driver uvcvideo
[ 363.196109] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd
[ 363.212688] usb 2-1: LPM exit latency is zeroed, disabling LPM.
[ 363.213211] usb 2-1: New USB device found, idVendor=2cf0, idProduct=5246
[ 363.213214] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 363.213216] usb 2-1: Product: bladeRF
[ 363.213218] usb 2-1: Manufacturer: Nuand
[ 363.213219] usb 2-1: SerialNumber: c36781bf545973547fdfed05e6edd3a7
[ 406.696616] usb 2-1: reset SuperSpeed USB device number 2 using xhci_hcd
[ 406.712738] usb 2-1: LPM exit latency is zeroed, disabling LPM.
[ 443.458115] usb 2-1: reset SuperSpeed USB device number 2 using xhci_hcd
[ 443.474218] usb 2-1: LPM exit latency is zeroed, disabling LPM.
[ 1822.174594] usb 2-1: reset SuperSpeed USB device number 2 using xhci_hcd
[ 1822.191162] usb 2-1: LPM exit latency is zeroed, disabling LPM.
[ 1823.996065] usb 2-1: USB disconnect, device number 2
[ 1827.717428] usb 2-1: new SuperSpeed USB device number 3 using xhci_hcd
[ 1827.732304] usb 2-1: LPM exit latency is zeroed, disabling LPM.
[ 1827.732804] usb 2-1: New USB device found, idVendor=2cf0, idProduct=5246
[ 1827.732807] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1827.732809] usb 2-1: Product: bladeRF
[ 1827.732810] usb 2-1: Manufacturer: Nuand
[ 1827.732811] usb 2-1: SerialNumber: c36781bf545973547fdfed05e6edd3a7
[ 1829.133409] usb 2-1: reset SuperSpeed USB device number 3 using xhci_hcd
[ 1829.149621] usb 2-1: LPM exit latency is zeroed, disabling LPM.


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

Re: Failed to open device : Insufficient permissions

Post by jynik »

So it looks like you have the udev rules correct, and I see a bladeRF running firmware 2.0.0 is attached. This is a good start!

(1) I just noticed that the error happens when loading the FPGA. At this point you should already have opened the device successfully. Could you check the permissions of /usr/share/Nuand/bladeRF/hostedx40.rbf and ensure you have read access?

If that's not it...
(1) Can you confirm that your user in the plugdev group?
(2) Can you track down the bladeRF device node in /dev/bus/usb and confirm that the group permissions (for plugdev) are getting set correctly? (i.e., verify that udev and the associated rule are taking effect)?
andrew77
Posts: 29
Joined: Mon Mar 02, 2015 2:02 pm

Re: Failed to open device : Insufficient permissions

Post by andrew77 »

Well done, thanks jynik for the quick reply as well!

It works now!
I changed permission to the folder /usr/share/Nuand/bladeRF and files and now works !

Now I'm thinking of downgrading the fx3 to 1.9.1 because I realized that the new fw doesn't work with Yatebts

Bye
Andrea
jynik
Posts: 455
Joined: Thu Jun 06, 2013 8:15 pm

Re: Failed to open device : Insufficient permissions

Post by jynik »

Excellent. You just need to ensure the RBF files are readable (no need for write access) by users using the device so they can load the FPGA.

You are correct about the the 1.9.1 requirement for YateBTS. The Yate code would need a patch similar to this one to detect the new VID/PID.

If you ever have any firmware issues, don't fret -- you can always recover to a "safe" spot via the bootloader.

Cheers,
Jon
andrew77
Posts: 29
Joined: Mon Mar 02, 2015 2:02 pm

Re: Failed to open device : Insufficient permissions

Post by andrew77 »

Right John

no fret,
I just updated because It was since 1 year I didn't update the fw of the board,
My purpose is also to make the board working with other software: openLTE, srsLTE, etc...
I would like also to work with the new gqrx (96 MHz bandwidth)

Bye
Andrea
Post Reply