Go to file
Martin Jansa 3afc9728b1
Some checks failed
Mirrors / Yocto Git Mirror (push) Has been cancelled
mesa, wayland-protocols: use separate recipe instead of bbappend
Fix
https://github.com/agherzan/meta-raspberrypi/pull/1484

Avoid llvm runtime dependency to avoid issues in builds with meta-clang:

ERROR: Multiple .bb files are due to be built which each provide llvm:
  meta-clang/recipes-devtools/clang/clang_git.bb
  oe-core/meta/recipes-devtools/llvm/llvm_18.1.6.bb
A list of tasks depending on these providers is shown and may help explain where the dependency comes from.
meta-clang/recipes-devtools/clang/clang_git.bb has unique dependees:
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_prepare_recipe_sysroot
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_package
  meta-atlas/meta-atlas/recipes-core/images/atlas-image-video.bb:do_populate_lic_deploy
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_collect_spdx_deps
  meta-atlas/meta-atlas/recipes-core/images/atlas-image-video.bb:do_populate_interfaces_deploy
oe-core/meta/recipes-devtools/llvm/llvm_18.1.6.bb has unique dependees:
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_package_qa
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_create_runtime_spdx
It could be that one recipe provides something the other doesn't and should. The following provider and runtime provider differences may be helpful.
meta-clang/recipes-devtools/clang/clang_git.bb has unique provides:
  clang
meta-clang/recipes-devtools/clang/clang_git.bb has unique rprovides:
  clang-dbg
  clang-libclang-cpp
  liblldb
  llvm-linker-tools
  ^clang-locale-.*
  clang-libllvm
  lldb
  clang-format
  clang
  clang-dev
  clang-locale
  clang-lldb-python
  libclang
  clang-src
  clang-doc
  clang-staticdev
  lldb-server
  clang-tidy
  clang-tools
oe-core/meta/recipes-devtools/llvm/llvm_18.1.6.bb has unique provides:

oe-core/meta/recipes-devtools/llvm/llvm_18.1.6.bb has unique rprovides:
  llvm
  llvm-dbg
  llvm-libllvm
  llvm-src
  llvm-dev
  llvm-liboptremarks
  llvm-locale
  llvm-llvmhello
  llvm-liblto
  llvm-staticdev
  llvm-bugpointpasses
  llvm-doc
  ^llvm-locale-.*

check_data_file_clashes: Package clang-libllvm wants to install file rootfs/usr/lib/libLLVM.so.18.1
But that file is already provided by package  * llvm

Also avoid:
  python __anonymous() {
      if d.getVar('SOC_FAMILY') == 'rpi' and d.getVar("PN") == d.getVar("BPN"):
          d.setVarFlag("SRC_URI", "sha256sum", "4d2b2a9e3e099d017dc8107bf1c334d27bb87d9e4aff19a0c8d856d17cd41ef0")
  }
This doesn't work for multilib builds where PN != BPN (e.g. lib32-wayland-protocols)

