I'm trying to run the uvc-gadget application and I'm running into "No cameras were identified on the system" error from libcamera on my Raspberry Pi Zero 2 W using buildroot and am hoping someone can spot what I'm missing. Here’s all the stuff I’ve already tried:
Thanks!
- Hardware & Software
- Board: Raspberry Pi Zero 2 W Rev 1.0
- Camera: Camera Module 3, IMX708 module
- OS: Custom Buildroot rootfs (64-bit, aarch64)
- Kernel: Raspberry Pi Foundation kernel (cd231d47)
- libcamera: Built and installed via Buildroot (0.5.0, mainline, not raspberrypi version)
- Symptoms
- libcamera-apps is not installed. Should not be needed for my application, I think.
- /dev/video0 exists, but it's the UVC gadget, not the camera
- /dev/media* and /dev/video* for the camera do not appear
- What Works
- Same hardware and camera module work perfectly with Raspberry Pi OS Lite (64-bit)
- The camera shows up as expected in /dev/media* and /dev/video* on Raspberry Pi OS
- Kernel and Firmware Setup
- Kernel source: raspberrypi/linux
- Kernel commit: (tried multiple, including the latest as of 2025-05-18)
- Defconfig: bcm2711_defconfig (as per official RPi docs for 64-bit)
- DTB: bcm2710-rpi-zero-2-w.dtb
- Overlays: Using official overlays, e.g., imx708.dtbo
- config.txt:
Code:
start_x=1gpu_mem=128camera_auto_detect=1# For USB gadget modedtoverlay=dwc2,dr_mode=otg - All kernel, DTB, and overlay build dates match and are from the same build.
- Kernel Config Checks
- I've confirmed the following kernel options are enabled (=y not =m):
- CONFIG_MEDIA_CONTROLLER
- CONFIG_MEDIA_SUPPORT
- CONFIG_MEDIA_PLATFORM_SUPPORT
- CONFIG_MEDIA_CAMERA_SUPPORT
- CONFIG_V4L2_FWNODE
- CONFIG_VIDEO_BCM2835_UNICAM
- CONFIG_VIDEO_IMX708
- CONFIG_V4L2_SUBDEV_API
- CONFIG_I2C_CHARDEV
- I disabled CONFIG_VIDEO_BCM2835_UNICAM_LEGACY
- I've confirmed the following kernel options are enabled (=y not =m):
- Troubleshooting Steps Taken
- Tested hardware and camera with Raspberry Pi OS – works perfectly.
- Checked DTB and overlays:
- Confirmed /mnt/bcm2710-rpi-zero-2-w.dtb and /mnt/overlays/imx708.dtbo match kernel build date.
- strings on DTB shows correct nodes (linux,cma, etc.).
- Checked dmesg:
- No probe errors, but also no evidence of Unicam/Cam sensor driver binding.
- /proc/device-tree/model confirms: Raspberry Pi Zero 2 W Rev 1.0
- Verified kernel version: Linux buildroot 6.12.20-v8 #3 SMP PREEMPT ... aarch64 GNU/Linux
- Confirmed udev (+eudev option) is running under BusyBox init system to create device nodes.
- No /dev/media* or /dev/video* nodes for camera after boot.
- Things I've Ruled Out
- Hardware issue: Camera and cables work with Pi OS
- DTB/overlay mismatch: All files are from same build
- libcamera-apps dependency: On Pi OS works with and without libcamera-apps present.
- Questions
- What else could be preventing the Unicam or camera sensor drivers from probing or binding to the hardware?
- Could there be a kernel config or missing firmware file issue?
- Does anyone have a working kernel .config for a 64-bit Buildroot + Pi camera setup on Zero 2 W?
- Are there any other debugging steps or logs I should collect to pinpoint the issue?
Thanks!
Statistics: Posted by elcalzado — Mon May 19, 2025 3:43 am