[v3] utils: Introduce libcamera-bug-report
diff mbox series

Message ID 20260218-kbingham-bug-reporter-v3-1-55484362bcc0@ideasonboard.com
State New
Headers show
Series
  • [v3] utils: Introduce libcamera-bug-report
Related show

Commit Message

Kieran Bingham Feb. 18, 2026, 3:51 p.m. UTC
Introduce a script which can be installed into the system to aide
reporting potential camera and media related issues.

The script shall capture system information and store it in a temporary
file - but it remains the users responsibilty to choose to share this
data, and no automatic bug submissions are anticipated.

Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
---
There are many occasions where people would like to report issues with
their camera, and there are always a common set of commands that we
would like to run to identify potential issues.

Provide a helper that will ease reporting of camera related issues
especially for bringup of new cameras or when cameras do not show.

kbingham@Monstersaurus:~/iob/libcamera/libcamera$ ./utils/libcamera-bug-report 
Some checks require root; allow sudo for privileged commands? [y/N] n

==================================================
Report metadata
==================================================
Date: 2026-02-18T12:09:55+00:00
Host: Monstersaurus
User: uid=1000(kbingham) gid=1000(kbingham) groups=1000(kbingham),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(kvm),121(lpadmin),132(lxd),133(sambashare),135(docker),998(nix-users)

==================================================
Kernel & OS
==================================================

$ uname -a
Linux Monstersaurus 6.8.0-90-generic #91-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 18 14:14:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.4 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo

$ lsb_release -a
Distributor ID:	Ubuntu
Description:	Ubuntu 24.04.4 LTS
Release:	24.04
Codename:	noble

==================================================
Media / V4L2 tools
==================================================

$ media-ctl --version
media-ctl 1.26.1

$ v4l2-ctl --version
v4l2-ctl 1.26.1

$ v4l2-ctl --list-devices
vim2m (platform:vim2m):
	/dev/video9
	/dev/media3

vimc (platform:vimc):
	/dev/video2
	/dev/video3
	/dev/video4
	/dev/media1

vivid (platform:vivid-000):
	/dev/video5
	/dev/video6
	/dev/video7
	/dev/video8
	/dev/radio0
	/dev/radio1
	/dev/vbi0
	/dev/vbi1
	/dev/swradio0
	/dev/v4l-touch0
	/dev/media2

Logitech BRIO (usb-0000:0d:00.3-3.4):
	/dev/video0
	/dev/video1
	/dev/media0

==================================================
Device nodes
==================================================

$ ls -l /dev/video0 /dev/video1 /dev/video2 /dev/video3 /dev/video4 /dev/video5 /dev/video6 /dev/video7 /dev/video8 /dev/video9 /dev/v4l-subdev0 /dev/v4l-subdev1 /dev/v4l-subdev2 /dev/v4l-subdev3 /dev/v4l-subdev4 /dev/v4l-subdev5 /dev/v4l-subdev6 /dev/v4l-subdev7 /dev/v4l-touch0 /dev/media0 /dev/media1 /dev/media2 /dev/media3
crw-rw----+ 1 root video 234,  0 Feb 11 13:07 /dev/media0
crw-rw----+ 1 root video 234,  1 Feb 11 13:07 /dev/media1
crw-rw----+ 1 root video 234,  2 Feb 11 13:07 /dev/media2
crw-rw----+ 1 root video 234,  3 Feb 11 13:07 /dev/media3
crw-rw----+ 1 root video  81,  5 Feb 11 13:07 /dev/v4l-subdev0
crw-rw----+ 1 root video  81,  6 Feb 11 13:07 /dev/v4l-subdev1
crw-rw----+ 1 root video  81,  7 Feb 11 13:07 /dev/v4l-subdev2
crw-rw----+ 1 root video  81,  8 Feb 11 13:07 /dev/v4l-subdev3
crw-rw----+ 1 root video  81,  9 Feb 11 13:07 /dev/v4l-subdev4
crw-rw----+ 1 root video  81, 10 Feb 11 13:07 /dev/v4l-subdev5
crw-rw----+ 1 root video  81, 11 Feb 11 13:07 /dev/v4l-subdev6
crw-rw----+ 1 root video  81, 12 Feb 11 13:07 /dev/v4l-subdev7
crw-rw----+ 1 root video  81, 22 Feb 11 13:07 /dev/v4l-touch0
crw-rw----+ 1 root video  81,  0 Feb 11 13:07 /dev/video0
crw-rw----+ 1 root video  81,  1 Feb 11 13:07 /dev/video1
crw-rw----+ 1 root video  81,  2 Feb 11 13:07 /dev/video2
crw-rw----+ 1 root video  81,  3 Feb 11 13:07 /dev/video3
crw-rw----+ 1 root video  81,  4 Feb 11 13:07 /dev/video4
crw-rw----+ 1 root video  81, 13 Feb 11 13:07 /dev/video5
crw-rw----+ 1 root video  81, 14 Feb 11 13:07 /dev/video6
crw-rw----+ 1 root video  81, 20 Feb 11 13:07 /dev/video7
crw-rw----+ 1 root video  81, 21 Feb 11 13:07 /dev/video8
crw-rw----+ 1 root video  81, 23 Feb 11 13:07 /dev/video9

