Skip to content

Conversation

jwinarske
Copy link
Contributor

@jwinarske jwinarske commented Aug 26, 2025

-tip of tree rpi libcamera, rpi libpisp, rpicam-apps -only builds single pipeline; auto is not used
-builds ipas so pipeline does not run in sandbox
-sets preference for libcamera references to use rpi-libcamera

fixes #1303
fixes: #1331
fixes #1469

- What I did

  • created recipe rpi-camera to track raspberrypi fork of libcamera. Using rpi Linux requires rpi libcamera.
  • created recipe libpisp which rpi-libcamera is dependent on when machine is raspberrypi5
  • renamed libcamera-apps to rpicam-apps; to track upstream repo name
  • moved libcamera-apps from dynamic-layers
  • removed the libcamera_%.bbappend and folder
  • set preferred provider for libcamera to point to rpi-libcamera

rpi-libcamera-0.5.1+rpt20250722+git0+e53bdf1f54-r0.cortexa76.rpm contents

/usr
/usr/bin
/usr/bin/cam
/usr/bin/libcamerify
/usr/lib
/usr/lib/libcamera
/usr/lib/libcamera-base.so.0.5
/usr/lib/libcamera-base.so.0.5.1
/usr/lib/libcamera.so.0.5
/usr/lib/libcamera.so.0.5.1
/usr/lib/libcamera/ipa
/usr/lib/libcamera/ipa/ipa_rpi_pisp.so
/usr/lib/libcamera/ipa/ipa_rpi_pisp.so.sign
/usr/libexec
/usr/libexec/libcamera
/usr/libexec/libcamera/raspberrypi_ipa_proxy
/usr/libexec/libcamera/v4l2-compat.so
/usr/share
/usr/share/libcamera
/usr/share/libcamera/ipa
/usr/share/libcamera/ipa/rpi
/usr/share/libcamera/ipa/rpi/pisp
/usr/share/libcamera/ipa/rpi/pisp/imx219.json
/usr/share/libcamera/ipa/rpi/pisp/imx219_noir.json
/usr/share/libcamera/ipa/rpi/pisp/imx283.json
/usr/share/libcamera/ipa/rpi/pisp/imx290.json
/usr/share/libcamera/ipa/rpi/pisp/imx296.json
/usr/share/libcamera/ipa/rpi/pisp/imx296_mono.json
/usr/share/libcamera/ipa/rpi/pisp/imx378.json
/usr/share/libcamera/ipa/rpi/pisp/imx415.json
/usr/share/libcamera/ipa/rpi/pisp/imx462.json
/usr/share/libcamera/ipa/rpi/pisp/imx477.json
/usr/share/libcamera/ipa/rpi/pisp/imx477_noir.json
/usr/share/libcamera/ipa/rpi/pisp/imx477_scientific.json
/usr/share/libcamera/ipa/rpi/pisp/imx500.json
/usr/share/libcamera/ipa/rpi/pisp/imx519.json
/usr/share/libcamera/ipa/rpi/pisp/imx708.json
/usr/share/libcamera/ipa/rpi/pisp/imx708_noir.json
/usr/share/libcamera/ipa/rpi/pisp/imx708_wide.json
/usr/share/libcamera/ipa/rpi/pisp/imx708_wide_noir.json
/usr/share/libcamera/ipa/rpi/pisp/ov5647.json
/usr/share/libcamera/ipa/rpi/pisp/ov5647_noir.json
/usr/share/libcamera/ipa/rpi/pisp/ov64a40.json
/usr/share/libcamera/ipa/rpi/pisp/ov9281_mono.json
/usr/share/libcamera/ipa/rpi/pisp/se327m12.json
/usr/share/libcamera/ipa/rpi/pisp/uncalibrated.json
/usr/share/libcamera/pipeline
/usr/share/libcamera/pipeline/rpi
/usr/share/libcamera/pipeline/rpi/pisp
/usr/share/libcamera/pipeline/rpi/pisp/example.yaml

libpisp1-1.2.1+git0+981977ff21-r0.cortexa76.rpm contents

/usr
/usr/lib
/usr/lib/libpisp.so.1
/usr/lib/libpisp.so.1.2.1
/usr/share
/usr/share/libpisp
/usr/share/libpisp/backend_default_config.json

libcamera-apps-1.8.1+git0+eb293b0552-r0.cortexa76.rpm contents

/usr
/usr/bin
/usr/bin/rpicam-hello
/usr/bin/rpicam-jpeg
/usr/bin/rpicam-raw
/usr/bin/rpicam-still
/usr/bin/rpicam-vid
/usr/lib
/usr/lib/librpicam_app.so.1
/usr/lib/librpicam_app.so.1.8.1
/usr/lib/rpicam-apps-postproc
/usr/lib/rpicam-apps-postproc/core-postproc.so
/usr/lib/rpicam-apps-preview
/usr/lib/rpicam-apps-preview/drm-preview.so
/usr/share
/usr/share/rpi-camera-assets
/usr/share/rpi-camera-assets/acoustic_focus.json
/usr/share/rpi-camera-assets/hdr.json
/usr/share/rpi-camera-assets/motion_detect.json
/usr/share/rpi-camera-assets/negate.json