It is easier to just add separate recipes with COMPATIBLE_MACHINE
restriction instead of modifying the recipes for all MACHINEs with
bbappend and then trying to limit it to rpi MACHINEs with overrides
(e.g. why is whole recipe duplicated in wayland-protocols bbappend
doesn't make any sense to me).

breakage like this in stable branches is bad, these bbappends are hard
to avoid (without BBMASKing them and then reintroducing the necessary
part of original mesa bbappend). Now with separate recipes people can
at least opt-out by setting P_V to original scarthgap versions:

PREFERRED_VERSION_mesa:rpi = "24.%"
PREFERRED_VERSION_wayland-protocols:rpi = "1.33"

Signed-off-by: Martin Jansa <martin2.jansa@lgepartner.com>
2025-08-10 09:52:38 -07:00
.github docker-build: use --no-cache 2025-07-21 10:30:09 -07:00
classes sdcard_image-rpi.bbclass: include ${IMAGE_NAME_SUFFIX} directly in both ${IMAGE_NAME} and ${IMAGE_LINK_NAME} 2024-02-22 15:21:59 +00:00
conf Revert "rpi-default-versions: Switch default kernel to 6.12" 2025-08-08 10:56:07 -07:00
docs docs: add info on how to set different CAN interrupt pins 2024-01-26 00:39:32 +00:00
dynamic-layers python3-sense-hat: Drop PYTHON_PN 2024-02-22 13:12:22 +00:00
files/custom-licenses bcm2835-bootfiles: Clarify license conditions 2019-10-24 14:08:16 +01:00
img Use a png with transparency for balena logo 2022-07-31 02:18:20 +01:00
lib/oeqa/runtime/cases parselogs: Update the error regexps to 5.10 kernel 2021-11-23 11:32:35 +00:00
recipes-bsp rpi-bootfiles: update to latest release 2025-07-01 19:07:00 -07:00
recipes-connectivity *.patch: add Upstream-Status to all patches 2023-06-22 00:04:40 +01:00
recipes-core udev-rules-rpi: Use 99-com.rules directly from upstream 2023-05-28 10:19:52 +01:00
recipes-devtools add raspi-utils recipe to scarthgap branch 2025-07-25 10:32:15 -07:00
recipes-graphics mesa, wayland-protocols: use separate recipe instead of bbappend 2025-08-10 09:52:38 -07:00
recipes-kernel linux: Enable CONFIG_I2C_BRCMSTB for proper HDMI I2C support 2025-08-08 10:56:28 -07:00
recipes-multimedia raspberrypi-firmware: Fetch using git URI 2024-03-18 12:22:52 +00:00
recipes-sato libwpe: Migrate build workaround from oe-core 2021-11-14 15:39:24 +00:00
wic sdimage-raspberrypi.wks: increase /boot partition minimal size from 20 to 100 2024-02-23 01:24:46 +00:00
.gitignore gitignore: Ignore .pyc files 2021-03-24 10:07:46 +00:00
.readthedocs.yaml docs: Fix ReadTheDocs sphinx.configuration requirement 2025-03-21 09:22:09 +00:00
COPYING.MIT COPYING.MIT: Add license file for the metadata. 2012-04-03 20:44:03 +01:00
kas-poky-rpi.yml kas-poky-rpi.yml: renamed ABORT to HALT 2023-07-24 12:09:29 +01:00
README.md README.md: Refactor top table 2022-07-31 02:18:20 +01:00

meta-raspberrypi

Yocto BSP layer for the Raspberry Pi boards - http://www.raspberrypi.org/.

Documentation Status Matrix


Yocto Project Layer Compatible
Sponsored by:
balena.io

Description

This is the general hardware specific BSP overlay for the RaspberryPi device.

More information can be found at: http://www.raspberrypi.org/ (Official Site)

The core BSP part of meta-raspberrypi should work with different OpenEmbedded/Yocto distributions and layer stacks, such as:

  • Distro-less (only with OE-Core).
  • Yoe Disto (Video and Camera Products).
  • Yocto/Poky (main focus of testing).

Yocto Project Compatible Layer

This layer is officially approved as part of the Yocto Project Compatible Layers Program. You can find details of that on the official Yocto Project website.

Dependencies

This layer depends on:

  • URI: git://git.yoctoproject.org/poky
    • branch: master
    • revision: HEAD

Quick Start

  1. source poky/oe-init-build-env rpi-build
  2. Add this layer to bblayers.conf and the dependencies above
  3. Set MACHINE in local.conf to one of the supported boards
  4. bitbake core-image-base
  5. Use bmaptool to copy the generated .wic.bz2 file to the SD card
  6. Boot your RPI

Quick Start with kas

  1. Install kas build tool from PyPi (sudo pip3 install kas)
  2. kas build meta-raspberrypi/kas-poky-rpi.yml
  3. Use bmaptool to copy the generated .wic.bz2 file to the SD card
  4. Boot your RPI

To adjust the build configuration with specific options (I2C, SPI, ...), simply add a section as follows:

local_conf_header:
  rpi-specific: |
    ENABLE_I2C = "1"
    RPI_EXTRA_CONFIG = "dtoverlay=pi3-disable-bt"

To configure the machine, you have to update the machine variable. And the same for the distro.

For further information, you can read more at https://kas.readthedocs.io/en/latest/index.html

Contributing

You can send patches using the GitHub pull request process or/and through the Yocto mailing list. Refer to the documentation for more information.

Maintainers

  • Andrei Gherzan <andrei at gherzan.com>