meta-raspberrypi icon indicating copy to clipboard operation
meta-raspberrypi copied to clipboard

raspberrypi5 camera support and recipe rolls

Open jwinarske opened this issue 4 months ago • 8 comments

-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 https://github.com/agherzan/meta-raspberrypi/issues/1303 fixes: https://github.com/agherzan/meta-raspberrypi/issues/1331 fixes https://github.com/agherzan/meta-raspberrypi/issues/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 avatar Aug 26 '25 18:08 jwinarske

#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 avatar Aug 26 '25 22:08 jwinarske

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

PREFERRED_PROVIDER_libcamera ?= "rpi-libcamera"

jwinarske avatar Aug 26 '25 22:08 jwinarske

@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
:

IvoBCD avatar Sep 01 '25 04:09 IvoBCD

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

jwinarske avatar Sep 01 '25 13:09 jwinarske

#@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

jwinarske avatar Sep 01 '25 14:09 jwinarske

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.

jwinarske avatar Sep 03 '25 00:09 jwinarske

@jwinarske thanks for this. Could you check or revise this against master?

agherzan avatar Oct 18 '25 08:10 agherzan

@agherzan Updated and rolled rpi-libcamera, rpicam-apps, libpisp to tip of tree releases. cam, rpicam-* tested with imx477.

jwinarske avatar Oct 18 '25 16:10 jwinarske