$ grep . /sys/class/video4linux/radio0/name /sys/class/video4linux/radio1/name /sys/class/video4linux/swradio0/name /sys/class/video4linux/v4l-subdev0/name /sys/class/video4linux/v4l-subdev1/name /sys/class/video4linux/v4l-subdev2/name /sys/class/video4linux/v4l-subdev3/name /sys/class/video4linux/v4l-subdev4/name /sys/class/video4linux/v4l-subdev5/name /sys/class/video4linux/v4l-subdev6/name /sys/class/video4linux/v4l-subdev7/name /sys/class/video4linux/v4l-touch0/name /sys/class/video4linux/vbi0/name /sys/class/video4linux/vbi1/name /sys/class/video4linux/video0/name /sys/class/video4linux/video1/name /sys/class/video4linux/video2/name /sys/class/video4linux/video3/name /sys/class/video4linux/video4/name /sys/class/video4linux/video5/name /sys/class/video4linux/video6/name /sys/class/video4linux/video7/name /sys/class/video4linux/video8/name /sys/class/video4linux/video9/name
/sys/class/video4linux/radio0/name:vivid-000-rad-rx
/sys/class/video4linux/radio1/name:vivid-000-rad-tx
/sys/class/video4linux/swradio0/name:vivid-000-sdr-cap
/sys/class/video4linux/v4l-subdev0/name:Sensor A
/sys/class/video4linux/v4l-subdev1/name:Sensor B
/sys/class/video4linux/v4l-subdev2/name:Debayer A
/sys/class/video4linux/v4l-subdev3/name:Debayer B
/sys/class/video4linux/v4l-subdev4/name:RGB/YUV Input
/sys/class/video4linux/v4l-subdev5/name:Scaler
/sys/class/video4linux/v4l-subdev6/name:Lens A
/sys/class/video4linux/v4l-subdev7/name:Lens B
/sys/class/video4linux/v4l-touch0/name:vivid-000-touch-cap
/sys/class/video4linux/vbi0/name:vivid-000-vbi-cap
/sys/class/video4linux/vbi1/name:vivid-000-vbi-out
/sys/class/video4linux/video0/name:Logitech BRIO
/sys/class/video4linux/video1/name:Logitech BRIO
/sys/class/video4linux/video2/name:Raw Capture 0
/sys/class/video4linux/video3/name:Raw Capture 1
/sys/class/video4linux/video4/name:RGB/YUV Capture
/sys/class/video4linux/video5/name:vivid-000-vid-cap
/sys/class/video4linux/video6/name:vivid-000-vid-out
/sys/class/video4linux/video7/name:vivid-000-meta-cap
/sys/class/video4linux/video8/name:vivid-000-meta-out
/sys/class/video4linux/video9/name:vim2m

==================================================
Deferred devices
==================================================

$ cat /sys/kernel/debug/devices_deferred
cat: /sys/kernel/debug/devices_deferred: Permission denied
[WARN] Command failed: cat /sys/kernel/debug/devices_deferred

==================================================
V4L2 async pending subdevices
==================================================

$ cat /sys/kernel/debug/v4l2-async/pending_async_subdevices
cat: /sys/kernel/debug/v4l2-async/pending_async_subdevices: Permission denied
[WARN] Command failed: cat /sys/kernel/debug/v4l2-async/pending_async_subdevices

==================================================
Media graph topology
==================================================

Parsing /dev/media0

$ media-ctl -p /dev/media0
Media controller API version 6.8.12

Media device information
------------------------
driver          uvcvideo
model           Logitech BRIO
serial          61306147
bus info        usb-0000:0d:00.3-3.4
hw revision     0x17
driver version  6.8.12

Device topology
- entity 1: Logitech BRIO (1 pad, 1 link)
            type Node subtype V4L flags 1
            device node name /dev/video0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]

- entity 4: Logitech BRIO (0 pad, 0 link)
            type Node subtype V4L flags 0
            device node name /dev/video1

- entity 8: Processing 3 (2 pads, 8 links, 0 routes)
            type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Camera 1":0 [ENABLED,IMMUTABLE]
	pad1: Source
		-> "Logitech BRIO":0 [ENABLED,IMMUTABLE]
		-> "Extension 14":0 [ENABLED,IMMUTABLE]
		-> "Extension 6":0 [ENABLED,IMMUTABLE]
		-> "Extension 8":0 [ENABLED,IMMUTABLE]
		-> "Extension 9":0 [ENABLED,IMMUTABLE]
		-> "Extension 10":0 [ENABLED,IMMUTABLE]
		-> "Extension 11":0 [ENABLED,IMMUTABLE]

- entity 11: Extension 14 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 14: Extension 6 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 17: Extension 8 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 20: Extension 9 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 23: Extension 10 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 26: Extension 11 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 29: Camera 1 (1 pad, 1 link, 0 routes)
             type V4L2 subdev subtype Sensor flags 0
	pad0: Source
		-> "Processing 3":0 [ENABLED,IMMUTABLE]

Parsing /dev/media1

$ media-ctl -p /dev/media1
Media controller API version 6.8.12

Media device information
------------------------
driver          uvcvideo
model           Logitech BRIO
serial          61306147
bus info        usb-0000:0d:00.3-3.4
hw revision     0x17
driver version  6.8.12

Device topology
- entity 1: Logitech BRIO (1 pad, 1 link)
            type Node subtype V4L flags 1
            device node name /dev/video0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]

- entity 4: Logitech BRIO (0 pad, 0 link)
            type Node subtype V4L flags 0
            device node name /dev/video1

- entity 8: Processing 3 (2 pads, 8 links, 0 routes)
            type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Camera 1":0 [ENABLED,IMMUTABLE]
	pad1: Source
		-> "Logitech BRIO":0 [ENABLED,IMMUTABLE]
		-> "Extension 14":0 [ENABLED,IMMUTABLE]
		-> "Extension 6":0 [ENABLED,IMMUTABLE]
		-> "Extension 8":0 [ENABLED,IMMUTABLE]
		-> "Extension 9":0 [ENABLED,IMMUTABLE]
		-> "Extension 10":0 [ENABLED,IMMUTABLE]
		-> "Extension 11":0 [ENABLED,IMMUTABLE]

