Dmesg does not list built-in camera

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” .

1 Like

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

  1. check for log messages around that timestamp, see if any further details available.
  2. reboot
  3. 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