mirror of
https://github.com/agherzan/meta-raspberrypi.git
synced 2025-12-06 06:19:11 +00:00
Compare commits
88 Commits
3afc9728b1
...
copilot/im
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
11ad39f93b | ||
|
|
0e56e2f1b3 | ||
|
|
e75c190de3 | ||
|
|
016b1cec8f | ||
|
|
6bfb571142 | ||
|
|
f2fd4b0ea2 | ||
|
|
90ce848980 | ||
|
|
bf065600bc | ||
|
|
33a3ab273d | ||
|
|
cd66341124 | ||
|
|
93375824f4 | ||
|
|
65eec6d4e8 | ||
|
|
b32d1172a3 | ||
|
|
5a2359bfa8 | ||
|
|
e145dc4d24 | ||
|
|
065874418d | ||
|
|
b21dd5cd60 | ||
|
|
bb660e9ec7 | ||
|
|
a3b23e5cb8 | ||
|
|
55cdc0341c | ||
|
|
03981f9365 | ||
|
|
3dedb92dcc | ||
|
|
7bff7365cf | ||
|
|
0a29a2b44c | ||
|
|
6d6f02ad1f | ||
|
|
77654bddba | ||
|
|
b9a4acca5f | ||
|
|
5aa62b1cf5 | ||
|
|
49a2d12489 | ||
|
|
c489c75260 | ||
|
|
b9d14e4289 | ||
|
|
2b05eb76b9 | ||
|
|
decad3c132 | ||
|
|
d4a80461c8 | ||
|
|
c4cb89e7c1 | ||
|
|
cdcbd825ec | ||
|
|
07ba2ff5fb | ||
|
|
c705e756e3 | ||
|
|
c300562cf8 | ||
|
|
8d57f35e44 | ||
|
|
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
|
||||
|
||||
5
.github/workflows/yocto-builds.yml
vendored
5
.github/workflows/yocto-builds.yml
vendored
@@ -20,6 +20,7 @@ jobs:
|
||||
- raspberrypi0-2w
|
||||
- raspberrypi0
|
||||
- raspberrypi0-wifi
|
||||
- raspberrypi2-64
|
||||
- raspberrypi2
|
||||
- raspberrypi3-64
|
||||
- raspberrypi3
|
||||
@@ -66,7 +67,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 +78,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:
|
||||
|
||||
11
README.md
11
README.md
@@ -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
|
||||
|
||||
@@ -70,9 +70,10 @@ This layer depends on:
|
||||
## Quick Start with kas
|
||||
|
||||
1. Install kas build tool from PyPi (sudo pip3 install kas)
|
||||
2. kas build meta-raspberrypi/kas-poky-rpi.yml
|
||||
3. Use bmaptool to copy the generated .wic.bz2 file to the SD card
|
||||
4. Boot your RPI
|
||||
2. Set the `machine: ` in kas-poky-rpi.yml to one of the supported boards (see conf/machine/*.conf)
|
||||
3. kas build meta-raspberrypi/kas-poky-rpi.yml
|
||||
4. Use bmaptool to copy the generated .wic.bz2 file to the SD card
|
||||
5. Boot your RPI
|
||||
|
||||
To adjust the build configuration with specific options (I2C, SPI, ...), simply add
|
||||
a section as follows:
|
||||
@@ -81,7 +82,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 = "whinlatter"
|
||||
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 \
|
||||
@@ -49,6 +51,7 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
|
||||
overlays/iqaudio-dacplus.dtbo \
|
||||
overlays/mcp2515-can0.dtbo \
|
||||
overlays/mcp2515-can1.dtbo \
|
||||
overlays/seeed-can-fd-hat-v2.dtbo \
|
||||
overlays/mcp3008.dtbo \
|
||||
overlays/miniuart-bt.dtbo \
|
||||
overlays/pitft22.dtbo \
|
||||
@@ -58,15 +61,29 @@ 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/w1-gpio-pi5.dtbo \
|
||||
overlays/wm8960-soundcard.dtbo \
|
||||
overlays/bcm2712d0.dtbo \
|
||||
"
|
||||
|
||||
RPI_KERNEL_DEVICETREE ?= " \
|
||||
@@ -86,7 +103,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"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# RaspberryPi BSP default versions
|
||||
|
||||
PREFERRED_VERSION_linux-raspberrypi ??= "6.6.%"
|
||||
PREFERRED_VERSION_linux-raspberrypi ??= "6.12.%"
|
||||
PREFERRED_VERSION_linux-raspberrypi-v7 ??= "${PREFERRED_VERSION_linux-raspberrypi}"
|
||||
|
||||
@@ -23,6 +23,7 @@ MACHINE_EXTRA_RRECOMMENDS += "\
|
||||
"
|
||||
|
||||
RPI_KERNEL_DEVICETREE = " \
|
||||
broadcom/bcm2710-rpi-2-b.dtb \
|
||||
broadcom/bcm2710-rpi-3-b.dtb \
|
||||
broadcom/bcm2710-rpi-3-b-plus.dtb \
|
||||
broadcom/bcm2837-rpi-3-b.dtb \
|
||||
@@ -33,6 +34,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"
|
||||
|
||||
30
conf/machine/raspberrypi2-64.conf
Normal file
30
conf/machine/raspberrypi2-64.conf
Normal file
@@ -0,0 +1,30 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: RaspberryPi 2 V1.2 Development Board
|
||||
#@DESCRIPTION: Machine configuration for the RaspberryPi 2 in 64 bits mode
|
||||
|
||||
MACHINEOVERRIDES =. "raspberrypi3-64:"
|
||||
|
||||
DEFAULTTUNE ?= "cortexa53-nocrypto"
|
||||
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
|
||||
include conf/machine/include/rpi-base.inc
|
||||
|
||||
RPI_KERNEL_DEVICETREE = " \
|
||||
broadcom/bcm2710-rpi-2-b.dtb \
|
||||
broadcom/bcm2710-rpi-3-b.dtb \
|
||||
broadcom/bcm2710-rpi-3-b-plus.dtb \
|
||||
broadcom/bcm2837-rpi-3-b.dtb \
|
||||
broadcom/bcm2710-rpi-cm3.dtb \
|
||||
"
|
||||
|
||||
SDIMG_KERNELIMAGE ?= "kernel8.img"
|
||||
# When u-boot is enabled we need to use the "Image" format and the "booti"
|
||||
# command to load the kernel
|
||||
KERNEL_IMAGETYPE_UBOOT ?= "Image"
|
||||
# "zImage" not supported on arm64 and ".gz" images not supported by bootloader yet
|
||||
KERNEL_IMAGETYPE_DIRECT ?= "Image"
|
||||
KERNEL_BOOTCMD ?= "booti"
|
||||
UBOOT_MACHINE = "rpi_arm64_config"
|
||||
SERIAL_CONSOLES ?= "115200;ttyAMA0"
|
||||
|
||||
VC4DTBO ?= "vc4-fkms-v3d"
|
||||
ARMSTUB ?= "armstub8.bin"
|
||||
@@ -12,3 +12,19 @@ SERIAL_CONSOLES ?= "115200;ttyAMA0"
|
||||
UBOOT_MACHINE = "rpi_2_config"
|
||||
|
||||
ARMSTUB ?= "armstub7.bin"
|
||||
|
||||
#
|
||||
# Below are variables ONLY needed for running with Yocto/OE's runqemu script
|
||||
#
|
||||
IMAGE_CLASSES += "qemuboot"
|
||||
|
||||
QB_SYSTEM_NAME = "qemu-system-arm"
|
||||
QB_MACHINE = "-machine raspi2b"
|
||||
QB_MEM = "-m 1024"
|
||||
QB_DTB = "bcm2709-rpi-2-b.dtb"
|
||||
QB_NET = "none"
|
||||
QB_KERNEL_ROOT = "/dev/mmcblk0"
|
||||
QB_KERNEL_CMDLINE_APPEND = "rootwait"
|
||||
QB_RNG = ""
|
||||
QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=sd,format=raw"
|
||||
QB_DEFAULT_FSTYPE = "ext3"
|
||||
|
||||
@@ -11,10 +11,12 @@ MACHINE_EXTRA_RRECOMMENDS += "\
|
||||
bluez-firmware-rpidistro-bcm4345c0-hcd \
|
||||
"
|
||||
|
||||
DEFAULTTUNE ?= "cortexa53-nocrypto"
|
||||
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
|
||||
include conf/machine/include/rpi-base.inc
|
||||
|
||||
RPI_KERNEL_DEVICETREE = " \
|
||||
broadcom/bcm2710-rpi-2-b.dtb \
|
||||
broadcom/bcm2710-rpi-3-b.dtb \
|
||||
broadcom/bcm2710-rpi-3-b-plus.dtb \
|
||||
broadcom/bcm2837-rpi-3-b.dtb \
|
||||
|
||||
@@ -12,6 +12,8 @@ MACHINE_EXTRA_RRECOMMENDS += "\
|
||||
bluez-firmware-rpidistro-bcm4345c5-hcd \
|
||||
"
|
||||
|
||||
DEFAULTTUNE = "cortexa72-nocrypto"
|
||||
|
||||
require conf/machine/include/arm/armv8a/tune-cortexa72.inc
|
||||
include conf/machine/include/rpi-base.inc
|
||||
|
||||
|
||||
@@ -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"`.
|
||||
|
||||
@@ -353,6 +354,12 @@ Tested modules:
|
||||
* WaveShare RS485 CAN HAT (8 MHz or 12 MHz crystal): <https://www.waveshare.com/rs485-can-hat.htm>
|
||||
* PiCAN2 Duo (16 MHz crystal): <http://skpang.co.uk/catalog/pican2-duo-canbus-board-for-raspberry-pi-23-p-1480.html>
|
||||
|
||||
To enable the 2-Channel CAN-BUS(FD) Shield (MCP2518FD), set:
|
||||
|
||||
ENABLE_DUAL_CAN_SEED_FD_HAT_V2 = "1"
|
||||
|
||||
* Seed Studio (2-Channel CAN-BUS(FD) Shield): <https://wiki.seeedstudio.com/2-Channel-CAN-BUS-FD-Shield-for-Raspberry-Pi/>
|
||||
|
||||
## Enable infrared
|
||||
|
||||
Users who want to enable infrared support, for example for using LIRC (Linux
|
||||
@@ -487,14 +494,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.
|
||||
|
||||
|
||||
@@ -7,13 +7,18 @@
|
||||
* raspberrypi0-wifi
|
||||
* raspberrypi0-2w-64
|
||||
* raspberrypi2
|
||||
* raspberrypi2-64 (64 bit kernel & userspace)
|
||||
* raspberrypi3
|
||||
* raspberrypi3-64 (64 bit kernel & userspace)
|
||||
* raspberrypi4
|
||||
* raspberrypi4-64 (64 bit kernel & userspace)
|
||||
* raspberrypi5
|
||||
* raspberrypi-cm (dummy alias for raspberrypi)
|
||||
* raspberrypi-cm3
|
||||
|
||||
Note: The raspberrypi2-64 machine includes 64-bit support for Raspberry Pi 2B
|
||||
V1.2.
|
||||
|
||||
Note: The raspberrypi3 machines include support for Raspberry Pi 3B+.
|
||||
|
||||
## Multi-board Machines
|
||||
|
||||
@@ -1,271 +0,0 @@
|
||||
From 500f1e9eaeca29b255d0364e1383d70ade1d1177 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Jansa <martin.jansa@gmail.com>
|
||||
Date: Tue, 30 Jan 2024 12:02:09 +0000
|
||||
Subject: [PATCH] Revert "Support compressed pixel formats when saving DNGs"
|
||||
|
||||
This reverts commit a85aed7603a0b69a6685d3f81ee860246d5b1621.
|
||||
|
||||
This requires rpi specific fork of libcamera to provide e.g.
|
||||
formats::RGGB16_PISP_COMP1
|
||||
added in:
|
||||
https://github.com/raspberrypi/libcamera/commit/fb3cb844f2117f30d3eeece99d6ce4d02624e492
|
||||
but not included in libcamera from meta-oe:
|
||||
https://git.openembedded.org/meta-openembedded/commit/?id=711c6fbce39df685225bca081c5f42bae2de658b
|
||||
|
||||
See https://github.com/raspberrypi/rpicam-apps/issues/627
|
||||
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
image/dng.cpp | 205 ++++++++------------------------------------------
|
||||
1 file changed, 33 insertions(+), 172 deletions(-)
|
||||
|
||||
diff --git a/image/dng.cpp b/image/dng.cpp
|
||||
index 7692f92..fc10439 100644
|
||||
--- a/image/dng.cpp
|
||||
+++ b/image/dng.cpp
|
||||
@@ -33,47 +33,40 @@ struct BayerFormat
|
||||
int bits;
|
||||
char const *order;
|
||||
bool packed;
|
||||
- bool compressed;
|
||||
};
|
||||
|
||||
static const std::map<PixelFormat, BayerFormat> bayer_formats =
|
||||
{
|
||||
- { formats::SRGGB10_CSI2P, { "RGGB-10", 10, TIFF_RGGB, true, false } },
|
||||
- { formats::SGRBG10_CSI2P, { "GRBG-10", 10, TIFF_GRBG, true, false } },
|
||||
- { formats::SBGGR10_CSI2P, { "BGGR-10", 10, TIFF_BGGR, true, false } },
|
||||
- { formats::SGBRG10_CSI2P, { "GBRG-10", 10, TIFF_GBRG, true, false } },
|
||||
-
|
||||
- { formats::SRGGB10, { "RGGB-10", 10, TIFF_RGGB, false, false } },
|
||||
- { formats::SGRBG10, { "GRBG-10", 10, TIFF_GRBG, false, false } },
|
||||
- { formats::SBGGR10, { "BGGR-10", 10, TIFF_BGGR, false, false } },
|
||||
- { formats::SGBRG10, { "GBRG-10", 10, TIFF_GBRG, false, false } },
|
||||
-
|
||||
- { formats::SRGGB12_CSI2P, { "RGGB-12", 12, TIFF_RGGB, true, false } },
|
||||
- { formats::SGRBG12_CSI2P, { "GRBG-12", 12, TIFF_GRBG, true, false } },
|
||||
- { formats::SBGGR12_CSI2P, { "BGGR-12", 12, TIFF_BGGR, true, false } },
|
||||
- { formats::SGBRG12_CSI2P, { "GBRG-12", 12, TIFF_GBRG, true, false } },
|
||||
-
|
||||
- { formats::SRGGB12, { "RGGB-12", 12, TIFF_RGGB, false, false } },
|
||||
- { formats::SGRBG12, { "GRBG-12", 12, TIFF_GRBG, false, false } },
|
||||
- { formats::SBGGR12, { "BGGR-12", 12, TIFF_BGGR, false, false } },
|
||||
- { formats::SGBRG12, { "GBRG-12", 12, TIFF_GBRG, false, false } },
|
||||
-
|
||||
- { formats::SRGGB16, { "RGGB-16", 16, TIFF_RGGB, false, false } },
|
||||
- { formats::SGRBG16, { "GRBG-16", 16, TIFF_GRBG, false, false } },
|
||||
- { formats::SBGGR16, { "BGGR-16", 16, TIFF_BGGR, false, false } },
|
||||
- { formats::SGBRG16, { "GBRG-16", 16, TIFF_GBRG, false, false } },
|
||||
-
|
||||
- { formats::R10_CSI2P, { "BGGR-10", 10, TIFF_BGGR, true, false } },
|
||||
- { formats::R10, { "BGGR-10", 10, TIFF_BGGR, false, false } },
|
||||
+ { formats::SRGGB10_CSI2P, { "RGGB-10", 10, TIFF_RGGB, true } },
|
||||
+ { formats::SGRBG10_CSI2P, { "GRBG-10", 10, TIFF_GRBG, true } },
|
||||
+ { formats::SBGGR10_CSI2P, { "BGGR-10", 10, TIFF_BGGR, true } },
|
||||
+ { formats::SGBRG10_CSI2P, { "GBRG-10", 10, TIFF_GBRG, true } },
|
||||
+
|
||||
+ { formats::SRGGB10, { "RGGB-10", 10, TIFF_RGGB, false } },
|
||||
+ { formats::SGRBG10, { "GRBG-10", 10, TIFF_GRBG, false } },
|
||||
+ { formats::SBGGR10, { "BGGR-10", 10, TIFF_BGGR, false } },
|
||||
+ { formats::SGBRG10, { "GBRG-10", 10, TIFF_GBRG, false } },
|
||||
+
|
||||
+ { formats::SRGGB12_CSI2P, { "RGGB-12", 12, TIFF_RGGB, true } },
|
||||
+ { formats::SGRBG12_CSI2P, { "GRBG-12", 12, TIFF_GRBG, true } },
|
||||
+ { formats::SBGGR12_CSI2P, { "BGGR-12", 12, TIFF_BGGR, true } },
|
||||
+ { formats::SGBRG12_CSI2P, { "GBRG-12", 12, TIFF_GBRG, true } },
|
||||
+
|
||||
+ { formats::SRGGB12, { "RGGB-12", 12, TIFF_RGGB, false } },
|
||||
+ { formats::SGRBG12, { "GRBG-12", 12, TIFF_GRBG, false } },
|
||||
+ { formats::SBGGR12, { "BGGR-12", 12, TIFF_BGGR, false } },
|
||||
+ { formats::SGBRG12, { "GBRG-12", 12, TIFF_GBRG, false } },
|
||||
+
|
||||
+ { formats::SRGGB16, { "RGGB-16", 16, TIFF_RGGB, false } },
|
||||
+ { formats::SGRBG16, { "GRBG-16", 16, TIFF_GRBG, false } },
|
||||
+ { formats::SBGGR16, { "BGGR-16", 16, TIFF_BGGR, false } },
|
||||
+ { formats::SGBRG16, { "GBRG-16", 16, TIFF_GBRG, false } },
|
||||
+
|
||||
+ { formats::R10_CSI2P, { "BGGR-10", 10, TIFF_BGGR, true } },
|
||||
+ { formats::R10, { "BGGR-10", 10, TIFF_BGGR, false } },
|
||||
// Currently not in the main libcamera branch
|
||||
//{ formats::R12_CSI2P, { "BGGR-12", 12, TIFF_BGGR, true } },
|
||||
- { formats::R12, { "BGGR-12", 12, TIFF_BGGR, false, false } },
|
||||
-
|
||||
- /* PiSP compressed formats. */
|
||||
- { formats::RGGB16_PISP_COMP1, { "RGGB-16-PISP", 16, TIFF_RGGB, false, true } },
|
||||
- { formats::GRBG16_PISP_COMP1, { "GRBG-16-PISP", 16, TIFF_GRBG, false, true } },
|
||||
- { formats::GBRG16_PISP_COMP1, { "GBRG-16-PISP", 16, TIFF_GBRG, false, true } },
|
||||
- { formats::BGGR16_PISP_COMP1, { "BGGR-16-PISP", 16, TIFF_BGGR, false, true } },
|
||||
+ { formats::R12, { "BGGR-12", 12, TIFF_BGGR, false } },
|
||||
};
|
||||
|
||||
static void unpack_10bit(uint8_t const *src, StreamInfo const &info, uint16_t *dest)
|
||||
@@ -124,129 +117,6 @@ static void unpack_16bit(uint8_t const *src, StreamInfo const &info, uint16_t *d
|
||||
}
|
||||
}
|
||||
|
||||
-// We always use these compression parameters.
|
||||
-#define COMPRESS_OFFSET 2048
|
||||
-#define COMPRESS_MODE 1
|
||||
-
|
||||
-static uint16_t postprocess(uint16_t a)
|
||||
-{
|
||||
- if (COMPRESS_MODE & 2)
|
||||
- {
|
||||
- if (COMPRESS_MODE == 3 && a < 0x4000)
|
||||
- a = a >> 2;
|
||||
- else if (a < 0x1000)
|
||||
- a = a >> 4;
|
||||
- else if (a < 0x1800)
|
||||
- a = (a - 0x800) >> 3;
|
||||
- else if (a < 0x3000)
|
||||
- a = (a - 0x1000) >> 2;
|
||||
- else if (a < 0x6000)
|
||||
- a = (a - 0x2000) >> 1;
|
||||
- else if (a < 0xC000)
|
||||
- a = (a - 0x4000);
|
||||
- else
|
||||
- a = 2 * (a - 0x8000);
|
||||
- }
|
||||
-
|
||||
- return std::min(0xFFFF, a + COMPRESS_OFFSET);
|
||||
-}
|
||||
-
|
||||
-static uint16_t dequantize(uint16_t q, int qmode)
|
||||
-{
|
||||
- switch (qmode)
|
||||
- {
|
||||
- case 0:
|
||||
- return (q < 320) ? 16 * q : 32 * (q - 160);
|
||||
-
|
||||
- case 1:
|
||||
- return 64 * q;
|
||||
-
|
||||
- case 2:
|
||||
- return 128 * q;
|
||||
-
|
||||
- default:
|
||||
- return (q < 94) ? 256 * q : std::min(0xFFFF, 512 * (q - 47));
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-static void subBlockFunction(uint16_t *d, uint32_t w)
|
||||
-{
|
||||
- int q[4];
|
||||
-
|
||||
- int qmode = (w & 3);
|
||||
- if (qmode < 3)
|
||||
- {
|
||||
- int field0 = (w >> 2) & 511;
|
||||
- int field1 = (w >> 11) & 127;
|
||||
- int field2 = (w >> 18) & 127;
|
||||
- int field3 = (w >> 25) & 127;
|
||||
- if (qmode == 2 && field0 >= 384)
|
||||
- {
|
||||
- q[1] = field0;
|
||||
- q[2] = field1 + 384;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- q[1] = (field1 >= 64) ? field0 : field0 + 64 - field1;
|
||||
- q[2] = (field1 >= 64) ? field0 + field1 - 64 : field0;
|
||||
- }
|
||||
- int p1 = std::max(0, q[1] - 64);
|
||||
- if (qmode == 2)
|
||||
- p1 = std::min(384, p1);
|
||||
- int p2 = std::max(0, q[2] - 64);
|
||||
- if (qmode == 2)
|
||||
- p2 = std::min(384, p2);
|
||||
- q[0] = p1 + field2;
|
||||
- q[3] = p2 + field3;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- int pack0 = (w >> 2) & 32767;
|
||||
- int pack1 = (w >> 17) & 32767;
|
||||
- q[0] = (pack0 & 15) + 16 * ((pack0 >> 8) / 11);
|
||||
- q[1] = (pack0 >> 4) % 176;
|
||||
- q[2] = (pack1 & 15) + 16 * ((pack1 >> 8) / 11);
|
||||
- q[3] = (pack1 >> 4) % 176;
|
||||
- }
|
||||
-
|
||||
- d[0] = dequantize(q[0], qmode);
|
||||
- d[2] = dequantize(q[1], qmode);
|
||||
- d[4] = dequantize(q[2], qmode);
|
||||
- d[6] = dequantize(q[3], qmode);
|
||||
-}
|
||||
-
|
||||
-static void uncompress(uint8_t const *src, StreamInfo const &info, uint16_t *dest)
|
||||
-{
|
||||
- // In all cases, the *decompressed* image must be a multiple of 8 columns wide.
|
||||
- unsigned int buf_stride_pixels = (info.width + 7) & ~7;
|
||||
- for (unsigned int y = 0; y < info.height; ++y)
|
||||
- {
|
||||
- uint16_t *dp = dest + y * buf_stride_pixels;
|
||||
- uint8_t const *sp = src + y * info.stride;
|
||||
-
|
||||
- for (unsigned int x = 0; x < info.width; x+=8)
|
||||
- {
|
||||
- if (COMPRESS_MODE & 1)
|
||||
- {
|
||||
- uint32_t w0 = 0, w1 = 0;
|
||||
- for (int b = 0; b < 4; ++b)
|
||||
- w0 |= (*sp++) << (b * 8);
|
||||
- for (int b = 0; b < 4; ++b)
|
||||
- w1 |= (*sp++) << (b * 8);
|
||||
- subBlockFunction(dp, w0);
|
||||
- subBlockFunction(dp + 1, w1);
|
||||
- for (int i = 0; i < 8; ++i, ++dp)
|
||||
- *dp = postprocess(*dp);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- for (int i = 0; i < 8; ++i)
|
||||
- *dp++ = postprocess((*sp++) << 8);
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
-
|
||||
struct Matrix
|
||||
{
|
||||
Matrix(float m0, float m1, float m2,
|
||||
@@ -307,16 +177,8 @@ void dng_save(std::vector<libcamera::Span<uint8_t>> const &mem, StreamInfo const
|
||||
BayerFormat const &bayer_format = it->second;
|
||||
LOG(1, "Bayer format is " << bayer_format.name);
|
||||
|
||||
- // Decompression will require a buffer that's 8 pixels aligned.
|
||||
- unsigned int buf_stride_pixels = info.width;
|
||||
- unsigned int buf_stride_pixels_padded = (buf_stride_pixels + 7) & ~7;
|
||||
- std::vector<uint16_t> buf(buf_stride_pixels_padded * info.height);
|
||||
- if (bayer_format.compressed)
|
||||
- {
|
||||
- uncompress(mem[0].data(), info, &buf[0]);
|
||||
- buf_stride_pixels = buf_stride_pixels_padded;
|
||||
- }
|
||||
- else if (bayer_format.packed)
|
||||
+ std::vector<uint16_t> buf(info.width * info.height);
|
||||
+ if (bayer_format.packed)
|
||||
{
|
||||
switch (bayer_format.bits)
|
||||
{
|
||||
@@ -444,9 +306,8 @@ void dng_save(std::vector<libcamera::Span<uint8_t>> const &mem, StreamInfo const
|
||||
{
|
||||
for (unsigned int x = 0; x < (info.width >> 4); x++)
|
||||
{
|
||||
- unsigned int off = (y * buf_stride_pixels + x) << 4;
|
||||
- uint32_t grey =
|
||||
- buf[off] + buf[off + 1] + buf[off + buf_stride_pixels] + buf[off + buf_stride_pixels + 1];
|
||||
+ unsigned int off = (y * info.width + x) << 4;
|
||||
+ uint32_t grey = buf[off] + buf[off + 1] + buf[off + info.width] + buf[off + info.width + 1];
|
||||
grey = (grey << 14) >> bayer_format.bits;
|
||||
grey = sqrt((double)grey); // simple "gamma correction"
|
||||
thumb_buf[3 * x] = thumb_buf[3 * x + 1] = thumb_buf[3 * x + 2] = grey;
|
||||
@@ -478,7 +339,7 @@ void dng_save(std::vector<libcamera::Span<uint8_t>> const &mem, StreamInfo const
|
||||
|
||||
for (unsigned int y = 0; y < info.height; y++)
|
||||
{
|
||||
- if (TIFFWriteScanline(tif, &buf[buf_stride_pixels * y], y, 0) != 1)
|
||||
+ if (TIFFWriteScanline(tif, &buf[info.width * y], y, 0) != 1)
|
||||
throw std::runtime_error("error writing DNG image data");
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
add missing header
|
||||
|
||||
When compiling with gcc15, compiliation fails with the following error:
|
||||
|
||||
| In file included from ../sources/libcamera-apps-1.9.0/post_processing_stages/segmentation_tf_stage.cpp:8:
|
||||
| ../sources/libcamera-apps-1.9.0/post_processing_stages/segmentation.hpp:15:82: error: 'uint8_t' was not declared in this scope
|
||||
| 15 | Segmentation(int w, int h, std::vector<std::string> l, const std::vector<uint8_t> &s)
|
||||
|
||||
To avoid it, add the cstdint header to the offending file.
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/raspberrypi/rpicam-apps/pull/861]
|
||||
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
|
||||
diff --git a/post_processing_stages/segmentation.hpp b/post_processing_stages/segmentation.hpp
|
||||
index ac87228..82d7939 100644
|
||||
--- a/post_processing_stages/segmentation.hpp
|
||||
+++ b/post_processing_stages/segmentation.hpp
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
SUMMARY = "A suite of libcamera-based apps"
|
||||
DESCRIPTION = "This is a small suite of libcamera-based apps that aim to \
|
||||
copy the functionality of the existing \"raspicam\" apps."
|
||||
HOMEPAGE = "https://github.com/raspberrypi/rpicam-apps"
|
||||
SECTION = "console/utils"
|
||||
|
||||
LICENSE = "BSD-2-Clause"
|
||||
LIC_FILES_CHKSUM = "file://license.txt;md5=a0013d1b383d72ba4bdc5b750e7d1d77"
|
||||
|
||||
SRC_URI = "\
|
||||
git://github.com/raspberrypi/rpicam-apps.git;protocol=https;branch=main \
|
||||
file://0001-utils-version.py-use-usr-bin-env-in-shebang.patch \
|
||||
file://add-missing-header.patch \
|
||||
"
|
||||
|
||||
SRCREV = "eca9928b76c106141667288f1cef935d02ba59b3"
|
||||
|
||||
PROVIDES += "rpicam-apps"
|
||||
|
||||
DEPENDS = "libcamera libexif jpeg tiff libpng boost"
|
||||
|
||||
PACKAGECONFIG ??= "drm"
|
||||
PACKAGECONFIG[libav] = "-Denable_libav=enabled, -Denable_libav=disabled, libav"
|
||||
PACKAGECONFIG[drm] = "-Denable_drm=enabled, -Denable_drm=disabled, libdrm"
|
||||
PACKAGECONFIG[egl] = "-Denable_egl=enabled, -Denable_egl=disabled, virtual/egl"
|
||||
PACKAGECONFIG[qt] = "-Denable_qt=enabled, -Denable_qt=disabled, qtbase"
|
||||
PACKAGECONFIG[opencv] = "-Denable_opencv=enabled, -Denable_opencv=disabled, opencv"
|
||||
PACKAGECONFIG[tflite] = "-Denable_tflite=enabled, -Denable_tflite=disabled, tensorflow-lite"
|
||||
|
||||
inherit meson pkgconfig
|
||||
|
||||
NEON_FLAGS = ""
|
||||
NEON_FLAGS:aarch64 = "-Dneon_flags=arm64"
|
||||
NEON_FLAGS:arm:raspberrypi3 = "-Dneon_flags=armv8-neon"
|
||||
NEON_FLAGS:arm:raspberrypi4 = "-Dneon_flags=armv8-neon"
|
||||
EXTRA_OEMESON += "${NEON_FLAGS}"
|
||||
|
||||
# QA Issue: /usr/bin/camera-bug-report contained in package libcamera-apps requires /usr/bin/python3
|
||||
# QA Issue: File /usr/lib/pkgconfig/rpicam_app.pc in package libcamera-apps-dev contains reference to TMPDIR
|
||||
do_install:append() {
|
||||
rm -v ${D}/${bindir}/camera-bug-report
|
||||
sed -i "s,${RECIPE_SYSROOT}${libdir},$\{libdir},g" ${D}${libdir}/pkgconfig/rpicam_app.pc
|
||||
}
|
||||
|
||||
FILES:${PN} += "${libdir}/rpicam-apps-postproc \
|
||||
${libdir}/rpicam-apps-preview \
|
||||
${datadir}/rpi-camera-assets"
|
||||
@@ -1,44 +0,0 @@
|
||||
SUMMARY = "A suite of libcamera-based apps"
|
||||
DESCRIPTION = "This is a small suite of libcamera-based apps that aim to \
|
||||
copy the functionality of the existing \"raspicam\" apps."
|
||||
HOMEPAGE = "https://github.com/raspberrypi/libcamera-apps"
|
||||
SECTION = "console/utils"
|
||||
|
||||
LICENSE = "BSD-2-Clause"
|
||||
LIC_FILES_CHKSUM = "file://license.txt;md5=a0013d1b383d72ba4bdc5b750e7d1d77"
|
||||
|
||||
SRC_URI = "\
|
||||
git://github.com/raspberrypi/libcamera-apps.git;protocol=https;branch=main \
|
||||
file://0001-utils-version.py-use-usr-bin-env-in-shebang.patch \
|
||||
file://0002-Revert-Support-compressed-pixel-formats-when-saving-.patch \
|
||||
"
|
||||
PV = "1.4.2+git${SRCPV}"
|
||||
SRCREV = "9ae39f85ae6bee9761c36b9b5b80d675bc1fa369"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
DEPENDS = "libcamera libexif jpeg tiff libpng boost"
|
||||
|
||||
PACKAGECONFIG ??= "drm"
|
||||
PACKAGECONFIG[libav] = "-Denable_libav=true, -Denable_libav=false, libav"
|
||||
PACKAGECONFIG[drm] = "-Denable_drm=true, -Denable_drm=false, libdrm"
|
||||
PACKAGECONFIG[egl] = "-Denable_egl=true, -Denable_egl=false, virtual/egl"
|
||||
PACKAGECONFIG[qt] = "-Denable_qt=true, -Denable_qt=false, qtbase"
|
||||
PACKAGECONFIG[opencv] = "-Denable_opencv=true, -Denable_opencv=false, opencv"
|
||||
PACKAGECONFIG[tflite] = "-Denable_tflite=true, -Denable_tflite=false, tensorflow-lite"
|
||||
|
||||
inherit meson pkgconfig
|
||||
|
||||
NEON_FLAGS = ""
|
||||
NEON_FLAGS:aarch64 = "-Dneon_flags=arm64"
|
||||
NEON_FLAGS:arm:raspberrypi3 = "-Dneon_flags=armv8-neon"
|
||||
NEON_FLAGS:arm:raspberrypi4 = "-Dneon_flags=armv8-neon"
|
||||
EXTRA_OEMESON += "${NEON_FLAGS}"
|
||||
|
||||
# QA Issue: /usr/bin/camera-bug-report contained in package libcamera-apps requires /usr/bin/python3
|
||||
do_install:append() {
|
||||
rm -v ${D}/${bindir}/camera-bug-report
|
||||
}
|
||||
|
||||
# not picked automatically, because it's missing common 'lib' prefix
|
||||
FILES:${PN}-dev += "${libdir}/rpicam_app.so"
|
||||
@@ -1,2 +1,3 @@
|
||||
PACKAGECONFIG[raspberrypi] = "-Dpipelines=rpi/vc4 -Dipas=rpi/vc4 -Dcpp_args=-Wno-unaligned-access"
|
||||
EXTRA_OEMESON:append:rpi = " -Dipas=rpi/vc4,rpi/pisp"
|
||||
PACKAGECONFIG:append:rpi = " raspberrypi"
|
||||
CXXFLAGS:append:rpi = " -Wno-unaligned-access "
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
DESCRIPTION = "A helper library to generate run-time configuration for the Raspberry Pi \
|
||||
ISP (PiSP), consisting of the Frontend and Backend hardware components."
|
||||
HOMEPAGE = "https://github.com/raspberrypi/libpisp"
|
||||
LICENSE = "BSD-2-Clause & GPL-2.0-only & GPL-2.0-or-later"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=3417a46e992fdf62e5759fba9baef7a7 \
|
||||
file://LICENSES/GPL-2.0-only.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
|
||||
file://LICENSES/GPL-2.0-or-later.txt;md5=fed54355545ffd980b814dab4a3b312c"
|
||||
|
||||
SRC_URI = "git://github.com/raspberrypi/libpisp.git;protocol=https;branch=main;tag=v${PV}"
|
||||
SRCREV = "9ba67e6680f03f31f2b1741a53e8fd549be82cbe"
|
||||
|
||||
DEPENDS = "nlohmann-json"
|
||||
|
||||
inherit meson pkgconfig
|
||||
@@ -32,8 +32,6 @@ SRC_URI = "\
|
||||
|
||||
SRCREV = "b276eb0d7bc3213363e97dbb681ef7c927be6c73"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
PROVIDES = "vlc"
|
||||
RPROVIDES:${PN} = "${PROVIDES}"
|
||||
DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native \
|
||||
|
||||
@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=660e614bc7efb0697cc793d8a22a55c2"
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_Blinka.git;branch=main;protocol=https"
|
||||
SRCREV = "dc688f354fe779c9267c208b99f310af87e79272"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
DEPENDS += "python3-setuptools-scm-native"
|
||||
|
||||
@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec69d6e9e6c85adfb7799d7f8cf044e"
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_BusDevice.git;branch=main;protocol=https"
|
||||
SRCREV = "1bfe8005293205e2f7b2cc498ab5a946f1133b40"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
DEPENDS += "python3-setuptools-scm-native"
|
||||
|
||||
@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=b72678307cc7c10910b5ef460216af07"
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Motor.git;branch=main;protocol=https"
|
||||
SRCREV = "2251bfc0501d0acfb96c0a43f4f2b4c6a10ca14e"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
DEPENDS += "python3-setuptools-scm-native"
|
||||
|
||||
@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=6ad4a8854b39ad474755ef1aea813bac"
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_MotorKit.git;branch=main;protocol=https"
|
||||
SRCREV = "8c1462b4129b21f6db156d1517abb017bb74b982"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
DEPENDS += "python3-setuptools-scm-native"
|
||||
|
||||
@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e7eb6b599fb0cfb06485c64cd4242f62"
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_PCA9685.git;branch=main;protocol=https"
|
||||
SRCREV = "2780c4102f4c23fbab252aa1198b61ba7e2d1b2c"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
DEPENDS += "python3-setuptools-scm-native"
|
||||
|
||||
@@ -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 ?= "20250801"
|
||||
SRCREV = "95be71b8c0f63f03dc06dd0e4c2e5535e6fb4a93"
|
||||
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_S ?= "${WORKDIR}/raspberrypi-firmware-${SHORTREV}"
|
||||
RPIFW_SRC_URI ?= "https://api.github.com/repos/raspberrypi/firmware/tarball/${SRCREV};downloadfilename=raspberrypi-firmware-${SHORTREV}.tar.gz"
|
||||
RPIFW_S ?= "${UNPACKDIR}/raspberrypi-firmware-${SHORTREV}"
|
||||
|
||||
SRC_URI = "${RPIFW_SRC_URI}"
|
||||
SRC_URI[sha256sum] = "4b436f8946b139c6a1202375ef55d4848e3bcd8c1a9cb47000e06d7ecec828f7"
|
||||
SRC_URI[sha256sum] = "8b270b44b7702aae2d60e12b9bb4ea9ce0d9bc34662f7229092b8110d34ef7dd"
|
||||
|
||||
PV = "${RPIFW_DATE}"
|
||||
|
||||
|
||||
@@ -12,19 +12,17 @@ SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=https;branch=master
|
||||
file://0001-config.txt-reintroduce-start_x.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
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 +33,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 ??= ""
|
||||
|
||||
@@ -272,13 +270,16 @@ do_deploy() {
|
||||
echo "# Enable DUAL CAN" >>$CONFIG
|
||||
echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=${CAN0_INTERRUPT_PIN}" >>$CONFIG
|
||||
echo "dtoverlay=mcp2515-can1,oscillator=${CAN_OSCILLATOR},interrupt=${CAN1_INTERRUPT_PIN}" >>$CONFIG
|
||||
# Enable DUAL CAN FOR SEED CAN FD HAT V2
|
||||
elif [ "${ENABLE_DUAL_CAN_SEED_FD_HAT_V2}" = "1" ]; then
|
||||
echo "# Enable DUAL CAN FOR SEED CAN FD HAT V2" >>$CONFIG
|
||||
echo "dtoverlay=seeed-can-fd-hat-v2" >>$CONFIG
|
||||
# ENABLE CAN
|
||||
elif [ "${ENABLE_CAN}" = "1" ]; then
|
||||
echo "# Enable CAN" >>$CONFIG
|
||||
echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=${CAN0_INTERRUPT_PIN}" >>$CONFIG
|
||||
fi
|
||||
|
||||
|
||||
if [ "${ENABLE_GPIO_SHUTDOWN}" = "1" ]; then
|
||||
if ([ "${ENABLE_I2C}" = "1" ] || [ "${PITFT}" = "1" ]) && [ -z "${GPIO_SHUTDOWN_PIN}" ]; then
|
||||
# By default GPIO shutdown uses the same pin as the (master) I2C SCL.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
RPIFW_DATE ?= "20230509~buster"
|
||||
|
||||
RPIFW_SRC_URI ?= "https://archive.raspberrypi.com/debian/pool/main/r/raspberrypi-firmware/raspberrypi-firmware_1.${RPIFW_DATE}.orig.tar.xz"
|
||||
RPIFW_S ?= "${WORKDIR}/raspberrypi-firmware-1.${RPIFW_DATE}"
|
||||
RPIFW_S ?= "${UNPACKDIR}/raspberrypi-firmware-1.${RPIFW_DATE}"
|
||||
|
||||
SRC_URI = "${RPIFW_SRC_URI}"
|
||||
SRC_URI[sha256sum] = "1d9eb83111826b708f461101766fd2000d45f1c171ad573936d000f623ca8098"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
RPITOOLS_DATE ?= "20220711"
|
||||
SRCREV ?= "439b6198a9b340de5998dd14a26a0d9d38a6bcac"
|
||||
RPITOOLS_SRC_URI ?= "git://github.com/raspberrypi/tools;protocol=https;branch=master"
|
||||
RPITOOLS_S ?= "${WORKDIR}/git"
|
||||
RPITOOLS_S ?= "${UNPACKDIR}/${BP}"
|
||||
|
||||
SRC_URI = "${RPITOOLS_SRC_URI}"
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ SRC_URI = "file://bind_gpio_shutdown.tab \
|
||||
file://gpio-shutdown-keymap.sh \
|
||||
"
|
||||
|
||||
S = "${UNPACKDIR}"
|
||||
|
||||
inherit update-rc.d
|
||||
|
||||
INITSCRIPT_NAME = "gpio-shutdown-keymap.sh"
|
||||
@@ -19,8 +21,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,17 +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"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
SRCREV = "2349daafacfb7a7abe2cfecf30a49ae837bdf2c6"
|
||||
PV = "v2025.07.17-2712"
|
||||
|
||||
RDEPENDS:${PN} += " \
|
||||
coreutils \
|
||||
|
||||
@@ -15,12 +15,14 @@ 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 = "${UNPACKDIR}"
|
||||
|
||||
do_deploy() {
|
||||
install -d ${DEPLOYDIR}
|
||||
install -m 0644 boot.scr ${DEPLOYDIR}
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
From: Mauro Salvini <m.salvini@koansoftware.com>
|
||||
To: u-boot@lists.denx.de
|
||||
Subject: [PATCH] rpi: always set fdt_addr with firmware-provided FDT address
|
||||
Date: Wed, 12 May 2021 14:39:45 +0200 [thread overview]
|
||||
Message-ID: <20210512123945.25649-1-m.salvini@koansoftware.com> (raw)
|
||||
|
||||
Raspberry firmware prepares the FDT blob in memory at an address
|
||||
that depends on both the memory size and the blob size [1].
|
||||
After commit ade243a211d6 ("rpi: passthrough of the firmware provided FDT
|
||||
blob") this FDT is passed to kernel through fdt_addr environment variable,
|
||||
handled in set_fdt_addr() function in board file.
|
||||
|
||||
When u-boot environment is persistently saved, if a change happens
|
||||
in loaded FDT (e.g. for a new overlay applied), firmware produces a FDT
|
||||
address different from the saved one, but u-boot still use the saved
|
||||
one because set_fdt_addr() function does not overwrite the fdt_addr
|
||||
variable. So, for example, if there is a script that uses fdt commands for
|
||||
e.g. manipulate the bootargs, boot hangs with error
|
||||
|
||||
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
|
||||
|
||||
Removing the fdt_addr variable in saved environment allows to boot.
|
||||
|
||||
With this patch set_fdt_addr() function always overwrite fdt_addr value.
|
||||
|
||||
[1] https://www.raspberrypi.org/forums//viewtopic.php?f=107&t=134018
|
||||
|
||||
Signed-off-by: Mauro Salvini <m.salvini@koansoftware.com>
|
||||
Cc: C?dric Schieli <cschieli@gmail.com>
|
||||
Cc: Matthias Brugger <mbrugger@suse.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
board/raspberrypi/rpi/rpi.c | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
|
||||
index df52a4689f..611013471e 100644
|
||||
--- a/board/raspberrypi/rpi/rpi.c
|
||||
+++ b/board/raspberrypi/rpi/rpi.c
|
||||
@@ -318,9 +318,6 @@ static void set_fdtfile(void)
|
||||
*/
|
||||
static void set_fdt_addr(void)
|
||||
{
|
||||
- if (env_get("fdt_addr"))
|
||||
- return;
|
||||
-
|
||||
if (fdt_magic(fw_dtb_pointer) != FDT_MAGIC)
|
||||
return;
|
||||
|
||||
--
|
||||
2.17.1
|
||||
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
|
||||
@@ -4,11 +4,11 @@ SRC_URI:append:rpi = " \
|
||||
file://fw_env.config \
|
||||
"
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
@@ -10,9 +10,7 @@ SRC_URI = "\
|
||||
git://github.com/RPi-Distro/pi-bluetooth;branch=master;protocol=https \
|
||||
file://0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch \
|
||||
"
|
||||
SRCREV = "fd4775bf90e037551532fc214a958074830bb80d"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
SRCREV = "87248a382d1a81b80a62730975135d87fffd7ef1"
|
||||
|
||||
inherit ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'update-rc.d', d)}
|
||||
# hciuart.service replaces what was brcm43438.service
|
||||
@@ -16,7 +16,6 @@ RDEPENDS:${PN} = "\
|
||||
raspi-gpio \
|
||||
rpio \
|
||||
rpi-gpio \
|
||||
pi-blaster \
|
||||
python3-adafruit-circuitpython-register \
|
||||
python3-adafruit-platformdetect \
|
||||
python3-adafruit-pureio \
|
||||
@@ -27,6 +26,9 @@ RDEPENDS:${PN} = "\
|
||||
bluez5 \
|
||||
"
|
||||
|
||||
RDEPENDS:${PN}:append:rpi:armv7a = " pi-blaster"
|
||||
RDEPENDS:${PN}:append:rpi:armv7ve = " pi-blaster"
|
||||
|
||||
RRECOMMENDS:${PN} = "\
|
||||
${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-multimedia", "bigbuckbunny-1080p bigbuckbunny-480p bigbuckbunny-720p", "", d)} \
|
||||
${MACHINE_EXTRA_RRECOMMENDS} \
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -8,12 +8,10 @@ SRC_URI = " \
|
||||
"
|
||||
SRCREV = "5ce3ef2b7f377c23fea440ca9df0e30f3f8447cf"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
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/
|
||||
}
|
||||
|
||||
@@ -3,11 +3,13 @@ LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
|
||||
SRC_URI = "file://80-udisks-rpi.rules"
|
||||
|
||||
S = "${UNPACKDIR}"
|
||||
|
||||
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"
|
||||
|
||||
@@ -8,8 +8,6 @@ SRC_URI = "git://github.com/sarfata/pi-blaster;branch=master;protocol=https \
|
||||
file://remove-initscript-lsb-dependency.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SRCREV = "fbba9a7dcef0f352a11f8a2a5f6cbc15b62c0829"
|
||||
|
||||
inherit update-rc.d autotools
|
||||
@@ -18,6 +16,10 @@ INITSCRIPT_PACKAGES = "${PN}"
|
||||
INITSCRIPT_NAME:${PN} = "${PN}.boot.sh"
|
||||
INITSCRIPT_PARAMS:${PN} = "defaults 15 85"
|
||||
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
# only works on 32-bit targets
|
||||
# https://github.com/sarfata/pi-blaster/issues/114
|
||||
COMPATIBLE_MACHINE = "(^$)"
|
||||
COMPATIBLE_MACHINE:rpi:armv7a = "(.*)"
|
||||
COMPATIBLE_MACHINE:rpi:armv7ve = "(.*)"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
@@ -5,7 +5,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec69d6e9e6c85adfb7799d7f8cf044e"
|
||||
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Register.git;branch=main;protocol=https"
|
||||
SRCREV = "d1e8ac7ad9dcd65ab83749db3e5c96ffee80ebb7"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
DEPENDS += "python3-setuptools-scm-native"
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=fccd531dce4b989c05173925f0bbb76c"
|
||||
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_Python_PlatformDetect.git;branch=main;protocol=https"
|
||||
SRCREV = "e1460098eeca5ea573f92814691bb378e15530d9"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
|
||||
@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2a21fcca821a506d4c36f7bbecc0d009"
|
||||
SRC_URI = "git://github.com/adafruit/Adafruit_Python_PureIO.git;branch=main;protocol=https"
|
||||
SRCREV = "383b615ce9ff5bbefdf77652799f380016fda353"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
DEPENDS += "python3-setuptools-scm-native"
|
||||
|
||||
@@ -11,5 +11,5 @@ SRC_URI = "git://github.com/RPi-Distro/RTIMULib.git;protocol=http;branch=master;
|
||||
"
|
||||
SRCREV = "b949681af69b45f0f7f4bb53b6770037b5b02178"
|
||||
|
||||
S = "${WORKDIR}/git/Linux/python"
|
||||
S = "${UNPACKDIR}/${BP}/Linux/python"
|
||||
inherit setuptools3
|
||||
|
||||
@@ -9,7 +9,6 @@ SRC_URI = "\
|
||||
git://github.com/metachris/RPIO.git;protocol=https;branch=master \
|
||||
"
|
||||
SRCREV = "be1942a69b2592ddacd9dc833d2668a19aafd8d2"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
|
||||
@@ -12,5 +12,3 @@ SRCREV = "22b44e4765b4b78dc5b22394fff484e353d5914d"
|
||||
SRC_URI = "git://github.com/RPi-Distro/raspi-gpio.git;protocol=https;branch=master \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
|
||||
51
recipes-devtools/raspi-utils/raspi-utils_git.bb
Normal file
51
recipes-devtools/raspi-utils/raspi-utils_git.bb
Normal file
@@ -0,0 +1,51 @@
|
||||
SUMMARY = "A collection of scripts and simple applications"
|
||||
LICENSE = "BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://LICENCE;md5=4c01239e5c3a3d133858dedacdbca63c"
|
||||
|
||||
RCONFLICTS:${PN} = "userland"
|
||||
DEPENDS:append = " dtc"
|
||||
PACKAGES =+ " ${PN}-raspinfo"
|
||||
PACKAGES =+ " ${PN}-ovmerge"
|
||||
RDEPENDS:${PN}-raspinfo += " bash"
|
||||
RDEPENDS:${PN}-ovmerge += " perl"
|
||||
|
||||
PV = "1.0+git"
|
||||
|
||||
SRC_URI = "git://github.com/raspberrypi/utils;protocol=https;branch=master"
|
||||
|
||||
SRCREV = "e923ccad57d2a22f606c8fe0d1096e782a090fc9"
|
||||
|
||||
FILES:${PN}:append = " \
|
||||
${datadir}/bash-completion/completions/pinctrl \
|
||||
${datadir}/bash-completion/completions/vcgencmd \
|
||||
"
|
||||
FILES:${PN}-raspinfo += "${bindir}/raspinfo"
|
||||
FILES:${PN}-ovmerge += "${bindir}/ovmerge"
|
||||
|
||||
OECMAKE_TARGET_COMPILE = "\
|
||||
dtmerge/all \
|
||||
eeptools/all \
|
||||
otpset/all \
|
||||
overlaycheck/all \
|
||||
ovmerge/all \
|
||||
pinctrl/all \
|
||||
raspinfo/all \
|
||||
vcgencmd/all \
|
||||
vclog/all \
|
||||
vcmailbox/all \
|
||||
"
|
||||
|
||||
OECMAKE_TARGET_INSTALL = "\
|
||||
dtmerge/install \
|
||||
eeptools/install \
|
||||
otpset/install \
|
||||
overlaycheck/install \
|
||||
ovmerge/install \
|
||||
pinctrl/install \
|
||||
raspinfo/install \
|
||||
vcgencmd/install \
|
||||
vclog/install \
|
||||
vcmailbox/install \
|
||||
"
|
||||
|
||||
inherit cmake
|
||||
1
recipes-graphics/mesa/mesa.bbappend
Normal file
1
recipes-graphics/mesa/mesa.bbappend
Normal file
@@ -0,0 +1 @@
|
||||
PACKAGECONFIG:append:rpi = " gallium vc4 v3d ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'vulkan broadcom', '', d)}"
|
||||
@@ -1,6 +0,0 @@
|
||||
# DRI3 note:
|
||||
# With oe-core commit 8509e2e1a87578882b71948ccef3b50ccf1228b3 dri3 is set
|
||||
# as default. To state out clearly that Raspi needs dri3 and to avoid surprises
|
||||
# in case oe-core changes this default, we set dri3 explicitly.
|
||||
PACKAGECONFIG:append:rpi = " gallium vc4 v3d kmsro ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)} ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'vulkan broadcom', '', d)}"
|
||||
DRIDRIVERS:class-target:rpi = ""
|
||||
@@ -20,8 +20,6 @@ SRC_URI = "git://github.com/AndrewFromMelbourne/raspidmx;protocol=https;branch=m
|
||||
PV = "0.0+git${SRCPV}"
|
||||
SRCREV = "e2ee6faa0d01a5ece06bcc74a47f37d7e6837310"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit pkgconfig
|
||||
|
||||
DEPENDS += "libpng userland"
|
||||
|
||||
@@ -51,8 +51,6 @@ SRC_URI = "\
|
||||
|
||||
SRC_URI:remove:toolchain-clang = "file://0021-cmake-Disable-format-overflow-warning-as-error.patch"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit cmake pkgconfig
|
||||
|
||||
ASNEEDED = ""
|
||||
@@ -63,7 +61,6 @@ EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS='-Wl,--no-a
|
||||
|
||||
EXTRA_OECMAKE:append:aarch64 = " -DARM64=ON "
|
||||
|
||||
|
||||
PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}"
|
||||
|
||||
PACKAGECONFIG[wayland] = "-DBUILD_WAYLAND=TRUE -DWAYLAND_SCANNER_EXECUTABLE:FILEPATH=${STAGING_BINDIR_NATIVE}/wayland-scanner,,wayland-native wayland"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -29,8 +29,6 @@ SRC_URI = " \
|
||||
SRCREV = "78d6a07730e2d20c035899521ab67726dc028e1c"
|
||||
PV = "1.2-9+rpt3"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit allarch
|
||||
|
||||
CLEANBROKEN = "1"
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
From b9db43e36ad0942d33cb4db5b394abd722862568 Mon Sep 17 00:00:00 2001
|
||||
From: Andrei Gherzan <andrei.gherzan@huawei.com>
|
||||
Date: Fri, 9 Sep 2022 20:28:06 +0200
|
||||
Subject: [PATCH] Default 43455 firmware to standard variant
|
||||
|
||||
The firmware for 43455 is loaded as a symlink: brcmfmac43455-sdio.bin.
|
||||
This symlink is now broken as the debian package handles the right
|
||||
target of this symlink through a postinstall. We don't have that logic
|
||||
here so we default to the standard variant.
|
||||
|
||||
Upstream-Status: Inappropriate [issue reported at https://github.com/RPi-Distro/firmware-nonfree/issues/26]
|
||||
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
|
||||
---
|
||||
debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin
|
||||
index 9c39208..b914838 120000
|
||||
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin
|
||||
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.bin
|
||||
@@ -1 +1 @@
|
||||
-../cypress/cyfmac43455-sdio.bin
|
||||
\ No newline at end of file
|
||||
+../cypress/cyfmac43455-sdio-standard.bin
|
||||
\ No newline at end of file
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
From 20741d848c32e0fb2e4841cf8bbc9ec3d198bb6b Mon Sep 17 00:00:00 2001
|
||||
From: Omri Sarig <omri.sarig@prevas.dk>
|
||||
Date: Thu, 9 Jan 2025 19:00:10 +0100
|
||||
Subject: [PATCH 2/2] Default all RPi 43455 boards to standard variant
|
||||
|
||||
As the patch above explains, the symlink that is being used by the
|
||||
brcmfmac43455-sdio.* files is one that is created by the Debian system,
|
||||
which we do not have in our implementation. Therefore, when the system
|
||||
tries to load these files, an error message is generated.
|
||||
|
||||
By changing the symlinks to be to the standard variant, the problem is
|
||||
solved for the build.
|
||||
|
||||
The code is also working without this patch - when the driver is unable
|
||||
to load the board-specific file (such as
|
||||
brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin), it reverts to using
|
||||
the base file (brcmfmac43455-sdio.bin), which is a correct link (as it
|
||||
is fixed in the patch above). However, the driver is still generating an
|
||||
error message in this case, which is being solved by linking the
|
||||
board-specific files to the standard variant as well.
|
||||
|
||||
Upstream-Status: Inappropriate [issue reported at https://github.com/RPi-Distro/firmware-nonfree/issues/26]
|
||||
Signed-off-by: Omri Sarig <omri.sarig@prevas.dk>
|
||||
---
|
||||
.../brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin | 2 +-
|
||||
.../brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin | 2 +-
|
||||
.../brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin | 2 +-
|
||||
.../brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin | 2 +-
|
||||
.../brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin | 2 +-
|
||||
5 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin
|
||||
index 9c39208..b914838 120000
|
||||
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin
|
||||
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin
|
||||
@@ -1 +1 @@
|
||||
-../cypress/cyfmac43455-sdio.bin
|
||||
\ No newline at end of file
|
||||
+../cypress/cyfmac43455-sdio-standard.bin
|
||||
\ No newline at end of file
|
||||
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin
|
||||
index 9c39208..b914838 120000
|
||||
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin
|
||||
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin
|
||||
@@ -1 +1 @@
|
||||
-../cypress/cyfmac43455-sdio.bin
|
||||
\ No newline at end of file
|
||||
+../cypress/cyfmac43455-sdio-standard.bin
|
||||
\ No newline at end of file
|
||||
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin
|
||||
index 9c39208..b914838 120000
|
||||
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin
|
||||
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin
|
||||
@@ -1 +1 @@
|
||||
-../cypress/cyfmac43455-sdio.bin
|
||||
\ No newline at end of file
|
||||
+../cypress/cyfmac43455-sdio-standard.bin
|
||||
\ No newline at end of file
|
||||
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
|
||||
index 9c39208..b914838 120000
|
||||
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
|
||||
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
|
||||
@@ -1 +1 @@
|
||||
-../cypress/cyfmac43455-sdio.bin
|
||||
\ No newline at end of file
|
||||
+../cypress/cyfmac43455-sdio-standard.bin
|
||||
\ No newline at end of file
|
||||
diff --git a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin
|
||||
index 9c39208..b914838 120000
|
||||
--- a/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin
|
||||
+++ b/debian/config/brcm80211/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin
|
||||
@@ -1 +1 @@
|
||||
-../cypress/cyfmac43455-sdio.bin
|
||||
\ No newline at end of file
|
||||
+../cypress/cyfmac43455-sdio-standard.bin
|
||||
\ No newline at end of file
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -7,7 +7,7 @@ SECTION = "kernel"
|
||||
|
||||
LICENSE = "GPL-2.0-only & binary-redist-Cypress-rpidistro & Synaptics-rpidistro"
|
||||
LIC_FILES_CHKSUM = "\
|
||||
file://debian/copyright;md5=291ee5385b4cf74b10c5fb5a46a7bbc6 \
|
||||
file://debian/copyright;md5=454e44c688dc909e16223e4aee63568c \
|
||||
"
|
||||
# Where these are no common licenses, set NO_GENERIC_LICENSE so that the
|
||||
# license files will be copied from the fetched source.
|
||||
@@ -16,17 +16,21 @@ NO_GENERIC_LICENSE[Synaptics-rpidistro] = "debian/copyright"
|
||||
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 \
|
||||
file://0002-Default-all-RPi-43455-boards-to-standard-variant.patch \
|
||||
"
|
||||
SRCREV = "223ccf3a3ddb11b3ea829749fbbba4d65b380897"
|
||||
PV = "20230625-2+rpt2"
|
||||
S = "${WORKDIR}/git"
|
||||
SRCREV = "c9d3ae6584ab79d19a4f94ccf701e888f9f87a53"
|
||||
PV = "20240709-2~bpo12+1+rpt3"
|
||||
|
||||
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 +38,7 @@ do_install() {
|
||||
|
||||
for fw in \
|
||||
brcmfmac43430-sdio \
|
||||
brcmfmac43430b0-sdio \
|
||||
brcmfmac43436-sdio \
|
||||
brcmfmac43436s-sdio \
|
||||
brcmfmac43455-sdio \
|
||||
@@ -42,8 +47,12 @@ 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
|
||||
|
||||
install -d ${D}${sysconfdir}/modprobe.d
|
||||
install -m 0644 debian/rpi-brcmfmac.conf ${D}${sysconfdir}/modprobe.d/
|
||||
}
|
||||
|
||||
PACKAGES = "\
|
||||
@@ -54,6 +63,7 @@ PACKAGES = "\
|
||||
${PN}-bcm43455 \
|
||||
${PN}-bcm43456 \
|
||||
${PN}-license \
|
||||
${PN}-module-conf \
|
||||
"
|
||||
|
||||
LICENSE:${PN}-bcm43430 = "binary-redist-Cypress-rpidistro"
|
||||
@@ -69,7 +79,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 \
|
||||
@@ -81,13 +94,14 @@ FILES:${PN}-bcm43455 = " \
|
||||
"
|
||||
FILES:${PN}-bcm43456 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43456*"
|
||||
FILES:${PN}-license = "${nonarch_base_libdir}/firmware/copyright.firmware-nonfree-rpidistro"
|
||||
FILES:${PN}-module-conf = "${sysconfdir}/modprobe.d"
|
||||
|
||||
RDEPENDS:${PN}-bcm43430 += "${PN}-license"
|
||||
RDEPENDS:${PN}-bcm43436 += "${PN}-license"
|
||||
RDEPENDS:${PN}-bcm43436s += "${PN}-license"
|
||||
RDEPENDS:${PN}-bcm43439 += "${PN}-license"
|
||||
RDEPENDS:${PN}-bcm43455 += "${PN}-license"
|
||||
RDEPENDS:${PN}-bcm43456 += "${PN}-license"
|
||||
RDEPENDS:${PN}-bcm43430 += "${PN}-license ${PN}-module-conf"
|
||||
RDEPENDS:${PN}-bcm43436 += "${PN}-license ${PN}-module-conf"
|
||||
RDEPENDS:${PN}-bcm43436s += "${PN}-license ${PN}-module-conf"
|
||||
RDEPENDS:${PN}-bcm43439 += "${PN}-license ${PN}-module-conf"
|
||||
RDEPENDS:${PN}-bcm43455 += "${PN}-license ${PN}-module-conf"
|
||||
RDEPENDS:${PN}-bcm43456 += "${PN}-license ${PN}-module-conf"
|
||||
|
||||
RCONFLICTS:${PN}-bcm43430 = "linux-firmware-raspbian-bcm43430"
|
||||
RCONFLICTS:${PN}-bcm43436 = "linux-firmware-bcm43436"
|
||||
|
||||
@@ -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.41"
|
||||
LINUX_RPI_BRANCH ?= "rpi-6.12.y"
|
||||
LINUX_RPI_KMETA_BRANCH ?= "yocto-6.12"
|
||||
|
||||
SRCREV_machine = "11d5d0d30abe08fddc8a0e856d0e333ca6e22114"
|
||||
SRCREV_meta = "57f788e849d9b04dd6aa28b896546c56b45f69e7"
|
||||
|
||||
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"
|
||||
@@ -25,7 +25,7 @@ SRCREV_default = "1f1d0ccd65d3a1caa86dc79d2863a8f067c8e3f8"
|
||||
SRCREV_ffmpeg = "fcbd117df3077bad495e99e20f01cf93737bce76"
|
||||
|
||||
SRC_URI = "git://github.com/popcornmix/omxplayer.git;protocol=https;branch=master \
|
||||
git://github.com/FFmpeg/FFmpeg;branch=release/4.0;protocol=https;depth=1;name=ffmpeg;destsuffix=git/ffmpeg \
|
||||
git://github.com/FFmpeg/FFmpeg;branch=release/4.0;protocol=https;depth=1;name=ffmpeg;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/ffmpeg \
|
||||
file://0002-Libraries-and-headers-from-ffmpeg-are-installed-in-u.patch \
|
||||
file://0003-Remove-strip-step-in-Makefile.patch \
|
||||
file://0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch \
|
||||
@@ -40,8 +40,6 @@ SRC_URI = "git://github.com/popcornmix/omxplayer.git;protocol=https;branch=maste
|
||||
|
||||
SRC_URI:append = "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", " file://0001-Fix-build-with-vc4-driver.patch ", "", d)}"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
COMPATIBLE_HOST:aarch64 = "null"
|
||||
|
||||
|
||||
@@ -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}"
|
||||
|
||||
@@ -14,8 +14,6 @@ RDEPENDS:${PN} = "python3-numbers \
|
||||
SRC_URI = "git://git@github.com/waveform80/picamera.git;protocol=ssh;branch=master"
|
||||
SRCREV = "7e4f1d379d698c44501fb84b886fadf3fc164b70"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit setuptools3
|
||||
|
||||
COMPATIBLE_HOST = "null"
|
||||
|
||||
@@ -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,29 +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"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
SRCREV = "1c363463c432c5ed492c7b759abb6e015b93b6b5"
|
||||
|
||||
# libraries to build in addition to avutil
|
||||
PACKAGECONFIG[avdevice] = "--enable-avdevice,--disable-avdevice"
|
||||
@@ -65,7 +58,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 +94,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