- entity 11: Extension 14 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 14: Extension 6 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 17: Extension 8 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 20: Extension 9 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 23: Extension 10 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 26: Extension 11 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 29: Camera 1 (1 pad, 1 link, 0 routes)
             type V4L2 subdev subtype Sensor flags 0
	pad0: Source
		-> "Processing 3":0 [ENABLED,IMMUTABLE]

Parsing /dev/media2

$ media-ctl -p /dev/media2
Media controller API version 6.8.12

Media device information
------------------------
driver          uvcvideo
model           Logitech BRIO
serial          61306147
bus info        usb-0000:0d:00.3-3.4
hw revision     0x17
driver version  6.8.12

Device topology
- entity 1: Logitech BRIO (1 pad, 1 link)
            type Node subtype V4L flags 1
            device node name /dev/video0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]

- entity 4: Logitech BRIO (0 pad, 0 link)
            type Node subtype V4L flags 0
            device node name /dev/video1

- entity 8: Processing 3 (2 pads, 8 links, 0 routes)
            type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Camera 1":0 [ENABLED,IMMUTABLE]
	pad1: Source
		-> "Logitech BRIO":0 [ENABLED,IMMUTABLE]
		-> "Extension 14":0 [ENABLED,IMMUTABLE]
		-> "Extension 6":0 [ENABLED,IMMUTABLE]
		-> "Extension 8":0 [ENABLED,IMMUTABLE]
		-> "Extension 9":0 [ENABLED,IMMUTABLE]
		-> "Extension 10":0 [ENABLED,IMMUTABLE]
		-> "Extension 11":0 [ENABLED,IMMUTABLE]

- entity 11: Extension 14 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 14: Extension 6 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 17: Extension 8 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 20: Extension 9 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 23: Extension 10 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 26: Extension 11 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 29: Camera 1 (1 pad, 1 link, 0 routes)
             type V4L2 subdev subtype Sensor flags 0
	pad0: Source
		-> "Processing 3":0 [ENABLED,IMMUTABLE]

Parsing /dev/media3

$ media-ctl -p /dev/media3
Media controller API version 6.8.12

Media device information
------------------------
driver          uvcvideo
model           Logitech BRIO
serial          61306147
bus info        usb-0000:0d:00.3-3.4
hw revision     0x17
driver version  6.8.12

Device topology
- entity 1: Logitech BRIO (1 pad, 1 link)
            type Node subtype V4L flags 1
            device node name /dev/video0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]

- entity 4: Logitech BRIO (0 pad, 0 link)
            type Node subtype V4L flags 0
            device node name /dev/video1

- entity 8: Processing 3 (2 pads, 8 links, 0 routes)
            type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Camera 1":0 [ENABLED,IMMUTABLE]
	pad1: Source
		-> "Logitech BRIO":0 [ENABLED,IMMUTABLE]
		-> "Extension 14":0 [ENABLED,IMMUTABLE]
		-> "Extension 6":0 [ENABLED,IMMUTABLE]
		-> "Extension 8":0 [ENABLED,IMMUTABLE]
		-> "Extension 9":0 [ENABLED,IMMUTABLE]
		-> "Extension 10":0 [ENABLED,IMMUTABLE]
		-> "Extension 11":0 [ENABLED,IMMUTABLE]

