Hello, my computer’s bios setting shows that an internal camera is enabled but there is no reference to any camera device in the output of dmesg. Thus I can not use the built-in camera. I would be grateful if any of you faced the same issue and managed to solve the problem
The first thing to do is to provide the name of the camera hardware and/or the name and model number of the computer.
Dear Frank Many thanks for getting back to me.
I can not find the name of the camera hardware
as it does not come up in lsusb and
BIOS setting also just show “camera”.
What I got is :
319-BBJW
5MP HDR + IR Camera with Presence Detection,
Facial Recognition, TNR,
Camera Shutter, Microphone
and the dell latitude 7350 XCTO
is the model number of the computer
Many thanks
Install the hardware scanning tool “inxi”.
sudo dnf install inxi
After install read the man page in a terminal “man inxi” .
Thank you for your suggestion. I get
Graphics:
Device-1: Intel Meteor Lake-P [Intel Graphics] driver: i915 v: kernel
Display: wayland server: X.org v: 1.20.11 with: Xwayland v: 23.2.7
compositor: kwin_wayland driver: X: loaded: modesetting unloaded: fbdev
dri: iris gpu: i915 resolution: 1536x960
API: EGL v: 1.5 drivers: iris,swrast
platforms: gbm,wayland,x11,surfaceless,device
API: OpenGL v: 4.6 vendor: intel mesa v: 24.2.8 renderer: Mesa Intel
Graphics (MTL)
API: Vulkan v: 1.4.304 drivers: N/A surfaces: xcb,xlib,wayland
I installed kernel-ml. Then I was able to see a word of “camera” in dmesg’s log, i.e.,there is now a camera detected and is using IPU6 software. I then installed libcamera but I am still not able to use the built-in camera
Further information:
the outputs from dmesg and lsmod show the camera but v4l cannnot access the built-in camera as I get
v4l2-ctl --device=/dev/video* --all
Cannot open device /dev/video*, exiting.
I would be grateful if you have similar experience
Many thanks
two general suggestions/questions:
ls -l /dev/video*
to see the permissions?
something along the lines of:
“fuser /dev/video0”
or
“lsof /dev/video0”
to see if another process is using it?
Hope these ideas might help,
Tony
HI Tony Many thanks for your message
ls -l /dev/video*
crw-rw----+ 1 root video 81, 0 Jul 14 19:19 /dev/video0
crw-rw----+ 1 root video 81, 1 Jul 14 19:19 /dev/video1
crw-rw----+ 1 root video 81, 10 Jul 14 19:19 /dev/video10
crw-rw----+ 1 root video 81, 11 Jul 14 19:19 /dev/video11
crw-rw----+ 1 root video 81, 12 Jul 14 19:19 /dev/video12
crw-rw----+ 1 root video 81, 13 Jul 14 19:19 /dev/video13
crw-rw----+ 1 root video 81, 14 Jul 14 19:19 /dev/video14
crw-rw----+ 1 root video 81, 15 Jul 14 19:19 /dev/video15
crw-rw----+ 1 root video 81, 16 Jul 14 19:19 /dev/video16
crw-rw----+ 1 root video 81, 17 Jul 14 19:19 /dev/video17
crw-rw----+ 1 root video 81, 18 Jul 14 19:19 /dev/video18
crw-rw----+ 1 root video 81, 19 Jul 14 19:19 /dev/video19
crw-rw----+ 1 root video 81, 2 Jul 14 19:19 /dev/video2
crw-rw----+ 1 root video 81, 20 Jul 14 19:19 /dev/video20
crw-rw----+ 1 root video 81, 21 Jul 14 19:19 /dev/video21
crw-rw----+ 1 root video 81, 22 Jul 14 19:19 /dev/video22
crw-rw----+ 1 root video 81, 23 Jul 14 19:19 /dev/video23
crw-rw----+ 1 root video 81, 24 Jul 14 19:19 /dev/video24
crw-rw----+ 1 root video 81, 25 Jul 14 19:19 /dev/video25
crw-rw----+ 1 root video 81, 26 Jul 14 19:19 /dev/video26
crw-rw----+ 1 root video 81, 27 Jul 14 19:19 /dev/video27
crw-rw----+ 1 root video 81, 28 Jul 14 19:19 /dev/video28
crw-rw----+ 1 root video 81, 29 Jul 14 19:19 /dev/video29
crw-rw----+ 1 root video 81, 3 Jul 14 19:19 /dev/video3
crw-rw----+ 1 root video 81, 30 Jul 14 19:19 /dev/video30
crw-rw----+ 1 root video 81, 31 Jul 14 19:19 /dev/video31
crw-rw----+ 1 root video 81, 32 Jul 14 19:19 /dev/video32
crw-rw----+ 1 root video 81, 33 Jul 14 19:19 /dev/video33
crw-rw----+ 1 root video 81, 34 Jul 14 19:19 /dev/video34
crw-rw----+ 1 root video 81, 35 Jul 14 19:19 /dev/video35
crw-rw----+ 1 root video 81, 36 Jul 14 19:19 /dev/video36
crw-rw----+ 1 root video 81, 37 Jul 14 19:19 /dev/video37
crw-rw----+ 1 root video 81, 38 Jul 14 19:19 /dev/video38
crw-rw----+ 1 root video 81, 39 Jul 14 19:19 /dev/video39
crw-rw----+ 1 root video 81, 4 Jul 14 19:19 /dev/video4
crw-rw----+ 1 root video 81, 40 Jul 14 19:19 /dev/video40
crw-rw----+ 1 root video 81, 41 Jul 14 19:19 /dev/video41
crw-rw----+ 1 root video 81, 42 Jul 14 19:19 /dev/video42
crw-rw----+ 1 root video 81, 43 Jul 14 19:19 /dev/video43
crw-rw----+ 1 root video 81, 44 Jul 14 19:19 /dev/video44
crw-rw----+ 1 root video 81, 45 Jul 14 19:19 /dev/video45
crw-rw----+ 1 root video 81, 46 Jul 14 19:19 /dev/video46
crw-rw----+ 1 root video 81, 47 Jul 14 19:19 /dev/video47
crw-rw----+ 1 root video 81, 5 Jul 14 19:19 /dev/video5
crw-rw----+ 1 root video 81, 6 Jul 14 19:19 /dev/video6
crw-rw----+ 1 root video 81, 7 Jul 14 19:19 /dev/video7
crw-rw----+ 1 root video 81, 8 Jul 14 19:19 /dev/video8
crw-rw----+ 1 root video 81, 9 Jul 14 19:19 /dev/video9
When I run fuser /dev/video0
lsof /dev/video0
as a user I do not get any output
As a root I get
lsof /dev/video0
lsof: WARNING: can’t stat() fuse.portal file system /run/user/1000/doc
Output information may be incomplete.
Many thanks for your great help
I am not sure what user you are logged in as, but see if the user is a member of the “video group” (as shown in the “ls” command), and if not add them?
Something like:
sudo usermod -aG video $USER
Tony
Dear Tony Many thanks for your great help
I tried usermod -aG video $USER
and then ls -l /dev/video*
but the output remains the same
Many many thanks
after you did the above, are there new log messages about “v4l2-ctl --device=/dev/video* --all”
maybe do a grep along the lines of:
dmesg | grep video
another thought:
the v4l2-ctl command won’t work as expected because the shell expands /dev/video*
to all matching files , like /dev/video0 /dev/video1
, and v4l2-ctl
expects only one device at a time.
maybe try the command for specific devices, for example:
v4l2-ctl --device=/dev/video0 --all
v4l2-ctl --device=/dev/video1 --all
etc
to see if works for ONE device?
Tony
HI Tony Many thanks for your great help.
mesg | grep video
[ 3.521350] ACPI: video: Video Device [GFX0] (multi-head: yes rom: no post: no)
[ 4.794941] videodev: Linux video capture interface: v2.00
v4l2-ctl --device=/dev/video* --all says Cannot open device /dev/video*, exiting.
but as you suggested,
v4l2-ctl --device=/dev/video0 --all
Driver Info:
Driver name : isys
Card type : ipu6
Bus info : PCI:0000:00:05.0
Driver version : 6.15.6
Capabilities : 0xa4a00001
Video Capture
Metadata Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x24a00001
Video Capture
Metadata Capture
Streaming
Extended Pix Format
Media Driver Info:
Driver name : intel-ipu6
Model : ipu6
Serial :
Bus info : PCI:0000:00:05.0
Media version : 6.15.6
Hardware revision: 0x10280cbf (271060159)
Driver version : 6.15.6
Interface Info:
ID : 0x03000003
Type : V4L Video
Entity Info:
ID : 0x00000001 (1)
Name : Intel IPU6 ISYS Capture 0
Function : V4L2 I/O
Pad 0x01000002 : 0: Sink, Must Connect
Link 0x020000fd: from remote pad 0x10000c3 of entity ‘Intel IPU6 CSI2 0’: Data
Priority: 2
Video input : 0 (Intel IPU6 ISYS Capture 0: ok)
Format Video Capture:
Width/Height : 1920/1080
Pixel Format : ‘BG12’ (12-bit Bayer BGBG/GRGR)
Field : None
Bytes per Line : 3840
Size Image : 4151040
Colorspace : Raw
Transfer Function : Default (maps to None)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :
Format Metadata Capture:
Sample Format : ‘MET8’ (8-bit Generic Metadata)
Buffer Size : 9600
So I do get something out of v4l2-ctl
Many many thanks. We are getting the right direction I guess ?
I tried 4l2-ctl -d /dev/video0 --list-ctrls
but there was nothing returned from the command…
I think that this is good news:
This corresponds to:
V4L2_CAP_VIDEO_CAPTURE
V4L2_CAP_READWRITE
V4L2_CAP_STREAMING
V4L2_CAP_DEVICE_CAPS
V4L2_CAP_EXT_PIX_FORMAT
I am in a meeting right now, will look at more later.
Tony
Since that command works, maybe try this one to capture one video frame to a file?
v4l2-ctl --device=/dev/video0 --stream-mmap --stream-count=1 --stream-to=frame.raw
Tony
Dear Tony
I tried the command and then I got the following:
v4l2-ctl --device=/dev/video0 --stream-mmap --stream-count=1 --stream-to=frame.raw
VIDIOC_STREAMON returned -1 (Link has been severed)
Am I missing some libraries ??
Many many thanks Tony
- check for log messages around that timestamp, see if any further details available.
- reboot
- try the various commands again immediately after the reboot, including to see if there are any competing processes.
Tony
Hi Tony
I rebooted and checked dmesg around the video
[ 3.337476] i915 0000:00:02.0: [drm] GT1: GUC: RC enabled
[ 3.339787] i915 0000:00:02.0: [drm] Protected Xe Path (PXP) protec
ted content support initialized
[ 3.344105] [drm] Initialized i915 1.6.0 for 0000:00:02.0 on minor
0
[ 3.355086] ACPI: video: Video Device [GFX0] (multi-head: yes rom: no post: no)
[ 3.358693] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input7
[ 3.370578] fbcon: i915drmfb (fb0) is primary device
[ 3.410992] Console: switching to colour frame buffer device 240x75
[ 3.426664] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
Please do not worry when I can not respond; I shall be back online at the beginning of August.
Many thanks again and again Tony