ELP webcam on Pi4

Hello,

Having an issue getting an ELP global shutter camera to run. It is a 1080p 90fps rated usb 2.0 webcam that tested ok directly connected to my Win10 computer. The server is a Raspberry Pi 4, 8GB model. All other devices work. All wired Gb ethernet.

The camera is seen from the rpi server, and will connect to the desktop client. Device manager knows it is a camera, Webcam-Viewer even sees the operating resolutions and framerates. It will not connect though, seems like it tries to, the Pi CPU cranks up to 70-80%, I see about 20-25 Mbps of network traffic, but I get a "cannot connect device" error after a few seconds and then the CPU and network usage zero out. I managed to get one or two frames when I connected the camera to my phone, used the android server, and ran Webcam-Viewer at the lowest resolution setting. Based off that, I thought maybe it was a memory issue not compatibility. Forget which log file I was in but saw this:

usb 1-1.1: usbfs: usb_submit_urb returned -11 May 8 16:05:52 raspberrypi kernel: [539886.063845] xhci_hcd 0000:01:00.0: swiotlb buffer is full (sz: 391680 bytes), total 32768 (slots), used 6 (slots) May 8 16:05:52 raspberrypi kernel: [539886.063860] usb 1-1.1: usbfs: usb_submit_urb returned -11

Tried changing the swiotlb buffer to a bigger number in the /boot/cmdline.txt file, went to swiotlb=655350. On reboot the server would start, but not display any of the connected devices. Changing the value to a lower number like 50000 causes the devices to show up again and connect, but same issue is there with the camera. 

Is there a maximum value I can set the swiotlb buffer to work with VirtualHere? Am I going down the wrong path trying to fix this?

Thank you.

#3

Thank you for the suggestion. Gave it a go, still having the same issue. I did try a few different numbers for what its worth.

https://i.imgur.com/1pKlAWn.png

Should also add, if it matters, some values were with resets/edits to the rc.local file.

 

 

#4

OK it must be a bug in the linux kernel unfortunately. You will have to wait until someone fixes it in the raspberry pi.