We had this problem at XPD-D. The rules need to be loaded on the RHEL8 computers (and after power cycling the computers):
You may also need to increase USBFS memory limit to like 2000.
kgofron@xf11id-m3:/epics/src/modules/aravis/build$ grep libusb meson-logs/meson-log.txt
Determining dependency 'libusb-1.0' with pkg-config executable '/usr/bin/pkg-config'
Called `/usr/bin/pkg-config --modversion libusb-1.0` -> 0
Called `/usr/bin/pkg-config --cflags libusb-1.0` -> 0
Called `/usr/bin/pkg-config libusb-1.0 --libs` -> 0
Called `/usr/bin/pkg-config libusb-1.0 --libs` -> 0
Run-time dependency libusb-1.0 found: YES 1.0.23
kgofron@xf11id-m3:/epics/src/modules/aravis$ meson build
Source dir: /epics/src/modules/aravis
Build dir: /epics/src/modules/aravis/build
C compiler for the host machine: cc (gcc 8.4.1 "cc (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)")
C linker for the host machine: cc ld.bfd 2.30-93
C++ compiler for the host machine: c++ (gcc 8.4.1 "c++ (GCC) 8.4.1 20200928 (Red Hat 8.4.1-1)")
C++ linker for the host machine: c++ ld.bfd 2.30-93
Host machine cpu family: x86_64
Compiler for C supports arguments -Wduplicated-branches: YES
Compiler for C supports arguments -Wimplicit-fallthrough: YES
Compiler for C supports arguments -Wmisleading-indentation: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Wunused: YES
Compiler for C supports arguments -Wunused-variable: YES
Compiler for C supports arguments -Wdeclaration-after-statement: YES
Compiler for C supports arguments -Wformat=2: YES
Compiler for C supports arguments -Wimplicit-function-declaration: YES
Compiler for C supports arguments -Winit-self: YES
Compiler for C supports arguments -Wmissing-include-dirs: YES
Compiler for C supports arguments -Wmissing-prototypes: YES
Compiler for C supports arguments -Wpointer-arith: YES
Compiler for C supports arguments -Wformat-nonliteral: YES
Compiler for C supports arguments -Wenum-conversion: NO
Compiler for C supports arguments -Wmaybe-uninitialized: YES
Compiler for C supports arguments -fvisibility=hidden: YES
Found pkg-config: /usr/bin/pkg-config (1.4.2)
Run-time dependency glib-2.0 found: YES 2.56.4
Run-time dependency gobject-2.0 found: YES 2.56.4
Run-time dependency gio-2.0 found: YES 2.56.4
Run-time dependency libxml-2.0 found: YES 2.9.7
Run-time dependency zlib found: YES 1.2.11
Run-time dependency libusb-1.0 found: YES 1.0.23
Has header "linux/if_packet.h" : YES
Program glib-mkenums found: YES
Program glib-mkenums found: YES
Program glib-mkenums found: YES
Program glib-mkenums found: YES
Found pkg-config: /usr/bin/pkg-config (1.4.2)
Configuring arvapi.h using configuration
Configuring arvfeatures.h using configuration
Configuring arvversion.h using configuration
Program g-ir-scanner found: NO
Found CMake: /usr/bin/cmake (3.18.2)
Run-time dependency gobject-introspection-1.0 found: NO (tried pkgconfig and cmake)
Run-time dependency gtk+-3.0 found: YES 3.22.30
Run-time dependency gstreamer-base-1.0 found: YES 1.16.1
Run-time dependency gstreamer-app-1.0 found: NO (tried pkgconfig and cmake)
Run-time dependency gstreamer-video-1.0 found: NO (tried pkgconfig and cmake)
Dependency gstreamer-base-1.0 found: YES 1.16.1 (cached)
Run-time dependency gstreamer-app-1.0 found: NO (tried pkgconfig and cmake)
Program gtkdoc-scan found: NO
Program xsltproc found: YES
Build targets in project: 36
Found ninja-1.8.2 at /usr/bin/ninja
kgofron@xf11id-m3:/epics/iocs$ arv-tool-0.8 -d all
[18:33:23.193]
🆆 interface> Failed to open USB device
[18:33:23.193]
🅸 interface> Found 0 USB3Vision device (among 8 USB devices)
[18:33:23.195]
🅸 interface> [GvInterface::discovery] Device 'Point Grey Research-Blackfly BFLY-PGE-50S5C-18457368' found (interface 192.168.11.1)
user_id '' - MAC '00:b0:9d:19:a3:18'
[18:33:23.195]
🅸 interface> [GvInterface::discovery] Device 'Point Grey Research-Blackfly BFLY-PGE-50S5C-18481534' found (interface 192.168.11.1)
user_id '' - MAC '00:b0:9d:1a:01:7e'
Point Grey Research-Blackfly BFLY-PGE-50S5C-18457368 (192.168.11.11)
Point Grey Research-Blackfly BFLY-PGE-50S5C-18481534 (192.168.11.12)
Hi Kaz,
I am running Centos8, which is basically the same as RHEL8. I have the same libusb-devel and libusbx-devel packages installed that you do, and no package with a name lib
libusb-1.0.
[epics@viper meson-logs]$ yum list installed | grep libusb
libusb.x86_64 1:0.1.5-12.el8 @BaseOS
libusb-devel.x86_64 1:0.1.5-12.el8 @PowerTools
libusbmuxd.x86_64 1.0.10-9.el8 @AppStream
libusbx.x86_64 1.0.22-1.el8 @anaconda
libusbx-devel.x86_64 1.0.22-1.el8
@BaseOS
But the meson build worked for me. This is the relevant part of meson-build.txt:
Determining dependency 'libusb-1.0' with pkg-config executable '/usr/bin/pkg-config'
Called `/usr/bin/pkg-config --modversion libusb-1.0` -> 0
1.0.22
Called `/usr/bin/pkg-config --cflags libusb-1.0` -> 0
-I/usr/include/libusb-1.0
Called `/usr/bin/pkg-config libusb-1.0 --libs` -> 0
-L/usr/lib64 -lusb-1.0
Called `/usr/bin/pkg-config libusb-1.0 --libs` -> 0
-lusb-1.0
Dependency libusb-1.0 found: YES 1.0.22
Did you try rebuilding aravis?
Mark
Hi Mark,
I am not sure if USB3 dependency is compiled in. Frankly, I am not sure how to check it. I looked at meson-log.txt, and it confirms it by looking for 'libusb-1.0' package, which exists on debian,
but not on RedHat (to my knowledge). I might be wrong here.
"Preliminary CMake check failed. Aborting.
Run-time dependency libusb-1.0 found: NO (tried pkgconfig and cmake)"
"Called `/usr/bin/cmake --trace-expand --trace-format=json-v1 --no-warn-unused-cli --trace-redirect=cmake_trace.txt .` in /epics/src/modules/aravis/build/meson-private/cmake_libusb-1.0 -> 0
-- Module search paths: ['/', '/opt', '/usr', '/usr/local']
-- CMake root: /usr/share/cmake
-- CMake architectures: []
-- CMake lib search paths: ['lib', 'lib32', 'lib64', 'libx32', 'share']
Preliminary CMake check failed. Aborting.
Run-time dependency libusb-1.0 found: NO (tried pkgconfig and cmake)"
That indicates that it is looking for libusb-1.0 package, which to my knowledge does not exist on RedHat.
So maybe USB3 support is not compiled in, because libusb-1.0 does not exist (to my knowledge) on redhat.
Kaz
Is the version of aravis that you are using built with the USB3 support enabled?
Good point, and I did not install aravis udev rules yet.
However, when arv-tools is run as root, it does not detect the USB3 camera either.
[root@xf11id-m3 ~]# arv-tool-0.8 -d all
[11:52:14.710] 🅸 interface> [GvDiscoverSocket::new] Add interface 127.0.0.1 (127.0.0.1)
[11:52:14.710] 🅸 interface> [GvDiscoverSocket::new] Add interface 192.168.11.1 (192.168.11.255)
[11:52:14.710] 🅸 interface> [GvDiscoverSocket::new] Add interface 10.69.24.152 (10.69.24.255)
[11:52:14.711] 🅸 interface> [GvDiscoverSocket::new] Add interface 10.66.83.36 (10.66.83.255)
[11:52:14.711] 🅸 interface> [GvDiscoverSocket::new] Add interface 192.168.122.1 (192.168.122.255)
[11:52:14.712] 🅸 interface> [GvInterface::discovery] Device 'Point Grey Research-Blackfly
BFLY-PGE-50S5C-18457368' found (interface 192.168.11.1) user_id '' - MAC '00:b0:9d:19:a3:18'
[11:52:14.712] 🅸 interface> [GvInterface::discovery] Device 'Point Grey Research-Blackfly
BFLY-PGE-50S5C-18481534' found (interface 192.168.11.1) user_id '' - MAC '00:b0:9d:1a:01:7e'
Point Grey Research-Blackfly BFLY-PGE-50S5C-18457368 (192.168.11.11)
Point Grey Research-Blackfly BFLY-PGE-50S5C-18481534 (192.168.11.12)
=====
Something else is missing on RedHat...
Do you have the aravis udev rules installed so that non root accounts can actually see the usb3 hardware?
I have a USB3 Grasshopper3 GS3-U3-51S5C camera that arv-tools-0.8 is not detecting.
The GS3-U3-51S5C supports
USB3 Vision v1.0,
{Aravis detects only my GigE cameras:}
kgofron@xf11id-m3:/epics/iocs$ arv-tool-0.8
Point Grey Research-Blackfly BFLY-PGE-50S5C-18457368 (192.168.11.11)
Point Grey Research-Blackfly BFLY-PGE-50S5C-18481534 (192.168.11.12)
{arv-tools with options does not list usb camera either}
kgofron@xf11id-m3:/epics/iocs$ arv-tool-0.8 -d all
[15:02:46.093] ?? interface> [GvDiscoverSocket::new] Add interface 127.0.0.1 (127.0.0.1)
{The camera shows up in libusb and /dev/bus/usb, but is not found by arv-tool:}
kgofron@xf11id-m3:/epics/iocs/cam-aravis1$ lsusb
Bus 002 Device 003: ID 1e10:3300 Point Grey Research, Inc.
kgofron@xf11id-m3:/epics/iocs$ ls /dev/bus/usb/002/003
/dev/bus/usb/002/003
{USB camera is on bus 002 device 003}
kgofron@xf11id-m3:/dev/bus/usb/002$ usb-devices
T: Bus=02 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 3 Spd=5000 MxCh= 0
D: Ver= 3.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS= 9 #Cfgs= 1
P: Vendor=1e10 ProdID=3300 Rev=00.00
S: Manufacturer=Point Grey Research
S: Product=Grasshopper3 GS3-U3-51S5C
C: #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=896mA
I: If#=0x0 Alt= 0 #EPs= 2 Cls=ef(misc ) Sub=05 Prot=00 Driver=(none)
I: If#=0x1 Alt= 0 #EPs= 1 Cls=ef(misc ) Sub=05 Prot=01 Driver=(none)
I: If#=0x2 Alt= 0 #EPs= 1 Cls=ef(misc ) Sub=05 Prot=02 Driver=(none)
USB support is installed:
Any suggestions about this problem?