- entity 11: Extension 14 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 14: Extension 6 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 17: Extension 8 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 20: Extension 9 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 23: Extension 10 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 26: Extension 11 (2 pads, 1 link, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
	pad0: Sink
		<- "Processing 3":1 [ENABLED,IMMUTABLE]
	pad1: Source

- entity 29: Camera 1 (1 pad, 1 link, 0 routes)
             type V4L2 subdev subtype Sensor flags 0
	pad0: Source
		-> "Processing 3":0 [ENABLED,IMMUTABLE]

==================================================
libcamera & userspace
==================================================

$ which cam
/usr/bin/cam

$ ldd /usr/bin/cam
	linux-vdso.so.1 (0x00007ffcfe3a3000)
	libcamera.so.0.7 => /lib/x86_64-linux-gnu/libcamera.so.0.7 (0x00007a7fa0e00000)
	libcamera-base.so.0.7 => /lib/x86_64-linux-gnu/libcamera-base.so.0.7 (0x00007a7fa1988000)
	libdrm.so.2 => /lib/x86_64-linux-gnu/libdrm.so.2 (0x00007a7fa1971000)
	libevent_pthreads-2.1.so.7 => /lib/x86_64-linux-gnu/libevent_pthreads-2.1.so.7 (0x00007a7fa196c000)
	libevent-2.1.so.7 => /lib/x86_64-linux-gnu/libevent-2.1.so.7 (0x00007a7fa191a000)
	libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007a7fa1895000)
	libSDL2-2.0.so.0 => /lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x00007a7fa0c24000)
	libtiff.so.6 => /lib/x86_64-linux-gnu/libtiff.so.6 (0x00007a7fa0b97000)
	libyaml-0.so.2 => /lib/x86_64-linux-gnu/libyaml-0.so.2 (0x00007a7fa0b76000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007a7fa0800000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007a7fa0b48000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007a7fa0400000)
	libpisp.so.1 => /lib/x86_64-linux-gnu/libpisp.so.1 (0x00007a7fa0000000)
	libyuv.so.0 => /lib/x86_64-linux-gnu/libyuv.so.0 (0x00007a7fa0ab0000)
	libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007a7fa0205000)
	libEGL.so.1 => /lib/x86_64-linux-gnu/libEGL.so.1 (0x00007a7fa1881000)
	libGLESv2.so.2 => /lib/x86_64-linux-gnu/libGLESv2.so.2 (0x00007a7fa0a9e000)
	liblttng-ust.so.1 => /lib/x86_64-linux-gnu/liblttng-ust.so.1 (0x00007a7fa077d000)
	libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007a7fa074a000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007a7fa0661000)
	libdw.so.1 => /lib/x86_64-linux-gnu/libdw.so.1 (0x00007a7f9ff4c000)
	libunwind.so.8 => /lib/x86_64-linux-gnu/libunwind.so.8 (0x00007a7fa0a83000)
	/lib64/ld-linux-x86-64.so.2 (0x00007a7fa1b3f000)
	libevent_core-2.1.so.7 => /lib/x86_64-linux-gnu/libevent_core-2.1.so.7 (0x00007a7fa062c000)
	libasound.so.2 => /lib/x86_64-linux-gnu/libasound.so.2 (0x00007a7f9fe42000)
	libpulse.so.0 => /lib/x86_64-linux-gnu/libpulse.so.0 (0x00007a7f9fdf1000)
	libsamplerate.so.0 => /lib/x86_64-linux-gnu/libsamplerate.so.0 (0x00007a7f9fc82000)
	libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007a7f9fb45000)
	libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007a7fa0618000)
	libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007a7f9fb39000)
	libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007a7f9fb26000)
	libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007a7f9fb1e000)
	libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007a7f9fb11000)
	libXss.so.1 => /lib/x86_64-linux-gnu/libXss.so.1 (0x00007a7fa1876000)
	libgbm.so.1 => /lib/x86_64-linux-gnu/libgbm.so.1 (0x00007a7f9fb0a000)
	libwayland-egl.so.1 => /lib/x86_64-linux-gnu/libwayland-egl.so.1 (0x00007a7fa0613000)
	libwayland-client.so.0 => /lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007a7f9fafa000)
	libwayland-cursor.so.0 => /lib/x86_64-linux-gnu/libwayland-cursor.so.0 (0x00007a7f9faf0000)
	libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007a7f9faa7000)
	libdecor-0.so.0 => /lib/x86_64-linux-gnu/libdecor-0.so.0 (0x00007a7f9fa9c000)
	libwebp.so.7 => /lib/x86_64-linux-gnu/libwebp.so.7 (0x00007a7f9fa21000)
	libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007a7f9f967000)
	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007a7f9f935000)
	libLerc.so.4 => /lib/x86_64-linux-gnu/libLerc.so.4 (0x00007a7f9f8ae000)
	libjbig.so.0 => /lib/x86_64-linux-gnu/libjbig.so.0 (0x00007a7f9f89e000)
	libdeflate.so.0 => /lib/x86_64-linux-gnu/libdeflate.so.0 (0x00007a7f9f88b000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007a7f9f86f000)
	libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007a7f9f6cb000)
	libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007a7f9f6a9000)
	libunistring.so.5 => /lib/x86_64-linux-gnu/libunistring.so.5 (0x00007a7f9f4fc000)
	libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007a7f9f4e4000)
	libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007a7f9f48f000)
	libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007a7f9f447000)
	libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007a7f9f3c3000)
	libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007a7f9f30b000)
	libnuma.so.1 => /lib/x86_64-linux-gnu/libnuma.so.1 (0x00007a7f9f2fb000)
	liblttng-ust-common.so.1 => /lib/x86_64-linux-gnu/liblttng-ust-common.so.1 (0x00007a7f9f2ee000)
	liblttng-ust-tracepoint.so.1 => /lib/x86_64-linux-gnu/liblttng-ust-tracepoint.so.1 (0x00007a7f9f2d1000)
	libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007a7f9f2c4000)
	libelf.so.1 => /lib/x86_64-linux-gnu/libelf.so.1 (0x00007a7f9f2a5000)
	libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007a7f9f28f000)
	libpulsecommon-16.1.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-16.1.so (0x00007a7f9f211000)
	libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007a7f9f1c2000)
	libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007a7f9f199000)
	libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007a7f9f18d000)
	libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007a7f9f15f000)
	libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007a7f9f153000)
	libsharpyuv.so.0 => /lib/x86_64-linux-gnu/libsharpyuv.so.0 (0x00007a7f9f14b000)
	libsndfile.so.1 => /lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007a7f9f0c3000)
	libX11-xcb.so.1 => /lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007a7f9f0bc000)
	libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007a7f9efdc000)
	libasyncns.so.0 => /lib/x86_64-linux-gnu/libasyncns.so.0 (0x00007a7f9efd4000)
	libapparmor.so.1 => /lib/x86_64-linux-gnu/libapparmor.so.1 (0x00007a7f9efc0000)
	libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007a7f9efba000)
	libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007a7f9efb0000)
	libFLAC.so.12 => /lib/x86_64-linux-gnu/libFLAC.so.12 (0x00007a7f9ef4c000)
	libvorbis.so.0 => /lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007a7f9ef1e000)
	libvorbisenc.so.2 => /lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007a7f9ee73000)
	libopus.so.0 => /lib/x86_64-linux-gnu/libopus.so.0 (0x00007a7f9ee14000)
	libogg.so.0 => /lib/x86_64-linux-gnu/libogg.so.0 (0x00007a7f9ee08000)
	libmpg123.so.0 => /lib/x86_64-linux-gnu/libmpg123.so.0 (0x00007a7f9edac000)
	libmp3lame.so.0 => /lib/x86_64-linux-gnu/libmp3lame.so.0 (0x00007a7f9ed36000)
	libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007a7f9ebee000)
	liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007a7f9ebcc000)
	libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007a7f9ebb4000)
	libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007a7f9eb8f000)
	libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007a7f9eb80000)