@jwinarske
Copy link
Contributor Author

jwinarske commented Aug 26, 2025

#Tested on imx477, imx219, and imx708 (imx708_wide_noir)

$ cam -l
[0:00:26.570774132] [498]  INFO Camera camera_manager.cpp:330 libcamera v0.5.1+150-c576b437-dirty (2025-08-25T17:26:32UTC)
[0:00:26.584296521] [499]  INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 26-08-2025 (17:00:20)
[0:00:26.597304428] [499]  INFO Camera camera_manager.cpp:220 Adding camera '/base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a' for pipeline handler rpi/pisp
[0:00:26.597357465] [499]  INFO RPI pisp.cpp:1179 Registered camera /base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a to CFE device /dev/media2 and ISP device /dev/media1 using PiSP variant BCM2712_C0
Available cameras:
1: 'imx477' (/base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a)
$ cam -l
[0:01:43.509358137] [565]  INFO Camera camera_manager.cpp:330 libcamera v0.5.1+150-c576b437-dirty (2025-08-25T17:26:32UTC)
[0:01:43.522888943] [566]  INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 26-08-2025 (17:00:20)
[0:01:43.536000008] [566]  INFO Camera camera_manager.cpp:220 Adding camera '/base/axi/pcie@1000120000/rp1/i2c@80000/imx219@10' for pipeline handler rpi/pisp
[0:01:43.536073378] [566]  INFO RPI pisp.cpp:1179 Registered camera /base/axi/pcie@1000120000/rp1/i2c@80000/imx219@10 to CFE device /dev/media0 and ISP device /dev/media2 using PiSP variant BCM2712_C0
Available cameras:
1: 'imx219' (/base/axi/pcie@1000120000/rp1/i2c@80000/imx219@10)
$ cam -l
[0:01:02.808909954] [488]  INFO Camera camera_manager.cpp:330 libcamera v0.5.1+150-c576b437-dirty (2025-08-25T17:26:32UTC)
[0:01:02.827978877] [489]  INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 26-08-2025 (17:00:20)
[0:01:02.829421112] [489]  WARN CameraSensorProperties camera_sensor_properties.cpp:473 No static properties available for 'imx708_wide_noir'
[0:01:02.829448579] [489]  WARN CameraSensorProperties camera_sensor_properties.cpp:475 Please consider updating the camera sensor properties database
[0:01:02.927825757] [489]  WARN CameraSensor camera_sensor_legacy.cpp:501 'imx708_wide_noir': No sensor delays found in static properties. Assuming unverified defaults.
[0:01:02.928463310] [489]  INFO Camera camera_manager.cpp:220 Adding camera '/base/axi/pcie@1000120000/rp1/i2c@80000/imx708@1a' for pipeline handler rpi/pisp
[0:01:02.928487689] [489]  INFO RPI pisp.cpp:1179 Registered camera /base/axi/pcie@1000120000/rp1/i2c@80000/imx708@1a to CFE device /dev/media1 and ISP device /dev/media0 using PiSP variant BCM2712_C0
Available cameras:
1: 'imx708_wide_noir' (/base/axi/pcie@1000120000/rp1/i2c@80000/imx708@1a)

imx477 App Test Output

$ rpicam-hello --camera=0 -f
[0:05:13.879965947] [519]  INFO Camera camera_manager.cpp:330 libcamera v0.5.1+150-c576b437-dirty (2025-08-25T17:26:32UTC)
[0:05:13.893592148] [520]  INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 26-08-2025 (17:00:20)
[0:05:13.906636548] [520]  INFO Camera camera_manager.cpp:220 Adding camera '/base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a' for pipeline handler rpi/pisp
[0:05:13.906689771] [520]  INFO RPI pisp.cpp:1179 Registered camera /base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a to CFE device /dev/media2 and ISP device /dev/media1 using PiSP variant BCM2712_C0
Made DRM preview window
Mode selection for 2028:1520:12:P
    SRGGB10_CSI2P,1332x990/0 - Score: 3456.22
    SRGGB12_CSI2P,2028x1080/0 - Score: 1083.84
    SRGGB12_CSI2P,2028x1520/0 - Score: 0
    SRGGB12_CSI2P,4056x3040/0 - Score: 887
