USB Devices
USB
Permissions
By default, USB devices permissions may not be sufficient to allow any user to
access the USB3 cameras. These permissions can be changed by using an udev rule
file. There is a file example in Aravis
sources.
This file must be placed in /etc/udev/rules.d
directory (The exact location
may depend on the distribution you are using). This file only contains
declarations for a couple of vendors. If you want to add an entry with the
vendor of your camera, the output of lsusb
command will give you the vendor
id, which is the first 4 digits of the ID field.
Alternatively, you can give read/write access to all USB3Vision devices using the following rule:
# Read write access for all USB3Vision devices
SUBSYSTEM=="usb", ATTRS{bDeviceClass}=="ef", ATTRS{bDeviceSubClass}=="02", ATTRS{bDeviceProtocol}=="01",
ENV{ID_USB_INTERFACES}=="*:ef0500:*", MODE="0666"
Performance
Aravis uses by default the synchronous libusb API. But it can be told to use the
asynchronous API for better performances, especially on embedded platform like
RapsberryPi or Nvidia Jetson boards. The function to use is
arv_camera_uv_set_usb_mode()
.
arv-viewer
and arv-camera-test
can use the asynchronous API if usb-mode
option is set to async
. Similarly, the GStreamer plugin is using the
asynchronous API if usb-mode
property is set to async
.