==================================================
libcamera probe (cam -l)
==================================================
[INFO] /dev/kmsg not writable, skipping kernel marker: BEGIN cam -l

$ cam -l
[1200:08:35.804177325] [2195975] DEBUG IPAModule ipa_module.cpp:333 ipa_ipu3.so: IPA module /usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_ipu3.so is signed
[1200:08:35.804283094] [2195975] DEBUG IPAManager ipa_manager.cpp:239 Loaded IPA module '/usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_ipu3.so'
[1200:08:35.804945962] [2195975] DEBUG IPAModule ipa_module.cpp:333 ipa_mali_c55.so: IPA module /usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_mali_c55.so is signed
[1200:08:35.804979825] [2195975] DEBUG IPAManager ipa_manager.cpp:239 Loaded IPA module '/usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_mali_c55.so'
[1200:08:35.805325676] [2195975] DEBUG IPAModule ipa_module.cpp:333 ipa_rkisp1.so: IPA module /usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_rkisp1.so is signed
[1200:08:35.805367324] [2195975] DEBUG IPAManager ipa_manager.cpp:239 Loaded IPA module '/usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_rkisp1.so'
[1200:08:35.806189191] [2195975] DEBUG IPAModule ipa_module.cpp:333 ipa_rpi_pisp.so: IPA module /usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_rpi_pisp.so is signed
[1200:08:35.806228615] [2195975] DEBUG IPAManager ipa_manager.cpp:239 Loaded IPA module '/usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_rpi_pisp.so'
[1200:08:35.807035954] [2195975] DEBUG IPAModule ipa_module.cpp:333 ipa_rpi_vc4.so: IPA module /usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_rpi_vc4.so is signed
[1200:08:35.807077512] [2195975] DEBUG IPAManager ipa_manager.cpp:239 Loaded IPA module '/usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_rpi_vc4.so'
[1200:08:35.807258423] [2195975] DEBUG IPAModule ipa_module.cpp:333 ipa_soft_simple.so: IPA module /usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_soft_simple.so is signed
[1200:08:35.807288429] [2195975] DEBUG IPAManager ipa_manager.cpp:239 Loaded IPA module '/usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_soft_simple.so'
[1200:08:35.807339325] [2195975] DEBUG IPAModule ipa_module.cpp:333 ipa_vimc.so: IPA module /usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_vimc.so is signed
[1200:08:35.807356668] [2195975] DEBUG IPAManager ipa_manager.cpp:239 Loaded IPA module '/usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_vimc.so'
[1200:08:35.807410118] [2195975]  INFO Camera camera_manager.cpp:340 libcamera v0.7.0+10-79548e40-dirty (2026-02-18T11:50:52GMT)
[1200:08:35.807517921] [2195978] DEBUG Camera camera_manager.cpp:74 Starting camera manager
[1200:08:35.815698704] [2195978] DEBUG DeviceEnumerator device_enumerator.cpp:267 New media device "uvcvideo" created from /dev/media0
[1200:08:35.815788764] [2195978] DEBUG DeviceEnumerator device_enumerator_udev.cpp:111 Defer media device /dev/media0 due to 2 missing dependencies
[1200:08:35.816253799] [2195978] DEBUG DeviceEnumerator device_enumerator_udev.cpp:346 All dependencies for media device /dev/media0 found
[1200:08:35.816264479] [2195978] DEBUG DeviceEnumerator device_enumerator.cpp:295 Added device /dev/media0: uvcvideo
[1200:08:35.816418709] [2195978] DEBUG DeviceEnumerator device_enumerator.cpp:267 New media device "vim2m" created from /dev/media3
[1200:08:35.816432886] [2195978] DEBUG DeviceEnumerator device_enumerator_udev.cpp:111 Defer media device /dev/media3 due to 1 missing dependencies
[1200:08:35.816584190] [2195978] DEBUG DeviceEnumerator device_enumerator_udev.cpp:346 All dependencies for media device /dev/media3 found
[1200:08:35.816592215] [2195978] DEBUG DeviceEnumerator device_enumerator.cpp:295 Added device /dev/media3: vim2m
[1200:08:35.816753068] [2195978] DEBUG DeviceEnumerator device_enumerator.cpp:267 New media device "vimc" created from /dev/media1
[1200:08:35.816781021] [2195978] DEBUG DeviceEnumerator device_enumerator_udev.cpp:111 Defer media device /dev/media1 due to 11 missing dependencies
[1200:08:35.818514302] [2195978] DEBUG DeviceEnumerator device_enumerator_udev.cpp:346 All dependencies for media device /dev/media1 found
[1200:08:35.818525944] [2195978] DEBUG DeviceEnumerator device_enumerator.cpp:295 Added device /dev/media1: vimc
[1200:08:35.818628617] [2195978] DEBUG DeviceEnumerator device_enumerator.cpp:267 New media device "vivid" created from /dev/media2
[1200:08:35.818644767] [2195978] DEBUG DeviceEnumerator device_enumerator_udev.cpp:111 Defer media device /dev/media2 due to 4 missing dependencies
[1200:08:35.819595707] [2195978] DEBUG DeviceEnumerator device_enumerator_udev.cpp:346 All dependencies for media device /dev/media2 found
[1200:08:35.819607479] [2195978] DEBUG DeviceEnumerator device_enumerator.cpp:295 Added device /dev/media2: vivid
[1200:08:35.819824467] [2195978] DEBUG Camera camera_manager.cpp:143 Found registered pipeline handler 'imx8-isi'
[1200:08:35.819985290] [2195978] DEBUG Camera camera_manager.cpp:143 Found registered pipeline handler 'ipu3'
[1200:08:35.820065521] [2195978] DEBUG Camera camera_manager.cpp:143 Found registered pipeline handler 'mali-c55'
[1200:08:35.820131755] [2195978] DEBUG Camera camera_manager.cpp:143 Found registered pipeline handler 'rkisp1'
[1200:08:35.820196227] [2195978] DEBUG Camera camera_manager.cpp:143 Found registered pipeline handler 'rpi/pisp'
[1200:08:35.820229619] [2195978] DEBUG RPI pisp.cpp:891 Unable to acquire a CFE instance
[1200:08:35.820236412] [2195978] DEBUG Camera camera_manager.cpp:143 Found registered pipeline handler 'rpi/vc4'
[1200:08:35.820259526] [2195978] DEBUG RPI vc4.cpp:182 Unable to acquire a Unicam instance
[1200:08:35.820263664] [2195978] DEBUG RPI vc4.cpp:182 Unable to acquire a Unicam instance
[1200:08:35.820267501] [2195978] DEBUG Camera camera_manager.cpp:143 Found registered pipeline handler 'simple'
[1200:08:35.820304100] [2195978] DEBUG Camera camera_manager.cpp:143 Found registered pipeline handler 'uvcvideo'
[1200:08:35.820331421] [2195978] DEBUG DeviceEnumerator device_enumerator.cpp:355 Successful match for media device "uvcvideo"
[1200:08:35.820536457] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Brightness (0x00980900)
[1200:08:35.820660280] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Contrast (0x00980901)
[1200:08:35.820686990] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Saturation (0x00980902)
[1200:08:35.820700325] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: White Balance, Automatic (0x0098090c)
[1200:08:35.820716816] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Gain (0x00980913)
[1200:08:35.820728739] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Power Line Frequency (0x00980918)
[1200:08:35.820775897] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: White Balance Temperature (0x0098091a)
[1200:08:35.820789463] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Sharpness (0x0098091b)
[1200:08:35.820799692] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Backlight Compensation (0x0098091c)
[1200:08:35.820813188] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Auto Exposure (0x009a0901)
[1200:08:35.820832324] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Exposure Time, Absolute (0x009a0902)
[1200:08:35.820843775] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Exposure, Dynamic Framerate (0x009a0903)
[1200:08:35.820854385] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Pan, Absolute (0x009a0908)
[1200:08:35.820865226] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Tilt, Absolute (0x009a0909)
[1200:08:35.820878360] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Focus, Absolute (0x009a090a)
[1200:08:35.820889080] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Focus, Automatic Continuous (0x009a090c)
[1200:08:35.820898999] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: Zoom, Absolute (0x009a090d)
[1200:08:35.820910881] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: LED1 Mode (0x0a046d05)
[1200:08:35.820929376] [2195978] DEBUG V4L2 v4l2_device.cpp:742 /dev/video0[46:cap]: Control: LED1 Frequency (0x0a046d06)
[1200:08:35.821005930] [2195978] DEBUG V4L2 v4l2_videodevice.cpp:633 /dev/video0[46:cap]: Opened device usb-0000:0d:00.3-3.4: uvcvideo: Logitech BRIO
[1200:08:35.821919589] [2195978]  INFO Camera camera_manager.cpp:223 Adding camera '\_SB_.PCI0.GP13.XHC0.RHUB.PRT3-3.4:1.0-046d:085e' for pipeline handler uvcvideo
[1200:08:35.821954495] [2195978] DEBUG Camera camera_manager.cpp:164 Pipeline handler "uvcvideo" matched
[1200:08:35.821969102] [2195978] DEBUG Camera camera_manager.cpp:143 Found registered pipeline handler 'vimc'
[1200:08:35.822010019] [2195978] DEBUG DeviceEnumerator device_enumerator.cpp:355 Successful match for media device "vimc"
[1200:08:35.822073078] [2195978] DEBUG MediaDevice media_device.cpp:854 /dev/media1[vimc]: 'Debayer A'[1] -> 'Scaler'[0]: 0
[1200:08:35.822081704] [2195978] DEBUG MediaDevice media_device.cpp:854 /dev/media1[vimc]: 'Debayer B'[1] -> 'Scaler'[0]: 0
[1200:08:35.822086584] [2195978] DEBUG MediaDevice media_device.cpp:854 /dev/media1[vimc]: 'RGB/YUV Input'[0] -> 'Scaler'[0]: 0
[1200:08:35.822094779] [2195978] DEBUG MediaDevice media_device.cpp:854 /dev/media1[vimc]: 'Debayer B'[1] -> 'Scaler'[0]: 1
[1200:08:35.822104437] [2195978] DEBUG CameraSensor camera_sensor_raw.cpp:213 Sensor B: unsupported number of sinks (0) or sources (1)
[1200:08:35.822200508] [2195978] DEBUG V4L2 v4l2_device.cpp:742 'Sensor B': Control: Brightness (0x00980900)
[1200:08:35.822225315] [2195978] DEBUG V4L2 v4l2_device.cpp:742 'Sensor B': Control: Contrast (0x00980901)
[1200:08:35.822236997] [2195978] DEBUG V4L2 v4l2_device.cpp:742 'Sensor B': Control: Saturation (0x00980902)
[1200:08:35.822246224] [2195978] DEBUG V4L2 v4l2_device.cpp:742 'Sensor B': Control: Hue (0x00980903)
[1200:08:35.822254870] [2195978] DEBUG V4L2 v4l2_device.cpp:742 'Sensor B': Control: Horizontal Flip (0x00980914)
[1200:08:35.822264027] [2195978] DEBUG V4L2 v4l2_device.cpp:742 'Sensor B': Control: Vertical Flip (0x00980915)
[1200:08:35.822279717] [2195978] DEBUG V4L2 v4l2_device.cpp:742 'Sensor B': Control: Test Pattern (0x00f0f000)
[1200:08:35.822318239] [2195978] DEBUG V4L2 v4l2_device.cpp:742 'Sensor B': Control: Show Information (0x00f0f002)
[1200:08:35.823481969] [2195978]  WARN CameraSensorProperties camera_sensor_properties.cpp:538 No static properties available for 'Sensor B'
[1200:08:35.823491487] [2195978]  WARN CameraSensorProperties camera_sensor_properties.cpp:540 Please consider updating the camera sensor properties database
[1200:08:35.823496206] [2195978]  WARN CameraSensor camera_sensor_legacy.cpp:595 'Sensor B': Failed to retrieve the camera location
[1200:08:35.823499632] [2195978]  WARN CameraSensor camera_sensor_legacy.cpp:617 'Sensor B': Rotation control not available, default to 0 degrees
[1200:08:35.823543385] [2195978] DEBUG V4L2 v4l2_device.cpp:742 'Lens B': Control: Focus, Absolute (0x009a090a)
[1200:08:35.823616973] [2195978] DEBUG CameraSensor camera_sensor.cpp:476 Entity 'Sensor B' matched by CameraSensorLegacy
[1200:08:35.823683128] [2195978] DEBUG V4L2 v4l2_device.cpp:742 'Debayer B': Control: Debayer Mean Window Size (0x00f0f001)
[1200:08:35.823756706] [2195978] DEBUG V4L2 v4l2_videodevice.cpp:633 /dev/video4[51:cap]: Opened device platform:vimc: vimc: vimc
[1200:08:35.823850974] [2195978] DEBUG V4L2 v4l2_videodevice.cpp:633 /dev/video3[52:cap]: Opened device platform:vimc: vimc: vimc
[1200:08:35.823959788] [2195978] DEBUG V4L2 v4l2_videodevice.cpp:1337 /dev/video4[51:cap]: 2 buffers requested.
[1200:08:35.824106044] [2195978] DEBUG Buffer framebuffer.cpp:358 Buffer is contiguous
[1200:08:35.824163852] [2195978] DEBUG Buffer framebuffer.cpp:358 Buffer is contiguous
[1200:08:35.824178069] [2195978] DEBUG V4L2 v4l2_videodevice.cpp:1337 /dev/video4[51:cap]: 0 buffers requested.
[1200:08:35.824924073] [2195978] DEBUG IPAManager ipa_manager.cpp:309 IPA module /usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_vimc.so signature is valid
[1200:08:35.824987272] [2195978] DEBUG IPAProxy vimc_ipa_proxy.cpp:44 initializing vimc proxy in thread: loading IPA from /usr/lib/x86_64-linux-gnu/libcamera/ipa/ipa_vimc.so
[1200:08:35.825274993] [2195978]  INFO IPAProxy ipa_proxy.cpp:180 Using tuning file /usr/share/libcamera/ipa/vimc/vimc.conf
[1200:08:35.825294590] [2195978] DEBUG IPAVimc vimc.cpp:80 initializing vimc IPA with configuration file /usr/share/libcamera/ipa/vimc/vimc.conf
[1200:08:35.825300240] [2195978] DEBUG IPAVimc vimc.cpp:84 Got opcode 1
[1200:08:35.825304969] [2195978] DEBUG IPAVimc vimc.cpp:86 Flag 2 was set
[1200:08:35.825336809] [2195978] DEBUG VIMC vimc.cpp:506 Flag 1 was set
[1200:08:35.825374871] [2195978]  INFO Camera camera_manager.cpp:223 Adding camera 'platform/vimc.0 Sensor B' for pipeline handler vimc
[1200:08:35.825383738] [2195978] DEBUG Camera camera_manager.cpp:164 Pipeline handler "vimc" matched
[1200:08:35.825399076] [2195978] DEBUG Camera camera_manager.cpp:143 Found registered pipeline handler 'virtual'
[1200:08:35.825419825] [2195978] DEBUG DmaBufAllocator dma_buf_allocator.cpp:106 Failed to open /dev/dma_heap/linux,cma: No such file or directory
[1200:08:35.825430706] [2195978] DEBUG DmaBufAllocator dma_buf_allocator.cpp:106 Failed to open /dev/dma_heap/reserved: No such file or directory
[1200:08:35.825436186] [2195978] DEBUG DmaBufAllocator dma_buf_allocator.cpp:106 Failed to open /dev/dma_heap/system: Permission denied
[1200:08:35.825444782] [2195978] DEBUG DmaBufAllocator dma_buf_allocator.cpp:112 Using /dev/udmabuf
[1200:08:35.825474108] [2195978] DEBUG Virtual virtual.cpp:385 Configuration file not found, skipping virtual cameras
Available cameras:
1: External camera 'Logitech BRIO' (\_SB_.PCI0.GP13.XHC0.RHUB.PRT3-3.4:1.0-046d:085e)
2: 'Sensor B' (platform/vimc.0 Sensor B)
[INFO] /dev/kmsg not writable, skipping kernel marker: END cam -l