Stream configuration adjusted
[0:05:14.010938007] [519]  INFO Camera camera.cpp:1214 configuring streams: (0) 2028x1520-YUV420/sYCC (1) 2028x1520-BGGR_PISP_COMP1/RAW
[0:05:14.011066545] [520]  INFO RPI pisp.cpp:1483 Sensor: /base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12/RAW - Selected CFE format: 2028x1520-PC1B
$ rpicam-jpeg -o test.jpg
[0:04:23.642562878] [506]  INFO Camera camera_manager.cpp:330 libcamera v0.5.1+150-c576b437-dirty (2025-08-25T17:26:32UTC)
[0:04:23.656436033] [507]  INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 26-08-2025 (17:00:20)
[0:04:23.669443946] [507]  INFO Camera camera_manager.cpp:220 Adding camera '/base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a' for pipeline handler rpi/pisp
[0:04:23.669498501] [507]  INFO RPI pisp.cpp:1179 Registered camera /base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a to CFE device /dev/media2 and ISP device /dev/media1 using PiSP variant BCM2712_C0
Made DRM preview window
Mode selection for 2028:1520:12:P
    SRGGB10_CSI2P,1332x990/0 - Score: 3456.22
    SRGGB12_CSI2P,2028x1080/0 - Score: 1083.84
    SRGGB12_CSI2P,2028x1520/0 - Score: 0
    SRGGB12_CSI2P,4056x3040/0 - Score: 887
Stream configuration adjusted
[0:04:23.779861094] [506]  INFO Camera camera.cpp:1214 configuring streams: (0) 2028x1520-YUV420/sYCC (1) 2028x1520-BGGR_PISP_COMP1/RAW
[0:04:23.779991279] [507]  INFO RPI pisp.cpp:1483 Sensor: /base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12/RAW - Selected CFE format: 2028x1520-PC1B
Mode selection for 4056:3040:12:P
    SRGGB10_CSI2P,1332x990/0 - Score: 10552.2
    SRGGB12_CSI2P,2028x1080/0 - Score: 8179.84
    SRGGB12_CSI2P,2028x1520/0 - Score: 7096
    SRGGB12_CSI2P,4056x3040/0 - Score: 0
Stream configuration adjusted
[0:04:28.816637739] [506]  INFO Camera camera.cpp:1214 configuring streams: (0) 4056x3040-YUV420/sYCC (1) 4056x3040-BGGR_PISP_COMP1/RAW
[0:04:28.824326303] [507]  INFO RPI pisp.cpp:1483 Sensor: /base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a - Selected sensor format: 4056x3040-SBGGR12_1X12/RAW - Selected CFE format: 4056x3040-PC1B
Still capture image received
$ rpicam-raw   
[0:05:46.885055279] [538]  INFO Camera camera_manager.cpp:330 libcamera v0.5.1+150-c576b437-dirty (2025-08-25T17:26:32UTC)
[0:05:46.898905620] [539]  INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 26-08-2025 (17:00:20)
[0:05:46.911918678] [539]  INFO Camera camera_manager.cpp:220 Adding camera '/base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a' for pipeline handler rpi/pisp
[0:05:46.911966364] [539]  INFO RPI pisp.cpp:1179 Registered camera /base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a to CFE device /dev/media2 and ISP device /dev/media1 using PiSP variant BCM2712_C0
Mode selection for 640:480:12:P
    SRGGB10_CSI2P,1332x990/0 - Score: 1305.05
    SRGGB12_CSI2P,2028x1080/0 - Score: 701.167
    SRGGB12_CSI2P,2028x1520/0 - Score: 607.329
    SRGGB12_CSI2P,4056x3040/0 - Score: 1494.33
Stream configuration adjusted
[0:05:46.913302705] [538]  INFO Camera camera.cpp:1214 configuring streams: (0) 640x480-YUV420/SMPTE170M (1) 2028x1520-BGGR_PISP_COMP1/RAW
[0:05:46.913428558] [539]  INFO RPI pisp.cpp:1483 Sensor: /base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12/RAW - Selected CFE format: 2028x1520-PC1B
Raw stream: 2028x1520 stride 2048 format BGGR_PISP_COMP1
$ rpicam-still
[0:06:16.244799806] [550]  INFO Camera camera_manager.cpp:330 libcamera v0.5.1+150-c576b437-dirty (2025-08-25T17:26:32UTC)
[0:06:16.258746206] [551]  INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 26-08-2025 (17:00:20)
[0:06:16.271903676] [551]  INFO Camera camera_manager.cpp:220 Adding camera '/base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a' for pipeline handler rpi/pisp
[0:06:16.271954899] [551]  INFO RPI pisp.cpp:1179 Registered camera /base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a to CFE device /dev/media2 and ISP device /dev/media1 using PiSP variant BCM2712_C0
Made DRM preview window
Mode selection for 2028:1520:12:P
    SRGGB10_CSI2P,1332x990/0 - Score: 3456.22
    SRGGB12_CSI2P,2028x1080/0 - Score: 1083.84
    SRGGB12_CSI2P,2028x1520/0 - Score: 0
    SRGGB12_CSI2P,4056x3040/0 - Score: 887
