mirror of
https://github.com/agherzan/meta-raspberrypi.git
synced 2025-12-06 06:19:11 +00:00
Compare commits
65 Commits
3afc9728b1
...
walnascar
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5c540d5447 | ||
|
|
3a39209118 | ||
|
|
1cdcc4fc24 | ||
|
|
ac7cff3702 | ||
|
|
16c5f1d0f2 | ||
|
|
5edde73409 | ||
|
|
7a699af78e | ||
|
|
1ff318c32b | ||
|
|
388c37d1f6 | ||
|
|
f20ae60d7c | ||
|
|
6465f798d4 | ||
|
|
cd2dfa02c0 | ||
|
|
ba5252c166 | ||
|
|
c467dd28de | ||
|
|
0619c2e7bf | ||
|
|
c54018e6a1 | ||
|
|
75ac34a338 | ||
|
|
1059a239ca | ||
|
|
2aa34651a7 | ||
|
|
48c571a537 | ||
|
|
dcf586cb7b | ||
|
|
54ed1f7c65 | ||
|
|
3ba4438d9d | ||
|
|
cd558f77b6 | ||
|
|
d605ed7ae7 | ||
|
|
7494a37818 | ||
|
|
923ac579c7 | ||
|
|
4f934c0ed1 | ||
|
|
810f1a2395 | ||
|
|
51f06365f3 | ||
|
|
b58e2af859 | ||
|
|
880d36b7c2 | ||
|
|
38c6930a8e | ||
|
|
6e1d838b18 | ||
|
|
97d7a6b5ec | ||
|
|
a2f8a64bc6 | ||
|
|
57fa41ae95 | ||
|
|
aea022fbc6 | ||
|
|
aea47ad612 | ||
|
|
f1fe818543 | ||
|
|
1aeda3f52a | ||
|
|
1b6de69afd | ||
|
|
91868fb83f | ||
|
|
fe96d4ddc3 | ||
|
|
d5ffe135c7 | ||
|
|
f44832bcdd | ||
|
|
e49de22873 | ||
|
|
f6c79cde63 | ||
|
|
43dada0771 | ||
|
|
2b97daf196 | ||
|
|
ec745772dc | ||
|
|
e9e5efa750 | ||
|
|
3d6873db6b | ||
|
|
633e51f4bc | ||
|
|
434ed33c90 | ||
|
|
065d5a457f | ||
|
|
cc529a811d | ||
|
|
6bf0b1874b | ||
|
|
da35d1f663 | ||
|
|
eb8ffc4e63 | ||
|
|
b7fa9b4ba1 | ||
|
|
380d2fc255 | ||
|
|
2174bfd0b2 | ||
|
|
c39c2b165e | ||
|
|
ee5ae72808 |
2
.github/actions/docker-build/action.yml
vendored
2
.github/actions/docker-build/action.yml
vendored
@@ -32,7 +32,7 @@ runs:
|
||||
n=1
|
||||
until [ "$n" -gt "$tries" ]; do
|
||||
echo "Building the docker image ${{ inputs.docker_image }}-${{ inputs.id }}... try $n..."
|
||||
if docker build . -f "${{ inputs.docker_image }}/Dockerfile" -t "${{ inputs.docker_image }}-${{ inputs.id }}"; then
|
||||
if docker build --no-cache . -f "${{ inputs.docker_image }}/Dockerfile" -t "${{ inputs.docker_image }}-${{ inputs.id }}"; then
|
||||
# This can fail if a dangling images cleaning job runs in
|
||||
# parallel. So we try this a couple of times to minimize
|
||||
# conflict. This is because while building, docker creates a
|
||||
|
||||
4
.github/workflows/compliance.yml
vendored
4
.github/workflows/compliance.yml
vendored
@@ -23,7 +23,9 @@ jobs:
|
||||
id: ${{ github.event.number }}
|
||||
- name: Do DCO check
|
||||
run: |
|
||||
docker run --rm -v "$GITHUB_WORKSPACE:/work:ro" \
|
||||
docker run --rm --security-opt apparmor=unconfined \
|
||||
--security-opt seccomp=unconfined \
|
||||
-v "$GITHUB_WORKSPACE:/work:ro" \
|
||||
--env "BASE_REF=$GITHUB_BASE_REF" \
|
||||
"dco-check-${{ github.event.number }}"
|
||||
- name: Cleanup temporary docker image
|
||||
|
||||
2
.github/workflows/docker-images/README.md
vendored
2
.github/workflows/docker-images/README.md
vendored
@@ -17,5 +17,5 @@ passing the appropriate `-f` argument.
|
||||
Here is an example for building the `dco-check` image:
|
||||
|
||||
```
|
||||
docker build . -f dco-check/Dockerfile -t dco-check
|
||||
docker build --no-cache . -f dco-check/Dockerfile -t dco-check
|
||||
```
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
FROM ubuntu:20.04
|
||||
FROM ubuntu:22.04
|
||||
|
||||
ARG DEBIAN_FRONTEND="noninteractive"
|
||||
RUN apt-get update -qq
|
||||
@@ -10,12 +10,13 @@ RUN apt-get install -y eatmydata
|
||||
|
||||
# Yocto/OE build host dependencies
|
||||
# Keep this in sync with
|
||||
# https://git.yoctoproject.org/poky/tree/documentation/poky.yaml
|
||||
# https://git.yoctoproject.org/poky/tree/documentation/poky.yaml.in
|
||||
# https://git.yoctoproject.org/poky/tree/documentation/tools/host_packages_scripts/ubuntu_essential.sh
|
||||
RUN eatmydata apt-get install -qq -y \
|
||||
gawk wget git diffstat unzip texinfo gcc build-essential chrpath \
|
||||
socat cpio python3 python3-pip python3-pexpect xz-utils debianutils \
|
||||
iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
|
||||
pylint3 xterm python3-subunit mesa-common-dev zstd liblz4-tool
|
||||
build-essential chrpath cpio debianutils diffstat file gawk gcc \
|
||||
git iputils-ping libacl1 liblz4-tool locales python3 python3-git \
|
||||
python3-jinja2 python3-pexpect python3-pip python3-subunit socat \
|
||||
texinfo unzip wget xz-utils zstd
|
||||
|
||||
# en_US.UTF-8 is required by the build system
|
||||
RUN eatmydata apt-get install -qq -y locales \
|
||||
@@ -29,6 +30,9 @@ RUN eatmydata apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
RUN echo "dash dash/sh boolean false" | debconf-set-selections \
|
||||
&& dpkg-reconfigure dash
|
||||
|
||||
# Fix the resource exhaustion problem on the build infrastructure
|
||||
RUN echo 'vm.max_map_count = 4048576' >> /etc/sysctl.conf
|
||||
|
||||
# Run under normal user called 'ci'
|
||||
RUN useradd --create-home --uid 1000 --shell /usr/bin/bash ci
|
||||
USER ci
|
||||
|
||||
4
.github/workflows/yocto-builds.yml
vendored
4
.github/workflows/yocto-builds.yml
vendored
@@ -66,7 +66,8 @@ jobs:
|
||||
if: steps.changed-files-specific.outputs.any_changed == 'true'
|
||||
- name: Build the image
|
||||
run: |
|
||||
docker run --rm \
|
||||
docker run --rm --security-opt apparmor=unconfined \
|
||||
--security-opt seccomp=unconfined \
|
||||
-v "$GITHUB_WORKSPACE:/work:ro" \
|
||||
-v "$DL_DIR:$DL_DIR:rw" \
|
||||
-v "$SSTATE_DIR:$SSTATE_DIR:rw" \
|
||||
@@ -76,6 +77,7 @@ jobs:
|
||||
--env "IMAGE=${{ matrix.image }}" \
|
||||
--env "DL_DIR=$DL_DIR" \
|
||||
--env "SSTATE_DIR=$SSTATE_DIR" \
|
||||
--ulimit "nofile=1024:1048576" \
|
||||
"yocto-builder-${{ github.event.number }}" \
|
||||
/entrypoint-build.sh
|
||||
if: steps.changed-files-specific.outputs.any_changed == 'true'
|
||||
|
||||
3
.github/workflows/yocto-layer.yml
vendored
3
.github/workflows/yocto-layer.yml
vendored
@@ -42,7 +42,8 @@ jobs:
|
||||
if: steps.changed-files-specific.outputs.any_changed == 'true'
|
||||
- name: Run yocto-check-layer
|
||||
run: |
|
||||
docker run --rm -v "$GITHUB_WORKSPACE:/work:ro" \
|
||||
docker run --rm --security-opt apparmor=unconfined \
|
||||
-v "$GITHUB_WORKSPACE:/work:ro" \
|
||||
--env "BASE_REF=$GITHUB_BASE_REF" \
|
||||
"yocto-builder-${{ github.event.number }}" \
|
||||
/entrypoint-yocto-check-layer.sh
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
version: 2
|
||||
|
||||
sphinx:
|
||||
configuration: docs/conf.py
|
||||
build:
|
||||
os: ubuntu-22.04
|
||||
tools:
|
||||
|
||||
@@ -48,7 +48,7 @@ OpenEmbedded/Yocto distributions and layer stacks, such as:
|
||||
|
||||
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](https://www.yoctoproject.org/software-overview/layers/?searchTerm=meta-raspberrypi).
|
||||
[website](https://www.yoctoproject.org/development/yocto-project-compatible-layers/).
|
||||
|
||||
## Dependencies
|
||||
|
||||
@@ -81,7 +81,7 @@ a section as follows:
|
||||
local_conf_header:
|
||||
rpi-specific: |
|
||||
ENABLE_I2C = "1"
|
||||
RPI_EXTRA_CONFIG = "dtoverlay=pi3-disable-bt"
|
||||
RPI_EXTRA_CONFIG = "dtoverlay=disable-bt"
|
||||
```
|
||||
|
||||
To configure the machine, you have to update the `machine` variable.
|
||||
|
||||
20
SECURITY.md
Normal file
20
SECURITY.md
Normal file
@@ -0,0 +1,20 @@
|
||||
How to Report a Potential Vulnerability?
|
||||
========================================
|
||||
|
||||
If you would like to report a public issue (for example, one with a released
|
||||
CVE number), please report it via GitHub issues:
|
||||
|
||||
https://github.com/agherzan/meta-raspberrypi/issues/new/choose
|
||||
|
||||
If you are dealing with a not-yet released or urgent issue, please send a
|
||||
message to one of the maintainers listed in the [README.md](https://github.com/agherzan/meta-raspberrypi/blob/master/README.md). Include as many
|
||||
details as possible:
|
||||
- the layer or software module affected
|
||||
- the recipe and its version
|
||||
- any example code, if available
|
||||
|
||||
Branches maintained with security fixes
|
||||
---------------------------------------
|
||||
|
||||
See https://wiki.yoctoproject.org/wiki/Releases for the list of current
|
||||
releases. We only accept patches for the LTS releases and the master branch.
|
||||
@@ -9,11 +9,8 @@ BBFILE_COLLECTIONS += "raspberrypi"
|
||||
BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_raspberrypi = "9"
|
||||
|
||||
LAYERSERIES_COMPAT_raspberrypi = "nanbield scarthgap"
|
||||
LAYERSERIES_COMPAT_raspberrypi = "styhead walnascar"
|
||||
LAYERDEPENDS_raspberrypi = "core"
|
||||
# Recommended for u-boot support for raspberrypi5
|
||||
# https://git.yoctoproject.org/meta-lts-mixins 'scarthgap/u-boot' branch
|
||||
LAYERRECOMMENDS_raspberrypi = "lts-u-boot-mixin"
|
||||
|
||||
# Additional license directories.
|
||||
LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
|
||||
@@ -23,11 +20,6 @@ LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
|
||||
#
|
||||
# The .bbappend and .bb files are included if the respective layer
|
||||
# collection is available.
|
||||
BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bbappend' % layer \
|
||||
for layer in BBFILE_COLLECTIONS.split())}"
|
||||
BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bb' % layer \
|
||||
for layer in BBFILE_COLLECTIONS.split())}"
|
||||
|
||||
BBFILES_DYNAMIC += " \
|
||||
openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bb \
|
||||
openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bbappend \
|
||||
@@ -37,6 +29,8 @@ BBFILES_DYNAMIC += " \
|
||||
qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bbappend \
|
||||
multimedia-layer:${LAYERDIR}/dynamic-layers/multimedia-layer/*/*/*.bb \
|
||||
multimedia-layer:${LAYERDIR}/dynamic-layers/multimedia-layer/*/*/*.bbappend \
|
||||
meta-python:${LAYERDIR}/dynamic-layers/meta-python/*/*/*.bb \
|
||||
meta-python:${LAYERDIR}/dynamic-layers/meta-python/*/*/*.bbappend \
|
||||
"
|
||||
|
||||
DEFAULT_TEST_SUITES:remove:rpi = "parselogs"
|
||||
|
||||
@@ -18,7 +18,9 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
|
||||
overlays/overlay_map.dtb \
|
||||
overlays/at86rf233.dtbo \
|
||||
overlays/disable-bt.dtbo \
|
||||
overlays/disable-bt-pi5.dtbo \
|
||||
overlays/disable-wifi.dtbo \
|
||||
overlays/disable-wifi-pi5.dtbo \
|
||||
overlays/dwc2.dtbo \
|
||||
overlays/gpio-ir.dtbo \
|
||||
overlays/gpio-ir-tx.dtbo \
|
||||
@@ -58,15 +60,28 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
|
||||
overlays/pps-gpio.dtbo \
|
||||
overlays/rpi-ft5406.dtbo \
|
||||
overlays/rpi-poe.dtbo \
|
||||
overlays/uart0.dtbo \
|
||||
overlays/uart0-pi5.dtbo \
|
||||
overlays/uart1.dtbo \
|
||||
overlays/uart1-pi5.dtbo \
|
||||
overlays/uart2.dtbo \
|
||||
overlays/uart2-pi5.dtbo \
|
||||
overlays/uart3.dtbo \
|
||||
overlays/uart3-pi5.dtbo \
|
||||
overlays/uart4.dtbo \
|
||||
overlays/uart4-pi5.dtbo \
|
||||
overlays/uart5.dtbo \
|
||||
overlays/vc4-fkms-v3d.dtbo \
|
||||
overlays/vc4-fkms-v3d-pi4.dtbo \
|
||||
overlays/vc4-kms-v3d.dtbo \
|
||||
overlays/vc4-kms-v3d-pi4.dtbo \
|
||||
overlays/vc4-kms-v3d-pi5.dtbo \
|
||||
overlays/vc4-kms-dsi-7inch.dtbo \
|
||||
overlays/vc4-kms-dsi-ili9881-7inch.dtbo \
|
||||
overlays/w1-gpio.dtbo \
|
||||
overlays/w1-gpio-pullup.dtbo \
|
||||
overlays/wm8960-soundcard.dtbo \
|
||||
overlays/bcm2712d0.dtbo \
|
||||
"
|
||||
|
||||
RPI_KERNEL_DEVICETREE ?= " \
|
||||
@@ -86,7 +101,6 @@ RPI_KERNEL_DEVICETREE ?= " \
|
||||
broadcom/bcm2710-rpi-cm3.dtb \
|
||||
broadcom/bcm2711-rpi-cm4.dtb \
|
||||
broadcom/bcm2711-rpi-cm4s.dtb \
|
||||
broadcom/bcm2712-rpi-5-b.dtb \
|
||||
"
|
||||
|
||||
KERNEL_DEVICETREE ??= " \
|
||||
|
||||
@@ -7,10 +7,6 @@ PREFERRED_PROVIDER_virtual/libgles2 ?= "${@bb.utils.contains("MACHINE_FEATURES",
|
||||
PREFERRED_PROVIDER_virtual/libgl ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "mesa-gl", d)}"
|
||||
PREFERRED_PROVIDER_virtual/mesa ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "mesa-gl", d)}"
|
||||
PREFERRED_PROVIDER_virtual/libgbm ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "mesa-gl", d)}"
|
||||
PREFERRED_PROVIDER_vlc ?= "rpidistro-vlc"
|
||||
PREFERRED_PROVIDER_ffmpeg ?= "rpidistro-ffmpeg"
|
||||
PREFERRED_PROVIDER_libav ?= "rpidistro-ffmpeg"
|
||||
PREFERRED_PROVIDER_libpostproc ?= "rpidistro-ffmpeg"
|
||||
PREFERRED_PROVIDER_jpeg ?= "jpeg"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/libomxil ?= "userland"
|
||||
|
||||
@@ -33,6 +33,10 @@ RPI_KERNEL_DEVICETREE = " \
|
||||
broadcom/bcm2711-rpi-cm4.dtb \
|
||||
broadcom/bcm2711-rpi-cm4s.dtb \
|
||||
broadcom/bcm2712-rpi-5-b.dtb \
|
||||
broadcom/bcm2712-rpi-cm5-cm5io.dtb \
|
||||
broadcom/bcm2712-rpi-cm5-cm4io.dtb \
|
||||
broadcom/bcm2712-rpi-cm5l-cm5io.dtb \
|
||||
broadcom/bcm2712-rpi-cm5l-cm4io.dtb \
|
||||
"
|
||||
|
||||
SDIMG_KERNELIMAGE ?= "kernel8.img"
|
||||
|
||||
@@ -15,6 +15,10 @@ MACHINE_EXTRA_RRECOMMENDS += "\
|
||||
|
||||
RPI_KERNEL_DEVICETREE = " \
|
||||
broadcom/bcm2712-rpi-5-b.dtb \
|
||||
broadcom/bcm2712-rpi-cm5-cm5io.dtb \
|
||||
broadcom/bcm2712-rpi-cm5-cm4io.dtb \
|
||||
broadcom/bcm2712-rpi-cm5l-cm5io.dtb \
|
||||
broadcom/bcm2712-rpi-cm5l-cm4io.dtb \
|
||||
"
|
||||
|
||||
SDIMG_KERNELIMAGE ?= "kernel_2712.img"
|
||||
|
||||
@@ -178,6 +178,7 @@ the following boards:
|
||||
* Raspberry Pi 3 64-bit
|
||||
* Raspberry Pi 4 32-bit
|
||||
* Raspberry Pi 4 64-bit
|
||||
|
||||
It means that, for those boards, `RPI_USE_U_BOOT = "1"` is not compatible with
|
||||
`ENABLE_UART = "0"`.
|
||||
|
||||
@@ -487,14 +488,15 @@ MMAL is not enabled by default. To enable it add
|
||||
|
||||
DISABLE_VC4GRAPHICS = "1"
|
||||
|
||||
to `local.conf`. Adding `vlc` to `IMAGE_INSTALL` will then default to building the Raspberry
|
||||
Pi's Distro implementation of VLC with HW accelerated video decode through MMAL into the system
|
||||
image. It also defaults to building VLC with Raspberry PI's Distro implementation of ffmpeg. The
|
||||
oe-core implementation of ffmpeg and the meta-openembedded/meta-multimedia implementation of VLC
|
||||
can however be selected via:
|
||||
to `local.conf`. Adding `vlc` to `IMAGE_INSTALL` will then default to building the oe-core
|
||||
implementation of ffmpeg and the meta-openembedded/meta-multimedia implementation of VLC.
|
||||
The Raspberry Pi's Distro implementation of VLC with HW accelerated video decode through
|
||||
MMAL and the Raspberry PI's Distro implementation of ffmpeg. Can however be selected via:
|
||||
|
||||
PREFERRED_PROVIDER_ffmpeg = "ffmpeg"
|
||||
PREFERRED_PROVIDER_vlc = "vlc"
|
||||
PREFERRED_PROVIDER_vlc = "rpidistro-vlc"
|
||||
PREFERRED_PROVIDER_ffmpeg = "rpidistro-ffmpeg"
|
||||
PREFERRED_PROVIDER_libav = "rpidistro-ffmpeg"
|
||||
PREFERRED_PROVIDER_libpostproc = "rpidistro-ffmpeg"
|
||||
|
||||
Usage example: Start VLC with mmal_vout plugin and without an active display server.
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
* raspberrypi3-64 (64 bit kernel & userspace)
|
||||
* raspberrypi4
|
||||
* raspberrypi4-64 (64 bit kernel & userspace)
|
||||
* raspberrypi5
|
||||
* raspberrypi-cm (dummy alias for raspberrypi)
|
||||
* raspberrypi-cm3
|
||||
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
PACKAGECONFIG[raspberrypi] = "-Dpipelines=rpi/vc4 -Dipas=rpi/vc4 -Dcpp_args=-Wno-unaligned-access"
|
||||
PACKAGECONFIG[raspberrypi] = "-Dpipelines=rpi/vc4 -Dipas=rpi/vc4"
|
||||
PACKAGECONFIG:append:rpi = " raspberrypi"
|
||||
CXXFLAGS:append:rpi = " -Wno-unaligned-access "
|
||||
|
||||
@@ -12,7 +12,7 @@ repos:
|
||||
poky:
|
||||
url: https://git.yoctoproject.org/git/poky
|
||||
path: layers/poky
|
||||
refspec: master
|
||||
branch: master
|
||||
layers:
|
||||
meta:
|
||||
meta-poky:
|
||||
@@ -21,7 +21,7 @@ repos:
|
||||
meta-openembedded:
|
||||
url: http://git.openembedded.org/meta-openembedded
|
||||
path: layers/meta-openembedded
|
||||
refspec: master
|
||||
branch: master
|
||||
layers:
|
||||
meta-oe:
|
||||
meta-python:
|
||||
@@ -31,7 +31,7 @@ repos:
|
||||
meta-qt5:
|
||||
url: https://github.com/meta-qt5/meta-qt5/
|
||||
path: layers/meta-qt5
|
||||
refspec: master
|
||||
branch: master
|
||||
|
||||
bblayers_conf_header:
|
||||
standard: |
|
||||
@@ -48,7 +48,7 @@ local_conf_header:
|
||||
USER_CLASSES = "buildstats"
|
||||
PATCHRESOLVE = "noop"
|
||||
debug-tweaks: |
|
||||
EXTRA_IMAGE_FEATURES = "debug-tweaks"
|
||||
IMAGE_FEATURES += "empty-root-password allow-empty-password allow-root-login post-install-logging"
|
||||
diskmon: |
|
||||
BB_DISKMON_DIRS = "\
|
||||
STOPTASKS,${TMPDIR},1G,100K \
|
||||
@@ -59,3 +59,7 @@ local_conf_header:
|
||||
HALT,${DL_DIR},100M,1K \
|
||||
HALT,${SSTATE_DIR},100M,1K \
|
||||
HALT,/tmp,10M,1K"
|
||||
license: |
|
||||
# Uncomment next line to allow the license
|
||||
# See: linux-firmware-rpidistro in docs/ipcompliance.md
|
||||
#LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
|
||||
|
||||
@@ -11,14 +11,14 @@ COMPATIBLE_MACHINE = "^rpi$"
|
||||
|
||||
S = "${RPITOOLS_S}/armstubs"
|
||||
|
||||
export CC7="${CC}"
|
||||
export LD7="${LD}"
|
||||
export OBJCOPY7="${OBJCOPY}"
|
||||
export OBJDUMP7="${OBJDUMP}"
|
||||
export CC8="${CC}"
|
||||
export LD8="${LD}"
|
||||
export OBJCOPY8="${OBJCOPY}"
|
||||
export OBJDUMP8="${OBJDUMP} -maarch64"
|
||||
export CC7 = "${CC}"
|
||||
export LD7 = "${LD}"
|
||||
export OBJCOPY7 = "${OBJCOPY}"
|
||||
export OBJDUMP7 = "${OBJDUMP}"
|
||||
export CC8 = "${CC}"
|
||||
export LD8 = "${LD}"
|
||||
export OBJCOPY8 = "${OBJCOPY}"
|
||||
export OBJDUMP8 = "${OBJDUMP} -maarch64"
|
||||
|
||||
do_compile() {
|
||||
[ -z "${ARMSTUB}" ] && bbfatal "No ARMSTUB defined for your machine."
|
||||
|
||||
@@ -5,14 +5,14 @@ LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=c403841ff2837657b2ed8e5bb474ac8d
|
||||
|
||||
inherit deploy nopackages
|
||||
|
||||
RPIFW_DATE ?= "20240319"
|
||||
SRCREV = "9f24f4bc2bdd07ffd158cfbb4bce88a2efc4c1f5"
|
||||
RPIFW_DATE ?= "20250430"
|
||||
SRCREV = "bc7f439c234e19371115e07b57c366df59cc1bc7"
|
||||
SHORTREV = "${@d.getVar("SRCREV", False).__str__()[:7]}"
|
||||
RPIFW_SRC_URI ?= "https://api.github.com/repos/raspberrypi/firmware/tarball/9f24f4bc2bdd07ffd158cfbb4bce88a2efc4c1f5;downloadfilename=raspberrypi-firmware-${SHORTREV}.tar.gz"
|
||||
RPIFW_SRC_URI ?= "https://api.github.com/repos/raspberrypi/firmware/tarball/${SRCREV};downloadfilename=raspberrypi-firmware-${SHORTREV}.tar.gz"
|
||||
RPIFW_S ?= "${WORKDIR}/raspberrypi-firmware-${SHORTREV}"
|
||||
|
||||
SRC_URI = "${RPIFW_SRC_URI}"
|
||||
SRC_URI[sha256sum] = "4b436f8946b139c6a1202375ef55d4848e3bcd8c1a9cb47000e06d7ecec828f7"
|
||||
SRC_URI[sha256sum] = "2c027debbef53c86c9ff9197d056d501b95f6ad214ad4db00a8a59b947574eb1"
|
||||
|
||||
PV = "${RPIFW_DATE}"
|
||||
|
||||
|
||||
@@ -18,13 +18,13 @@ PR = "r5"
|
||||
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
|
||||
PITFT22="${@bb.utils.contains("MACHINE_FEATURES", "pitft22", "1", "0", d)}"
|
||||
PITFT28r="${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}"
|
||||
PITFT28c="${@bb.utils.contains("MACHINE_FEATURES", "pitft28c", "1", "0", d)}"
|
||||
PITFT35r="${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}"
|
||||
PITFT = "${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
|
||||
PITFT22 = "${@bb.utils.contains("MACHINE_FEATURES", "pitft22", "1", "0", d)}"
|
||||
PITFT28r = "${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}"
|
||||
PITFT28c = "${@bb.utils.contains("MACHINE_FEATURES", "pitft28c", "1", "0", d)}"
|
||||
PITFT35r = "${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}"
|
||||
|
||||
VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
|
||||
VC4GRAPHICS = "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
|
||||
VC4DTBO ?= "vc4-kms-v3d"
|
||||
GPIO_IR ?= "18"
|
||||
GPIO_IR_TX ?= "17"
|
||||
@@ -35,7 +35,7 @@ CAN1_INTERRUPT_PIN ?= "24"
|
||||
|
||||
ENABLE_UART ??= ""
|
||||
|
||||
WM8960="${@bb.utils.contains("MACHINE_FEATURES", "wm8960", "1", "0", d)}"
|
||||
WM8960 = "${@bb.utils.contains("MACHINE_FEATURES", "wm8960", "1", "0", d)}"
|
||||
|
||||
GPIO_SHUTDOWN_PIN ??= ""
|
||||
|
||||
|
||||
@@ -19,8 +19,8 @@ do_install() {
|
||||
${D}${sysconfdir}/inittab.d \
|
||||
${D}${sysconfdir}/init.d
|
||||
|
||||
install -m 0755 ${WORKDIR}/gpio-shutdown-keymap.sh ${D}${sysconfdir}/init.d/
|
||||
install -m 0755 ${WORKDIR}/bind_gpio_shutdown.tab ${D}${sysconfdir}/inittab.d/
|
||||
install -m 0755 ${UNPACKDIR}/gpio-shutdown-keymap.sh ${D}${sysconfdir}/init.d/
|
||||
install -m 0755 ${UNPACKDIR}/bind_gpio_shutdown.tab ${D}${sysconfdir}/inittab.d/
|
||||
elif ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
|
||||
# Systemd init does not require any configuration.
|
||||
# Note: cannot have an empty branch, hence the redundant dir install.
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
SUMMARY = "Installation scripts and binaries for the Raspberry Pi 4 EEPROM"
|
||||
DESCRIPTION = "This repository contains the rpi4 bootloader and scripts \
|
||||
DESCRIPTION = "This repository contains the rpi4/rpi5 bootloader and scripts \
|
||||
for updating it in the spi eeprom"
|
||||
LICENSE = "BSD-3-Clause & Broadcom-RPi"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=f546ed4f47e9d4c1fe954ecc9d3ef4f3"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=a6c5149578a16272119f3f9c13d6549b"
|
||||
|
||||
SRC_URI = " \
|
||||
git://github.com/raspberrypi/rpi-eeprom.git;protocol=https;branch=master \
|
||||
"
|
||||
|
||||
SRCREV = "36e58db5c2a2656e553441f4f48f32227809105d"
|
||||
PV = "v.2024.02.16-2712"
|
||||
SRCREV = "1bd0a1052b2e74d7af04de18d30b5edb12d8a423"
|
||||
PV = "v2025.03.10-2712"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
|
||||
@@ -15,12 +15,15 @@ do_compile() {
|
||||
sed -e 's/@@KERNEL_IMAGETYPE@@/${KERNEL_IMAGETYPE}/' \
|
||||
-e 's/@@KERNEL_BOOTCMD@@/${KERNEL_BOOTCMD}/' \
|
||||
-e 's/@@BOOT_MEDIA@@/${BOOT_MEDIA}/' \
|
||||
"${WORKDIR}/boot.cmd.in" > "${WORKDIR}/boot.cmd"
|
||||
"${UNPACKDIR}/boot.cmd.in" > "${WORKDIR}/boot.cmd"
|
||||
mkimage -A ${UBOOT_ARCH} -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr
|
||||
}
|
||||
|
||||
inherit kernel-arch deploy nopackages
|
||||
|
||||
S = "${WORKDIR}/sources"
|
||||
UNPACKDIR = "${S}"
|
||||
|
||||
do_deploy() {
|
||||
install -d ${DEPLOYDIR}
|
||||
install -m 0644 boot.scr ${DEPLOYDIR}
|
||||
|
||||
1
recipes-bsp/u-boot/files/maxsize.cfg
Normal file
1
recipes-bsp/u-boot/files/maxsize.cfg
Normal file
@@ -0,0 +1 @@
|
||||
CONFIG_SYS_BOOTM_LEN=0x1000000
|
||||
@@ -5,10 +5,11 @@ SRC_URI:append:rpi = " \
|
||||
"
|
||||
|
||||
SRC_URI:append:rpi = " file://0001-rpi-always-set-fdt_addr-with-firmware-provided-FDT-address.patch"
|
||||
SRC_URI:append:raspberrypi4 = " file://maxsize.cfg"
|
||||
|
||||
DEPENDS:append:rpi = " u-boot-default-script"
|
||||
|
||||
do_install:append:rpi () {
|
||||
install -d ${D}${sysconfdir}
|
||||
install -m 0644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
|
||||
install -m 0644 ${UNPACKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ SRC_URI:append:rpi = " file://framebuf.conf"
|
||||
|
||||
do_install:append:rpi() {
|
||||
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
|
||||
install -Dm 0644 ${WORKDIR}/framebuf.conf ${D}${systemd_system_unitdir}/psplash-start.service.d/framebuf.conf
|
||||
install -Dm 0644 ${UNPACKDIR}/framebuf.conf ${D}${systemd_system_unitdir}/psplash-start.service.d/framebuf.conf
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -15,5 +15,5 @@ INHIBIT_DEFAULT_DEPS = "1"
|
||||
do_install () {
|
||||
install -d ${D}${sysconfdir}/udev/rules.d
|
||||
install -m 0644 ${S}/etc.armhf/udev/rules.d/99-com.rules ${D}${sysconfdir}/udev/rules.d/
|
||||
install -m 0644 ${WORKDIR}/can.rules ${D}${sysconfdir}/udev/rules.d/
|
||||
install -m 0644 ${UNPACKDIR}/can.rules ${D}${sysconfdir}/udev/rules.d/
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${base_libdir}/udev/rules.d
|
||||
install -m 644 ${WORKDIR}/80-udisks-rpi.rules ${D}${base_libdir}/udev/rules.d
|
||||
install -m 644 ${UNPACKDIR}/80-udisks-rpi.rules ${D}${base_libdir}/udev/rules.d
|
||||
}
|
||||
|
||||
FILES:${PN} = "${base_libdir}/udev/rules.d"
|
||||
|
||||
22
recipes-devtools/raspi-utils/raspi-utils_git.bb
Normal file
22
recipes-devtools/raspi-utils/raspi-utils_git.bb
Normal file
@@ -0,0 +1,22 @@
|
||||
SUMMARY = "A collection of scripts and simple applications"
|
||||
LICENSE = "BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://LICENCE;md5=4c01239e5c3a3d133858dedacdbca63c"
|
||||
|
||||
DEPENDS:append = " dtc"
|
||||
|
||||
PV = "1.0+git"
|
||||
|
||||
SRC_URI = "git://github.com/raspberrypi/utils;protocol=https;branch=master"
|
||||
|
||||
SRCREV = "b9c63214c535d7df2b0fa6743b7b3e508363c25a"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
FILES:${PN}:append = " \
|
||||
${datadir}/bash-completion/completions/pinctrl \
|
||||
"
|
||||
|
||||
OECMAKE_TARGET_COMPILE = "pinctrl/all dtmerge/all"
|
||||
OECMAKE_TARGET_INSTALL = "pinctrl/install dtmerge/install"
|
||||
|
||||
inherit cmake
|
||||
@@ -0,0 +1,29 @@
|
||||
From: Markus Volk <f_l_k@t-online.de>
|
||||
Date: Sun, 19 Mai 2025 15:34:46 +0100
|
||||
Subject: [PATCH] dont build clover frontend
|
||||
|
||||
The clover frontend is deprecated and is always built with opencl, even if
|
||||
using rusticl. Additionally it adds a reproducibility issue.
|
||||
|
||||
Upstream-Status: Inappropriate [oe-specific]
|
||||
Signed-off-by: Markus Volk <f_l_k@t-online.de>
|
||||
|
||||
--- a/src/gallium/meson.build 2025-05-07 18:35:10.000000000 +0200
|
||||
+++ b/src/gallium/meson.build 2025-05-18 17:05:23.677694272 +0200
|
||||
@@ -195,15 +195,11 @@
|
||||
else
|
||||
driver_d3d12 = declare_dependency()
|
||||
endif
|
||||
-if with_gallium_clover or with_tests
|
||||
+if with_tests
|
||||
# At the moment, clover and gallium/tests are the only two consumers
|
||||
# for pipe-loader
|
||||
subdir('targets/pipe-loader')
|
||||
endif
|
||||
-if with_gallium_clover
|
||||
- subdir('frontends/clover')
|
||||
- subdir('targets/opencl')
|
||||
-endif
|
||||
if with_gallium_rusticl
|
||||
subdir('frontends/rusticl')
|
||||
subdir('targets/rusticl')
|
||||
@@ -0,0 +1,39 @@
|
||||
From 531c6696d42953cd642dea7bf70153285c7949ae Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= <kai@dev.carbon-project.org>
|
||||
Date: Tue, 6 May 2025 14:36:57 +0200
|
||||
Subject: [PATCH] fix(FTBFS): clc: switch to new non-owned `TargetOptions` for
|
||||
LLVM 21
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Upstream hid the `TargetOptions` in commit 985410f87f2d19910a8d327527fd30062b042b63
|
||||
|
||||
Use the new `getTargetOpts()` to obtain the `TargetOptions` for
|
||||
`setTarget()`.
|
||||
|
||||
Upstream-Status: Backport [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34835]
|
||||
|
||||
Signed-off-by: Kai Wasserbäch <kai@dev.carbon-project.org>
|
||||
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13079
|
||||
Reference: https://github.com/llvm/llvm-project/commit/985410f87f2d19910a8d327527fd30062b042b63
|
||||
Reviewed-by: Karol Herbst <kherbst@redhat.com>
|
||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34835>
|
||||
---
|
||||
src/compiler/clc/clc_helpers.cpp | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
--- a/src/compiler/clc/clc_helpers.cpp
|
||||
+++ b/src/compiler/clc/clc_helpers.cpp
|
||||
@@ -874,7 +874,11 @@ clc_compile_to_llvm_module(LLVMContext &
|
||||
diag_opts));
|
||||
|
||||
c->setTarget(clang::TargetInfo::CreateTargetInfo(
|
||||
+#if LLVM_VERSION_MAJOR >= 21
|
||||
+ c->getDiagnostics(), c->getInvocation().getTargetOpts()));
|
||||
+#else
|
||||
c->getDiagnostics(), c->getInvocation().TargetOpts));
|
||||
+#endif
|
||||
|
||||
c->getFrontendOpts().ProgramAction = clang::frontend::EmitLLVMOnly;
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
From 027ac36756cc75eea9ed4fee135a351af30b35fd Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
|
||||
Date: Tue, 16 Jul 2024 12:32:47 +0300
|
||||
Subject: [PATCH] freedreno: don't encode build path into binaries
|
||||
|
||||
Encoding build-specific path into installed binaries is generally
|
||||
frowned upon. It harms the reproducibility of the build and e.g.
|
||||
OpenEmbedded now considers that to be an error.
|
||||
|
||||
Instead of hardcoding rnn_src_path into the RNN_DEF_PATH define specify
|
||||
it manually when running the tests.
|
||||
|
||||
Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30206]
|
||||
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
|
||||
---
|
||||
src/freedreno/afuc/meson.build | 4 ++++
|
||||
src/freedreno/decode/meson.build | 4 +++-
|
||||
src/freedreno/meson.build | 2 +-
|
||||
3 files changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/freedreno/afuc/meson.build b/src/freedreno/afuc/meson.build
|
||||
index bb7cebf5a748..351cc31ef2de 100644
|
||||
--- a/src/freedreno/afuc/meson.build
|
||||
+++ b/src/freedreno/afuc/meson.build
|
||||
@@ -56,10 +56,12 @@ if with_tests
|
||||
asm_fw = custom_target('afuc_test.fw',
|
||||
output: 'afuc_test.fw',
|
||||
command: [asm, files('../.gitlab-ci/traces/afuc_test.asm'), '@OUTPUT@'],
|
||||
+ env: {'RNN_PATH': rnn_src_path},
|
||||
)
|
||||
asm_fw_a7xx = custom_target('afuc_test_a7xx.fw',
|
||||
output: 'afuc_test_a7xx.fw',
|
||||
command: [asm, files('../.gitlab-ci/traces/afuc_test_a7xx.asm'), '@OUTPUT@'],
|
||||
+ env: {'RNN_PATH': rnn_src_path},
|
||||
)
|
||||
test('afuc-asm',
|
||||
diff,
|
||||
@@ -120,11 +122,13 @@ if cc.sizeof('size_t') > 4
|
||||
disasm_fw = custom_target('afuc_test.asm',
|
||||
output: 'afuc_test.asm',
|
||||
command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test.fw')],
|
||||
+ env: {'RNN_PATH': rnn_src_path},
|
||||
capture: true
|
||||
)
|
||||
disasm_fw_a7xx = custom_target('afuc_test_a7xx.asm',
|
||||
output: 'afuc_test_a7xx.asm',
|
||||
command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test_a7xx.fw')],
|
||||
+ env: {'RNN_PATH': rnn_src_path},
|
||||
capture: true
|
||||
)
|
||||
test('afuc-disasm',
|
||||
diff --git a/src/freedreno/decode/meson.build b/src/freedreno/decode/meson.build
|
||||
index 469eeb4eb597..dfa1c12d0d9f 100644
|
||||
--- a/src/freedreno/decode/meson.build
|
||||
+++ b/src/freedreno/decode/meson.build
|
||||
@@ -194,6 +194,7 @@ if dep_lua.found() and dep_libarchive.found()
|
||||
log = custom_target(name + '.log',
|
||||
output: name + '.log',
|
||||
command: [cffdump, '--unit-test', args, files('../.gitlab-ci/traces/' + name + '.rd.gz')],
|
||||
+ env: {'RNN_PATH': rnn_src_path},
|
||||
capture: true,
|
||||
)
|
||||
test('cffdump-' + name,
|
||||
@@ -247,7 +248,8 @@ if with_tests
|
||||
output: name + '.log',
|
||||
command: [crashdec, args, files('../.gitlab-ci/traces/' + name + '.devcore')],
|
||||
capture: true,
|
||||
- env: {'GALLIUM_DUMP_CPU': 'false'},
|
||||
+ env: {'GALLIUM_DUMP_CPU': 'false',
|
||||
+ 'RNN_PATH': rnn_src_path},
|
||||
)
|
||||
|
||||
test('crashdec-' + name,
|
||||
diff --git a/src/freedreno/meson.build b/src/freedreno/meson.build
|
||||
index 98e49b8fcf0e..145e72597eb9 100644
|
||||
--- a/src/freedreno/meson.build
|
||||
+++ b/src/freedreno/meson.build
|
||||
@@ -6,7 +6,7 @@ inc_freedreno_rnn = include_directories('rnn')
|
||||
|
||||
rnn_src_path = dir_source_root + '/src/freedreno/registers'
|
||||
rnn_install_path = get_option('datadir') + '/freedreno/registers'
|
||||
-rnn_path = rnn_src_path + ':' + get_option('prefix') + '/' + rnn_install_path
|
||||
+rnn_path = get_option('prefix') + '/' + rnn_install_path
|
||||
|
||||
dep_libarchive = dependency('libarchive', allow_fallback: true, required: false)
|
||||
dep_libxml2 = dependency('libxml-2.0', allow_fallback: true, required: false)
|
||||
diff --git a/src/freedreno/registers/gen_header.py b/src/freedreno/registers/gen_header.py
|
||||
--- a/src/freedreno/registers/gen_header.py
|
||||
+++ b/src/freedreno/registers/gen_header.py
|
||||
@@ -885,13 +885,14 @@ The rules-ng-ng source files this header
|
||||
""")
|
||||
maxlen = 0
|
||||
for filepath in p.xml_files:
|
||||
- maxlen = max(maxlen, len(filepath))
|
||||
+ maxlen = max(maxlen, len(os.path.basename(filepath)))
|
||||
for filepath in p.xml_files:
|
||||
- pad = " " * (maxlen - len(filepath))
|
||||
+ filename = os.path.basename(filepath)
|
||||
+ pad = " " * (maxlen - len(filename))
|
||||
filesize = str(os.path.getsize(filepath))
|
||||
filesize = " " * (7 - len(filesize)) + filesize
|
||||
filetime = time.ctime(os.path.getmtime(filepath))
|
||||
- print("- " + filepath + pad + " (" + filesize + " bytes, from " + filetime + ")")
|
||||
+ print("- " + filename + pad + " (" + filesize + " bytes, from " + filetime + ")")
|
||||
if p.copyright_year:
|
||||
current_year = str(datetime.date.today().year)
|
||||
print()
|
||||
---
|
||||
2.39.2
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
From 02cc21800fe29f566add525e63f619c0536d6e7b Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 13 Jan 2020 15:23:47 -0800
|
||||
Subject: [PATCH] meson misdetects 64bit atomics on mips/clang
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
src/util/u_atomic.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/util/u_atomic.c b/src/util/u_atomic.c
|
||||
index 5a5eab4..e499516 100644
|
||||
--- a/src/util/u_atomic.c
|
||||
+++ b/src/util/u_atomic.c
|
||||
@@ -21,7 +21,7 @@
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
-#if defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD)
|
||||
+#if !defined(__clang__) && defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD)
|
||||
|
||||
#include <stdint.h>
|
||||
#include <pthread.h>
|
||||
383
recipes-graphics/mesa/mesa_25.1.6.bb
Normal file
383
recipes-graphics/mesa/mesa_25.1.6.bb
Normal file
@@ -0,0 +1,383 @@
|
||||
SUMMARY = "A free implementation of the OpenGL API"
|
||||
DESCRIPTION = "Mesa is an open-source implementation of the OpenGL specification - \
|
||||
a system for rendering interactive 3D graphics. \
|
||||
A variety of device drivers allows Mesa to be used in many different environments \
|
||||
ranging from software emulation to complete hardware acceleration for modern GPUs. \
|
||||
Mesa is used as part of the overall Direct Rendering Infrastructure and X.org \
|
||||
environment."
|
||||
|
||||
HOMEPAGE = "http://mesa3d.org"
|
||||
BUGTRACKER = "https://bugs.freedesktop.org"
|
||||
SECTION = "x11"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://docs/license.rst;md5=ffe678546d4337b732cfd12262e6af11"
|
||||
|
||||
PE = "2"
|
||||
|
||||
SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \
|
||||
file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
|
||||
file://0001-freedreno-don-t-encode-build-path-into-binaries.patch \
|
||||
file://0001-dont-build-clover-frontend.patch \
|
||||
file://0001-fix-FTBFS-clc-switch-to-new-non-owned-TargetOptions-.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "9f2b69eb39d2d8717d30a9868fdda3e0c0d3708ba32778bbac8ddb044538ce84"
|
||||
PV = "25.1.6"
|
||||
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
|
||||
|
||||
#because we cannot rely on the fact that all apps will use pkgconfig,
|
||||
#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER
|
||||
do_install:append() {
|
||||
# sed can't find EGL/eglplatform.h as it doesn't get installed when glvnd enabled.
|
||||
# So, check if EGL/eglplatform.h exists before running sed.
|
||||
if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)} && [ -f ${D}${includedir}/EGL/eglplatform.h ]; then
|
||||
sed -i -e 's/^#elif defined(__unix__) && defined(EGL_NO_X11)$/#elif defined(__unix__) \&\& defined(EGL_NO_X11) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h
|
||||
fi
|
||||
# These are ICDs, apps are not supposed to link against them
|
||||
if ${@bb.utils.contains('PACKAGECONFIG', 'glvnd', 'true', 'false', d)} ; then
|
||||
rm -f ${D}${libdir}/libEGL_mesa.so ${D}${libdir}/libGLX_mesa.so
|
||||
fi
|
||||
}
|
||||
|
||||
DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native python3-pyyaml-native"
|
||||
EXTRANATIVEPATH += "chrpath-native"
|
||||
GLPROVIDES = " \
|
||||
${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'virtual/libgl', '', d)} \
|
||||
${@bb.utils.contains('PACKAGECONFIG', 'gles', 'virtual/libgles1 virtual/libgles2 virtual/libgles3', '', d)} \
|
||||
${@bb.utils.contains('PACKAGECONFIG', 'egl', 'virtual/egl', '', d)} \
|
||||
"
|
||||
PROVIDES = " \
|
||||
${@bb.utils.contains('PACKAGECONFIG', 'glvnd', '', d.getVar('GLPROVIDES'), d)} \
|
||||
${@bb.utils.contains('PACKAGECONFIG', 'gbm', 'virtual/libgbm', '', d)} \
|
||||
virtual/mesa \
|
||||
"
|
||||
|
||||
inherit meson pkgconfig python3native gettext features_check rust
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
||||
ANY_OF_DISTRO_FEATURES = "opengl vulkan"
|
||||
|
||||
PLATFORMS ??= "${@bb.utils.filter('PACKAGECONFIG', 'x11 wayland', d)}"
|
||||
|
||||
# set the MESA_BUILD_TYPE to either 'release' (default) or 'debug'
|
||||
# by default the upstream mesa sources build a debug release
|
||||
# here we assume the user will want a release build by default
|
||||
MESA_BUILD_TYPE ?= "release"
|
||||
def check_buildtype(d):
|
||||
_buildtype = d.getVar('MESA_BUILD_TYPE')
|
||||
if _buildtype not in ['release', 'debug']:
|
||||
bb.fatal("unknown build type (%s), please set MESA_BUILD_TYPE to either 'release' or 'debug'" % _buildtype)
|
||||
if _buildtype == 'debug':
|
||||
return 'debugoptimized'
|
||||
return 'plain'
|
||||
MESON_BUILDTYPE = "${@check_buildtype(d)}"
|
||||
|
||||
EXTRA_OEMESON = " \
|
||||
-Dglx-read-only-text=true \
|
||||
-Dplatforms='${@",".join("${PLATFORMS}".split())}' \
|
||||
"
|
||||
|
||||
def strip_comma(s):
|
||||
return s.strip(',')
|
||||
|
||||
PACKAGECONFIG = " \
|
||||
gallium \
|
||||
video-codecs \
|
||||
${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland glvnd', d)} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm virgl', '', d)} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \
|
||||
"
|
||||
|
||||
# skip all Rust dependencies if we are not building OpenCL"
|
||||
INHIBIT_DEFAULT_RUST_DEPS = "${@bb.utils.contains('PACKAGECONFIG', 'opencl', '', '1', d)}"
|
||||
|
||||
PACKAGECONFIG:append:x86 = " libclc gallium-llvm intel amd nouveau svga"
|
||||
PACKAGECONFIG:append:x86-64 = " libclc gallium-llvm intel amd nouveau svga"
|
||||
PACKAGECONFIG:append:i686 = " libclc gallium-llvm intel amd nouveau svga"
|
||||
PACKAGECONFIG:append:class-native = " libclc gallium-llvm amd nouveau svga"
|
||||
|
||||
# "gbm" requires "opengl"
|
||||
PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled"
|
||||
|
||||
X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr xorgproto libxshmfence"
|
||||
# "x11" requires "opengl"
|
||||
PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}"
|
||||
PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols"
|
||||
|
||||
VULKAN_DRIVERS_AMD = "${@bb.utils.contains('PACKAGECONFIG', 'amd', ',amd', '', d)}"
|
||||
VULKAN_DRIVERS_ASAHI = "${@bb.utils.contains('PACKAGECONFIG', 'asahi libclc opencl', ',asahi', '', d)}"
|
||||
VULKAN_DRIVERS_INTEL = "${@bb.utils.contains('PACKAGECONFIG', 'intel libclc', ',intel', '', d)}"
|
||||
VULKAN_DRIVERS_SWRAST = ",swrast"
|
||||
# Crashes on x32
|
||||
VULKAN_DRIVERS_SWRAST:x86-x32 = ""
|
||||
VULKAN_DRIVERS_LLVM = "${VULKAN_DRIVERS_SWRAST}${VULKAN_DRIVERS_AMD}${VULKAN_DRIVERS_ASAHI}${VULKAN_DRIVERS_INTEL}"
|
||||
|
||||
VULKAN_DRIVERS = ""
|
||||
VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
|
||||
VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}"
|
||||
VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${VULKAN_DRIVERS_LLVM}', '', d)}"
|
||||
VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination-experimental', '', d)}"
|
||||
VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}"
|
||||
PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers"
|
||||
|
||||
# mesa development and testing tools support, per driver
|
||||
TOOLS = ""
|
||||
TOOLS_DEPS = ""
|
||||
TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}"
|
||||
TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
|
||||
TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}"
|
||||
TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}"
|
||||
TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination', '', d)}"
|
||||
|
||||
# dependencies for tools.
|
||||
TOOLS_DEPS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ' ncurses libxml2 ', '', d)}"
|
||||
|
||||
# the fdperf tool requires libconfig (a part of meta-oe) so it needs special
|
||||
# treatment in addition to the usual 'freedreno tools'.
|
||||
PACKAGECONFIG[freedreno-fdperf] = ",,libconfig"
|
||||
|
||||
PACKAGECONFIG[tools] = "-Dtools=${@strip_comma('${TOOLS}')}, -Dtools='', ${TOOLS_DEPS}"
|
||||
|
||||
PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false"
|
||||
PACKAGECONFIG[glvnd] = "-Dglvnd=enabled, -Dglvnd=disabled, libglvnd"
|
||||
|
||||
# "gles" requires "opengl"
|
||||
PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2=disabled"
|
||||
|
||||
# "egl" requires "opengl"
|
||||
PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled"
|
||||
|
||||
# "opencl" also requires libclc and gallium-llvm to be present in PKGCONFIG!
|
||||
# Be sure to enable them both for the target and for the native build.
|
||||
PACKAGECONFIG[opencl] = "-Dgallium-rusticl=true, -Dgallium-rusticl=false, bindgen-cli-native"
|
||||
|
||||
PACKAGECONFIG[broadcom] = ""
|
||||
PACKAGECONFIG[etnaviv] = ",,python3-pycparser-native"
|
||||
PACKAGECONFIG[freedreno] = ""
|
||||
PACKAGECONFIG[vc4] = ""
|
||||
PACKAGECONFIG[v3d] = ""
|
||||
PACKAGECONFIG[zink] = ""
|
||||
|
||||
GALLIUMDRIVERS = "softpipe"
|
||||
# gallium swrast was found to crash Xorg on startup in x32 qemu
|
||||
GALLIUMDRIVERS:x86-x32 = ""
|
||||
|
||||
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}"
|
||||
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
|
||||
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'vc4', ',vc4', '', d)}"
|
||||
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', '', d)}"
|
||||
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'zink', ',zink', '', d)}"
|
||||
|
||||
GALLIUMDRIVERS_ASAHI = "${@bb.utils.contains('PACKAGECONFIG', 'asahi libclc opencl', ',asahi', '', d)}"
|
||||
GALLIUMDRIVERS_AMD = "${@bb.utils.contains('PACKAGECONFIG', 'amd', ',r300', '', d)}"
|
||||
GALLIUMDRIVERS_IRIS = "${@bb.utils.contains('PACKAGECONFIG', 'intel libclc', ',iris', '', d)}"
|
||||
GALLIUMDRIVERS_NOUVEAU = "${@bb.utils.contains('PACKAGECONFIG', 'nouveau', ',nouveau', '', d)}"
|
||||
GALLIUMDRIVERS_RADEONSI = "${@bb.utils.contains('PACKAGECONFIG', 'amd', ',radeonsi', '', d)}"
|
||||
GALLIUMDRIVERS_LLVMPIPE = ",llvmpipe"
|
||||
# llvmpipe crashes on x32
|
||||
GALLIUMDRIVERS_LLVMPIPE:x86-x32 = ""
|
||||
GALLIUMDRIVERS_SVGA = "${@bb.utils.contains('PACKAGECONFIG', 'svga', ',svga', '', d)}"
|
||||
GALLIUMDRIVERS_LLVM = "${GALLIUMDRIVERS_LLVMPIPE}${GALLIUMDRIVERS_AMD}${GALLIUMDRIVERS_ASAHI}${GALLIUMDRIVERS_IRIS}${GALLIUMDRIVERS_NOUVEAU}${GALLIUMDRIVERS_RADEONSI}${GALLIUMDRIVERS_SVGA}"
|
||||
|
||||
PACKAGECONFIG[amd] = ""
|
||||
PACKAGECONFIG[nouveau] = ""
|
||||
PACKAGECONFIG[svga] = ""
|
||||
PACKAGECONFIG[virgl] = ""
|
||||
|
||||
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${GALLIUMDRIVERS_LLVM}', '', d)}"
|
||||
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'amd', ',r600', '', d)}"
|
||||
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'virgl', ',virgl', '', d)}"
|
||||
|
||||
MESA_CLC = "system"
|
||||
MESA_CLC:class-native = "enabled"
|
||||
INSTALL_MESA_CLC = "false"
|
||||
INSTALL_MESA_CLC:class-native = "true"
|
||||
MESA_NATIVE = "mesa-native"
|
||||
MESA_NATIVE:class-native = ""
|
||||
|
||||
PACKAGECONFIG[gallium] = "-Dgallium-drivers=${@strip_comma('${GALLIUMDRIVERS}')}, -Dgallium-drivers='', libdrm"
|
||||
PACKAGECONFIG[gallium-llvm] = "-Dllvm=enabled -Dshared-llvm=enabled, -Dllvm=disabled, llvm llvm-native elfutils"
|
||||
PACKAGECONFIG[libclc] = "-Dmesa-clc=${MESA_CLC} -Dinstall-mesa-clc=${INSTALL_MESA_CLC} -Dmesa-clc-bundle-headers=enabled,,libclc spirv-tools spirv-llvm-translator ${MESA_NATIVE}"
|
||||
PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial"
|
||||
PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau"
|
||||
|
||||
PACKAGECONFIG[imagination] = "-Dimagination-srv=true,-Dimagination-srv=false"
|
||||
|
||||
PACKAGECONFIG[asahi] = ""
|
||||
|
||||
PACKAGECONFIG[intel] = ""
|
||||
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'intel', ',i915,crocus', '', d)}"
|
||||
|
||||
PACKAGECONFIG[lima] = ""
|
||||
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}"
|
||||
|
||||
PACKAGECONFIG[panfrost] = ""
|
||||
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}"
|
||||
|
||||
PACKAGECONFIG[tegra] = ""
|
||||
GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'tegra', ',tegra,nouveau', '', d)}"
|
||||
|
||||
PACKAGECONFIG[vulkan-beta] = "-Dvulkan-beta=true,-Dvulkan-beta=false"
|
||||
|
||||
PACKAGECONFIG[perfetto] = "-Dperfetto=true,-Dperfetto=false,libperfetto"
|
||||
|
||||
PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind"
|
||||
|
||||
PACKAGECONFIG[lmsensors] = "-Dlmsensors=enabled,-Dlmsensors=disabled,lmsensors"
|
||||
|
||||
VIDEO_CODECS ?= "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'all', 'all_free', d)}"
|
||||
PACKAGECONFIG[video-codecs] = "-Dvideo-codecs=${VIDEO_CODECS}, -Dvideo-codecs=''"
|
||||
|
||||
PACKAGECONFIG[teflon] = "-Dteflon=true, -Dteflon=false"
|
||||
|
||||
# llvmpipe is slow if compiled with -fomit-frame-pointer (e.g. -O2)
|
||||
FULL_OPTIMIZATION:append = " -fno-omit-frame-pointer"
|
||||
|
||||
CFLAGS:append:armv5 = " -DMISSING_64BIT_ATOMICS"
|
||||
CFLAGS:append:armv6 = " -DMISSING_64BIT_ATOMICS"
|
||||
|
||||
# Remove the mesa dependency on mesa-dev, as mesa is empty
|
||||
DEV_PKG_DEPENDENCY = ""
|
||||
|
||||
# GLES2 and GLES3 implementations are packaged in a single library in libgles2-mesa.
|
||||
# Add a dependency so the GLES3 dev package is associated with its implementation.
|
||||
RPROVIDES:libgles2-mesa += "libgles3-mesa"
|
||||
RPROVIDES:libgles2-mesa-dev += "libgles3-mesa-dev"
|
||||
|
||||
RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'libclc spirv-tools spirv-llvm-translator', '', d)}"
|
||||
|
||||
PACKAGES =+ "libegl-mesa libegl-mesa-dev \
|
||||
libgallium \
|
||||
libgl-mesa libgl-mesa-dev \
|
||||
libglx-mesa libglx-mesa-dev \
|
||||
libglapi libglapi-dev \
|
||||
libgbm libgbm-dev \
|
||||
libgles1-mesa libgles1-mesa-dev \
|
||||
libgles2-mesa libgles2-mesa-dev \
|
||||
libopencl-mesa \
|
||||
libteflon \
|
||||
mesa-megadriver mesa-vulkan-drivers \
|
||||
mesa-vdpau-drivers mesa-tools \
|
||||
"
|
||||
|
||||
do_install:append () {
|
||||
# libwayland-egl has been moved to wayland 1.15+
|
||||
rm -f ${D}${libdir}/libwayland-egl*
|
||||
rm -f ${D}${libdir}/pkgconfig/wayland-egl.pc
|
||||
}
|
||||
|
||||
# For the packages that make up the OpenGL interfaces, inject variables so that
|
||||
# they don't get Debian-renamed (which would remove the -mesa suffix), and
|
||||
# RPROVIDEs/RCONFLICTs on the generic libgl name.
|
||||
python __anonymous() {
|
||||
pkgconfig = (d.getVar('PACKAGECONFIG') or "").split()
|
||||
mlprefix = d.getVar("MLPREFIX")
|
||||
suffix = ""
|
||||
if "-native" in d.getVar("PN"):
|
||||
suffix = "-native"
|
||||
|
||||
for p in ("libegl", "libgl", "libglx", "libgles1", "libgles2", "libgles3", "libopencl"):
|
||||
fullp = mlprefix + p + "-mesa" + suffix
|
||||
d.appendVar("RRECOMMENDS:" + fullp, " ${MLPREFIX}mesa-megadriver" + suffix)
|
||||
|
||||
d.setVar("DEBIAN_NOAUTONAME:%slibopencl-mesa%s" % (mlprefix, suffix), "1")
|
||||
|
||||
if 'glvnd' in pkgconfig:
|
||||
for p in ("libegl", "libglx"):
|
||||
fullp = mlprefix + p + "-mesa" + suffix
|
||||
d.appendVar("RPROVIDES:" + fullp, ' virtual-%s-icd' % p)
|
||||
else:
|
||||
for p in (("egl", "libegl", "libegl1"),
|
||||
("opengl", "libgl", "libgl1"),
|
||||
("gles", "libgles1", "libglesv1-cm1"),
|
||||
("gles", "libgles2", "libglesv2-2", "libgles3")):
|
||||
if not p[0] in pkgconfig:
|
||||
continue
|
||||
fullp = mlprefix + p[1] + "-mesa" + suffix
|
||||
pkgs = " " + " ".join(mlprefix + x + suffix for x in p[1:])
|
||||
d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
|
||||
d.appendVar("RREPLACES:" + fullp, pkgs)
|
||||
d.appendVar("RPROVIDES:" + fullp, pkgs)
|
||||
d.appendVar("RCONFLICTS:" + fullp, pkgs)
|
||||
|
||||
# For -dev, the first element is both the Debian and original name
|
||||
fullp = mlprefix + p[1] + "-mesa-dev" + suffix
|
||||
pkgs = " " + mlprefix + p[1] + "-dev" + suffix
|
||||
d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
|
||||
d.appendVar("RREPLACES:" + fullp, pkgs)
|
||||
d.appendVar("RPROVIDES:" + fullp, pkgs)
|
||||
d.appendVar("RCONFLICTS:" + fullp, pkgs)
|
||||
}
|
||||
|
||||
python mesa_populate_packages() {
|
||||
pkgs = ['mesa', 'mesa-dev', 'mesa-dbg']
|
||||
for pkg in pkgs:
|
||||
d.setVar("RPROVIDES:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1))
|
||||
d.setVar("RCONFLICTS:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1))
|
||||
d.setVar("RREPLACES:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1))
|
||||
|
||||
import re
|
||||
dri_drivers_root = oe.path.join(d.getVar('PKGD'), d.getVar('libdir'), "dri")
|
||||
if os.path.isdir(dri_drivers_root):
|
||||
dri_pkgs = sorted(os.listdir(dri_drivers_root))
|
||||
lib_name = d.expand("${MLPREFIX}mesa-megadriver")
|
||||
for p in dri_pkgs:
|
||||
m = re.match(r'^(.*)_dri\.so$', p)
|
||||
if m:
|
||||
pkg_name = " ${MLPREFIX}mesa-driver-%s" % legitimize_package_name(m.group(1))
|
||||
d.appendVar("RPROVIDES:%s" % lib_name, pkg_name)
|
||||
d.appendVar("RCONFLICTS:%s" % lib_name, pkg_name)
|
||||
d.appendVar("RREPLACES:%s" % lib_name, pkg_name)
|
||||
}
|
||||
|
||||
PACKAGESPLITFUNCS =+ "mesa_populate_packages"
|
||||
|
||||
PACKAGES_DYNAMIC += "^mesa-driver-.*"
|
||||
PACKAGES_DYNAMIC:class-native = "^mesa-driver-.*-native"
|
||||
|
||||
FILES:mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d"
|
||||
FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${libdir}/libpowervr_rogue.so ${datadir}/vulkan"
|
||||
FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*"
|
||||
FILES:libegl-mesa = "${libdir}/libEGL*.so.* ${datadir}/glvnd/egl_vendor.d"
|
||||
FILES:libgbm = "${libdir}/libgbm.so.* ${libdir}/gbm/*_gbm.so"
|
||||
FILES:libgallium = "${libdir}/libgallium-*.so"
|
||||
FILES:libgles1-mesa = "${libdir}/libGLESv1*.so.*"
|
||||
FILES:libgles2-mesa = "${libdir}/libGLESv2.so.*"
|
||||
FILES:libgl-mesa = "${libdir}/libGL.so.*"
|
||||
FILES:libglx-mesa = "${libdir}/libGLX*.so.*"
|
||||
FILES:libopencl-mesa = "${libdir}/lib*OpenCL.so* ${sysconfdir}/OpenCL/vendors/*.icd"
|
||||
FILES:libglapi = "${libdir}/libglapi.so.*"
|
||||
|
||||
FILES:${PN}-dev = "${libdir}/pkgconfig/dri.pc ${includedir}/GL/internal/dri_interface.h ${includedir}/vulkan ${libdir}/vdpau/*.so"
|
||||
FILES:libegl-mesa-dev = "${libdir}/libEGL*.* ${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
|
||||
FILES:libgbm-dev = "${libdir}/libgbm.* ${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h ${includedir}/gbm_backend_abi.h"
|
||||
FILES:libgl-mesa-dev = "${libdir}/libGL.* ${includedir}/GL/*.h ${libdir}/pkgconfig/gl.pc"
|
||||
FILES:libglapi-dev = "${libdir}/libglapi.*"
|
||||
FILES:libgles1-mesa-dev = "${libdir}/libGLESv1*.* ${includedir}/GLES ${libdir}/pkgconfig/glesv1*.pc"
|
||||
FILES:libgles2-mesa-dev = "${libdir}/libGLESv2.* ${includedir}/GLES2 ${includedir}/GLES3 ${libdir}/pkgconfig/glesv2.pc"
|
||||
FILES:libteflon = "${libdir}/libteflon.so"
|
||||
# catch all to get all the tools and data
|
||||
FILES:${PN}-tools = "${bindir} ${datadir}"
|
||||
ALLOW_EMPTY:${PN}-tools = "1"
|
||||
|
||||
# All DRI drivers are symlinks to libdril_dri.so
|
||||
INSANE_SKIP:${PN}-megadriver += "dev-so"
|
||||
|
||||
# OpenCL ICDs package also ship correspondig .so files, there is no -dev package
|
||||
INSANE_SKIP:libopencl-mesa += "dev-so"
|
||||
|
||||
# Fix upgrade path from mesa to mesa-megadriver
|
||||
RREPLACES:mesa-megadriver = "mesa"
|
||||
RCONFLICTS:mesa-megadriver = "mesa"
|
||||
RPROVIDES:mesa-megadriver = "mesa"
|
||||
|
||||
# Use this newer version only for rpi MACHINEs
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
# This version doesn't have kmsro and dri3 added by
|
||||
# recipes-graphics/mesa/mesa_%.bbappend
|
||||
# already removed in master branch with:
|
||||
# https://github.com/agherzan/meta-raspberrypi/pull/1456
|
||||
# https://github.com/agherzan/meta-raspberrypi/pull/1472
|
||||
PACKAGECONFIG:remove:rpi = "kmsro dri3"
|
||||
@@ -33,10 +33,10 @@ do_install () {
|
||||
cp -R include/* ${D}${includedir}
|
||||
|
||||
install -d ${D}${libdir}/pkgconfig
|
||||
install -m 0644 ${WORKDIR}/egl.pc ${D}${libdir}/pkgconfig/
|
||||
install -m 0644 ${UNPACKDIR}/egl.pc ${D}${libdir}/pkgconfig/
|
||||
|
||||
install -d ${D}/${sysconfdir}/init.d
|
||||
install -m 0755 ${WORKDIR}/vchiq.sh ${D}${sysconfdir}/init.d/
|
||||
install -m 0755 ${UNPACKDIR}/vchiq.sh ${D}${sysconfdir}/init.d/
|
||||
}
|
||||
|
||||
# These are proprietary binaries generated elsewhere so don't check ldflags
|
||||
|
||||
27
recipes-graphics/wayland/wayland-protocols_1.45.bb
Normal file
27
recipes-graphics/wayland/wayland-protocols_1.45.bb
Normal file
@@ -0,0 +1,27 @@
|
||||
SUMMARY = "Collection of additional Wayland protocols"
|
||||
DESCRIPTION = "Wayland protocols that add functionality not \
|
||||
available in the Wayland core protocol. Such protocols either add \
|
||||
completely new functionality, or extend the functionality of some other \
|
||||
protocol either in Wayland core, or some other protocol in \
|
||||
wayland-protocols."
|
||||
HOMEPAGE = "http://wayland.freedesktop.org"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \
|
||||
file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53"
|
||||
|
||||
SRC_URI = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/${PV}/downloads/wayland-protocols-${PV}.tar.xz"
|
||||
SRC_URI[sha256sum] = "4d2b2a9e3e099d017dc8107bf1c334d27bb87d9e4aff19a0c8d856d17cd41ef0"
|
||||
|
||||
UPSTREAM_CHECK_URI = "https://gitlab.freedesktop.org/wayland/wayland-protocols/-/tags"
|
||||
UPSTREAM_CHECK_REGEX = "releases/(?P<pver>.+)"
|
||||
|
||||
DEPENDS += "wayland-native"
|
||||
|
||||
inherit meson pkgconfig allarch
|
||||
|
||||
EXTRA_OEMESON += "-Dtests=false"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
||||
# Use this newer version only for rpi MACHINEs
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
@@ -1,10 +0,0 @@
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
do_install:append:rpi() {
|
||||
if [ -e ${D}/${sysconfdir}/init.d/weston ]; then
|
||||
sed -i 's#weston-start --#weston-start -- --continue-without-input#' ${D}/${sysconfdir}/init.d/weston
|
||||
fi
|
||||
if [ -e ${D}${systemd_system_unitdir}/weston.service ]; then
|
||||
sed -i 's#ExecStart=/usr/bin/weston#ExecStart=/usr/bin/weston --continue-without-input#' ${D}${systemd_system_unitdir}/weston.service
|
||||
fi
|
||||
}
|
||||
@@ -8,8 +8,8 @@ do_install:append:rpi () {
|
||||
PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
|
||||
if [ "${PITFT}" = "1" ]; then
|
||||
install -d ${D}/${sysconfdir}/X11/xorg.conf.d/
|
||||
install -m 0644 ${WORKDIR}/xorg.conf.d/98-pitft.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
|
||||
install -m 0644 ${WORKDIR}/xorg.conf.d/99-calibration.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
|
||||
install -m 0644 ${UNPACKDIR}/xorg.conf.d/98-pitft.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
|
||||
install -m 0644 ${UNPACKDIR}/xorg.conf.d/99-calibration.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -18,8 +18,8 @@ LICENSE_FLAGS = "synaptics-killswitch"
|
||||
SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree;branch=bookworm;protocol=https \
|
||||
file://0001-Default-43455-firmware-to-standard-variant.patch \
|
||||
"
|
||||
SRCREV = "223ccf3a3ddb11b3ea829749fbbba4d65b380897"
|
||||
PV = "20230625-2+rpt2"
|
||||
SRCREV = "4b356e134e8333d073bd3802d767a825adec3807"
|
||||
PV = "20230625-2+rpt3"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit allarch
|
||||
@@ -27,6 +27,11 @@ inherit allarch
|
||||
do_configure[noexec] = "1"
|
||||
do_compile[noexec] = "1"
|
||||
|
||||
# The minimal firmware doesn't work with Raspberry Pi 5, so default to the
|
||||
# standard firmware
|
||||
CYFMAC43455_SDIO_FIRMWARE ??= "minimal"
|
||||
CYFMAC43455_SDIO_FIRMWARE:raspberrypi5 ??= "standard"
|
||||
|
||||
do_install() {
|
||||
install -d ${D}${nonarch_base_libdir}/firmware/brcm ${D}${nonarch_base_libdir}/firmware/cypress
|
||||
|
||||
@@ -34,6 +39,7 @@ do_install() {
|
||||
|
||||
for fw in \
|
||||
brcmfmac43430-sdio \
|
||||
brcmfmac43430b0-sdio \
|
||||
brcmfmac43436-sdio \
|
||||
brcmfmac43436s-sdio \
|
||||
brcmfmac43455-sdio \
|
||||
@@ -42,6 +48,7 @@ do_install() {
|
||||
done
|
||||
|
||||
cp -R --no-dereference --preserve=mode,links -v debian/config/brcm80211/cypress/* ${D}${nonarch_base_libdir}/firmware/cypress/
|
||||
ln -s cyfmac43455-sdio-${CYFMAC43455_SDIO_FIRMWARE}.bin ${D}${nonarch_base_libdir}/firmware/cypress/cyfmac43455-sdio.bin
|
||||
|
||||
rm ${D}${nonarch_base_libdir}/firmware/cypress/README.txt
|
||||
}
|
||||
@@ -69,7 +76,10 @@ FILES:${PN}-bcm43430 = " \
|
||||
${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.bin \
|
||||
${nonarch_base_libdir}/firmware/cypress/cyfmac43430-sdio.clm_blob \
|
||||
"
|
||||
FILES:${PN}-bcm43436 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43436-*"
|
||||
FILES:${PN}-bcm43436 = " \
|
||||
${nonarch_base_libdir}/firmware/brcm/brcmfmac43436-* \
|
||||
${nonarch_base_libdir}/firmware/brcm/brcmfmac43430b0-* \
|
||||
"
|
||||
FILES:${PN}-bcm43436s = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43436s*"
|
||||
FILES:${PN}-bcm43439 = " \
|
||||
${nonarch_base_libdir}/firmware/cypress/43439A0-7.95.49.00.combined \
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
CONFIG_ANDROID=y
|
||||
|
||||
#CONFIG_ANDROID_BINDERFS is not set
|
||||
CONFIG_ANDROID_BINDER_IPC=y
|
||||
CONFIG_ANDROID_BINDER_DEVICES="binder"
|
||||
|
||||
CONFIG_ASHMEM=y
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
CONFIG_I2C_BCM2835=y
|
||||
CONFIG_I2C_BRCMSTB=y
|
||||
CONFIG_DRM=y
|
||||
CONFIG_DRM_FBDEV_EMULATION=y
|
||||
CONFIG_DRM_VC4=y
|
||||
|
||||
6
recipes-kernel/linux/linux-raspberrypi-v7_6.12.bb
Normal file
6
recipes-kernel/linux/linux-raspberrypi-v7_6.12.bb
Normal file
@@ -0,0 +1,6 @@
|
||||
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
require linux-raspberrypi-v7.inc
|
||||
require linux-raspberrypi_6.12.bb
|
||||
@@ -28,7 +28,7 @@ KBUILD_DEFCONFIG:raspberrypi ?= "bcmrpi_defconfig"
|
||||
KBUILD_DEFCONFIG:raspberrypi-cm3 ?= "bcm2709_defconfig"
|
||||
KBUILD_DEFCONFIG:raspberrypi2 ?= "bcm2709_defconfig"
|
||||
KBUILD_DEFCONFIG:raspberrypi3 ?= "bcm2709_defconfig"
|
||||
KBUILD_DEFCONFIG:raspberrypi3-64 ?= "bcmrpi3_defconfig"
|
||||
KBUILD_DEFCONFIG:raspberrypi3-64 ?= "bcm2711_defconfig"
|
||||
KBUILD_DEFCONFIG:raspberrypi4 ?= "bcm2711_defconfig"
|
||||
KBUILD_DEFCONFIG:raspberrypi4-64 ?= "bcm2711_defconfig"
|
||||
KBUILD_DEFCONFIG:raspberrypi-armv7 ?= "bcm2711_defconfig"
|
||||
|
||||
31
recipes-kernel/linux/linux-raspberrypi_6.12.bb
Normal file
31
recipes-kernel/linux/linux-raspberrypi_6.12.bb
Normal file
@@ -0,0 +1,31 @@
|
||||
LINUX_VERSION ?= "6.12.25"
|
||||
LINUX_RPI_BRANCH ?= "rpi-6.12.y"
|
||||
LINUX_RPI_KMETA_BRANCH ?= "yocto-6.12"
|
||||
|
||||
SRCREV_machine = "3dd2c2c507c271d411fab2e82a2b3b7e0b6d3f16"
|
||||
SRCREV_meta = "1f6ab68a1d86836bf1b82b791df03da3cfeacb3f"
|
||||
|
||||
KMETA = "kernel-meta"
|
||||
|
||||
SRC_URI = " \
|
||||
git://github.com/raspberrypi/linux.git;name=machine;branch=${LINUX_RPI_BRANCH};protocol=https \
|
||||
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=${LINUX_RPI_KMETA_BRANCH};destsuffix=${KMETA} \
|
||||
file://powersave.cfg \
|
||||
file://android-drivers.cfg \
|
||||
"
|
||||
|
||||
require linux-raspberrypi.inc
|
||||
|
||||
KERNEL_DTC_FLAGS += "-@ -H epapr"
|
||||
|
||||
RDEPENDS:${KERNEL_PACKAGE_NAME}:raspberrypi-armv7:append = " ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}"
|
||||
RDEPENDS:${KERNEL_PACKAGE_NAME}-base:raspberrypi-armv7:append = " ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}-base"
|
||||
RDEPENDS:${KERNEL_PACKAGE_NAME}-image:raspberrypi-armv7:append = " ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}-image"
|
||||
RDEPENDS:${KERNEL_PACKAGE_NAME}-dev:raspberrypi-armv7:append = " ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}-dev"
|
||||
RDEPENDS:${KERNEL_PACKAGE_NAME}-vmlinux:raspberrypi-armv7:append = " ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}-vmlinux"
|
||||
RDEPENDS:${KERNEL_PACKAGE_NAME}-modules:raspberrypi-armv7:append = " ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}-modules"
|
||||
RDEPENDS:${KERNEL_PACKAGE_NAME}-dbg:raspberrypi-armv7:append = " ${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}-dbg"
|
||||
|
||||
DEPLOYDEP = ""
|
||||
DEPLOYDEP:raspberrypi-armv7 = "${RASPBERRYPI_v7_KERNEL}:do_deploy"
|
||||
do_deploy[depends] += "${DEPLOYDEP}"
|
||||
@@ -1,9 +1,9 @@
|
||||
LINUX_VERSION ?= "6.6.22"
|
||||
LINUX_VERSION ?= "6.6.63"
|
||||
LINUX_RPI_BRANCH ?= "rpi-6.6.y"
|
||||
LINUX_RPI_KMETA_BRANCH ?= "yocto-6.6"
|
||||
|
||||
SRCREV_machine = "c04af98514c26014a4f29ec87b3ece95626059bd"
|
||||
SRCREV_meta = "6a24861d6504575a4a9f92366285332d47c7e111"
|
||||
SRCREV_machine = "e442e5c1ab6bff5b5460b4fc949beb72aaf77970"
|
||||
SRCREV_meta = "52ff0d75713ce61962b325a2090bd55e216f0cf3"
|
||||
|
||||
KMETA = "kernel-meta"
|
||||
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
From 160181edf5fc73288abfe99fa04de4a550cd9c65 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Thu, 11 Feb 2016 12:53:20 -0800
|
||||
Subject: [PATCH] Don't try to acquire buffer when src pad isn't active
|
||||
|
||||
From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com>
|
||||
|
||||
This solves a race condition when setting the pipeline from PAUSE to
|
||||
NULL while the decoder loop is still running. Without this patch, the
|
||||
thread which interacts with the decode sink pad gets blocked here:
|
||||
|
||||
gst_element_change_state()
|
||||
gst_element_change_state_func()
|
||||
gst_element_pads_activate() --> Deactivating pads
|
||||
activate_pads()
|
||||
gst_pad_set_active()
|
||||
gst_pad_activate_mode()
|
||||
post_activate()
|
||||
GST_PAD_STREAM_LOCK()
|
||||
|
||||
while gst_omx_port_acquire_buffer() gets stalled forever in
|
||||
gst_omx_component_wait_message() waiting for a message that will never
|
||||
arrive:
|
||||
|
||||
gst_omx_video_dec_loop()
|
||||
gst_omx_port_acquire_buffer()
|
||||
gst_omx_component_wait_message()
|
||||
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
omx/gstomxvideodec.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
|
||||
index abe6e30..c4dc33f 100644
|
||||
--- a/omx/gstomxvideodec.c
|
||||
+++ b/omx/gstomxvideodec.c
|
||||
@@ -1598,6 +1598,11 @@ gst_omx_video_dec_loop (GstOMXVideoDec * self)
|
||||
GstOMXAcquireBufferReturn acq_return;
|
||||
OMX_ERRORTYPE err;
|
||||
|
||||
+ if (!gst_pad_is_active(GST_VIDEO_DECODER_SRC_PAD (self))) {
|
||||
+ GST_DEBUG_OBJECT (self, "Src pad not active, not acquiring buffer and flushing instead");
|
||||
+ goto flushing;
|
||||
+ }
|
||||
+
|
||||
#if defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL)
|
||||
port = self->eglimage ? self->egl_out_port : self->dec_out_port;
|
||||
#else
|
||||
@@ -1,26 +0,0 @@
|
||||
From 21f776bff596bc0bd09708efa6497f8bdcd065c0 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 13 Feb 2016 11:42:29 -0800
|
||||
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
omx/gstomxvideodec.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
|
||||
index c4dc33f..ba5304f 100644
|
||||
--- a/omx/gstomxvideodec.c
|
||||
+++ b/omx/gstomxvideodec.c
|
||||
@@ -2021,9 +2021,9 @@ gst_omx_video_dec_stop (GstVideoDecoder * decoder)
|
||||
g_cond_broadcast (&self->drain_cond);
|
||||
g_mutex_unlock (&self->drain_lock);
|
||||
|
||||
- gst_omx_component_get_state (self->dec, 5 * GST_SECOND);
|
||||
+ gst_omx_component_get_state (self->dec, 0);
|
||||
#if defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL)
|
||||
- gst_omx_component_get_state (self->egl_render, 1 * GST_SECOND);
|
||||
+ gst_omx_component_get_state (self->egl_render, 0);
|
||||
#endif
|
||||
|
||||
gst_buffer_replace (&self->codec_data, NULL);
|
||||
@@ -1,32 +0,0 @@
|
||||
From 140bf8548843a98b0af2ddc1765ab59c16c8994c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com>
|
||||
Date: Tue, 17 Nov 2015 16:51:27 +0000
|
||||
Subject: [PATCH] Properly handle drain requests while flushing
|
||||
|
||||
Without this commit the decoder streaming thread stops without ever attending
|
||||
the drain request, leaving the decoder input thread waiting forever.
|
||||
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
omx/gstomx.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/omx/gstomx.c b/omx/gstomx.c
|
||||
index 038ce32..5202d33 100644
|
||||
--- a/omx/gstomx.c
|
||||
+++ b/omx/gstomx.c
|
||||
@@ -1011,6 +1011,13 @@ gst_omx_component_new (GstObject * parent, const gchar * core_name,
|
||||
|
||||
g_mutex_lock (&comp->lock);
|
||||
gst_omx_component_handle_messages (comp);
|
||||
+
|
||||
+ if (err != OMX_ErrorNone && comp->last_error == OMX_ErrorNone) {
|
||||
+ GST_ERROR_OBJECT (comp->parent,
|
||||
+ "Last operation returned an error. Setting last_error manually.");
|
||||
+ comp->last_error = err;
|
||||
+ }
|
||||
+
|
||||
g_mutex_unlock (&comp->lock);
|
||||
|
||||
return comp;
|
||||
@@ -1,36 +0,0 @@
|
||||
From cf6cf2060c5a7a7ddc0396a0c20c234fc56c79b6 Mon Sep 17 00:00:00 2001
|
||||
From: Andrei Gherzan <andrei@gherzan.ro>
|
||||
Date: Tue, 28 May 2019 18:02:24 +0100
|
||||
Subject: [PATCH] Don't abort gst_omx_video_dec_set_format() if there's a
|
||||
timeout releasing the buffers taken by the egl_render out port
|
||||
|
||||
From 0d2ad639e6158c8023c157e206ef3ff7abdc089c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?=
|
||||
<eocanha@igalia.com>
|
||||
Date: Fri, 4 Dec 2015 18:39:59 +0100
|
||||
Subject: [PATCH] Don't abort gst_omx_video_dec_set_format() if there's a
|
||||
timeout releasing the buffers taken by the egl_render out port
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
|
||||
---
|
||||
omx/gstomxvideodec.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
|
||||
index ba5304f..8bd5d3d 100644
|
||||
--- a/omx/gstomxvideodec.c
|
||||
+++ b/omx/gstomxvideodec.c
|
||||
@@ -2229,7 +2229,9 @@ gst_omx_video_dec_disable (GstOMXVideoDec * self)
|
||||
return FALSE;
|
||||
if (gst_omx_port_wait_buffers_released (out_port,
|
||||
1 * GST_SECOND) != OMX_ErrorNone)
|
||||
+#if !(defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL))
|
||||
return FALSE;
|
||||
+#endif
|
||||
if (!gst_omx_video_dec_deallocate_output_buffers (self))
|
||||
return FALSE;
|
||||
if (gst_omx_port_wait_enabled (out_port, 1 * GST_SECOND) != OMX_ErrorNone)
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
FILESEXTRAPATHS:prepend:rpi := "${THISDIR}/${PN}:"
|
||||
|
||||
SRC_URI:append:rpi = " \
|
||||
file://0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch \
|
||||
file://0003-no-timeout-on-get-state.patch \
|
||||
file://0004-Properly-handle-drain-requests-while-flushing.patch \
|
||||
file://0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch \
|
||||
"
|
||||
|
||||
GSTREAMER_1_0_OMX_TARGET:rpi = "rpi"
|
||||
GSTREAMER_1_0_OMX_CORE_NAME:rpi = "${libdir}/libopenmaxil.so"
|
||||
EXTRA_OEMESON:append:rpi = " -Dheader_path=${STAGING_DIR_TARGET}/usr/include/IL"
|
||||
@@ -11,6 +11,7 @@ S = "${RPIFW_S}"
|
||||
do_install(){
|
||||
install -m 0755 -d ${D}${libdir}
|
||||
install -m 0755 ${S}/opt/vc/lib/*.so ${D}${libdir}
|
||||
rm -f ${D}${libdir}/libGLES* ${D}${libdir}/libEGL* ${D}${libdir}/libWFC.so ${D}${libdir}/libOpenVG.so
|
||||
}
|
||||
|
||||
FILES:${PN} = "${libdir}"
|
||||
|
||||
@@ -1,292 +0,0 @@
|
||||
From: James Cowgill <jcowgill@debian.org>
|
||||
Date: Sun, 11 Aug 2019 16:50:56 +0100
|
||||
Subject: avcodec/arm/sbcenc: avoid callee preserved vfp registers
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
RPI-Distro repo clones original ffmpeg and applies patches to enable
|
||||
raspiberry pi support.
|
||||
|
||||
When compiling FFmpeg with GCC-9, some very random segfaults were
|
||||
observed in code which had previously called down into the SBC encoder
|
||||
NEON assembly routines. This was caused by these functions clobbering
|
||||
some of the vfp callee saved registers (d8 - d15 aka q4 - q7). GCC was
|
||||
using these registers to save local variables, but after these
|
||||
functions returned, they would contain garbage.
|
||||
|
||||
Fix by reallocating the registers in the two affected functions in
|
||||
the following way:
|
||||
ff_sbc_analyze_4_neon: q2-q5 => q8-q11, then q1-q4 => q8-q11
|
||||
ff_sbc_analyze_8_neon: q2-q9 => q8-q15
|
||||
|
||||
The reason for using these replacements is to keep closely related
|
||||
sets of registers consecutively numbered which hopefully makes the
|
||||
code more easy to follow. Since this commit only reallocates
|
||||
registers, it should have no performance impact.
|
||||
|
||||
Signed-off-by: James Cowgill <jcowgill@debian.org>
|
||||
---
|
||||
libavcodec/arm/sbcdsp_neon.S | 220 +++++++++++++++++++++----------------------
|
||||
1 file changed, 110 insertions(+), 110 deletions(-)
|
||||
|
||||
diff --git a/libavcodec/arm/sbcdsp_neon.S b/libavcodec/arm/sbcdsp_neon.S
|
||||
index d83d21d..914abfb 100644
|
||||
--- a/libavcodec/arm/sbcdsp_neon.S
|
||||
+++ b/libavcodec/arm/sbcdsp_neon.S
|
||||
@@ -38,49 +38,49 @@ function ff_sbc_analyze_4_neon, export=1
|
||||
/* TODO: merge even and odd cases (or even merge all four calls to this
|
||||
* function) in order to have only aligned reads from 'in' array
|
||||
* and reduce number of load instructions */
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
|
||||
- vmull.s16 q0, d4, d8
|
||||
- vld1.16 {d6, d7}, [r0, :64]!
|
||||
- vmull.s16 q1, d5, d9
|
||||
- vld1.16 {d10, d11}, [r2, :128]!
|
||||
+ vmull.s16 q0, d16, d20
|
||||
+ vld1.16 {d18, d19}, [r0, :64]!
|
||||
+ vmull.s16 q1, d17, d21
|
||||
+ vld1.16 {d22, d23}, [r2, :128]!
|
||||
|
||||
- vmlal.s16 q0, d6, d10
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vmlal.s16 q1, d7, d11
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
+ vmlal.s16 q0, d18, d22
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vmlal.s16 q1, d19, d23
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
|
||||
- vmlal.s16 q0, d4, d8
|
||||
- vld1.16 {d6, d7}, [r0, :64]!
|
||||
- vmlal.s16 q1, d5, d9
|
||||
- vld1.16 {d10, d11}, [r2, :128]!
|
||||
+ vmlal.s16 q0, d16, d20
|
||||
+ vld1.16 {d18, d19}, [r0, :64]!
|
||||
+ vmlal.s16 q1, d17, d21
|
||||
+ vld1.16 {d22, d23}, [r2, :128]!
|
||||
|
||||
- vmlal.s16 q0, d6, d10
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vmlal.s16 q1, d7, d11
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
+ vmlal.s16 q0, d18, d22
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vmlal.s16 q1, d19, d23
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
|
||||
- vmlal.s16 q0, d4, d8
|
||||
- vmlal.s16 q1, d5, d9
|
||||
+ vmlal.s16 q0, d16, d20
|
||||
+ vmlal.s16 q1, d17, d21
|
||||
|
||||
vpadd.s32 d0, d0, d1
|
||||
vpadd.s32 d1, d2, d3
|
||||
|
||||
vrshrn.s32 d0, q0, SBC_PROTO_FIXED_SCALE
|
||||
|
||||
- vld1.16 {d2, d3, d4, d5}, [r2, :128]!
|
||||
+ vld1.16 {d16, d17, d18, d19}, [r2, :128]!
|
||||
|
||||
vdup.i32 d1, d0[1] /* TODO: can be eliminated */
|
||||
vdup.i32 d0, d0[0] /* TODO: can be eliminated */
|
||||
|
||||
- vmull.s16 q3, d2, d0
|
||||
- vmull.s16 q4, d3, d0
|
||||
- vmlal.s16 q3, d4, d1
|
||||
- vmlal.s16 q4, d5, d1
|
||||
+ vmull.s16 q10, d16, d0
|
||||
+ vmull.s16 q11, d17, d0
|
||||
+ vmlal.s16 q10, d18, d1
|
||||
+ vmlal.s16 q11, d19, d1
|
||||
|
||||
- vpadd.s32 d0, d6, d7 /* TODO: can be eliminated */
|
||||
- vpadd.s32 d1, d8, d9 /* TODO: can be eliminated */
|
||||
+ vpadd.s32 d0, d20, d21 /* TODO: can be eliminated */
|
||||
+ vpadd.s32 d1, d22, d23 /* TODO: can be eliminated */
|
||||
|
||||
vst1.32 {d0, d1}, [r1, :128]
|
||||
|
||||
@@ -91,57 +91,57 @@ function ff_sbc_analyze_8_neon, export=1
|
||||
/* TODO: merge even and odd cases (or even merge all four calls to this
|
||||
* function) in order to have only aligned reads from 'in' array
|
||||
* and reduce number of load instructions */
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
-
|
||||
- vmull.s16 q6, d4, d8
|
||||
- vld1.16 {d6, d7}, [r0, :64]!
|
||||
- vmull.s16 q7, d5, d9
|
||||
- vld1.16 {d10, d11}, [r2, :128]!
|
||||
- vmull.s16 q8, d6, d10
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vmull.s16 q9, d7, d11
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
-
|
||||
- vmlal.s16 q6, d4, d8
|
||||
- vld1.16 {d6, d7}, [r0, :64]!
|
||||
- vmlal.s16 q7, d5, d9
|
||||
- vld1.16 {d10, d11}, [r2, :128]!
|
||||
- vmlal.s16 q8, d6, d10
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vmlal.s16 q9, d7, d11
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
-
|
||||
- vmlal.s16 q6, d4, d8
|
||||
- vld1.16 {d6, d7}, [r0, :64]!
|
||||
- vmlal.s16 q7, d5, d9
|
||||
- vld1.16 {d10, d11}, [r2, :128]!
|
||||
- vmlal.s16 q8, d6, d10
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vmlal.s16 q9, d7, d11
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
-
|
||||
- vmlal.s16 q6, d4, d8
|
||||
- vld1.16 {d6, d7}, [r0, :64]!
|
||||
- vmlal.s16 q7, d5, d9
|
||||
- vld1.16 {d10, d11}, [r2, :128]!
|
||||
- vmlal.s16 q8, d6, d10
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vmlal.s16 q9, d7, d11
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
-
|
||||
- vmlal.s16 q6, d4, d8
|
||||
- vld1.16 {d6, d7}, [r0, :64]!
|
||||
- vmlal.s16 q7, d5, d9
|
||||
- vld1.16 {d10, d11}, [r2, :128]!
|
||||
-
|
||||
- vmlal.s16 q8, d6, d10
|
||||
- vmlal.s16 q9, d7, d11
|
||||
-
|
||||
- vpadd.s32 d0, d12, d13
|
||||
- vpadd.s32 d1, d14, d15
|
||||
- vpadd.s32 d2, d16, d17
|
||||
- vpadd.s32 d3, d18, d19
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
+
|
||||
+ vmull.s16 q12, d16, d20
|
||||
+ vld1.16 {d18, d19}, [r0, :64]!
|
||||
+ vmull.s16 q13, d17, d21
|
||||
+ vld1.16 {d22, d23}, [r2, :128]!
|
||||
+ vmull.s16 q14, d18, d22
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vmull.s16 q15, d19, d23
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
+
|
||||
+ vmlal.s16 q12, d16, d20
|
||||
+ vld1.16 {d18, d19}, [r0, :64]!
|
||||
+ vmlal.s16 q13, d17, d21
|
||||
+ vld1.16 {d22, d23}, [r2, :128]!
|
||||
+ vmlal.s16 q14, d18, d22
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vmlal.s16 q15, d19, d23
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
+
|
||||
+ vmlal.s16 q12, d16, d20
|
||||
+ vld1.16 {d18, d19}, [r0, :64]!
|
||||
+ vmlal.s16 q13, d17, d21
|
||||
+ vld1.16 {d22, d23}, [r2, :128]!
|
||||
+ vmlal.s16 q14, d18, d22
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vmlal.s16 q15, d19, d23
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
+
|
||||
+ vmlal.s16 q12, d16, d20
|
||||
+ vld1.16 {d18, d19}, [r0, :64]!
|
||||
+ vmlal.s16 q13, d17, d21
|
||||
+ vld1.16 {d22, d23}, [r2, :128]!
|
||||
+ vmlal.s16 q14, d18, d22
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vmlal.s16 q15, d19, d23
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
+
|
||||
+ vmlal.s16 q12, d16, d20
|
||||
+ vld1.16 {d18, d19}, [r0, :64]!
|
||||
+ vmlal.s16 q13, d17, d21
|
||||
+ vld1.16 {d22, d23}, [r2, :128]!
|
||||
+
|
||||
+ vmlal.s16 q14, d18, d22
|
||||
+ vmlal.s16 q15, d19, d23
|
||||
+
|
||||
+ vpadd.s32 d0, d24, d25
|
||||
+ vpadd.s32 d1, d26, d27
|
||||
+ vpadd.s32 d2, d28, d29
|
||||
+ vpadd.s32 d3, d30, d31
|
||||
|
||||
vrshr.s32 q0, q0, SBC_PROTO_FIXED_SCALE
|
||||
vrshr.s32 q1, q1, SBC_PROTO_FIXED_SCALE
|
||||
@@ -153,38 +153,38 @@ function ff_sbc_analyze_8_neon, export=1
|
||||
vdup.i32 d1, d0[1] /* TODO: can be eliminated */
|
||||
vdup.i32 d0, d0[0] /* TODO: can be eliminated */
|
||||
|
||||
- vld1.16 {d4, d5}, [r2, :128]!
|
||||
- vmull.s16 q6, d4, d0
|
||||
- vld1.16 {d6, d7}, [r2, :128]!
|
||||
- vmull.s16 q7, d5, d0
|
||||
- vmull.s16 q8, d6, d0
|
||||
- vmull.s16 q9, d7, d0
|
||||
-
|
||||
- vld1.16 {d4, d5}, [r2, :128]!
|
||||
- vmlal.s16 q6, d4, d1
|
||||
- vld1.16 {d6, d7}, [r2, :128]!
|
||||
- vmlal.s16 q7, d5, d1
|
||||
- vmlal.s16 q8, d6, d1
|
||||
- vmlal.s16 q9, d7, d1
|
||||
-
|
||||
- vld1.16 {d4, d5}, [r2, :128]!
|
||||
- vmlal.s16 q6, d4, d2
|
||||
- vld1.16 {d6, d7}, [r2, :128]!
|
||||
- vmlal.s16 q7, d5, d2
|
||||
- vmlal.s16 q8, d6, d2
|
||||
- vmlal.s16 q9, d7, d2
|
||||
-
|
||||
- vld1.16 {d4, d5}, [r2, :128]!
|
||||
- vmlal.s16 q6, d4, d3
|
||||
- vld1.16 {d6, d7}, [r2, :128]!
|
||||
- vmlal.s16 q7, d5, d3
|
||||
- vmlal.s16 q8, d6, d3
|
||||
- vmlal.s16 q9, d7, d3
|
||||
-
|
||||
- vpadd.s32 d0, d12, d13 /* TODO: can be eliminated */
|
||||
- vpadd.s32 d1, d14, d15 /* TODO: can be eliminated */
|
||||
- vpadd.s32 d2, d16, d17 /* TODO: can be eliminated */
|
||||
- vpadd.s32 d3, d18, d19 /* TODO: can be eliminated */
|
||||
+ vld1.16 {d16, d17}, [r2, :128]!
|
||||
+ vmull.s16 q12, d16, d0
|
||||
+ vld1.16 {d18, d19}, [r2, :128]!
|
||||
+ vmull.s16 q13, d17, d0
|
||||
+ vmull.s16 q14, d18, d0
|
||||
+ vmull.s16 q15, d19, d0
|
||||
+
|
||||
+ vld1.16 {d16, d17}, [r2, :128]!
|
||||
+ vmlal.s16 q12, d16, d1
|
||||
+ vld1.16 {d18, d19}, [r2, :128]!
|
||||
+ vmlal.s16 q13, d17, d1
|
||||
+ vmlal.s16 q14, d18, d1
|
||||
+ vmlal.s16 q15, d19, d1
|
||||
+
|
||||
+ vld1.16 {d16, d17}, [r2, :128]!
|
||||
+ vmlal.s16 q12, d16, d2
|
||||
+ vld1.16 {d18, d19}, [r2, :128]!
|
||||
+ vmlal.s16 q13, d17, d2
|
||||
+ vmlal.s16 q14, d18, d2
|
||||
+ vmlal.s16 q15, d19, d2
|
||||
+
|
||||
+ vld1.16 {d16, d17}, [r2, :128]!
|
||||
+ vmlal.s16 q12, d16, d3
|
||||
+ vld1.16 {d18, d19}, [r2, :128]!
|
||||
+ vmlal.s16 q13, d17, d3
|
||||
+ vmlal.s16 q14, d18, d3
|
||||
+ vmlal.s16 q15, d19, d3
|
||||
+
|
||||
+ vpadd.s32 d0, d24, d25 /* TODO: can be eliminated */
|
||||
+ vpadd.s32 d1, d26, d27 /* TODO: can be eliminated */
|
||||
+ vpadd.s32 d2, d28, d29 /* TODO: can be eliminated */
|
||||
+ vpadd.s32 d3, d30, d31 /* TODO: can be eliminated */
|
||||
|
||||
vst1.32 {d0, d1, d2, d3}, [r1, :128]
|
||||
|
||||
24074
recipes-multimedia/rpidistro-ffmpeg/files/0001-ffmpeg-5.1.4-rpi_24.patch
Normal file
24074
recipes-multimedia/rpidistro-ffmpeg/files/0001-ffmpeg-5.1.4-rpi_24.patch
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,34 +0,0 @@
|
||||
From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
|
||||
Date: Tue, 19 Jan 2021 20:35:29 +0100
|
||||
Subject: Fix build on powerpc and ppc64
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
RPI-Distro repo clones original ffmpeg and applies patches to enable
|
||||
raspiberry pi support.
|
||||
|
||||
---
|
||||
libswscale/ppc/yuv2rgb_altivec.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
|
||||
index 5365452..930ef6b 100644
|
||||
--- a/libswscale/ppc/yuv2rgb_altivec.c
|
||||
+++ b/libswscale/ppc/yuv2rgb_altivec.c
|
||||
@@ -283,6 +283,16 @@ static inline void cvtyuvtoRGB(SwsContext *c, vector signed short Y,
|
||||
* ------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
+#if !HAVE_VSX
|
||||
+static inline vector unsigned char vec_xl(signed long long offset, const ubyte *addr)
|
||||
+{
|
||||
+ const vector unsigned char *v_addr = (const vector unsigned char *) (addr + offset);
|
||||
+ vector unsigned char align_perm = vec_lvsl(offset, addr);
|
||||
+
|
||||
+ return (vector unsigned char) vec_perm(v_addr[0], v_addr[1], align_perm);
|
||||
+}
|
||||
+#endif /* !HAVE_VSX */
|
||||
+
|
||||
#define DEFCSP420_CVT(name, out_pixels) \
|
||||
static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
|
||||
int *instrides, int srcSliceY, int srcSliceH, \
|
||||
@@ -1,30 +0,0 @@
|
||||
From: Paul B Mahol <onemda@gmail.com>
|
||||
Date: Sun, 14 Feb 2021 17:20:03 +0100
|
||||
Subject: avcodec/pngenc: remove monowhite from apng formats
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
RPI-Distro repo clones original ffmpeg and applies patches to enable
|
||||
raspiberry pi support.
|
||||
|
||||
Monowhite pixel format is not supported, and it does not make sense
|
||||
to add support for it.
|
||||
|
||||
Fixes #7989
|
||||
---
|
||||
libavcodec/pngenc.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c
|
||||
index efcae8c..eebb164 100644
|
||||
--- a/libavcodec/pngenc.c
|
||||
+++ b/libavcodec/pngenc.c
|
||||
@@ -1174,7 +1174,7 @@ AVCodec ff_apng_encoder = {
|
||||
AV_PIX_FMT_PAL8,
|
||||
AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY8A,
|
||||
AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_YA16BE,
|
||||
- AV_PIX_FMT_MONOBLACK, AV_PIX_FMT_NONE
|
||||
+ AV_PIX_FMT_NONE
|
||||
},
|
||||
.priv_class = &apngenc_class,
|
||||
};
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,22 +0,0 @@
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
RPI-Distro repo clones original ffmpeg and applies patches to enable
|
||||
raspiberry pi support.
|
||||
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -6471,11 +6471,9 @@ enabled mbedtls && { check_pkg
|
||||
die "ERROR: mbedTLS not found"; }
|
||||
enabled mediacodec && { enabled jni || die "ERROR: mediacodec requires --enable-jni"; }
|
||||
( enabled rpi ||
|
||||
- enabled mmal ) && { check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host ||
|
||||
- { ! enabled cross_compile &&
|
||||
- add_cflags -isystem/opt/vc/include/ -isystem/opt/vc/include/interface/vmcs_host/linux -isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline &&
|
||||
- add_ldflags -L/opt/vc/lib/ &&
|
||||
- check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host -lvcos -lvcsm -lvchostif -lvchiq_arm; } ||
|
||||
+ enabled mmal ) && { { add_cflags -isystem/opt/vc/include/ -isystem/opt/vc/include/interface/vmcs_host/linux -isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline &&
|
||||
+ add_ldflags -L/opt/vc/lib/ &&
|
||||
+ check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host -lvcsm -lvchostif -lvchiq_arm -lvcos; } ||
|
||||
die "ERROR: mmal not found" &&
|
||||
check_func_headers interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS"; }
|
||||
enabled openal && { { for al_extralibs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do
|
||||
@@ -1,6 +1,6 @@
|
||||
From 01e738a8f1414acd0102e432bbc15b4e603fd956 Mon Sep 17 00:00:00 2001
|
||||
From 702742f9575c87ac8c496d76daf51af7d4aaebd7 Mon Sep 17 00:00:00 2001
|
||||
From: Vincent Davis Jr <vince@underview.tech>
|
||||
Date: Thu, 8 Dec 2022 10:34:20 -0600
|
||||
Date: Sun, 9 Jun 2024 18:09:25 -0400
|
||||
Subject: [PATCH] configure: setup for OE-core usage
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
@@ -17,66 +17,63 @@ exists and we also should be using GLESv2.
|
||||
|
||||
Update where compiler finds OMX_Core.h
|
||||
|
||||
Only check that sdl2 version greater than 2.0.1
|
||||
Only check that sdl2 version greater than 3.0.0
|
||||
|
||||
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
|
||||
---
|
||||
configure | 16 +++++++++-------
|
||||
1 file changed, 9 insertions(+), 7 deletions(-)
|
||||
configure | 14 +++++++++-----
|
||||
1 file changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index 723b81f1..0c7f2654 100755
|
||||
index 7214c221..7a541e63 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -5746,6 +5746,9 @@ enable_weak_pic() {
|
||||
@@ -5898,6 +5898,9 @@ enable_weak_pic() {
|
||||
}
|
||||
|
||||
enabled pic && enable_weak_pic
|
||||
+# Set CFLAGS and LDFLAGS globally
|
||||
+add_cflags -I${sysroot}/usr/include/ -I${sysroot}/usr/include/IL -I${sysroot}/usr/include/drm
|
||||
+add_ldflags -L${sysroot}/usr/lib/
|
||||
+add_ldflags -L${sysroot}/usr/lib
|
||||
|
||||
test_cc <<EOF || die "Symbol mangling check failed."
|
||||
int ff_extern;
|
||||
@@ -6471,8 +6474,7 @@ enabled mbedtls && { check_pkg_config mbedtls mbedtls mbedtls/x509_crt
|
||||
die "ERROR: mbedTLS not found"; }
|
||||
@@ -6716,8 +6719,8 @@ enabled mbedtls && { check_pkg_config mbedtls mbedtls mbedtls/x509_crt
|
||||
enabled mediacodec && { enabled jni || die "ERROR: mediacodec requires --enable-jni"; }
|
||||
( enabled rpi ||
|
||||
- enabled mmal ) && { { add_cflags -isystem/opt/vc/include/ -isystem/opt/vc/include/interface/vmcs_host/linux -isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline &&
|
||||
- add_ldflags -L/opt/vc/lib/ &&
|
||||
+ enabled mmal ) && { { add_cflags -I${sysroot}/usr/include/interface/vmcs_host/linux -I${sysroot}/usr/include/interface/vcos/pthreads -fgnu89-inline &&
|
||||
check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host -lvcsm -lvchostif -lvchiq_arm -lvcos; } ||
|
||||
enabled mmal && { check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host ||
|
||||
{ ! enabled cross_compile &&
|
||||
- add_cflags -isystem/opt/vc/include/ -isystem/opt/vc/include/interface/vmcs_host/linux -isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline &&
|
||||
- add_ldflags -L/opt/vc/lib/ &&
|
||||
+ add_cflags -I${sysroot}/usr/include -I${sysroot}/usr/include/interface/vmcs_host/linux -I${sysroot}/usr/include/interface/vcos/pthreads -fgnu89-inline &&
|
||||
+ add_ldflags -L${sysroot}/usr/lib &&
|
||||
check_lib mmal interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host; } ||
|
||||
die "ERROR: mmal not found" &&
|
||||
check_func_headers interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS"; }
|
||||
@@ -6492,15 +6494,15 @@ enabled opengl && { check_lib opengl GL/glx.h glXGetProcAddress "-lGL
|
||||
@@ -6737,12 +6740,13 @@ enabled opengl && { check_lib opengl GL/glx.h glXGetProcAddress "-lGL
|
||||
check_lib opengl windows.h wglGetProcAddress "-lopengl32 -lgdi32" ||
|
||||
check_lib opengl OpenGL/gl3.h glGetError "-Wl,-framework,OpenGL" ||
|
||||
check_lib opengl ES2/gl.h glGetError "-isysroot=${sysroot} -Wl,-framework,OpenGLES" ||
|
||||
+ check_lib opengl GLES2/gl2.h glGetError "-lGLESv2" ||
|
||||
+ check_lib opengl GLES2/gl2.h glGetError "-lGLESv2" ||
|
||||
die "ERROR: opengl not found."
|
||||
}
|
||||
-enabled omx_rpi && { test_code cc OMX_Core.h OMX_IndexConfigBrcmVideoRequestIFrame ||
|
||||
+enabled omx_rpi && { test_code cc IL/OMX_Core.h OMX_IndexConfigBrcmVideoRequestIFrame ||
|
||||
enabled omx_rpi && { test_code cc OMX_Core.h OMX_IndexConfigBrcmVideoRequestIFrame ||
|
||||
{ ! enabled cross_compile &&
|
||||
- add_cflags -isystem/opt/vc/include/IL &&
|
||||
- test_code cc OMX_Core.h OMX_IndexConfigBrcmVideoRequestIFrame; } ||
|
||||
+ add_cflags -I${sysroot}/usr/include/IL &&
|
||||
+ test_code cc IL/OMX_Core.h OMX_IndexConfigBrcmVideoRequestIFrame; } ||
|
||||
die "ERROR: OpenMAX IL headers from raspberrypi/firmware not found"; } &&
|
||||
enable omx
|
||||
-enabled omx && require_headers OMX_Core.h
|
||||
+enabled omx && require_headers IL/OMX_Core.h
|
||||
enabled openssl && { check_pkg_config openssl openssl openssl/ssl.h OPENSSL_init_ssl ||
|
||||
check_pkg_config openssl openssl openssl/ssl.h SSL_library_init ||
|
||||
check_lib openssl openssl/ssl.h OPENSSL_init_ssl -lssl -lcrypto ||
|
||||
@@ -6540,7 +6542,7 @@ fi
|
||||
enabled omx && require_headers OMX_Core.h
|
||||
@@ -6788,7 +6792,7 @@ fi
|
||||
|
||||
if enabled sdl2; then
|
||||
SDL2_CONFIG="${cross_prefix}sdl2-config"
|
||||
- test_pkg_config sdl2 "sdl2 >= 2.0.1 sdl2 < 2.1.0" SDL_events.h SDL_PollEvent
|
||||
- test_pkg_config sdl2 "sdl2 >= 2.0.1 sdl2 < 3.0.0" SDL_events.h SDL_PollEvent
|
||||
+ test_pkg_config sdl2 "sdl2 >= 2.0.1" SDL_events.h SDL_PollEvent
|
||||
if disabled sdl2 && "${SDL2_CONFIG}" --version > /dev/null 2>&1; then
|
||||
sdl2_cflags=$("${SDL2_CONFIG}" --cflags)
|
||||
sdl2_extralibs=$("${SDL2_CONFIG}" --libs)
|
||||
--
|
||||
2.38.1
|
||||
2.34.1
|
||||
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
From be426ad76c3e486f1364dd292cf8e1c633c80e91 Mon Sep 17 00:00:00 2001
|
||||
From: Vincent Davis Jr <vince@underview.tech>
|
||||
Date: Thu, 8 Dec 2022 10:39:47 -0600
|
||||
Subject: [PATCH] libavdevice: opengl_enc.c update dynamic function loader
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
RPI-Distro repo clones original ffmpeg and applies patches to enable
|
||||
raspiberry pi support.
|
||||
|
||||
For meta-raspberrypi ffmpeg builds, when opengl
|
||||
is enabled do_compile will fail. Reasion is that
|
||||
glGetProcAddress is undefined in either GLES2/gl2.h
|
||||
or GLES2/gl2ext.h.
|
||||
|
||||
define SelectedGetProcAddress to SDL_GL_GetProcAddress
|
||||
if sdl2 is included. If not included, define function
|
||||
pointers at compile time versus runtime.
|
||||
|
||||
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
|
||||
---
|
||||
libavdevice/opengl_enc.c | 44 ++++++++++++++++++++++++++++++++++++----
|
||||
1 file changed, 40 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/libavdevice/opengl_enc.c b/libavdevice/opengl_enc.c
|
||||
index 2bdb8da7..eabc1bf8 100644
|
||||
--- a/libavdevice/opengl_enc.c
|
||||
+++ b/libavdevice/opengl_enc.c
|
||||
@@ -37,12 +37,13 @@
|
||||
#include <OpenGL/gl3.h>
|
||||
#elif HAVE_ES2_GL_H
|
||||
#include <ES2/gl.h>
|
||||
-#else
|
||||
-#include <GL/gl.h>
|
||||
-#include <GL/glext.h>
|
||||
#endif
|
||||
#if HAVE_GLXGETPROCADDRESS
|
||||
#include <GL/glx.h>
|
||||
+#else
|
||||
+#define GL_GLEXT_PROTOTYPES
|
||||
+#include <GLES2/gl2.h>
|
||||
+#include <GLES2/gl2ext.h>
|
||||
#endif
|
||||
|
||||
#if CONFIG_SDL2
|
||||
@@ -493,8 +494,14 @@ static int av_cold opengl_load_procedures(OpenGLContext *opengl)
|
||||
|
||||
#if HAVE_GLXGETPROCADDRESS
|
||||
#define SelectedGetProcAddress glXGetProcAddress
|
||||
+#define CAN_DYNAMIC_LOAD 1
|
||||
#elif HAVE_WGLGETPROCADDRESS
|
||||
#define SelectedGetProcAddress wglGetProcAddress
|
||||
+#elif CONFIG_SDL2
|
||||
+#define SelectedGetProcAddress SDL_GL_GetProcAddress
|
||||
+#define CAN_DYNAMIC_LOAD 1
|
||||
+#else
|
||||
+#define CAN_DYNAMIC_LOAD 0
|
||||
#endif
|
||||
|
||||
#define LOAD_OPENGL_FUN(name, type) \
|
||||
@@ -504,7 +511,8 @@ static int av_cold opengl_load_procedures(OpenGLContext *opengl)
|
||||
return AVERROR(ENOSYS); \
|
||||
}
|
||||
|
||||
-#if CONFIG_SDL2
|
||||
+#if CAN_DYNAMIC_LOAD
|
||||
+#if CONFIG_SDL2
|
||||
if (!opengl->no_window)
|
||||
return opengl_sdl_load_procedures(opengl);
|
||||
#endif
|
||||
@@ -534,9 +542,37 @@ static int av_cold opengl_load_procedures(OpenGLContext *opengl)
|
||||
LOAD_OPENGL_FUN(glGetShaderInfoLog, FF_PFNGLGETSHADERINFOLOGPROC)
|
||||
LOAD_OPENGL_FUN(glEnableVertexAttribArray, FF_PFNGLENABLEVERTEXATTRIBARRAYPROC)
|
||||
LOAD_OPENGL_FUN(glVertexAttribPointer, FF_PFNGLVERTEXATTRIBPOINTERPROC)
|
||||
+#else
|
||||
+ procs->glActiveTexture = glActiveTexture;
|
||||
+ procs->glGenBuffers = glGenBuffers;
|
||||
+ procs->glDeleteBuffers = glDeleteBuffers;
|
||||
+ procs->glBufferData = glBufferData;
|
||||
+ procs->glBindBuffer = glBindBuffer;
|
||||
+ procs->glGetAttribLocation = glGetAttribLocation;
|
||||
+ procs->glGetUniformLocation = glGetUniformLocation;
|
||||
+ procs->glUniform1f = glUniform1f;
|
||||
+ procs->glUniform1i = glUniform1i;
|
||||
+ procs->glUniformMatrix4fv = glUniformMatrix4fv;
|
||||
+ procs->glCreateProgram = glCreateProgram;
|
||||
+ procs->glDeleteProgram = glDeleteProgram;
|
||||
+ procs->glUseProgram = glUseProgram;
|
||||
+ procs->glLinkProgram = glLinkProgram;
|
||||
+ procs->glGetProgramiv = glGetProgramiv;
|
||||
+ procs->glGetProgramInfoLog = glGetProgramInfoLog;
|
||||
+ procs->glAttachShader = glAttachShader;
|
||||
+ procs->glCreateShader = glCreateShader;
|
||||
+ procs->glDeleteShader = glDeleteShader;
|
||||
+ procs->glCompileShader = glCompileShader;
|
||||
+ procs->glShaderSource = glShaderSource;
|
||||
+ procs->glGetShaderiv = glGetShaderiv;
|
||||
+ procs->glGetShaderInfoLog = glGetShaderInfoLog;
|
||||
+ procs->glEnableVertexAttribArray = glEnableVertexAttribArray;
|
||||
+ procs->glVertexAttribPointer = (FF_PFNGLVERTEXATTRIBPOINTERPROC) glVertexAttribPointer;
|
||||
+#endif
|
||||
|
||||
return 0;
|
||||
|
||||
+#undef CAN_DYNAMIC_LOAD
|
||||
#undef SelectedGetProcAddress
|
||||
#undef LOAD_OPENGL_FUN
|
||||
}
|
||||
--
|
||||
2.38.1
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
From 62c2f041890a6e20770350721a0a2138d0b38634 Mon Sep 17 00:00:00 2001
|
||||
From: Vincent Davis Jr <vince@underview.tech>
|
||||
Date: Sat, 3 Dec 2022 23:35:51 -0600
|
||||
Subject: [PATCH] libavcodec: fix v4l2_req_devscan.h
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
RPI-Distro repo clones original ffmpeg and applies patches to enable
|
||||
raspiberry pi support.
|
||||
|
||||
Fixes minor differences between v4l2_req_devscan.c
|
||||
and v4l2_req_devscan.h after all patches have been
|
||||
applied.
|
||||
|
||||
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
|
||||
---
|
||||
libavcodec/v4l2_req_devscan.h | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libavcodec/v4l2_req_devscan.h b/libavcodec/v4l2_req_devscan.h
|
||||
index 0baef365..cd9c49ac 100644
|
||||
--- a/libavcodec/v4l2_req_devscan.h
|
||||
+++ b/libavcodec/v4l2_req_devscan.h
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef _DEVSCAN_H_
|
||||
#define _DEVSCAN_H_
|
||||
|
||||
+#include <stdint.h>
|
||||
+
|
||||
struct devscan;
|
||||
struct decdev;
|
||||
enum v4l2_buf_type;
|
||||
@@ -13,7 +15,8 @@ const char *decdev_video_path(const struct decdev *const dev);
|
||||
enum v4l2_buf_type decdev_src_type(const struct decdev *const dev);
|
||||
uint32_t decdev_src_pixelformat(const struct decdev *const dev);
|
||||
|
||||
-const struct decdev *devscan_find(struct devscan *const scan, const uint32_t src_fmt_v4l2);
|
||||
+const struct decdev *devscan_find(struct devscan *const scan,
|
||||
+ const uint32_t src_fmt_v4l2);
|
||||
|
||||
int devscan_build(void * const dc, struct devscan **pscan);
|
||||
void devscan_delete(struct devscan **const pScan);
|
||||
--
|
||||
2.38.1
|
||||
|
||||
@@ -33,27 +33,22 @@ RPROVIDES:${PN} = "${PROVIDES}"
|
||||
DEPENDS = "nasm-native"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc avresample ffplay \
|
||||
PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc ffplay \
|
||||
v4l2 drm udev alsa bzlib lzma pic pthreads shared theora zlib libvorbis x264 gpl \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'mmal rpi sand vout-drm', d)} \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'mmal sand vout-drm', d)} \
|
||||
${@bb.utils.contains('AVAILTUNES', 'mips32r2', 'mips32r2', '', d)} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl', '', d)} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv xcb vout-egl epoxy', '', d)}"
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv xcb', '', d)} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'epoxy vout-egl', '', d)}"
|
||||
|
||||
SRC_URI = "\
|
||||
git://git@github.com/RPi-Distro/ffmpeg;protocol=https;branch=pios/bullseye \
|
||||
file://0001-avcodec-arm-sbcenc-avoid-callee-preserved-vfp-regist.patch \
|
||||
file://0002-Fix-build-on-powerpc-and-ppc64.patch \
|
||||
file://0003-avcodec-pngenc-remove-monowhite-from-apng-formats.patch \
|
||||
file://0004-ffmpeg-4.3.4-rpi_14.patch \
|
||||
file://0005-fix-flags.diff \
|
||||
git://git@github.com/RPi-Distro/ffmpeg;protocol=https;branch=pios/bookworm \
|
||||
file://0001-ffmpeg-5.1.4-rpi_24.patch \
|
||||
file://2001-configure-setup-for-OE-core-usage.patch \
|
||||
file://2002-libavdevice-opengl_enc-update-dynamic-function-loader.patch \
|
||||
file://2003-libavcodec-fix-v4l2_req_devscan.patch \
|
||||
file://2004-libavcodec-omx-replace-opt-vc-path-with-usr-lib.patch \
|
||||
"
|
||||
|
||||
SRCREV = "246e1a55a0eca931537d8706acd8b133c07beb05"
|
||||
SRCREV = "1c363463c432c5ed492c7b759abb6e015b93b6b5"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
@@ -65,7 +60,7 @@ PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat"
|
||||
PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample"
|
||||
PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale"
|
||||
PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc"
|
||||
PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample"
|
||||
#PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample"
|
||||
|
||||
# features to support
|
||||
PACKAGECONFIG[ffplay] = "--enable-ffplay,--disable-ffplay"
|
||||
@@ -101,7 +96,6 @@ PACKAGECONFIG[epoxy] = "--enable-epoxy,--disable-epoxy,libepoxy"
|
||||
PACKAGECONFIG[v4l2] = "--enable-libv4l2 --enable-v4l2-m2m,,v4l-utils"
|
||||
PACKAGECONFIG[mmal] = "--enable-omx --enable-omx-rpi --enable-mmal,,userland"
|
||||
PACKAGECONFIG[sand] = "--enable-sand,,"
|
||||
PACKAGECONFIG[rpi] = "--enable-rpi,,"
|
||||
PACKAGECONFIG[vout-drm] = "--enable-vout-drm,,libdrm"
|
||||
PACKAGECONFIG[vout-egl] = "--enable-vout-egl,,virtual/egl"
|
||||
|
||||
Reference in New Issue
Block a user