==================================================
Kernel log (post cam -l)
==================================================

$ dmesg
dmesg: read kernel buffer failed: Operation not permitted
[WARN] Command failed: dmesg

==================================================
Permissions & capabilities
==================================================

$ id
uid=1000(kbingham) gid=1000(kbingham) groups=1000(kbingham),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(kvm),121(lpadmin),132(lxd),133(sambashare),135(docker),998(nix-users)

$ groups
kbingham adm dialout cdrom sudo audio dip video plugdev kvm lpadmin lxd sambashare docker nix-users

$ getcap /usr/bin/cam

==================================================
End of report
==================================================

Report saved to libcamera-report-Monstersaurus-20260218-120950.txt.

Please inspect the report and remove any sensitive information before sharing.
---
Changes in v3:

- Fix media-ctl usage
- Fix devices_deferred to use run_as_sudo
---
v2:
 - Fix installation with correct filename
 - Do not override file permissions
 - Add a request to remove sensitive information
 - Use posix shell and clear through shellcheck
 - Ask for permission to use sudo

v3:
 - Fix media device topology printing
 - fix devices_deferred to run with sudo
---
 utils/libcamera-bug-report | 119 +++++++++++++++++++++++++++++++++++++++++++++
 utils/meson.build          |   6 +++
 2 files changed, 125 insertions(+)


