For anyone who is still having this problem, hopefully this will help you get your webcam working. I was able to get my webcam working and I am using a Dell Precision 7510 Laptop running Ubuntu 18.04.3.
1.) I issued "$dmesg | grep -i camera" in a terminal window and received "uvcvideo 1-11:1.0: Entity type for entity Camera 1 was not initialized!" which landed me here at this website (FYI I am still receiving that message and my camera works... as laurent.pinchart+bugzilla-kernel pointed out already it is a harmless warning).
4) You may be asked to install pre-requisites during the build process. I had to issue the following command "$sudo apt install libproc-processtable-perl".
5) Once build is complete, run "$sudo make install".
6) I installed uvcdynctrl as floe suggested. I don't know if this helped or not sorry...
7) I then found and example file to test if the camera was working from "https://linuxtv.org/downloads/v4l-dvb-apis/uapi/v4l/v4l2grab.c.html". I saved this file and tried to compile it "$gcc -o v4l2grab v4l2grab.c" and received an error that it couldn't find the libv4l2.h header file. So i searched for it using $sudo find / -name "libv4l2.h" and didn't find it. This led me to believe that I didn't have the v4l2 development library installed so I installed it $sudo apt install libv4l-dev.
8) I searched again and found it! I then set C include environment path variable to point to the directory containing the header file $export C_INCLUDE_PATH=/usr/include/ and changed #include "../libv4l/include/libv4l2.h" to just #include "libv4l2.h"
9) Tried to recompile and got a linking error, so I issued $gcc -o v4l2grab v4l2grab.c -lv4l1 -lv4l2 and waula, it compiled. Changed its permssions to be executable $chmod +755 v4l2grab (using octal format where 7 in binary is 111 corresponding to rwx for owner and 5 or 110 rw- for group and other) and ran it ./v4l2grab where then I saw the .ppm files in the directory where the executable was ran from, but this was not good enough I want live feed.
10) I then installed v4l-utils and ran $v4l2-ctl -d /dev/video0 --list-formats-ext. This gave me the parameters that are compatible with my webcam for video capture (width=1280, height=720, format=MJPG, and device index=0).
For anyone who is still having this problem, hopefully this will help you get your webcam working. I was able to get my webcam working and I am using a Dell Precision 7510 Laptop running Ubuntu 18.04.3.
1.) I issued "$dmesg | grep -i camera" in a terminal window and received "uvcvideo 1-11:1.0: Entity type for entity Camera 1 was not initialized!" which landed me here at this website (FYI I am still receiving that message and my camera works... as laurent. pinchart+ bugzilla- kernel pointed out already it is a harmless warning).
2) I did a search for "ubuntu uvcvideo" in google and landed on "https:/ /help.ubuntu. com/community/ UVC" which then pointed me to "https:/ /www.berlios. de/software/ linux-uvc/ #download" which then pointed me to "http:// www.ideasonboar d.org/uvc/".
3) From "http:// www.ideasonboar d.org/uvc/", if you scroll down to the bottom of it you will see a Downlaod section. Navigate to the "https:/ /www.linuxtv. org/wiki/ index.php/ How_to_ Obtain" webpage and follow the "Basic" User's Approach instructions.
4) You may be asked to install pre-requisites during the build process. I had to issue the following command "$sudo apt install libproc- processtable- perl".
5) Once build is complete, run "$sudo make install".
6) I installed uvcdynctrl as floe suggested. I don't know if this helped or not sorry...
7) I then found and example file to test if the camera was working from "https:/ /linuxtv. org/downloads/ v4l-dvb- apis/uapi/ v4l/v4l2grab. c.html". I saved this file and tried to compile it "$gcc -o v4l2grab v4l2grab.c" and received an error that it couldn't find the libv4l2.h header file. So i searched for it using $sudo find / -name "libv4l2.h" and didn't find it. This led me to believe that I didn't have the v4l2 development library installed so I installed it $sudo apt install libv4l-dev.
8) I searched again and found it! I then set C include environment path variable to point to the directory containing the header file $export C_INCLUDE_ PATH=/usr/ include/ and changed #include "../libv4l/ include/ libv4l2. h" to just #include "libv4l2.h"
9) Tried to recompile and got a linking error, so I issued $gcc -o v4l2grab v4l2grab.c -lv4l1 -lv4l2 and waula, it compiled. Changed its permssions to be executable $chmod +755 v4l2grab (using octal format where 7 in binary is 111 corresponding to rwx for owner and 5 or 110 rw- for group and other) and ran it ./v4l2grab where then I saw the .ppm files in the directory where the executable was ran from, but this was not good enough I want live feed.
10) I then installed v4l-utils and ran $v4l2-ctl -d /dev/video0 --list-formats-ext. This gave me the parameters that are compatible with my webcam for video capture (width=1280, height=720, format=MJPG, and device index=0).
11) As a final death blow I ran the following
v4l2-ctl -V --set-fmt- video=width= 1280,height= 720,pixelformat =MJPG --stream-mmap --stream-count=-1 --stream- to=test. jpg -d /dev/video0
but only got a single image. I think you need to incude OpenCV. Anyways, I hope this helps you atleast get images off of the webcam.