Stream configuration adjusted
[0:06:16.376314268] [550]  INFO Camera camera.cpp:1214 configuring streams: (0) 2028x1520-YUV420/sYCC (1) 2028x1520-BGGR_PISP_COMP1/RAW
[0:06:16.376462436] [551]  INFO RPI pisp.cpp:1483 Sensor: /base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12/RAW - Selected CFE format: 2028x1520-PC1B
$ rpicam-vid --codec mjpeg
[0:06:41.318256417] [557]  INFO Camera camera_manager.cpp:330 libcamera v0.5.1+150-c576b437-dirty (2025-08-25T17:26:32UTC)
[0:06:41.332047289] [558]  INFO RPI pisp.cpp:720 libpisp version v1.2.1 981977ff21f3 26-08-2025 (17:00:20)
[0:06:41.345203048] [558]  INFO Camera camera_manager.cpp:220 Adding camera '/base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a' for pipeline handler rpi/pisp
[0:06:41.345251289] [558]  INFO RPI pisp.cpp:1179 Registered camera /base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a to CFE device /dev/media2 and ISP device /dev/media1 using PiSP variant BCM2712_C0
Made DRM preview window
Mode selection for 640:480:12:P
    SRGGB10_CSI2P,1332x990/0 - Score: 1305.05
    SRGGB12_CSI2P,2028x1080/0 - Score: 701.167
    SRGGB12_CSI2P,2028x1520/0 - Score: 607.329
    SRGGB12_CSI2P,4056x3040/0 - Score: 1494.33
Stream configuration adjusted
[0:06:41.449560113] [557]  INFO Camera camera.cpp:1214 configuring streams: (0) 640x480-YUV420/sYCC (1) 2028x1520-BGGR_PISP_COMP1/RAW
[0:06:41.449733614] [558]  INFO RPI pisp.cpp:1483 Sensor: /base/axi/pcie@1000120000/rp1/i2c@80000/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12/RAW - Selected CFE format: 2028x1520-PC1B
Halting: reached timeout of 5000 milliseconds.

The preview is defaulting to KMS-DRM. Should really select based if wayland or x11 are present in DISTRO_FEATURES. Might be more useful.

@jwinarske
Copy link
Contributor Author

The other important note is having pipewire SPA libcamera pickup the correct libcamera, which is why I have

PREFERRED_PROVIDER_libcamera ?= "rpi-libcamera"

@IvoBCD
Copy link

IvoBCD commented Sep 1, 2025

@jwinarske FWIW, I tried an image built off this branch, but it doesn't quite seem to work for me:

pltagent@raspberrypi5:~$ sudo rpicam-still -o out.jpg
[0:04:07.549666185] [538]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+100-e53bdf1f-dirty (2025-09-01T04:08:24UTC)
Made DRM preview window
Preview window unavailable
ERROR: *** no cameras available ***
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x414fd0b1]
[    0.000000] Linux version 6.12.41-v8-16k (oe-user@oe-host) (aarch64-poky-linux-gcc (GCC) 15.2.0, GNU ld (GNU Binutils) 2.45) #1 SMP PREEMPT Thu Aug  7 16:48:46 UTC 2025
[    0.000000] KASLR enabled
[    0.000000] random: crng init done
[    0.000000] Machine model: Raspberry Pi 5 Model B Rev 1.1
:
[    1.036972] raspberrypi-firmware soc@107c000000:firmware: Attached to firmware from 2025-05-08T14:13:17, variant start_cd
[    1.051985] raspberrypi-firmware soc@107c000000:firmware: Firmware hash is 6947117700000000000000000000000000000000
[    1.067384] /axi/pcie@1000120000/rp1/i2c@80000/imx708@1a: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@128000
[    1.078673] /axi/pcie@1000120000/rp1/csi@128000: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/i2c@80000/imx708@1a
[    1.090058] /axi/pcie@1000120000/rp1/i2c@80000/imx708@1a: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@128000
[    1.101343] /axi/pcie@1000120000/rp1/csi@128000: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/i2c@80000/imx708@1a
:
[    1.951803] brcm-pcie 1000120000.pcie: PCI host bridge to bus 0002:00
[    1.958270] pci_bus 0002:00: root bus resource [bus 00-ff]
[    1.963774] pci_bus 0002:00: root bus resource [mem 0x1f00000000-0x1ffffffffb] (bus address [0x00000000-0xfffffffb])
[    1.974340] pci_bus 0002:00: root bus resource [mem 0x1c00000000-0x1effffffff pref] (bus address [0x400000000-0x6ffffffff])
[    1.985523] pci 0002:00:00.0: [14e4:2712] type 01 class 0x060400 PCIe Root Port
[    1.992862] pci 0002:00:00.0: PCI bridge to [bus 00]
[    1.997842] pci 0002:00:00.0:   bridge window [mem 0x1f80000000-0x1fbfffffff]
[    2.005017] pci 0002:00:00.0: PME# supported from D0 D3hot
[    2.011103] pci 0002:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    2.122724] brcm-pcie 1000120000.pcie: clkreq-mode set to default
[    2.128840] brcm-pcie 1000120000.pcie: link up, 5.0 GT/s PCIe x4 (!SSC)
[    2.135495] pci 0002:01:00.0: [1de4:0001] type 00 class 0x020000 PCIe Endpoint
[    2.142753] pci 0002:01:00.0: BAR 0 [mem 0xffffc000-0xffffffff]
[    2.148697] pci 0002:01:00.0: BAR 1 [mem 0xffc00000-0xffffffff]
[    2.154639] pci 0002:01:00.0: BAR 2 [mem 0xffff0000-0xffffffff]
[    2.160639] pci 0002:01:00.0: supports D1
[    2.164657] pci 0002:01:00.0: PME# supported from D0 D1 D3hot D3cold
[    2.178721] pci_bus 0002:01: busn_res: [bus 01-ff] end is updated to 01
[    2.185364] pci 0002:00:00.0: bridge window [mem 0x1f00000000-0x1f005fffff]: assigned
[    2.193230] pci 0002:01:00.0: BAR 1 [mem 0x1f00000000-0x1f003fffff]: assigned
[    2.200394] pci 0002:01:00.0: BAR 2 [mem 0x1f00400000-0x1f0040ffff]: assigned
[    2.207556] pci 0002:01:00.0: BAR 0 [mem 0x1f00410000-0x1f00413fff]: assigned
[    2.214719] pci 0002:00:00.0: PCI bridge to [bus 01]
[    2.219698] pci 0002:00:00.0:   bridge window [mem 0x1f00000000-0x1f005fffff]
[    2.226860] pci_bus 0002:00: resource 4 [mem 0x1f00000000-0x1ffffffffb]
[    2.233497] pci_bus 0002:00: resource 5 [mem 0x1c00000000-0x1effffffff pref]
[    2.240570] pci_bus 0002:01: resource 1 [mem 0x1f00000000-0x1f005fffff]
[    2.247209] pci 0002:00:00.0: Max Payload Size set to  256/ 512 (was  128), Max Read Rq  512
[    2.255684] pci 0002:01:00.0: Max Payload Size set to  256/ 256 (was  128), Max Read Rq  512
[    2.264199] pcieport 0002:00:00.0: enabling device (0000 -> 0002)
[    2.270340] pcieport 0002:00:00.0: PME: Signaling with IRQ 41
[    2.276157] pcieport 0002:00:00.0: AER: enabled with IRQ 41
[    2.281809] rp1 0002:01:00.0: bar0 len 0x4000, start 0x1f00410000, end 0x1f00413fff, flags, 0x40200
[    2.290893] rp1 0002:01:00.0: bar1 len 0x400000, start 0x1f00000000, end 0x1f003fffff, flags, 0x40200
[    2.300159] rp1 0002:01:00.0: enabling device (0000 -> 0002)
[    2.306440] rp1 0002:01:00.0: chip_id 0x20001927
[    2.314770] /axi/pcie@1000120000/rp1/i2c@80000/imx708@1a: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@128000
[    2.326396] genirq: irq_chip rp1_irq_chip did not update eff. affinity mask of irq 103
[    2.348575] macb 1f00100000.ethernet eth0: Cadence GEM rev 0x00070109 at 0x1f00100000 irq 109 (2c:cf:67:b7:bb:62)
[    2.358931] /axi/pcie@1000120000/rp1/i2c@80000/imx708@1a: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/csi@128000
[    2.370211] /axi/pcie@1000120000/rp1/csi@128000: Fixed dependency cycle(s) with /axi/pcie@1000120000/rp1/i2c@80000/imx708@1a
:
[    2.635027] hub 4-0:1.0: 1 port detected
[    2.639707] bcm2712-iommu 1000005100.iommu: bcm2712_iommu_init: DEBUG_INFO = 0x20804774
[    2.648122] bcm2712-iommu 1000005100.iommu: bcm2712_iommu_probe: Success
[    2.655361] bcm2712-iommu 1000005200.iommu: bcm2712_iommu_init: DEBUG_INFO = 0x20804774
[    2.663740] bcm2712-iommu 1000005200.iommu: bcm2712_iommu_probe: Success
[    2.670884] bcm2712-iommu 1000005280.iommu: bcm2712_iommu_init: DEBUG_INFO = 0x20804774
[    2.679273] bcm2712-iommu 1000005280.iommu: bcm2712_iommu_probe: Success
[    2.686038] vc4_hvs 107c580000.hvs: bcm2712_iommu_of_xlate: MMU 1000005200.iommu
[    2.693463] vc4_hvs 107c580000.hvs: bcm2712_iommu_probe_device: MMU 1000005200.iommu
[    2.701246] vc4_hvs 107c580000.hvs: bcm2712_iommu_device_group: MMU 1000005200.iommu
[    2.709021] vc4_hvs 107c580000.hvs: Adding to iommu group 1
[    2.714616] vc4_hvs 107c580000.hvs: bcm2712_iommu_attach_dev: MMU 1000005200.iommu
[    2.722267] vc4-drm axi:gpu: bcm2712_iommu_of_xlate: MMU 1000005200.iommu
[    2.729081] vc4-drm axi:gpu: bcm2712_iommu_probe_device: MMU 1000005200.iommu
[    2.736245] vc4-drm axi:gpu: bcm2712_iommu_device_group: MMU 1000005200.iommu
[    2.743412] vc4-drm axi:gpu: Adding to iommu group 1
[    2.748491] vc4-drm axi:gpu: bcm2712_iommu_attach_dev: MMU 1000005200.iommu
[    2.757750] vc4-drm axi:gpu: bound 107c580000.hvs (ops vc4_hvs_ops)
[    2.765102] Registered IR keymap rc-cec
[    2.768974] rc rc0: vc4-hdmi-0 as /devices/platform/soc@107c000000/107c701400.hdmi/rc/rc0
[    2.777218] input: vc4-hdmi-0 as /devices/platform/soc@107c000000/107c701400.hdmi/rc/rc0/input0
[    2.786277] input: vc4-hdmi-0 HDMI Jack as /devices/platform/soc@107c000000/107c701400.hdmi/sound/card0/input1
[    2.797225] vc4-drm axi:gpu: bound 107c701400.hdmi (ops vc4_hdmi_ops)
[    2.804751] Registered IR keymap rc-cec
[    2.808619] rc rc1: vc4-hdmi-1 as /devices/platform/soc@107c000000/107c706400.hdmi/rc/rc1
[    2.816860] input: vc4-hdmi-1 as /devices/platform/soc@107c000000/107c706400.hdmi/rc/rc1/input2
[    2.825891] input: vc4-hdmi-1 HDMI Jack as /devices/platform/soc@107c000000/107c706400.hdmi/sound/card1/input3
[    2.836839] vc4-drm axi:gpu: bound 107c706400.hdmi (ops vc4_hdmi_ops)
[    2.843353] vc4-drm axi:gpu: bound 107c500000.mop (ops vc4_txp_ops)
[    2.849672] vc4-drm axi:gpu: bound 107c501000.moplet (ops vc4_txp_ops)
[    2.856280] vc4-drm axi:gpu: bound 107c410000.pixelvalve (ops vc4_crtc_ops)
[    2.863338] vc4-drm axi:gpu: bound 107c411000.pixelvalve (ops vc4_crtc_ops)
[    2.870817] [drm] Initialized vc4 0.0.0 for axi:gpu on minor 0
[    2.878421] vc4-drm axi:gpu: [drm] Cannot find any crtc or sizes
[    2.885139] of_cfs_init
[    2.886231] sdhci-brcmstb 1000fff000.mmc: Got CD GPIO
[    2.886843] mmc1: CQHCI version 5.10
[    2.887618] of_cfs_init: OK
[    2.892763] mmc0: CQHCI version 5.10
[    2.899063] vc4-drm axi:gpu: [drm] Cannot find any crtc or sizes
[    2.912086] vc4-drm axi:gpu: [drm] Cannot find any crtc or sizes
:
[    4.664438] audit: type=1334 audit(1754407898.375:6): prog-id=10 op=LOAD
[    4.751322] audit: type=1334 audit(1754407898.463:7): prog-id=6 op=UNLOAD
[    4.758148] audit: type=1334 audit(1754407898.467:8): prog-id=7 op=UNLOAD
[    4.775343] audit: type=1334 audit(1754407898.487:9): prog-id=11 op=LOAD
[    4.791248] audit: type=1334 audit(1754407898.503:10): prog-id=12 op=LOAD
[    5.002428] rpi-gpiomem 107d508500.gpiomem: window base 0x107d508500 size 0x00000040
[    5.011872] rp1-firmware rp1_firmware: RP1 Firmware version eb39cfd516f8c90628aa9d91f52370aade5d0a55
[    5.011957] rpi-gpiomem 107d508500.gpiomem: initialised 1 regions as /dev/gpiomem1
[    5.030529] rpi-gpiomem 107d517c00.gpiomem: window base 0x107d517c00 size 0x00000040
[    5.041077] rp1-pio 1f00178000.pio: Created instance as pio0
[    5.041286] rpi-gpiomem 107d517c00.gpiomem: initialised 1 regions as /dev/gpiomem2
[    5.056145] rpi-gpiomem 107d504100.gpiomem: window base 0x107d504100 size 0x00000020
[    5.066401] input: pwr_button as /devices/platform/pwr_button/input/input4
[    5.075974] rpi-gpiomem 107d504100.gpiomem: initialised 1 regions as /dev/gpiomem3
[    5.086108] rpi-gpiomem 107d510700.gpiomem: window base 0x107d510700 size 0x00000020
[    5.095072] rpi-gpiomem 107d510700.gpiomem: initialised 1 regions as /dev/gpiomem4
[    5.104583] rpi-gpiomem 1f000d0000.gpiomem: window base 0x1f000d0000 size 0x00030000
[    5.124019] mc: Linux media interface: v0.10
[    5.137466] v3d 1002000000.v3d: [drm] Transparent Hugepage support is recommended for optimal performance on this platform!
[    5.150869] rpi-gpiomem 1f000d0000.gpiomem: initialised 1 regions as /dev/gpiomem0
[    5.164745] [drm] Initialized v3d 1.0.0 for 1002000000.v3d on minor 1
[    5.167417] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    5.167766] videodev: Linux video capture interface: v2.00
[    5.198410] Loaded X.509 cert '[email protected]: 577e021cb980e0e820821ba7b54b4961b8b4fadf'
[    5.207058] Loaded X.509 cert '[email protected]: 3abbc6ec146e09d1b6016ab9d6cf71dd233f0328'
[    5.220137] macb 1f00100000.ethernet eth0: PHY [1f00100000.ethernet-ffffffff:01] driver [Broadcom BCM54213PE] (irq=POLL)
[    5.220420] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    5.241240] Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600'
[    5.241579] macb 1f00100000.ethernet eth0: configuring for phy/rgmii-id link mode
[    5.265226] macb 1f00100000.ethernet: gem-ptp-timer ptp clock registered.
[    5.275250] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    5.285030] cfg80211: failed to load regulatory.db
[    5.294443] Bluetooth: Core ver 2.22
[    5.294581] pispbe 1000880000.pisp_be: bcm2712_iommu_of_xlate: MMU 1000005100.iommu
[    5.305851] pispbe 1000880000.pisp_be: bcm2712_iommu_probe_device: MMU 1000005100.iommu
[    5.313915] NET: Registered PF_BLUETOOTH protocol family
[    5.319311] Bluetooth: HCI device and connection manager initialized
[    5.325799] Bluetooth: HCI socket layer initialized
[    5.325845] pispbe 1000880000.pisp_be: bcm2712_iommu_device_group: MMU 1000005100.iommu
[    5.330730] Bluetooth: L2CAP socket layer initialized
[    5.343833] Bluetooth: SCO socket layer initialized
[    5.345173] pispbe 1000880000.pisp_be: Adding to iommu group 0
[    5.351150] brcmfmac: F1 signature read @0x18000000=0x15264345
[    5.354604] pispbe 1000880000.pisp_be: bcm2712_iommu_attach_dev: MMU 1000005100.iommu
[    5.356296] rp1-cfe 1f00128000.csi: bcm2712_iommu_of_xlate: MMU 1000005280.iommu
[    5.370159] rpi-hevc-dec 1000800000.codec: bcm2712_iommu_of_xlate: MMU 1000005100.iommu
[    5.380897] rpi-hevc-dec 1000800000.codec: bcm2712_iommu_probe_device: MMU 1000005100.iommu
[    5.380908] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[    5.392026] rpi-hevc-dec 1000800000.codec: bcm2712_iommu_device_group: MMU 1000005100.iommu
[    5.394749] Bluetooth: HCI UART driver ver 2.3
[    5.394752] Bluetooth: HCI UART protocol H4 registered
[    5.394770] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    5.394857] hci_uart_bcm serial0-0: supply vbat not found, using dummy regulator
[    5.394889] hci_uart_bcm serial0-0: supply vddio not found, using dummy regulator
[    5.395204] Bluetooth: HCI UART protocol Broadcom registered
[    5.401239] usbcore: registered new interface driver brcmfmac
[    5.409326] rpi-hevc-dec 1000800000.codec: Adding to iommu group 0
[    5.446243] dw9807 11-000c: I2C write CTL fail ret = -121
[    5.451428] rpi-hevc-dec 1000800000.codec: bcm2712_iommu_attach_dev: MMU 1000005100.iommu
[    5.451440] rp1-cfe 1f00128000.csi: bcm2712_iommu_probe_device: MMU 1000005280.iommu
[    5.463216] rpi-hevc-dec 1000800000.codec: Device registered as /dev/video19
[    5.471966] rp1-cfe 1f00128000.csi: bcm2712_iommu_device_group: MMU 1000005280.iommu
[    5.472402] imx708 11-001a: failed to read chip id 708, with error -5
[    5.472541] dw9807 11-000c: I2C write STATUS address fail ret = -121
[    5.472544] dw9807 11-000c: dw9807_ramp I2C failure: -121
[    5.473704] dw9807 11-000c: I2C write STATUS address fail ret = -121
[    5.473708] dw9807 11-000c: dw9807_ramp I2C failure: -121
[    5.473837] dw9807 11-000c: I2C write CTL fail ret = -121
[    5.474195] imx708 11-001a: probe with driver imx708 failed with error -5
[    5.536226] rp1-cfe 1f00128000.csi: Adding to iommu group 2
[    5.541824] rp1-cfe 1f00128000.csi: bcm2712_iommu_attach_dev: MMU 1000005280.iommu
[    5.542183] rp1-cfe 1f00128000.csi: DW dphy Host HW v1.20
[    5.554867] rp1-cfe 1f00128000.csi: PiSP FE HW v0.1
[    5.562906] rp1-cfe 1f00128000.csi: found subdevice /axi/pcie@1000120000/rp1/i2c@80000/imx708@1a
:

@jwinarske
Copy link
Contributor Author

@IvoBCD likely related to your conf/local.conf, not this PR.

@jwinarske
Copy link
Contributor Author

jwinarske commented Sep 1, 2025

#@IvoBCD This is my configuration

conf/local.conf

MACHINE ?= "raspberrypi5"
DL_DIR ?= "/mnt/raid10/yocto/master/downloads"

INHERIT += "rm_work"

# INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
INIT_MANAGER = "systemd"

# localization
DEFAULT_TIMEZONE = "America/Los_Angeles"
# ENABLE_BINARY_LOCALE_GENERATION = "1"
# IMAGE_LINGUAS:append = " en-us en-gb es-us"
# GLIBC_GENERATE_LOCALES:append = " en_US.UTF-8 es_US.UTF-8 en_GB.UTF-8"
IMAGE_INSTALL:append = " \
    tzdata-core \
    tzdata-americas \
"

PIPEWIRE_SESSION_MANAGER = "wireplumber"

DISTRO_FEATURES:append = " systemd dbus ncurses alsa wifi bluetooth zeroconf usbhost pipewire polkit"
DISTRO_FEATURES:remove = "sysvinit usbgadget ptest xen x11 pulseaudio"

COMBINED_FEATURES += "alsa " INIT_MANAGER = "systemd"

