| Message ID | 20260207-kbingham-bug-reporter-v1-1-42f81e4ce5dc@ideasonboard.com |
|---|---|
| State | Superseded |
| Headers | show |
| Series |
|
| Related | show |
On Sat, Feb 07, 2026 at 11:30:04AM +0000, Kieran Bingham wrote: > 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. > > An example bug report from my system follows, which itself shows a > specific bug! > > $ ./utils/libcamera-bug-report > > ================================================== > Report metadata > ================================================== > Date: 2026-02-07T11:18:58+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.3 LTS" > NAME="Ubuntu" > VERSION_ID="24.04" > VERSION="24.04.3 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.3 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 Jan 14 23:56 /dev/media0 > crw-rw----+ 1 root video 234, 1 Jan 14 23:56 /dev/media1 > crw-rw----+ 1 root video 234, 2 Jan 14 23:56 /dev/media2 > crw-rw----+ 1 root video 234, 3 Jan 14 23:56 /dev/media3 > crw-rw----+ 1 root video 81, 5 Jan 14 23:56 /dev/v4l-subdev0 > crw-rw----+ 1 root video 81, 6 Jan 14 23:56 /dev/v4l-subdev1 > crw-rw----+ 1 root video 81, 7 Jan 14 23:56 /dev/v4l-subdev2 > crw-rw----+ 1 root video 81, 8 Jan 14 23:56 /dev/v4l-subdev3 > crw-rw----+ 1 root video 81, 9 Jan 14 23:56 /dev/v4l-subdev4 > crw-rw----+ 1 root video 81, 10 Jan 14 23:56 /dev/v4l-subdev5 > crw-rw----+ 1 root video 81, 11 Jan 14 23:56 /dev/v4l-subdev6 > crw-rw----+ 1 root video 81, 12 Jan 14 23:56 /dev/v4l-subdev7 > crw-rw----+ 1 root video 81, 22 Jan 14 23:56 /dev/v4l-touch0 > crw-rw----+ 1 root video 81, 0 Jan 14 23:56 /dev/video0 > crw-rw----+ 1 root video 81, 1 Jan 14 23:56 /dev/video1 > crw-rw----+ 1 root video 81, 2 Jan 14 23:56 /dev/video2 > crw-rw----+ 1 root video 81, 3 Jan 14 23:56 /dev/video3 > crw-rw----+ 1 root video 81, 4 Jan 14 23:56 /dev/video4 > crw-rw----+ 1 root video 81, 13 Jan 14 23:56 /dev/video5 > crw-rw----+ 1 root video 81, 14 Jan 14 23:56 /dev/video6 > crw-rw----+ 1 root video 81, 20 Jan 14 23:56 /dev/video7 > crw-rw----+ 1 root video 81, 21 Jan 14 23:56 /dev/video8 > crw-rw----+ 1 root video 81, 23 Jan 14 23:56 /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 (0x00007fffea592000) > libcamera.so.0.6 => /lib/x86_64-linux-gnu/libcamera.so.0.6 (0x0000799515800000) > libcamera-base.so.0.6 => /lib/x86_64-linux-gnu/libcamera-base.so.0.6 (0x0000799516122000) > libdrm.so.2 => /lib/x86_64-linux-gnu/libdrm.so.2 (0x000079951610b000) > libevent_pthreads-2.1.so.7 => /lib/x86_64-linux-gnu/libevent_pthreads-2.1.so.7 (0x0000799516106000) > libevent-2.1.so.7 => /lib/x86_64-linux-gnu/libevent-2.1.so.7 (0x00007995160b4000) > libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x000079951602f000) > libSDL2-2.0.so.0 => /lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x0000799515624000) > libtiff.so.5 => not found > libyaml-0.so.2 => /lib/x86_64-linux-gnu/libyaml-0.so.2 (0x000079951600e000) > libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x0000799515200000) > libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007995155f6000) > libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x0000799514e00000) > libyuv.so.0 => /lib/x86_64-linux-gnu/libyuv.so.0 (0x000079951555e000) > libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x0000799514c06000) > liblttng-ust.so.1 => /lib/x86_64-linux-gnu/liblttng-ust.so.1 (0x00007995154db000) > libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007995154a8000) > libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x0000799515117000) > libdw.so.1 => /lib/x86_64-linux-gnu/libdw.so.1 (0x0000799515063000) > libunwind.so.8 => /lib/x86_64-linux-gnu/libunwind.so.8 (0x0000799515fef000) > /lib64/ld-linux-x86-64.so.2 (0x0000799516311000) > libevent_core-2.1.so.7 => /lib/x86_64-linux-gnu/libevent_core-2.1.so.7 (0x000079951502e000) > libasound.so.2 => /lib/x86_64-linux-gnu/libasound.so.2 (0x0000799514afc000) > libpulse.so.0 => /lib/x86_64-linux-gnu/libpulse.so.0 (0x0000799514aab000) > libsamplerate.so.0 => /lib/x86_64-linux-gnu/libsamplerate.so.0 (0x000079951493c000) > libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007995147ff000) > libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x0000799515494000) > libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1 (0x0000799515fe1000) > libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x0000799515481000) > libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x0000799515026000) > libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x0000799515019000) > libXss.so.1 => /lib/x86_64-linux-gnu/libXss.so.1 (0x0000799515014000) > libgbm.so.1 => /lib/x86_64-linux-gnu/libgbm.so.1 (0x00007995147f8000) > libwayland-egl.so.1 => /lib/x86_64-linux-gnu/libwayland-egl.so.1 (0x00007995147f3000) > libwayland-client.so.0 => /lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007995147e3000) > libwayland-cursor.so.0 => /lib/x86_64-linux-gnu/libwayland-cursor.so.0 (0x00007995147d9000) > libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x0000799514790000) > libdecor-0.so.0 => /lib/x86_64-linux-gnu/libdecor-0.so.0 (0x0000799514785000) > libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007995145e1000) > libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007995145bf000) > libunistring.so.5 => /lib/x86_64-linux-gnu/libunistring.so.5 (0x0000799514412000) > libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007995143fa000) > libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007995143a5000) > libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x000079951435d000) > libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007995142d9000) > libnuma.so.1 => /lib/x86_64-linux-gnu/libnuma.so.1 (0x00007995142cb000) > liblttng-ust-common.so.1 => /lib/x86_64-linux-gnu/liblttng-ust-common.so.1 (0x00007995142bc000) > liblttng-ust-tracepoint.so.1 => /lib/x86_64-linux-gnu/liblttng-ust-tracepoint.so.1 (0x000079951429f000) > libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x0000799514292000) > libelf.so.1 => /lib/x86_64-linux-gnu/libelf.so.1 (0x0000799514273000) > libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x0000799514257000) > libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x000079951419b000) > liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x0000799514169000) > libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x0000799514155000) > libpulsecommon-16.1.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-16.1.so (0x00007995140d7000) > libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x0000799514088000) > libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x000079951405d000) > libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x0000799514051000) > libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x0000799514025000) > libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x0000799514019000) > libsndfile.so.1 => /lib/x86_64-linux-gnu/libsndfile.so.1 (0x0000799513f8f000) > libX11-xcb.so.1 => /lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x0000799513f8a000) > libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x0000799513eaa000) > libasyncns.so.0 => /lib/x86_64-linux-gnu/libasyncns.so.0 (0x0000799513ea2000) > libapparmor.so.1 => /lib/x86_64-linux-gnu/libapparmor.so.1 (0x0000799513e8e000) > libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x0000799513e86000) > libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x0000799513e7e000) > libFLAC.so.12 => /lib/x86_64-linux-gnu/libFLAC.so.12 (0x0000799513e1a000) > libvorbis.so.0 => /lib/x86_64-linux-gnu/libvorbis.so.0 (0x0000799513dec000) > libvorbisenc.so.2 => /lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x0000799513d41000) > libopus.so.0 => /lib/x86_64-linux-gnu/libopus.so.0 (0x0000799513ce0000) > libogg.so.0 => /lib/x86_64-linux-gnu/libogg.so.0 (0x0000799513cd6000) > libmpg123.so.0 => /lib/x86_64-linux-gnu/libmpg123.so.0 (0x0000799513c7a000) > libmp3lame.so.0 => /lib/x86_64-linux-gnu/libmp3lame.so.0 (0x0000799513c04000) > libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x0000799513abc000) > liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x0000799513a98000) > libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x0000799513a82000) > libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x0000799513a5d000) > libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x0000799513a4e000) > > ================================================== > libcamera probe (cam -l) > ================================================== > [INFO] /dev/kmsg not writable, skipping kernel marker: BEGIN cam -l > > $ cam -l > cam: error while loading shared libraries: libtiff.so.5: cannot open shared object file: No such file or directory > [WARN] Command failed: cam -l > [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 This is quite common. I wonder if we shouldn't skip writing the report to stdout, and only print warnings, to ensure they get noticed. As for how to fix this problem, I'm not entirely sure. I don't want to hide a sudo within the script, at least not one that is run by default. I also don't want to tell people to run this as root. One option could be to add a parameter to the script to run "sudo dmesg" instead of "dmesg", and mention the option in the warning message. > > ================================================== > 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-20260207-111858.txt I would be way more vocal here about the need to inspect the report and ensure there's no sensitive information before sending it. > --- > utils/libcamera-bug-report | 79 ++++++++++++++++++++++++++++++++++++++++++++++ > utils/meson.build | 7 ++++ > 2 files changed, 86 insertions(+) > > diff --git a/utils/libcamera-bug-report b/utils/libcamera-bug-report > new file mode 100755 > index 000000000000..72b89b646007 > --- /dev/null > +++ b/utils/libcamera-bug-report > @@ -0,0 +1,79 @@ > +#!/usr/bin/env bash I don't think we can reasonably expect bash to be present. It's common in embedded environment to use other shells. Is there anything specific you need from bash, or could we use /bin/sh ? > +# SPDX-License-Identifier: LGPL-2.1-or-later > + > +REPORT="libcamera-report-$(hostname)-$(date +%Y%m%d-%H%M%S).txt" > + > +exec > >(tee "$REPORT") 2>&1 > + > +section() { > + echo > + echo "==================================================" > + echo "$1" > + echo "==================================================" > +} > + > +run() { > + echo > + echo "\$ $*" > + "$@" || echo "[WARN] Command failed: $*" > +} > + > +mark_kmsg() { > + if [ -w /dev/kmsg ]; then > + echo "libcamera-debug-report[$$]: $1" > /dev/kmsg > + else > + echo "[INFO] /dev/kmsg not writable, skipping kernel marker: $1" > + fi > +} > + > +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 cat /sys/kernel/debug/devices_deferred > + > +section "V4L2 async pending subdevices" > +run 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 "$m" I'm tempted to make media-ctl a hard dependency and print a warning. We could avoid v4l2-ctl as a dependency, but as it should come from the same package as media-ctl, I suppose it's fine. > +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 dmesg > + > +section "Permissions & capabilities" > +run id > +run groups > +command -v getcap >/dev/null && run getcap "$(which cam)" > + > +section "End of report" > +echo "Report saved to $REPORT" > diff --git a/utils/meson.build b/utils/meson.build > index 3deed8ad4d7e..1a9203f81763 100644 > --- a/utils/meson.build > +++ b/utils/meson.build > @@ -7,3 +7,10 @@ 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-debug-report', The file is called "libcamera-bug-report", not "libcamera-debug-report". Have you tested installation ? :-) > + install_dir: get_option('bindir'), > + install_mode: 'rwxr-xr-x', This shouldn't be needed as the file is already executable. > +) > > --- > base-commit: c6c5a8bc5b90e476cba806cfcccc704ef115d2aa > change-id: 20260207-kbingham-bug-reporter-60285cd034af
Quoting Laurent Pinchart (2026-02-09 00:08:24) > On Sat, Feb 07, 2026 at 11:30:04AM +0000, Kieran Bingham wrote: > > 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. > > > > An example bug report from my system follows, which itself shows a > > specific bug! > > > > $ ./utils/libcamera-bug-report > > ... > > cam: error while loading shared libraries: libtiff.so.5: cannot open shared object file: No such file or directory > > [WARN] Command failed: cam -l > > [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 > > This is quite common. I wonder if we shouldn't skip writing the report > to stdout, and only print warnings, to ensure they get noticed. > > As for how to fix this problem, I'm not entirely sure. I don't want to > hide a sudo within the script, at least not one that is run by default. > I also don't want to tell people to run this as root. One option could > be to add a parameter to the script to run "sudo dmesg" instead of > "dmesg", and mention the option in the warning message. Indeed, I intentionally didn't want any sudo in the script. I assume we can let the user choose to run as sudo after having run once ? > > > > ================================================== > > 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-20260207-111858.txt > > I would be way more vocal here about the need to inspect the report and > ensure there's no sensitive information before sending it. Ack > > > --- > > utils/libcamera-bug-report | 79 ++++++++++++++++++++++++++++++++++++++++++++++ > > utils/meson.build | 7 ++++ > > 2 files changed, 86 insertions(+) > > > > diff --git a/utils/libcamera-bug-report b/utils/libcamera-bug-report > > new file mode 100755 > > index 000000000000..72b89b646007 > > --- /dev/null > > +++ b/utils/libcamera-bug-report > > @@ -0,0 +1,79 @@ > > +#!/usr/bin/env bash > > I don't think we can reasonably expect bash to be present. It's common > in embedded environment to use other shells. Is there anything specific > you need from bash, or could we use /bin/sh ? Just that I usually use bash. I'll see if I can posixify. > > +# SPDX-License-Identifier: LGPL-2.1-or-later > > + > > +REPORT="libcamera-report-$(hostname)-$(date +%Y%m%d-%H%M%S).txt" > > + > > +exec > >(tee "$REPORT") 2>&1 > > + > > +section() { > > + echo > > + echo "==================================================" > > + echo "$1" > > + echo "==================================================" > > +} > > + > > +run() { > > + echo > > + echo "\$ $*" > > + "$@" || echo "[WARN] Command failed: $*" > > +} > > + > > +mark_kmsg() { > > + if [ -w /dev/kmsg ]; then > > + echo "libcamera-debug-report[$$]: $1" > /dev/kmsg > > + else > > + echo "[INFO] /dev/kmsg not writable, skipping kernel marker: $1" > > + fi > > +} > > + > > +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 cat /sys/kernel/debug/devices_deferred > > + > > +section "V4L2 async pending subdevices" > > +run 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 "$m" > > I'm tempted to make media-ctl a hard dependency and print a warning. That's probably a good idea to save a couple of round trips of getting someone to redo the report! > We could avoid v4l2-ctl as a dependency, but as it should come from the > same package as media-ctl, I suppose it's fine. > > > +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 dmesg > > + > > +section "Permissions & capabilities" > > +run id > > +run groups > > +command -v getcap >/dev/null && run getcap "$(which cam)" > > + > > +section "End of report" > > +echo "Report saved to $REPORT" > > diff --git a/utils/meson.build b/utils/meson.build > > index 3deed8ad4d7e..1a9203f81763 100644 > > --- a/utils/meson.build > > +++ b/utils/meson.build > > @@ -7,3 +7,10 @@ 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-debug-report', > > The file is called "libcamera-bug-report", not "libcamera-debug-report". > Have you tested installation ? :-) I did ... but that was before I renamed it ;-) > > + install_dir: get_option('bindir'), > > + install_mode: 'rwxr-xr-x', > > This shouldn't be needed as the file is already executable. ack. > > > +) > > > > --- > > base-commit: c6c5a8bc5b90e476cba806cfcccc704ef115d2aa > > change-id: 20260207-kbingham-bug-reporter-60285cd034af > > -- > Regards, > > Laurent Pinchart
On Mon, Feb 09, 2026 at 09:16:14AM +0000, Kieran Bingham wrote: > Quoting Laurent Pinchart (2026-02-09 00:08:24) > > On Sat, Feb 07, 2026 at 11:30:04AM +0000, Kieran Bingham wrote: > > > 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. > > > > > > An example bug report from my system follows, which itself shows a > > > specific bug! > > > > > > $ ./utils/libcamera-bug-report > > > > > ... > > > > cam: error while loading shared libraries: libtiff.so.5: cannot open shared object file: No such file or directory > > > [WARN] Command failed: cam -l > > > [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 > > > > This is quite common. I wonder if we shouldn't skip writing the report > > to stdout, and only print warnings, to ensure they get noticed. > > > > As for how to fix this problem, I'm not entirely sure. I don't want to > > hide a sudo within the script, at least not one that is run by default. > > I also don't want to tell people to run this as root. One option could > > be to add a parameter to the script to run "sudo dmesg" instead of > > "dmesg", and mention the option in the warning message. > > Indeed, I intentionally didn't want any sudo in the script. I assume we > can let the user choose to run as sudo after having run once ? That would essentially tell them they have to review the whole script, while gating internal usage of sudo with a command line argument (off by default) may make their life easier as they would only have to grep for sudo usage. I don't know what the best practice is. > > > > > > ================================================== > > > 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-20260207-111858.txt > > > > I would be way more vocal here about the need to inspect the report and > > ensure there's no sensitive information before sending it. > > Ack > > > > --- > > > utils/libcamera-bug-report | 79 ++++++++++++++++++++++++++++++++++++++++++++++ > > > utils/meson.build | 7 ++++ > > > 2 files changed, 86 insertions(+) > > > > > > diff --git a/utils/libcamera-bug-report b/utils/libcamera-bug-report > > > new file mode 100755 > > > index 000000000000..72b89b646007 > > > --- /dev/null > > > +++ b/utils/libcamera-bug-report > > > @@ -0,0 +1,79 @@ > > > +#!/usr/bin/env bash > > > > I don't think we can reasonably expect bash to be present. It's common > > in embedded environment to use other shells. Is there anything specific > > you need from bash, or could we use /bin/sh ? > > Just that I usually use bash. I'll see if I can posixify. > > > > +# SPDX-License-Identifier: LGPL-2.1-or-later > > > + > > > +REPORT="libcamera-report-$(hostname)-$(date +%Y%m%d-%H%M%S).txt" > > > + > > > +exec > >(tee "$REPORT") 2>&1 > > > + > > > +section() { > > > + echo > > > + echo "==================================================" > > > + echo "$1" > > > + echo "==================================================" > > > +} > > > + > > > +run() { > > > + echo > > > + echo "\$ $*" > > > + "$@" || echo "[WARN] Command failed: $*" > > > +} > > > + > > > +mark_kmsg() { > > > + if [ -w /dev/kmsg ]; then > > > + echo "libcamera-debug-report[$$]: $1" > /dev/kmsg > > > + else > > > + echo "[INFO] /dev/kmsg not writable, skipping kernel marker: $1" > > > + fi > > > +} > > > + > > > +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 cat /sys/kernel/debug/devices_deferred > > > + > > > +section "V4L2 async pending subdevices" > > > +run 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 "$m" > > > > I'm tempted to make media-ctl a hard dependency and print a warning. > > That's probably a good idea to save a couple of round trips of getting > someone to redo the report! > > > We could avoid v4l2-ctl as a dependency, but as it should come from the > > same package as media-ctl, I suppose it's fine. > > > > > +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 dmesg > > > + > > > +section "Permissions & capabilities" > > > +run id > > > +run groups > > > +command -v getcap >/dev/null && run getcap "$(which cam)" > > > + > > > +section "End of report" > > > +echo "Report saved to $REPORT" > > > diff --git a/utils/meson.build b/utils/meson.build > > > index 3deed8ad4d7e..1a9203f81763 100644 > > > --- a/utils/meson.build > > > +++ b/utils/meson.build > > > @@ -7,3 +7,10 @@ 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-debug-report', > > > > The file is called "libcamera-bug-report", not "libcamera-debug-report". > > Have you tested installation ? :-) > > I did ... but that was before I renamed it ;-) > > > > + install_dir: get_option('bindir'), > > > + install_mode: 'rwxr-xr-x', > > > > This shouldn't be needed as the file is already executable. > > ack. > > > > > > +) > > > > > > --- > > > base-commit: c6c5a8bc5b90e476cba806cfcccc704ef115d2aa > > > change-id: 20260207-kbingham-bug-reporter-60285cd034af
diff --git a/utils/libcamera-bug-report b/utils/libcamera-bug-report new file mode 100755 index 000000000000..72b89b646007 --- /dev/null +++ b/utils/libcamera-bug-report @@ -0,0 +1,79 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: LGPL-2.1-or-later + +REPORT="libcamera-report-$(hostname)-$(date +%Y%m%d-%H%M%S).txt" + +exec > >(tee "$REPORT") 2>&1 + +section() { + echo + echo "==================================================" + echo "$1" + echo "==================================================" +} + +run() { + echo + echo "\$ $*" + "$@" || echo "[WARN] Command failed: $*" +} + +mark_kmsg() { + if [ -w /dev/kmsg ]; then + echo "libcamera-debug-report[$$]: $1" > /dev/kmsg + else + echo "[INFO] /dev/kmsg not writable, skipping kernel marker: $1" + fi +} + +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 cat /sys/kernel/debug/devices_deferred + +section "V4L2 async pending subdevices" +run 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 "$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 dmesg + +section "Permissions & capabilities" +run id +run groups +command -v getcap >/dev/null && run getcap "$(which cam)" + +section "End of report" +echo "Report saved to $REPORT" diff --git a/utils/meson.build b/utils/meson.build index 3deed8ad4d7e..1a9203f81763 100644 --- a/utils/meson.build +++ b/utils/meson.build @@ -7,3 +7,10 @@ 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-debug-report', + install_dir: get_option('bindir'), + install_mode: 'rwxr-xr-x', +)
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. An example bug report from my system follows, which itself shows a specific bug! $ ./utils/libcamera-bug-report ================================================== Report metadata ================================================== Date: 2026-02-07T11:18:58+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.3 LTS" NAME="Ubuntu" VERSION_ID="24.04" VERSION="24.04.3 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.3 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 Jan 14 23:56 /dev/media0 crw-rw----+ 1 root video 234, 1 Jan 14 23:56 /dev/media1 crw-rw----+ 1 root video 234, 2 Jan 14 23:56 /dev/media2 crw-rw----+ 1 root video 234, 3 Jan 14 23:56 /dev/media3 crw-rw----+ 1 root video 81, 5 Jan 14 23:56 /dev/v4l-subdev0 crw-rw----+ 1 root video 81, 6 Jan 14 23:56 /dev/v4l-subdev1 crw-rw----+ 1 root video 81, 7 Jan 14 23:56 /dev/v4l-subdev2 crw-rw----+ 1 root video 81, 8 Jan 14 23:56 /dev/v4l-subdev3 crw-rw----+ 1 root video 81, 9 Jan 14 23:56 /dev/v4l-subdev4 crw-rw----+ 1 root video 81, 10 Jan 14 23:56 /dev/v4l-subdev5 crw-rw----+ 1 root video 81, 11 Jan 14 23:56 /dev/v4l-subdev6 crw-rw----+ 1 root video 81, 12 Jan 14 23:56 /dev/v4l-subdev7 crw-rw----+ 1 root video 81, 22 Jan 14 23:56 /dev/v4l-touch0 crw-rw----+ 1 root video 81, 0 Jan 14 23:56 /dev/video0 crw-rw----+ 1 root video 81, 1 Jan 14 23:56 /dev/video1 crw-rw----+ 1 root video 81, 2 Jan 14 23:56 /dev/video2 crw-rw----+ 1 root video 81, 3 Jan 14 23:56 /dev/video3 crw-rw----+ 1 root video 81, 4 Jan 14 23:56 /dev/video4 crw-rw----+ 1 root video 81, 13 Jan 14 23:56 /dev/video5 crw-rw----+ 1 root video 81, 14 Jan 14 23:56 /dev/video6 crw-rw----+ 1 root video 81, 20 Jan 14 23:56 /dev/video7 crw-rw----+ 1 root video 81, 21 Jan 14 23:56 /dev/video8 crw-rw----+ 1 root video 81, 23 Jan 14 23:56 /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 (0x00007fffea592000) libcamera.so.0.6 => /lib/x86_64-linux-gnu/libcamera.so.0.6 (0x0000799515800000) libcamera-base.so.0.6 => /lib/x86_64-linux-gnu/libcamera-base.so.0.6 (0x0000799516122000) libdrm.so.2 => /lib/x86_64-linux-gnu/libdrm.so.2 (0x000079951610b000) libevent_pthreads-2.1.so.7 => /lib/x86_64-linux-gnu/libevent_pthreads-2.1.so.7 (0x0000799516106000) libevent-2.1.so.7 => /lib/x86_64-linux-gnu/libevent-2.1.so.7 (0x00007995160b4000) libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x000079951602f000) libSDL2-2.0.so.0 => /lib/x86_64-linux-gnu/libSDL2-2.0.so.0 (0x0000799515624000) libtiff.so.5 => not found libyaml-0.so.2 => /lib/x86_64-linux-gnu/libyaml-0.so.2 (0x000079951600e000) libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x0000799515200000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007995155f6000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x0000799514e00000) libyuv.so.0 => /lib/x86_64-linux-gnu/libyuv.so.0 (0x000079951555e000) libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x0000799514c06000) liblttng-ust.so.1 => /lib/x86_64-linux-gnu/liblttng-ust.so.1 (0x00007995154db000) libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007995154a8000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x0000799515117000) libdw.so.1 => /lib/x86_64-linux-gnu/libdw.so.1 (0x0000799515063000) libunwind.so.8 => /lib/x86_64-linux-gnu/libunwind.so.8 (0x0000799515fef000) /lib64/ld-linux-x86-64.so.2 (0x0000799516311000) libevent_core-2.1.so.7 => /lib/x86_64-linux-gnu/libevent_core-2.1.so.7 (0x000079951502e000) libasound.so.2 => /lib/x86_64-linux-gnu/libasound.so.2 (0x0000799514afc000) libpulse.so.0 => /lib/x86_64-linux-gnu/libpulse.so.0 (0x0000799514aab000) libsamplerate.so.0 => /lib/x86_64-linux-gnu/libsamplerate.so.0 (0x000079951493c000) libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007995147ff000) libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x0000799515494000) libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1 (0x0000799515fe1000) libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x0000799515481000) libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x0000799515026000) libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x0000799515019000) libXss.so.1 => /lib/x86_64-linux-gnu/libXss.so.1 (0x0000799515014000) libgbm.so.1 => /lib/x86_64-linux-gnu/libgbm.so.1 (0x00007995147f8000) libwayland-egl.so.1 => /lib/x86_64-linux-gnu/libwayland-egl.so.1 (0x00007995147f3000) libwayland-client.so.0 => /lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007995147e3000) libwayland-cursor.so.0 => /lib/x86_64-linux-gnu/libwayland-cursor.so.0 (0x00007995147d9000) libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x0000799514790000) libdecor-0.so.0 => /lib/x86_64-linux-gnu/libdecor-0.so.0 (0x0000799514785000) libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007995145e1000) libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007995145bf000) libunistring.so.5 => /lib/x86_64-linux-gnu/libunistring.so.5 (0x0000799514412000) libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007995143fa000) libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007995143a5000) libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x000079951435d000) libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007995142d9000) libnuma.so.1 => /lib/x86_64-linux-gnu/libnuma.so.1 (0x00007995142cb000) liblttng-ust-common.so.1 => /lib/x86_64-linux-gnu/liblttng-ust-common.so.1 (0x00007995142bc000) liblttng-ust-tracepoint.so.1 => /lib/x86_64-linux-gnu/liblttng-ust-tracepoint.so.1 (0x000079951429f000) libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x0000799514292000) libelf.so.1 => /lib/x86_64-linux-gnu/libelf.so.1 (0x0000799514273000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x0000799514257000) libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x000079951419b000) liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x0000799514169000) libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x0000799514155000) libpulsecommon-16.1.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-16.1.so (0x00007995140d7000) libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x0000799514088000) libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x000079951405d000) libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x0000799514051000) libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x0000799514025000) libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x0000799514019000) libsndfile.so.1 => /lib/x86_64-linux-gnu/libsndfile.so.1 (0x0000799513f8f000) libX11-xcb.so.1 => /lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x0000799513f8a000) libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x0000799513eaa000) libasyncns.so.0 => /lib/x86_64-linux-gnu/libasyncns.so.0 (0x0000799513ea2000) libapparmor.so.1 => /lib/x86_64-linux-gnu/libapparmor.so.1 (0x0000799513e8e000) libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x0000799513e86000) libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x0000799513e7e000) libFLAC.so.12 => /lib/x86_64-linux-gnu/libFLAC.so.12 (0x0000799513e1a000) libvorbis.so.0 => /lib/x86_64-linux-gnu/libvorbis.so.0 (0x0000799513dec000) libvorbisenc.so.2 => /lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x0000799513d41000) libopus.so.0 => /lib/x86_64-linux-gnu/libopus.so.0 (0x0000799513ce0000) libogg.so.0 => /lib/x86_64-linux-gnu/libogg.so.0 (0x0000799513cd6000) libmpg123.so.0 => /lib/x86_64-linux-gnu/libmpg123.so.0 (0x0000799513c7a000) libmp3lame.so.0 => /lib/x86_64-linux-gnu/libmp3lame.so.0 (0x0000799513c04000) libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x0000799513abc000) liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x0000799513a98000) libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x0000799513a82000) libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x0000799513a5d000) libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x0000799513a4e000) ================================================== libcamera probe (cam -l) ================================================== [INFO] /dev/kmsg not writable, skipping kernel marker: BEGIN cam -l $ cam -l cam: error while loading shared libraries: libtiff.so.5: cannot open shared object file: No such file or directory [WARN] Command failed: cam -l [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-20260207-111858.txt --- utils/libcamera-bug-report | 79 ++++++++++++++++++++++++++++++++++++++++++++++ utils/meson.build | 7 ++++ 2 files changed, 86 insertions(+) --- base-commit: c6c5a8bc5b90e476cba806cfcccc704ef115d2aa change-id: 20260207-kbingham-bug-reporter-60285cd034af Best regards,