I have an application that needs several USB cameras. I know about the limitations of USB2.0's bandwidth, and have worked through a misunderstanding I had regarding USB2.0 devices on the USB3.0 bus (see my previous question: How to run USB2.0 devices on a USB3.0 hub and get USB3.0 bandwdith).
Now I am running with all USB3.0 cameras on a 3.0 bus and I find that even at very low resolution (160x120,MJPG) I still get the "no space left on device" error when attempting to connect a second camera. This is actually worse than when I run on a USB2.0 bus.
Note that I can run with one USB3.0 camera in 4K mode (4096x2160,MJPG) which certainly uses more bus bandwidth than two 160x120,MJPG streams would. So it doesn't appear to be a bandwidth limitation; its more like USB3.0 just doesn't want to connect more than one USB3.0 camera. I'm working with a Logitech BRIO.
Any ideas what I may be doing wrong? I'm running Ubuntu 16.04, and using v4l2 API directly.