Thanks Mark, and Ji,
Reboot of the server resolved the USB permissions.
kgofron@xf11id-m3:/epics/iocs$ arv-tool-0.8
Point Grey Research-1E100123EF71-0123EF71 (USB3)
Point Grey Research-Blackfly BFLY-PGE-50S5C-18457368 (192.168.11.11)
Point Grey Research-Blackfly BFLY-PGE-50S5C-18481534 (192.168.11.12)
The aravis udev rules took action:
kgofron@xf11id-m3:/epics/iocs$ ls -l /dev/bus/usb/002/004
crw-rw-rw-+ 1 root root 189, 131 Dec 14 12:48 /dev/bus/usb/002/004
kgofron@xf11id-m3:/epics/iocs$ lsusb
Bus 002 Device 004: ID 1e10:3300 Point Grey Research, Inc.
===========
The redhad documentation might be misleading, where it claims
'udevadm control --reload' {where Ji tested '--reload-rules' option}
Definitely not rebooting is preferred. I have not tried unplug/replug the USB camera, that Mark suggested.
Thanks all for help,
Kaz
From: Li, Ji <liji at bnl.gov>
Sent: Tuesday, December 14, 2021 12:42 PM
To: Gofron, Kazimierz <kgofron at bnl.gov>; Mark Rivers <rivers at cars.uchicago.edu>; Engbretson, Mark S. <engbretson at anl.gov>
Cc: tech-talk at aps.anl.gov (tech-talk at aps.anl.gov) <tech-talk at aps.anl.gov>
Subject: RE: arv-tools not detecting USB3 camera
Hi Kaz,
We had this problem at XPD-D. The rules need to be loaded on the RHEL8 computers (and after power cycling the computers):
---------------------------------------------------------------------
udevadm control --reload-rules
udevadm trigger --type=devices --action="">
---------------------------------------------------------------------
This is not available with dzdo. Marcus (maybe not in the mailing list) configured it for this to be applied automatically after power cycling.
You may also need to increase USBFS memory limit to like 2000.
-Ji
From: Tech-talk <tech-talk-bounces at aps.anl.gov>
On Behalf Of Gofron, Kazimierz via Tech-talk
Sent: 2021年12月14日 11:56
To: Mark Rivers <rivers at cars.uchicago.edu>; Engbretson, Mark S. <engbretson at anl.gov>
Cc: tech-talk at aps.anl.gov (tech-talk at aps.anl.gov) <tech-talk at aps.anl.gov>
Subject: Re: arv-tools not detecting USB3 camera
I rebuild the aravis on RHEL8.4, and now USB support is included.
Found out that redhat libusbx-dev is equivalent to libusb-1.0 from debian.
kgofron@xf11id-m3:/epics/src/modules/aravis/src$ yum list installed | grep libusb
libusb.x86_64 1:0.1.5-12.el8 @rhel-8-for-x86_64-baseos-rpms
libusb-devel.x86_64 1:0.1.5-12.el8 @codeready-builder-for-rhel-8-x86_64-rpms
libusbmuxd.x86_64 1.0.10-9.el8 @rhel-8-for-x86_64-appstream-rpms
libusbx.x86_64 1.0.23-4.el8 @anaconda
libusbx-devel.x86_64 1.0.23-4.el8 @rhel-8-for-x86_64-baseos-rpms
Relevant part of meson-log.txt
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
{Essentially sees USBVision device,
but fails to open BFLY-PGE-50S5C}
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)
The relevant /etc/udev/rules.d/51-aravis.rules file content:
SUBSYSTEM=="usb", ATTRS{idVendor}=="1e10", MODE:="0666", TAG+="uaccess", TAG+="udev-acl"
Restarted udev rules after adding 51-aravis.rules
$systemctl restart systemd-udevd
The USB device permissions
In summary
aravis is seeing the USB3 camera, but my user account is not getting access to the device.
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?
|