DISTRO_FEATURES:append = " opengl"
# PACKAGECONFIG:append:pn-weston = " remoting"

DISTRO_FEATURES:append = " vulkan"
IMAGE_INSTALL:append = " \
    vulkan-tools \
    sascha-samples \
    vkcube \
    filament-vk \
"

DISTRO_FEATURES:append = " acl xattr pam selinux audit"
PREFERRED_PROVIDER_virtual/refpolicy = "refpolicy-mls"

DISTRO_FEATURES:append = " security seccomp"

LINUX_KERNEL_TYPE = "preempt-rt"
CMDLINE_DEBUG = "quiet"
DISPMANX_OFFLINE = "1"
DISABLE_OVERSCAN = "1"
DISABLE_RPI_BOOT_LOGO = "1"
DISABLE_SPLASH = "1"
IMAGE_FEATURES:remove = "splash"

ENABLE_I2C = "1"
VIDEO_CAMERA = "1"
RASPBERRYPI_CAMERA_V2 = "1"
RASPBERRYPI_CAMERA_V3 = "1"
KERNEL_MODULE_AUTOLOAD:rpi:append = " i2c-dev i2c-bcm2708"

PREFERRED_PROVIDER_ffmpeg = "ffmpeg"
PREFERRED_PROVIDER_libnss-mdns = "mdns"
PREFERRED_PROVIDER_jpeg = "libjpeg-turbo"
PREFERRED_PROVIDER_jpeg-native = "libjpeg-turbo-native"