---
base-commit: d97d2a58adaf284860fdf5d1f6785d779ab6e24a
change-id: 20260207-kbingham-bug-reporter-60285cd034af

Best regards,

Patch
diff mbox series

diff --git a/utils/libcamera-bug-report b/utils/libcamera-bug-report
new file mode 100755
index 000000000000..13ae3265082c
--- /dev/null
+++ b/utils/libcamera-bug-report
@@ -0,0 +1,119 @@ 
+#!/bin/sh
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+REPORT="libcamera-report-$(hostname)-$(date +%Y%m%d-%H%M%S).txt"
+
+section() {
+    echo
+    echo "=================================================="
+    echo "$1"
+    echo "=================================================="
+}
+
+run() {
+    echo
+    echo "\$ $*"
+    "$@" || echo "[WARN] Command failed: $*"
+}
+
+# Run a command with sudo if the script was allowed to use it.
+run_with_sudo() {
+    if [ -n "$SUDO" ]; then
+        echo
+        echo "\$ $SUDO $*"
+        $SUDO "$@" || echo "[WARN] Command failed: $SUDO $*"
+    else
+        run "$@"
+    fi
+}
+
+mark_kmsg() {
+    if [ -w /dev/kmsg ]; then
+        echo "libcamera-debug-report[$$]: $1" > /dev/kmsg
+    else
+        if [ -n "$SUDO" ]; then
+            printf "libcamera-debug-report[%s]: %s\n" "$$" "$1" | $SUDO tee /dev/kmsg >/dev/null || \
+                echo "[WARN] failed to write /dev/kmsg with sudo: $1"
+        else
+            echo "[INFO] /dev/kmsg not writable, skipping kernel marker: $1"
+        fi
+    fi
+}
+
+main() {
+
+section "Report metadata"
+echo "Date: $(date -Is)"
+echo "Host: $(hostname)"
+echo "User: $(id)"
+
+section "Kernel & OS"
+run uname -a
+run cat /etc/os-release
+command -v lsb_release >/dev/null && run lsb_release -a
+
+section "Media / V4L2 tools"
+command -v media-ctl >/dev/null && run media-ctl --version
+command -v v4l2-ctl >/dev/null && run v4l2-ctl --version
+command -v v4l2-ctl >/dev/null && run v4l2-ctl --list-devices
+
+section "Device nodes"
+run ls -l /dev/video* /dev/v4l-* /dev/media* 2>/dev/null
+run grep . /sys/class/video4linux/*/name
+
+section "Deferred devices"
+run_with_sudo cat /sys/kernel/debug/devices_deferred
+
+section "V4L2 async pending subdevices"
+run_with_sudo cat /sys/kernel/debug/v4l2-async/pending_async_subdevices
+
+section "Media graph topology"
+for m in /dev/media*; do
+    echo
+    echo "Parsing $m"
+    command -v media-ctl >/dev/null && run media-ctl -p -d "$m"
+done
+
+section "libcamera & userspace"
+run which cam
+command -v cam >/dev/null && run ldd "$(which cam)"
+
+section "libcamera probe (cam -l)"
+mark_kmsg "BEGIN cam -l"
+LIBCAMERA_LOG_LEVELS="*:0" run cam -l
+mark_kmsg "END cam -l"
+
+section "Kernel log (post cam -l)"
+run_with_sudo dmesg
+
+section "Permissions & capabilities"
+run id
+run groups
+command -v getcap >/dev/null && run getcap "$(which cam)"
+
+section "End of report"
+
+cat <<EOF
+
+Report saved to $REPORT.
+
+Please inspect the report and remove any sensitive information before sharing.
+EOF
+
+}
+
+# If not running as root, prompt the user once to allow sudo
+SUDO=""
+if [ "$(id -u)" -ne 0 ]; then
+    if [ -t 0 ]; then
+        printf "Some checks require root; allow sudo for privileged commands? [y/N] "
+        read -r ans
+        case "$ans" in
+            [Yy]|[Yy][Ee][Ss]) SUDO="sudo" ;;
+            *) SUDO="" ;;
+        esac
+    fi
+fi
+
+# Run main and tee output to both stdout and the report file.
+main 2>&1 | tee "$REPORT"
diff --git a/utils/meson.build b/utils/meson.build
index 3deed8ad4d7e..9c598793035c 100644
--- a/utils/meson.build
+++ b/utils/meson.build
@@ -7,3 +7,9 @@  gen_shader_headers = files('gen-shader-headers.sh')
 
 ## Module signing
 gen_ipa_priv_key = files('gen-ipa-priv-key.sh')
+
+## Bug reporting utility
+install_data(
+    'libcamera-bug-report',
+    install_dir: get_option('bindir'),
+)