Webcam not working on Manjaro, but working on Armbian out of the box

Hello,

I spent days trying to get the Pinebook Pro webcam working on Manjaro, to no avail.

Cheese always complains that the data stream is corrupt, and command line experiments give :


[🔴 ERROR] ❯ LANG=C gst-launch-1.0 v4l2src device=/dev/video2 ! xvimagesink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
../gstreamer/subprojects/gstreamer/libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

So in my frustration I tried and booted an Armbian 21.05.4 Focal with kernel “5.10.43-rockchip64”… and the webcam just worked out of the box, without any effort.

If anybody has a clue about why it would work in Armbian and not in Manjaro, I’d be very happy (and I’m willing to test and try suggestion as need be).

TIA, kind regards.

Video on ARM is really troublesome in general.

But I can view my webcam on the Pinebook Pro with:
mpv /dev/video4

You were right, I was too fast assuming the webcam doesn’t work just because it doesn’t work in Cheese, being the tool often used to quickly test webcams…

But it actually works with either :

mpv /dev/video4
vlc v4l2:///dev/video4
guvcview-qt -d /dev/video4

BTW it also works in a Jitsi echo test in Vivaldi.

So the question now boils down to : Why does cheese work in Armbian (Ubuntu focal based) and not in Manjaro ?

Are there some video capture helpers or libraries that cheese may use and that I would need to install ?

Presumably Armbian patches lots of video related libraries in order for them to properly support the new v4l2-requests API, which is not quite implemented in popular libraries yet, like ffmpeg.

Well it looks like Armbian uses the standard Ubuntu LTS packages. I’d love to know what exact libraries or helpers Cheese uses precisely so I could take a look, but alas I don’t.
Still, the Pinebook Pro webcam works in Cheese out of the box on both Armbian and Twister OS, but not in Manjaro, which surprises me both because Manjaro is preinstalled on the machine (so would be supposed to support its hardware ?) and Manjaro usually has more up-to-date software than an Ubuntu LTS…

I don’t know much about Armbians package scructure, but I found this on github, that seems to contain some driver/video related packages:

The Pinebook Pro webcam works also perfectly with webcamoid in Manjaro, and that’s an excellent app.

However, this is in AUR along with its dependancy libuvc, and it takes like forever to compile on a PBP.

Could Manjaro ARM consider adding it to the repos ?

LibUVC seems to not be very active. There has been no new release in 5 years…
But if it does fix webcam in regualar video applications, then I’ll consider it. If it’s just to enable yet another AUR application for viewing the webcam, then no. That should be up to the user to decide if they need/want.

Maybe libuvc is not very active, but… if it works… Maybe its source code is fairly stable and doesn’t need updating.

Webcamoid OTOH is a very nice piece of webcam software, and it depends on libuvc…

Maybe you should give Webcamoid a shot and if you like it decide whether or not it’s worth adding to the repos ?

For it’s kind of a pain getting a nice machine which webcam appears broken due to … broken webcam software, that actually works just nice in…anything but the “usual default webcam app”.

Given that Manjaro ARM is so fine and factory preinstalled on the Pinebook Pro, I assume there might be some kind of a parnership, so that would be a nice move.