PACKAGECONFIG:append:pn-ffmpeg = " openssl"
PACKAGECONFIG:remove:pn-flutter-engine = " debug profile"

LICENSE_FLAGS_ACCEPTED += " synaptics-killswitch commercial"

# Enable Vulkan backend
# PACKAGECONFIG:remove:pn-ivi-homescreen = " backend-wayland-egl"
PACKAGECONFIG:append:pn-ivi-homescreen = " flatpak video-player filament-view"

PACKAGECONFIG:append:pn-rpi-libcamera = " gst"

IMAGE_INSTALL:append = " \
    \
    alsa-utils \
    \
    flatpak \
    ivi-homescreen \
    dart-sdk \
    \
    toyota-connected-tcna-packages-camera-linux-camera-example \
    toyota-connected-tcna-packages-filament-scene-fluorite-examples-demo \
    toyota-connected-tcna-packages-video-player-video-player-linux-video-player-example \
    \
    gdb \
    ldd \
    strace \
    \
    rpi-libcamera \
    rpicam-apps \
    v4l-utils \
    i2c-tools \
    \
    canutils \
    \
    pipewire \
    pipewire-alsa \
    wireplumber \
"

PACKAGECONFIG:pn-elfutils-native = "debuginfod libdebuginfod"
DISTRO_FEATURES:append = " debuginfod"

/boot/config.txt tail; may require manual setup

# Enable VC4 Graphics
dtoverlay=vc4-kms-v3d,cma-512
gpu_mem=128

# Enable Sony RaspberryPi Camera(imx477)
dtoverlay=imx477,always-on
# Enable Sony RaspberryPi Camera(imx708)
# dtoverlay=imx708,always-on

# dtoverlay=imx219,always-on

-tip of tree rpi libcamera, rpi libpisp, rpicam-apps
-rename libcamera-apps to rpicam-apps; track upstream
-move libcamera-apps from dynamic-layers
-only builds single pipeline; auto is not used
-builds ipas so pipeline does not run in sandbox
-sets preference for libcamera references to use rpi-libcamera
-exclude libcamera package; prevents pipewire spa conflict

Signed-off-by: Joel Winarske <[email protected]>
@jwinarske
Copy link
Contributor Author

jwinarske commented Sep 3, 2025

Updated to exclude libcamera package. It was conflicting with rpi-libcamera. We only want rpi-libcamera when building pipewire. There is no case where we want the libcamera package. rpi-libcamera and libcamera are mutually exclusive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

imx708 camera on RPi5 libcamera-apps libcamera-vid cannot record video Raspberry 5 camera doesn't work

2 participants