352 Commits

Author SHA1 Message Date
Leon Anavi
aaf976a665 linux-firmware-rpidistro: Update and stabilize
Update to 20240709-2~bpo12+1+rpt3 and add brcmfmac module
parameters for stability.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-09-01 08:19:47 +03:00
Joshua Watt
8d786f646e linux-firmware-rpidistro: Fix WiFi on Raspberry Pi 5
Switches the Raspberry Pi 5 to use the standard cyfman43455-sdio
firmware by default. The minimal firmware on this device is unable to
connect to a WiFi access point.

This also matches the behavior of Raspberry Pi OS, which defaults to the
standard firmware

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-09-01 08:19:47 +03:00
Omri Sarig
2597651049 linux-firmware-rpidistro: Fix wireless error message on RPi
Fixes: #1396

Signed-off-by: Omri Sarig <omri.sarig@prevas.dk>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-09-01 08:19:47 +03:00
Martin Jansa
3afc9728b1 mesa, wayland-protocols: use separate recipe instead of bbappend
Fix
https://github.com/agherzan/meta-raspberrypi/pull/1484

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

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

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

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

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

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

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

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

Signed-off-by: Martin Jansa <martin2.jansa@lgepartner.com>
2025-08-10 09:52:38 -07:00
Garrett Brown
de443f6986 linux: Enable CONFIG_I2C_BRCMSTB for proper HDMI I2C support
This patch enables the CONFIG_I2C_BRCMSTB option in vc4graphics.cfg to
ensure proper support for the `brcm,bcm2711-hdmi-i2c` device node. Without
this configuration, the I2C bus associated with HDMI on Broadcom
BCM2711-based systems may fail to probe, causing issues with HDMI
communication and display initialization.

Additionally, this resolves potential deferred probe issues observed in
the kernel logs, ensuring the correct initialization of the HDMI I2C bus.

Signed-off-by: Garrett Brown <garrett.brown@aclima.io>
2025-08-08 10:56:28 -07:00
Martin Jansa
5f942bc479 Revert "rpi-default-versions: Switch default kernel to 6.12"
This reverts commit 8c916b683d.

Change like this doesn't belong to stable branch, people who
want to use 6.12 can easily switch the P_V in their config.

As reported in:
https://github.com/agherzan/meta-raspberrypi/pull/1483

lttng-modules version in scarthgap fails to build with 6.12:

lttng-modules/2.13.12/lttng-modules-2.13.12/src/../include/wrapper/uprobes.h:28:16: error: too few arguments to function 'uprobe_register'
lttng-modules-2.13.12/src/../include/wrapper/uprobes.h:34:9: error: implicit declaration of function 'uprobe_unregister'; did you mean 'uprobe_register'? [-Werror=implicit-function-declaration]
   34 |         uprobe_unregister(inode, offset, uc);
      |         ^~~~~~~~~~~~~~~~~

Signed-off-by: Martin Jansa <martin2.jansa@lgepartner.com>
2025-08-08 10:56:07 -07:00
Leon Anavi
fceeefa9f0 mesa: wayland-protocols: Fix signatures
Make the upgrade bbappends conditional for Raspberry Pi to fix
issues with signatures. This way the layer passes successfully
test_signatures from:

yocto-check-layer --with-software-layer-signature-check

This work was sponsored by GOVCERT.LU.

Suggested-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-08-05 18:34:07 -07:00
Leon Anavi
884b8b424f mesa_%.bbappend: DISTRO_FEATURES for wayland
Conditionally add wayland-protocols to DEPENDS and RDEPENDS if
variable DISTRO_FEATURES includes wayland.

This work was sponsored by GOVCERT.LU.

Suggested-by: Daniel F. Dickinson <daniel@d-f-d.ca>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-08-05 18:34:07 -07:00
Leon Anavi
c62176e5ff mesa: Upgrade 25.1.3 -> 25.1.6
Upgrade to release 25.1.6:

- v3dv: regression in vkAllocateMemory importing gbm bo
- Vulkan WSI (and zink) use threads on X11 even when the X
  connection isn't thread-safe
- sddm-greeter-qt segfault when using nvk+zink
- [regression][bisected] [FirePro W4100]: crashing/rebooting
- Descriptor set layout with binding flags fails due to indices
  not matching bindings
- piglit bindless texture tests crash
- [radeonsi] Artifacts in Team Fortress 2 (bisected)
- eglgears_wayland segfault on zink+nvk with PRIME
- vn_renderer_virtgpu.c:13:10: fatal error: 'xf86drm.h' file not
  found
- brw: mad instruction printing broken on Gfx11
- radv: RGB9E5 rendering does not ignore alpha write mask

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-08-05 18:34:07 -07:00
Leon Anavi
41a6240492 mesa: Upgrade 24.3.1 -> 25.1.3
Upgrade to release 25.1.3:

- A bug fix release which fixes bugs found since the 25.1.2 release
- Implements the OpenGL 4.6 API, but the version reported by
  glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
  glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver
  being used. Some drivers don't support all the features required
  in OpenGL 4.6. OpenGL 4.6 is only available if requested at
  context creation. Compatibility contexts may report a lower
  version depending on each driver.
- Implements the Vulkan 1.4 API, but the version reported by the
  apiVersion property of the VkPhysicalDeviceProperties struct
  depends on the particular driver being used.

For Raspberry Pi this upgrade brings the following fixes:

- v3dv: vkcube-wayland crashes on raspberry pi 5 kernel 6.12

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-08-05 18:34:07 -07:00
Leon Anavi
849919de47 wayland-protocols: Upgrade 1.38 -> 1.45
Upgrade wayland-protocols to version 1.45 following the upstream:
https://git.openembedded.org/openembedded-core/commit/meta/recipes-graphics/wayland/wayland-protocols_1.45.bb?id=6d158db297a1b790fdf7f201eb3a1e47bb9bc272

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-08-05 18:34:07 -07:00
Bassem Nomany
cdf5a8ae49 mesa: update to 24.3.1
Upgrade to latest official mesa release.

Fixes DRM DSI linking to missing and non exisiting library
drm-rp1-dsi_dri.so on mesa 24.0.7 from poky scarthgap
and styhead.

    https://github.com/agherzan/meta-raspberrypi/issues/1389

Signed-off-by: Bassem Nomany <bassem.nomany@id8-engineering.io>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-08-05 18:34:07 -07:00
Adam Schafer
1f2045321a add raspi-utils recipe to scarthgap branch
Signed-off-by: Adam Schafer <adam.schafer@iridium.com>
2025-07-25 10:32:15 -07:00
Martin Jansa
8e9ec2685a docker-build: use --no-cache
* --no-cache is needed to actually call apt update instead of using it
  from docker cache and then failing to fetch pruned packages as shown:
  https://github.com/agherzan/meta-raspberrypi/actions/runs/16327036376/job/46119768952?pr=1491

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2025-07-21 10:30:09 -07:00
Gijs Peskens
48452445d7 raspberrypi5.conf: Add CM5 dtb's
Add new dtb's required for raspberry compute module 5

Signed-off-by: Gijs Peskens <gijs.peskens@munisense.com>
2025-07-03 23:08:04 -07:00
Markus Volk
9e89558cb8 rpi-bootfiles: update to latest release
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-07-01 19:07:00 -07:00
Markus Volk
8c916b683d rpi-default-versions: Switch default kernel to 6.12
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-07-01 19:07:00 -07:00
Markus Volk
4597c80b12 linux-raspberrypi: update 6.12.2 -> 6.12.25
6.12 is now the default in RPiOS and firmware switched to 6.12 initially in raspberrypi/firmware@fe200a5
now it's on 6.12.25

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-07-01 19:07:00 -07:00
Markus Volk
bae1bac2e7 linux-raspberrypi: add recipe for 6.12
This release is tagged outside of branch.
Use 'nobranch=1' to still be able to fetch the code.
https://github.com/raspberrypi/linux/releases/tag/rpi-6.12.y_20241206_2

The kernel was tested to run on raspberrypi4-64

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-07-01 19:07:00 -07:00
Damiano Ferrari
1091bde25e rpi-bootfiles: Update to latest release
Signed-off-by: Damiano Ferrari <damiano.ferrari@ferrarigrowtech.com>
2025-06-30 00:19:13 -07:00
Damiano Ferrari
acc1e1e9f2 rpi-eeprom: Update to latest release
Signed-off-by: Damiano Ferrari <damiano.ferrari@ferrarigrowtech.com>
2025-06-30 00:19:13 -07:00
Leon Anavi
bce7b3acd2 u-boot_%.bbappend: Increase CONFIG_SYS_BOOTM_LEN
Increase CONFIG_SYS_BOOTM_LEN for machine raspberrypi4 (32-bit)
because the kernel size has increased. This fixes the following
issue when booting an image with U-Boot:

   Image Name:   Linux-6.6.63-v7l
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    8559752 Bytes = 8.2 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Booting using the fdt blob at 0x2eff2000
Working FDT set to 2eff2000
   Loading Kernel Image to 8000
Image too large: increase CONFIG_SYS_BOOTM_LEN
Must RESET board to recover

Fixes: https://github.com/agherzan/meta-raspberrypi/issues/1306

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-06-06 07:57:21 -07:00
Leon Anavi
c06ccd1897 rpi-base.inc: vc4-kms-dsi-ili9881-7inch.dtbo
Add vc4-kms-dsi-ili9881-7inch.dtbo for the Raspberry Pi Touch
Display 2 to RPI_KERNEL_DEVICETREE_OVERLAYS.

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-06-06 07:56:48 -07:00
Florin Sarbu
37975104a6 linux-raspberrypi.inc: Change defconfig for RPi3 64 bits
Switch to bcm2711_defconfig for RPi3 64 bits as per
https://github.com/raspberrypi/linux/pull/6688

Signed-off-by: Florin Sarbu <florin@balena.io>
2025-06-05 22:08:49 -07:00
Leon Anavi
a56d87d4e6 yocto-builder/Dockerfile: Ubuntu 22.04
Upgrade to Ubuntu 22.04 because it is compatible with the Yocto
Project release Walnascar and provides a newer Python version:
- Add --ulimit "nofile=1024:1048576" to yocto-builds.yml.
- Increase vm.max_map_count.
- Add --security-opt apparmor=unconfined to docker cmdline.
- Run docker without the default seccomp profile

This commit is backport from branch master to Scarthgap because
Ubuntu 20.04 reached its end of life (EOL) on May 31, 2025. Yocto
release Scarthgap also supports Ubuntu 22.04.

This work was sponsored by GOVCERT.LU.

Suggested-by: Martin Steegmanns <martin.steegmanns@govcert.etat.lu>
Suggested-by: Stu Westerman @stu-spp
Suggested-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-06-05 08:17:30 -07:00
Thomas Roos
1467f18a49 Moving bcm2712d0.dtbo into rpi-base.inc
Having RPI_KERNEL_DEVICETREE_OVERLAYS:append = " overlays/bcm2712d0.dtbo"
in raspberrypi5.conf is not applying when building an 64bit compatible image
with raspberrypi-armv8. Thus moving into the rpi-base.inc

This fix the boot of this image on Raspberry Pi 5 hw rev 1.1

Signed-off-by: Thomas Roos <throos@amazon.de>
2025-06-03 18:13:50 -07:00
Jaeyoon Jung
3b27c95c16 linux-raspberrypi: Drop deprecated configs from android-driver.cfg
CONFIG_ASHMEM has been deprecated since 5.18 by:
    commit 721412ed3d819e767cac2b06646bf03aa158aaec
    Author: Christoph Hellwig <hch@lst.de>
    Date:   Tue Mar 15 13:34:57 2022 +0100

        staging: remove ashmem

        The mainline replacement for ashmem is memfd, so remove the legacy
        code from drivers/staging/

so has CONFIG_ANDROID since 6.1 by:
    commit 1045a06724f322ed61f1ffb994427c7bdbe64647
    Author: Christoph Hellwig <hch@lst.de>
    Date:   Wed Jun 29 17:01:02 2022 +0200

        remove CONFIG_ANDROID

        The ANDROID config symbol is only used to guard the binder config
        symbol and to inject completely random config changes.  Remove it
        as it is obviously a bad idea.

As now master has 6.1 or later, both should be dropped.

Signed-off-by: Jaeyoon Jung <jaeyoon.jung@lge.com>
2025-04-10 17:16:41 -07:00
Ayoub Zaki
c153c694bd raspberrypi5: add bcm2712d0 overlay required for booting up correctly
Signed-off-by: Ayoub Zaki <ayoub.zaki@embetrix.com>
2025-03-21 21:40:49 -07:00
Pierrick Curt
e9cc26c9c7 rpi-base: build uart dts overlays by default
We need the uart dts overlays to enable a specific uart peripheral.
For example if you use the disable-bt overlay, you have to enable
the uart0 dts overlay to be able to use uart0 peripheral.

Signed-off-by: Pierrick Curt <pierrickcurt@gmail.com>
2025-03-21 23:56:29 +00:00
Andrei Gherzan
fa2bcfcf0e docs: Fix ReadTheDocs sphinx.configuration requirement
Deprecation of projects using Sphinx or MkDocs without an explicit
configuration file:

https://about.readthedocs.com/blog/2024/12/deprecate-config-files-without-sphinx-or-mkdocs-config/

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2025-03-21 09:22:09 +00:00
Khem Raj
e124d8284c rpi-base: Remove bcm2712-rpi-5-b.dtb from RPI_KERNEL_DEVICETREE target
All bcm2712 are built for arm64 builds alone and rpi-base.inc is included
by 32-bit machine configs as well. Recently, kernel moved thesr dts files
into arch/arm64/boot/dts/broadcom/ folder [1]

[1] 10c77e119e

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-03-12 21:46:29 +00:00
Khem Raj
3209d98660 linux-raspberrypi-6.6: Upgrade to 6.6.63
supersedes https://github.com/agherzan/meta-raspberrypi/pull/1374

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-03-12 21:46:29 +00:00
Matthias Klein
6df7e028a2 linux-firmware-rpidistro: Upgrade to bookworm/20230625-2+rpt3
The upgrade was necessary to get WLAN running on a CM4 (under scarthgap).
Otherwise I continuously got the following kernel messages when trying to connect:
[   31.907395] brcmfmac: brcmf_set_channel: set chanspec 0xd022 fail, reason -52
[   32.023434] brcmfmac: brcmf_set_channel: set chanspec 0xd026 fail, reason -52
[   32.135403] brcmfmac: brcmf_set_channel: set chanspec 0xd02a fail, reason -52
[   32.247392] brcmfmac: brcmf_set_channel: set chanspec 0xd02e fail, reason -52
[   33.919395] brcmfmac: brcmf_set_channel: set chanspec 0xd090 fail, reason -52
[   33.926940] brcmfmac: brcmf_set_channel: set chanspec 0xd095 fail, reason -52
[   33.935151] brcmfmac: brcmf_set_channel: set chanspec 0xd099 fail, reason -52
[   33.942691] brcmfmac: brcmf_set_channel: set chanspec 0xd09d fail, reason -52
[   33.950338] brcmfmac: brcmf_set_channel: set chanspec 0xd0a1 fail, reason -52
[   33.957903] brcmfmac: brcmf_set_channel: set chanspec 0xd0a5 fail, reason -52

Firmware version before:  BCM4345/6 wl0: Apr 15 2021 03:03:20 version 7.45.234 (4ca95bb CY) FWID 01-996384e2
Firmware version current: BCM4345/6 wl0: Aug 29 2023 01:47:08 version 7.45.265 (28bca26 CY) FWID 01-b677b91b

Signed-off-by: Matthias Klein <matthias@extraklein.de>
2024-09-24 00:27:27 +01:00
Matthias Klein
1918a27419 linux-firmware-rpidistro: Fix wireless on model Zero 2 W
Firmware links for model Zero 2 W were missing.

This patch sets the necessary links for brcmfmac firmware. Without the
links, the firmware cannot be loaded without causing boot messages like:
brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.bin failed with error -2

Fixes agherzan/meta-raspberrypi#1324

Signed-off-by: Matthias Klein <matthias@extraklein.de>
2024-06-07 05:19:13 +01:00
alperak
0f46a1d376 rpi-cmdline: Fix being renamed of network interfaces
Add net.ifnames=0 kernel parameter into CMDLINE and make it possible to override.

If we boot the kernel this way, the network interfaces will not be renamed. Otherwise it will be renamed.

Without parameter:

root@raspberrypi3-64:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: enu1u1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel qlen 1000
    link/ether b8:27:eb:d9:fd:59 brd ff:ff:ff:ff:ff:ff
3: wlxb827eb8ca80c: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
    link/ether b8:27:eb:8c:a8:0c brd ff:ff:ff:ff:ff:ff

root@raspberrypi3-64:~# journalctl | grep wlan
Feb 27 17:26:08 raspberrypi3-64 kernel: brcmfmac mmc1:0001:1 wlxb827eb8ca80c: renamed from wlan0
Feb 27 17:26:10 raspberrypi3-64 kernel[296]: [    8.711897] brcmfmac mmc1:0001:1 wlxb827eb8ca80c: renamed from wlan0

With parameter:

root@raspberrypi3-64:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel qlen 1000
    link/ether b8:27:eb:d9:fd:59 brd ff:ff:ff:ff:ff:ff
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel qlen 1000
    link/ether b8:27:eb:8c:a8:0c brd ff:ff:ff:ff:ff:ff

Signed-off-by: alperak <alperyasinak1@gmail.com>
2024-05-28 23:14:17 +01:00
Tim Orling
fb03b44883 raspberrypi5.conf: Fix KERNEL_IMAGETYPE_UBOOT
Similar to raspberrypi4-64.conf, we need to set KERNEL_IMAGETYPE_UBOOT to
"Image" and set KERNEL_BOOTCMD to "booti"

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
2024-05-28 23:06:18 +01:00
Tim Orling
6d593646ba u-boot: re-enable rapsberrypi5
With meta-lts-mixins scarthgap/u-boot we can now support raspberrypi5

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
2024-05-28 23:06:18 +01:00
Tim Orling
16656a66cf layer.conf: rpi5 recommends lts-u-boot-mixin
Add lts-u-boot-mixin to LAYERRECOMMENDS

https://git.yoctoproject.org/meta-lts-mixins 'scarthgap/u-boot' branch
adds u-boot v2024.04 support which includes the initial support for
raspberrypi5.

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
2024-05-28 23:06:18 +01:00
Martin Jansa
6160d0d737 linux: drop unused 5.15 version
* 6.1 version was used by default since mickledore:
  12a1187b01
  and kirkstone for rpi5 MACHINEs since:
  9dc6673d41

* scarthgap uses 6.6 by default since:
  1cf3dd5e5e

* nobody is probably using 5.15 with newer release and there are issues with "iw reg" since
  wireless-regdb upgrade in oe-core as well as shown in:
  https://github.com/agherzan/meta-raspberrypi/pull/1317
  so better to drop it from master/scarthgap together with
  rpi.scc used only for 5.15 and 0001-gcc-plugins-Reorganize-gimple-includes-for-GCC-13.patch
  used only by rpi.scc

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-05-28 22:18:43 +01:00
Martin Jansa
e7476edfcb linux: drop unused rpi4-64-kernel-misc.cfg
* it was used only for linux-raspberrypi_4.19.inc dropped in:
  2afeee9b82 (diff-7460e33493167fc60e3c40dcb0b3b9298e0bac97d5945414349c89cecc1cf3f1)

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-05-28 22:18:43 +01:00
Max Stepanov
1879cb831f rpi-eeprom: Update to support raspberrypi5 machine
- Upgraded rpi-eeprom to latest release
 - Updated recipe to support pi4 and pi5 machines

Signed-off-by: Max Stepanov <mast@imast.ru>
2024-04-09 09:18:38 +01:00
jdavidsson
d072cc8a48 rpi-base: Add hifiberry-dacplusadc overlay
Add support for HiFiBerry DAC+ ADC.

Signed-off-by: jdavidsson <johan.et.davidsson@gmail.com>
2024-03-28 03:35:31 +00:00
Khem Raj
ec06e94f2a raspberrypi-firmware: Revert to debian archive
This file is now used to fetch binary blobs used by picamera and
vc library recipes, which are only compatible with 32bit userspace
Perhaps we need to sunset these recipe as some point and repace
with alternatives like picamera2 which is built on top of libcamera
and works on both 32bit and 64 bit

rpi-bootfiles is fetching from latest firmware.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-03-27 10:23:17 +00:00
Khem Raj
bb8d5f7e9b rpi-bootfiles: Resort to github APIs for tarballs
The firmware repo is huge ( 36G ) to clone is onerous
using shallow clone tarballs require them to be pre-populated
at some mirror which we don't have. Third option is to let
github provide the tarball, there is concern that tarballs
might change the compression etc and thus checksum would change
that is something github would communicate to users in advance [1]

Therefore this is the best solution for us right now.

Also upgrade to latest while here and drop PR settings

[1] https://docs.github.com/en/repositories/working-with-files/using-files/downloading-source-code-archives#stability-of-source-code-archives

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-03-27 10:23:17 +00:00
Khem Raj
e8d4ac24a4 linux-raspberrypi_6.6: Bump to 6.6.22
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-03-27 10:23:17 +00:00
Martin Jansa
d88e625cf2 userland: fix installed-vs-shipped in multilib builds
Be aware that whole userland repo is marked as ancient and deprecated:
96a7334ae9
and explicitly says:
"If you are using code from here you should rethink your solution."

But even if your build is using vc4graphics in MACHINE_FEATURES
to avoid most of userland, this issue with multilib was preventing
do_install:append to actually remove those libraries provided by
lib32-mesa when building lib32-userland (e.g. to provide
virtual/libomxil or as dependency of raspidmx or runtime dependency
of omxplayer).

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-03-19 00:26:25 +00:00
Khem Raj
1cf3dd5e5e rpi-default-versions: Switch default kernel to 6.6
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-03-18 12:22:52 +00:00
Khem Raj
6a7aac79ce rpi-base: Add missing broadcom/ prefix to find DTB files
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-03-18 12:22:52 +00:00
Khem Raj
90d4e6568a raspberrypi-firmware: Fetch using git URI
This brings the matching binary blobs to latest kernel

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-03-18 12:22:52 +00:00
Khem Raj
a62c7c2ca6 linux-firmware-rpidistro: Upgrade to bookworm/20230625-2+rpt2
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-03-18 12:22:52 +00:00
Khem Raj
ba342d2a9e bluez-firmware-rpidistro: Upgrade to 1.2-9+rpt3 release
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-03-18 12:22:52 +00:00
Khem Raj
e9a1940bab linux-raspberrypi: Add recipe for 6.6 LTS kernel
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-03-18 12:22:52 +00:00
Michał Kluska
92a9b7a012 rpi-base: Added missing HiFiBerry
Added support for missing HiFiBerry AMP100, AMP3, AMP4 Pro, DAC+ ADC Pro, DAC+ DSP, DAC+ HD, Digi Pro.

Signed-off-by: Michał Kluska <kluska.mk@gmail.com>
2024-03-05 10:46:04 +00:00
Martin Jansa
95a9103f91 sdimage-raspberrypi.wks: increase /boot partition minimal size from 20 to 100
* current aarch64 kernel image alone is 24MB:
  24M tmp-glibc/deploy/images/raspberrypi4-64/Image-raspberrypi4-64-1-6.1.77+git0+43d1723dbe_77fc1fbcb5-r0.1-20110405230000.bin
  and with rpi-bootfiles it takes around 46MB (e.g. this is from kirkstone raspberrypi4-64 build):

2.0K    boot.scr
2.0K    cmdline.txt
4.0K    fixup4cd.dat
4.0K    fixup_cd.dat
4.0K    uEnv.txt
6.0K    fixup4.dat
8.0K    fixup.dat
10K     fixup4db.dat
10K     fixup4x.dat
10K     fixup_db.dat
10K     fixup_x.dat
16K     uboot.env
36K     config.txt
52K     bcm2711-rpi-4-b.dtb
52K     bcm2711-rpi-400.dtb
52K     bcm2711-rpi-cm4.dtb
52K     bootcode.bin
126K    overlays
558K    kernel8.img
786K    start4cd.elf
786K    start_cd.elf
2.2M    start4.elf
2.9M    start.elf
2.9M    start4x.elf
3.6M    start4db.elf
3.6M    start_x.elf
4.6M    start_db.elf
23M     Image

* it is increased automatically to fit the content:

  tmp-glibc/deploy/images/raspberrypi4-64 $ sfdisk -l core-image-minimal-raspberrypi4-64.rootfs--1.0-r0-20110405230000.wic
  Disk core-image-minimal-raspberrypi4-64.rootfs--1.0-r0-20110405230000.wic: 241.2 MiB, 252915712 bytes, 493976 sectors
  Units: sectors of 1 * 512 = 512 bytes
  Sector size (logical/physical): 512 bytes / 512 bytes
  I/O size (minimum/optimal): 512 bytes / 512 bytes
  Disklabel type: dos
  Disk identifier: 0x076c4a2a

  Device                                                                Boot  Start    End Sectors   Size Id Type
  core-image-minimal-raspberrypi4-64.rootfs--1.0-r0-20110405230000.wic1 *      8192 157815  149624  73.1M  c W95 FAT32 (LBA)
  core-image-minimal-raspberrypi4-64.rootfs--1.0-r0-20110405230000.wic2      163840 493975  330136 161.2M 83 Linux

  but if you want to update the kernel in place or add some additional files
  later, it might not be big enough, increase the minimal size from 20M to 100M

* reminder (as I forgot about it before):
  "--size" is just minimum

  https://docs.yoctoproject.org/ref-manual/kickstart.html
  says:

  --size: The minimum partition size. Specify as an integer value optionally followed by one of the units “k” / “K” for kibibyte, “M” for mebibyte and “G” for gibibyte. The default unit if none is given is “M”. You do not need this option if you use --source.
  --fixed-size: The exact partition size. Specify as an integer value optionally followed by one of the units “k” / “K” for kibibyte, “M” for mebibyte and “G” for gibibyte. The default unit if none is given is “M”. Cannot be specify together with --size. An error occurs when assembling the disk image if the partition data is larger than --fixed-size.

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-02-23 01:24:46 +00:00
Martin Jansa
b65bff6323 sdcard_image-rpi.bbclass: include ${IMAGE_NAME_SUFFIX} directly in both ${IMAGE_NAME} and ${IMAGE_LINK_NAME}
* Adjust to
  https://git.openembedded.org/openembedded-core/commit/?id=26d97acc71379ab6702fa54a23b6542a3f51779c

* ${IMAGE_NAME}${IMAGE_NAME_SUFFIX} is almost always used together already
  and when they aren't it's usually because of hardcoded '.rootfs' suffix

* it's a bit strange, because ${IMAGE_NAME_SUFFIX} is applied after the
  version from ${IMAGE_VERSION_SUFFIX}, if we move it to ${IMAGE_LINK_NAME}
  then it will be applied before the version and ${IMAGE_LINK_NAME}
  will be just the version-less symlink to latest built version.

* it's not added to INITRAMFS_IMAGE_NAME as it assumes that all
  images used as initramfs will set IMAGE_NAME_SUFFIX to empty.
  Many already do as shown bellow, but you might need to extend
  this list in your layer.

* without this fix, build with:
  IMAGE_FSTYPES:rpi = "rpi-sdimg.gz"
  will fail due to duplicated .rootfs suffix as shown in:
  http://errors.yoctoproject.org/Errors/Details/754267/

  130023424 bytes (130 MB, 124 MiB) copied, 0.0706353 s, 1.8 GB/s
  gzip: skipping: core-image-minimal-raspberrypi4-64.rootfs-20240222111049.rpi-sdimg does not exist
  WARNING: TOPDIR/tmp-glibc/work/raspberrypi4_64-oe-linux/core-image-minimal/1.0/temp/run.do_image_rpi_sdimg.1238835:263 exit 1 from 'gzip -f -9 -n -c --rsyncable core-image-minimal-raspberrypi4-64.rootfs-20240222111049.rpi-sdimg > core-image-minimal-raspberrypi4-64.rootfs-20240222111049.rpi-sdimg.gz'

  OE raspberrypi4-64@ /OE/build/oe-core/tmp-glibc/work/raspberrypi4_64-oe-linux/core-image-minimal/1.0/deploy-core-image-minimal-image-complete $ ll
  total 305612
  drwxr-xr-x  2 martin martin      4096 Feb 22 12:12 ./
  drwxr-xr-x 17 martin martin      4096 Feb 22 12:12 ../
  -rw-r--r--  1 martin martin 130023424 Feb 22 12:12 core-image-minimal-raspberrypi4-64.rootfs-20240222111049.ext3
  -rw-r--r--  1 martin martin      3535 Feb 22 12:12 core-image-minimal-raspberrypi4-64.rootfs-20240222111049.manifest
  -rw-r--r--  1 martin martin 184549376 Feb 22 12:12 core-image-minimal-raspberrypi4-64.rootfs-20240222111049.rootfs.rpi-sdimg
  -rw-r--r--  1 martin martin         0 Feb 22 12:12 core-image-minimal-raspberrypi4-64.rootfs-20240222111049.rpi-sdimg.gz
  -rw-r--r--  1 martin martin    361441 Feb 22 12:12 core-image-minimal-raspberrypi4-64.rootfs-20240222111049.spdx.tar.zst
  -rw-r--r--  1 martin martin    271541 Feb 22 12:12 core-image-minimal-raspberrypi4-64.rootfs-20240222111049.testdata.json
  -rw-r--r--  1 martin martin  50331648 Feb 22 12:12 core-image-minimal-raspberrypi4-64.rootfs-20240222111049.vfat
  lrwxrwxrwx  1 martin martin        61 Feb 22 12:12 core-image-minimal-raspberrypi4-64.rootfs.ext3 -> core-image-minimal-raspberrypi4-64.rootfs-20240222111049.ext3
  lrwxrwxrwx  1 martin martin        65 Feb 22 12:12 core-image-minimal-raspberrypi4-64.rootfs.manifest -> core-image-minimal-raspberrypi4-64.rootfs-20240222111049.manifest
  lrwxrwxrwx  1 martin martin        69 Feb 22 12:12 core-image-minimal-raspberrypi4-64.rootfs.spdx.tar.zst -> core-image-minimal-raspberrypi4-64.rootfs-20240222111049.spdx.tar.zst
  lrwxrwxrwx  1 martin martin        70 Feb 22 12:12 core-image-minimal-raspberrypi4-64.rootfs.testdata.json -> core-image-minimal-raspberrypi4-64.rootfs-20240222111049.testdata.json
  lrwxrwxrwx  1 martin martin        61 Feb 22 12:12 core-image-minimal-raspberrypi4-64.rootfs.vfat -> core-image-minimal-raspberrypi4-64.rootfs-20240222111049.vfat

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-02-22 15:21:59 +00:00
Khem Raj
8fa8d6bed7 python3-sense-hat: Drop PYTHON_PN
Starting OE core commit b566b1e32c7993d1ab7795562f648e52ce186a70,
we no longer need PYTHON_PN for any abstraction of python2 vs python3.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-02-22 13:12:22 +00:00
Matthew Draws
dbf1113a82 rpi-eeprom_git: v.2024.01.05-2712 Update recipe to latest rpi-eeprom repo
This follows the current latest release of rpi-eeprom:
https://github.com/raspberrypi/rpi-eeprom

Signed-off-by: Matthew Draws <draws.matthew@gmail.com>
2024-02-20 13:00:04 +00:00
Kevin Hao
2e1ca4ce2e rpidistro-ffmpeg: Fix old override syntax
Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
2024-02-20 07:39:32 +00:00
Khem Raj
54f6b3c660 layer.conf: Update for the scarthgap release series
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-02-19 19:23:28 +00:00
Khem Raj
6d7c2f8080 linux-raspberrypi: Upgrade to 6.1.77
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-02-19 19:23:28 +00:00
Pascal Huerst
fc34bc3b86 rpi-base: Add missing hifiberry overlay
There is anoter hifiberry hat, for which there is currently
no overlay added to the build, so let's add it:

hifiberry-dacplusadcpro.dtbo

Signed-off-by: Pascal Huerst <pascal.huerst@gmail.com>
2024-02-13 12:24:22 +00:00
Martin Jansa
e67feeff48 libcamera-apps: fix build with libcamera-0.2.0
* it's failing to build since the upgrade in:
  https://git.openembedded.org/meta-openembedded/commit/?id=711c6fbce39df685225bca081c5f42bae2de658b

* fixes
  ../git/core/libcamera_app.cpp: In member function 'void LibcameraApp::ConfigureViewfinder()':
  ../git/core/libcamera_app.cpp:327:25: error: 'class libcamera::CameraConfiguration' has no member named 'transform'
    327 |         configuration_->transform = options_->transform;
        |                         ^~~~~~~~~

* be aware that the repository and libraries were removed in 1.4.0 version with:
  0ca9f41fea
  but I'll leave that change to someone actually using this, I was just fixing
  the build issue found in world builds

* tweak FILES to package library symlink without "lib" prefix to fix:
  ERROR: libcamera-apps-1.4.2+git-r0 do_package: QA Issue: libcamera-apps: Files/directories were installed but not shipped in any package:
    /usr/lib/rpicam_app.so
  Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
  libcamera-apps: 1 installed and not shipped files. [installed-vs-shipped]

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-02-01 11:44:18 +00:00
Khem Raj
99a1b4b5fa linux-raspberrypi_6.1.bb: Upgrade to 6.1.74
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-02-01 11:41:55 +00:00
Damiano Ferrari
9c901bf170 docs: add info on how to set different CAN interrupt pins
Signed-off-by: Damiano Ferrari <damiano.ferrari@ferrarigrowtech.com>
2024-01-26 00:39:32 +00:00
Damiano Ferrari
51386901d4 rpi-config: Add CAN0_INTERRUPT_PIN and CAN1_INTERRUPT_PIN variable
Current configuration hard-code the values of the CAN interrupt pins. This setting allows to change them. The default values are the same as before.

Signed-off-by: Damiano Ferrari <damiano.ferrari@ferrarigrowtech.com>
2024-01-26 00:39:32 +00:00
Leon Anavi
fe7592fe9c conf/machine/raspberrypi5.conf: Use "Image"
"zImage" not supported on arm64 so set KERNEL_IMAGETYPE_DIRECT to
"Image" for Raspberry Pi 5 and avoid the following errors:

| make: *** No rule to make target 'zImage'.  Stop.
| ERROR: oe_runmake failed

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-01-25 17:25:39 +00:00
Leon Anavi
1f35a585ca conf/machine/raspberrypi5.conf: ttyAMA10
Set SERIAL_CONSOLES to ttyAMA10. This fixes login on the UART
no matter if systemd is used.

This work was sponsored by GOVCERT.LU.

Suggested-by: Gael PORTAY <gael.portay@rtone.fr>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-01-25 17:25:39 +00:00
Leon Anavi
15967d6ad9 conf/machine/raspberrypi5.conf: kernel_2712.img
Set SDIMG_KERNELIMAGE to kernel_2712.img instead of kernel8.img.
Raspberry Pi 5 firmware defaults to loading kernel_2712.img because
this image contains optimisations specific to Raspberry Pi 5
(e.g. 16K page-size). For more details:
https://www.raspberrypi.com/documentation/computers/config_txt.html#kernel

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-01-25 17:25:39 +00:00
Leon Anavi
ddb4d6652d linux-raspberrypi.inc: bcm2712_defconfig for rpi5
Use bcm2711_defconfig instead of bcm2712_defconfig for Raspberry
Pi 5 as per the instructions in the documentation:
https://www.raspberrypi.com/documentation/computers/linux_kernel.html#kernel-configuration

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-01-25 17:25:39 +00:00
Leon Anavi
357c85c5fb rpi-config: Reduce config.txt size
Remove some comments to reduce config.txt file size to avoid file
corruption and make sure Raspberry Pi 5 will boot successfully.

The issue with large config.txt has been reported to related
projects:
https://github.com/raspberrypi/firmware/issues/1848
https://github.com/Evilpaul/RPi-config/issues/9

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-01-25 17:25:39 +00:00
Leon Anavi
4814f09e49 u-boot_%.bbappend: Skip for Raspberry Pi 5
Temporary avoid Raspberry Pi 5 machines because U-Boot has not been
ported to it yet.

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-01-25 17:25:39 +00:00
Leon Anavi
df13222776 rpi-base.inc: Add vc4-kms-v3d-pi5.dtbo
Add overlays/vc4-kms-v3d-pi5.dtbo to use vc4-kms-v3d driver on
Raspberry Pi 5.

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-01-25 17:25:39 +00:00
Florin Sarbu
1e7750e3c8 Add Raspberry Pi 5
Signed-off-by: Florin Sarbu <florin@balena.io>
2024-01-25 17:25:39 +00:00
Leon Anavi
b859bc3eca bcm2835: update 1.71 -> 1.73
Update to version 1.73:

- Fixed some inconsistent indenting in bcm2835.c that triggers
  warnings for some people.
- Added Timeout checks to bcm2835_i2c_write() in case of IO
  problems. New reason code BCM2835_I2C_REASON_ERROR_TIMEOUT
  added.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-01-08 11:45:41 +00:00
Harunobu Kurokawa
4c033eb074 rpi-cmdline, rpi-u-boot-src: Support USB boot
The Raspberry Pi 4 board can boot the image from USB memory.
But current meta-raspberrypi supports only SD boot.

This commit allows switching SD boot to other device.
For example, if you want to use USB boot, please define
the following parameters in your conf/local.conf file.
CMDLINE_ROOT_PARTITION = "/dev/sda2"
BOOT_MEDIA = "usb"

v4: Update extra-build-config.md to explain more detail for new variable.

v3: Changed variable name to "BOOT_MEDIA" (was "BOOT_DEVTIPE").

v2: Set existing microSD parameter as default. User can overwrite
some parameters.

Signed-off-by: Harunobu Kurokawa <harunobu.kurokawa.dn@renesas.com>
2023-12-13 16:43:59 +02:00
Lorenzo Arena
fde68b24f0 docs: fix syntax for overriding fs type for initramfs image
Signed-off-by: Lorenzo Arena <arena.lor@gmail.com>
2023-12-05 17:00:50 +02:00
Leon Anavi
8231f97534 rpi-config: reintroduce start_x
Add a patch to reintroduce configuration start_x. This patch has
been submitted to the upstream of of the RPi-config GitHub repo:
https://github.com/Evilpaul/RPi-config/pull/8

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2023-11-24 08:06:17 +02:00
Vincent Davis Jr
0f6c5eab24 rpidistro-vlc: add new patch po-Fix-typos-in-oc
Fixes compilation issue that occur with
the latest in OE-core.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2023-11-24 06:00:33 +02:00
Leon Anavi
6008249722 rpi-config: Upgrade to tip of tree
Upgrade to the latest version of the repository with includes the
following improvements of the template for config.txt:

- update revision and date stamp
- additon of dtoverlay
- general updates

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2023-11-17 16:49:53 +02:00
Matthew Draws
eb79172bc9 rpi-eeprom: Update to 2023.10.18-2712
This follows the current latest release of rpi-eeprom:
https://github.com/raspberrypi/rpi-eeprom

This also removes a patch that is already in upstream.
5ec5c003ba/rpi-eeprom-update (L122)
https://github.com/raspberrypi/rpi-eeprom/commit/55ca589

Signed-off-by: Matthew Draws <draws.matthew@gmail.com>
2023-11-15 00:51:30 +02:00
Khem Raj
08371543f7 linux-raspberrypi_6.1.bb: Update to 6.1.61 release
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-11-14 17:37:06 +02:00
Jose Quaresma
6ef8b576b8 rpi-base: Adds EXTRA_IMAGEDEPENDS to fix the image task do_populate_lic_deploy
This fix is needed to bring the complete dependency chain in order to guarantee
the recursive runtime dependencies [1] of do_populate_lic_deploy in do_populate_lic
will run as expected.

[1] openembedded-core/meta/classes-recipe/license_image.bbclass:do_populate_lic_deploy[recrdeptask] += "do_populate_lic do_deploy"

Fix the following image build issues:

| ERROR: lmp-base-console-image-1.0-r0 do_populate_lic_deploy: Couldn't find license information for dependency rpi-config

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
2023-10-27 01:30:36 +01:00
Carlos Alberto Lopez Perez
0a4a68dba6 linux-raspberrypi: stop setting powersave as the default CPU governor
* The defconfigs from the RPi Kernel set `powersave` as the default
  CPU governor, which is a bad idea as that reduces performance by
  setting the CPU frequency to the minimum one.

* In case of a Yocto build user-space is not configured by default
  to change the CPU governor, so `powersave` will remain the CPU
  governor and it will slow down everything.

* I submitted a fix for those defconfigs to upstream here:
  https://github.com/raspberrypi/linux/pull/5666
  However, we shouldn't wait until that is accepted and backported
  to all the stable branches (if ever is).

* This patch unsets the selection of `powersave` as the default CPU
  governor.

* Then the CPU governor that will be selected as default after this
  patch will be the Linux's default one that is either `ondemand` or
  `schedutil` depending on the Kernel version.

Signed-off-by: Carlos Alberto Lopez Perez <clopez@igalia.com>
2023-10-25 20:44:38 +01:00
Jose Quaresma
3a0f6678e0 linux-raspberrypi/linux-raspberrypi-v7: drop 5.10 version
The overlays/imx708.dtbo is not supported and backport [1] the dtbo is not accepted so drop this kernel version.
[1] https://github.com/raspberrypi/linux/pull/5452

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
2023-10-24 12:41:50 +01:00
Andrei Gherzan
9a296d75a8 docs: Fix ReadTheDocs builds.os requirement
This fixes:

The configuration key "build.os" is required to build your
documentation. Read more at
https://docs.readthedocs.io/en/stable/config-file/v2.html#build-os

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2023-10-24 12:36:33 +01:00
Joshua Watt
482d864b8f rpi-base: Fix wic image kernel dependency
wic images depend on the kernel device trees, and therefore should
depend on virtual/kernel:do_deploy to make sure these are present in the
deploy directory.

Most of the time, this dependency is satisfied indirectly since a rootfs
image will depend on the kernel, but add it explicitly for the cases
where it is not.

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
2023-09-27 12:42:25 +01:00
Martin Jansa
c0aec2f628 layer.conf: update LAYERSERIES_COMPAT for nanbield
* oe-core switched to nanbield in:
  https://git.openembedded.org/openembedded-core/commit/?id=f212cb12a0db9c9de5afd3cc89b1331d386e55f6

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2023-09-22 10:39:52 +01:00
Khem Raj
6f93508662 raspberrypi-firmware: Update to 20230509~buster
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-09-22 10:39:52 +01:00
Khem Raj
82fb510fc6 bluez-firmware-rpidistro: Update to 1.2-4+rpt10
Drop a backport already in 1.2-4+rpt10

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-09-22 10:39:52 +01:00
Khem Raj
a871ecfb38 linux-firmware-rpidistro: Update to 20230210-5_bpo11+1
Symlinks are no longer needed as they already exist in the new raspbian firmware tarball

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-09-22 10:39:52 +01:00
Khem Raj
653f281c8f linux-raspberrypi: Upgrade 6.1 release to latest point release 6.1.54
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-09-22 10:39:52 +01:00
Khem Raj
108f83f0e9 userland: Update to trunk from 20230419
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-09-22 10:39:52 +01:00
Sangmo Kang
6501ec892c omxplayer: fix an error caused by new srcrev fetcher API
Fail to parse omxplayer_git.bb after using new srcrev fetcher API
* https://git.yoctoproject.org/poky/commit/?id=c9400d01575c2a93762b71bf790d0edd6e2acb6f
* https://git.yoctoproject.org/poky/commit/?id=62afa02d01794376efab75623f42e7e08af08526

Error message:

ERROR: ExpansionError during parsing /tmp/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
Traceback (most recent call last):
  File "Var <fetcher_hashes_dummyfunc[vardepvalue]>", line 1, in <module>
  File "/tmp/poky/bitbake/lib/bb/fetch2/__init__.py", line 834, in get_hashvalue(d=<bb.data_smart.DataSmart object at 0x7fdac34c1130>, method_name='sortable_revision'):
     def get_hashvalue(d, method_name='sortable_revision'):
    >    pkgv, revs = _get_srcrev(d, method_name=method_name)
         return " ".join(revs)
  File "/tmp/poky/bitbake/lib/bb/fetch2/__init__.py", line 804, in _get_srcrev(d=<bb.data_smart.DataSmart object at 0x7fdac34c1130>, method_name='sortable_revision'):
         if not format:
    >        raise FetchError("The SRCREV_FORMAT variable must be set when multiple SCMs are used.\n"\
                              "The SCMs are:\n%s" % '\n'.join(scms))
bb.data_smart.ExpansionError: Failure expanding variable fetcher_hashes_dummyfunc[vardepvalue], expression was ${@bb.fetch.get_hashvalue(d)} which triggered exception FetchError: Fetcher failure: The SRCREV_FORMAT variable must be set when multiple SCMs are used.
The SCMs are:
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
The variable dependency chain for the failure is: fetcher_hashes_dummyfunc[vardepvalue]

ERROR: Parsing halted due to errors, see error messages above

Signed-off-by: Sangmo Kang <sangmo.kang@lge.com>
2023-08-29 22:43:01 +01:00
Andrei Gherzan
98ee0439ca docs: Fix documentation theme
This avoids failing builds with:
NameError: name 'html_theme' is not defined

It also makes the theme configuration explicit and correctly set up.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2023-08-29 22:43:01 +01:00
Andrei Gherzan
a7f7272dca ci: Add usrmerge to distro features
unmerged-usr was deprecated upstream[1]. Follow up with our CI builds.

[1] https://lore.kernel.org/all/3f2f03085301d22854e5429019fb010f27d98bc7.camel@linuxfoundation.org/t/

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2023-08-29 22:43:01 +01:00
Vivien Didelot
5e2f79a6fa libcamera-apps: bump to latest main
Now that the libcamera package from meta-multimedia has support
for flicker controls and libcamera-apps uses meson, we can bump the
package to its latest revision.

Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
2023-08-08 01:54:22 +01:00
Vivien Didelot
5f9423e4f9 libcamera-apps: switch from CMake to meson
CMake is removed in upstream libcamera-apps as of 9e17265,
thus switch to meson to build the package from now on.

Add PACKAGECONFIG entries and neon flags matching the settings
project meson.build as described in the official documentation
https://www.raspberrypi.com/documentation/computers/camera_software.html#building-libcamera-apps

Default to "drm" for PACKAGECONFIG as it is the only option enabled
in both recommended meson setup for Raspberry Pi OS and Raspberry Pi
OS Lite.

Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
2023-08-08 01:54:22 +01:00
Vivien Didelot
9d9f98d266 libcamera-apps: bump to 3d9ac10
Bump libcamera to 3d9ac10 to get a fix for the current libcamera from
meta-openembedded/meta-multimedia for the following issue:

    error: 'StreamRoles' in namespace 'libcamera' does not name a type; did you mean 'StreamRole'?
       55 |         using StreamRoles = libcamera::StreamRoles;
          |                                        ^~~~~~~~~~~
          |                                        StreamRole

Reported-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
2023-08-08 01:54:22 +01:00
Vivien Didelot
55b6e121f9 libcamera-apps: move recipe to dynamic-layers
Move the libcamera-apps recipe to dynamic-layers/multimedia-layer
alongside with its libcamera dependency.

Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
2023-08-08 01:54:22 +01:00
Vivien Didelot
d9ffd5c828 rpi-libcamera-apps: rename to libcamera-apps
The libcamera-apps project is written in a hardware-agnostic manner
thanks to libcamera, and thus isn't specific to the rpi SoC family.

Moreover, the project is correctly named libcamera-apps and not
rpi-libcamera-apps, so rename the recipe in order to reflect that.

Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
2023-08-08 01:54:22 +01:00
Vivien Didelot
fbf6b355a3 rpi-libcamera-apps: don't force COMPATIBLE_MACHINE
Even though the libcamera apps are a rewrite of the rpicam apps and
maintained by the raspberry folks, switching to libcamera makes the
code hardware agnostic and thus could be compiled and used on various
machines featuring a camera device supported by a libcamera pipeline.

For this reason, do not enforce COMPATIBLE_MACHINE.

Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
2023-08-08 01:54:22 +01:00
Vivien Didelot
c0fca29ff3 rpi-libcamera-apps: replace tensorflow config
The 'tensorflow-lite' PACKAGECONFIG entry was missing the corresponding
build dependency. In order to be consistent with the build macros,
replace the feature with a 'tflite' package config entry.

Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
2023-08-08 01:54:22 +01:00
Vivien Didelot
83a422668c rpi-libcamera-apps: add drm support
Add a 'drm' PACKAGECONFIG entry in order to provide support for a
DRM preview window while running the libcamera apps.

Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
2023-08-08 01:54:22 +01:00
Vivien Didelot
48c3cc7413 rpi-libcamera-apps: add opencv build dependency
The 'opencv' PACKAGECONFIG entry was missing the build dependency.

Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
2023-08-08 01:54:22 +01:00
Vivien Didelot
2ae93b0f9f rpi-libcamera-apps: fix Illegal Instruction
With armv8-neon being enforced for all ARM based machines, running
any libcamera app on raspberrypi (e.g. Raspberry Pi B Rev 2) results
in Illegal Instruction.

To fix this, set armv8-neon for 32bit raspberrypi3 and raspberrypi4
but defaults to TARGET_ARCH for other non-aarch64 machines.

Fixes: f16219293a ("rpi-libcamera-apps: fix flags used in aarch64 builds")
Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
2023-08-08 01:54:22 +01:00
Khem Raj
3f12757165 rpi-base: Remove customizing SPLASH var
psplash-raspberrypi does not exist anymore, we use psplash from core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-08-02 10:53:23 +01:00
Vincent Davis Jr
be4867e494 rpidistro-vlc: fix error uint64_t does not name
Build failure occurring with gcc version 13.1.1.
Add patch to fix builds with latest gcc in OE-core.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2023-08-02 10:52:06 +01:00
Martin Jansa
f78b4f159d libcamera: update PACKAGECONFIG for libcamera-0.1.0
* libcamera was updated in meta-oe in:
  https://git.openembedded.org/meta-openembedded/commit/?id=4e0281797277cf44287de93618c51e4a219fac75

* now it was failing with:
  meson.build:3:0: ERROR: Options "raspberrypi" are not in allowed choices: "all, auto, imx8-isi, ipu3, rkisp1, rpi/vc4, simple, uvcvideo, vimc"

  because raspberrypi support was updated and renamed to rpi/vc4 in:
  726e9274ea

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2023-07-27 15:01:55 +01:00
Jan Vermaete
05dceed006 rpi-base.inc: add the disable-wifi overlay
It can be useful to disable the WiFi for hardening reasons.
And it probably lower the power consumption a bit.

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2023-07-26 17:36:36 +01:00
Jan Vermaete
8585b42bd6 kas-poky-rpi.yml: renamed ABORT to HALT
Naming changed in Yocto.  And it avoids a warning during the run.

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2023-07-24 12:09:29 +01:00
Khem Raj
e3f733cadd linux-raspberrypi_6.1.bb: Update to 6.1.38
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-07-11 15:05:10 +01:00
Khem Raj
dff85b9a9f linux-raspberrypi-6.1: Update to 6.1.34 release
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-06-22 09:58:22 +01:00
Martin Jansa
195c7d59bc *.patch: add Upstream-Status to all patches
There is new patch-status QA check in oe-core:
https://git.openembedded.org/openembedded-core/commit/?id=76a685bfcf927593eac67157762a53259089ea8a

This is temporary work around just to hide _many_ warnings from
optional patch-status (if you add it to WARN_QA).

This just added
Upstream-Status: Pending
everywhere without actually investigating what's the proper status.

This is just to hide current QA warnings and to catch new .patch files being
added without Upstream-Status, but the number of Pending patches is now terrible:
Patches in Pending state: 41 (57%)

With recent change to enable patch-status not only for all .patch
files in oe-core, but for all recipes from oe-core:
https://git.openembedded.org/openembedded-core/commit/?id=61a881fdbe8b5a21c6276b8a5d06cc30486b1eb3
this causes bluez5 do_patch failures as reported in:
https://lists.openembedded.org/g/openembedded-core/message/183177

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2023-06-22 00:04:40 +01:00
DOLE Olivier
8e07f0d328 rpi-config: U-Boot requires "enable_uart=1" to operate correctly.
When RPI_USE_U_BOOT is set to 1, if enable_uart is not set to 1 in config.txt
then the board won't boot (Resolves agherzan#1189).
This requirement only affects the following boards:
- Raspberry Pi Zero W
- Raspberry Pi 3 32 & 64 bit
- Raspberry Pi 4 32 & 64 bit

Signed-off-by: DOLE Olivier <odole@dicksondata.fr>
2023-06-09 02:09:42 +01:00
Florin Sarbu
492cb5a5d9 udev-rules-rpi: Use 99-com.rules directly from upstream
Rather than have an unsynchronized copy of this file, let's use this
udev rule directly from upstream.

Signed-off-by: Florin Sarbu <florin@balena.io>
2023-05-28 10:19:52 +01:00
Zachary T Welch
9240ea91ca machines: simplify MACHINEOVERRIDES definitions
Prepending new definitions should be preferred to assignment, as it is
simpler and more conducive to defining new machine configurations that
reuse these configurations.

Signed-off-by: Zachary T Welch <zach@aquabyte.ai>
2023-05-24 11:30:04 +01:00
Martin Jansa
928bb234bb rpi-libcamera-apps: bump to latest SRCREV and set PV
$ git log --oneline 22a52590c33a813743b4e6337478c208201c77b1..12098520a3dec36ba796655baac7efece457f8d8
1209852 (origin/main, origin/HEAD) utils: Better handling of containers in timestamp.py
213b166 encoder: Add logic to auto-detect H.264 encoder type
b90f65a libav: Add libx264 support
ba8d8de libav: Move codec specific options to different function
4d40e6d libav: Add buffer done callback
cd9e4e1 libav: Make ALSA work with mono mic.
408f568 libav: Fix msg when opening audio device fails.
21157c5 build: install library headers
54a781d (tag: v1.1.2) image: dng: Make thumbnail less dark
8b286cc image: dng: Add support for 16-bit Bayer formats
aa849e6 options: Set the custom tuning file as early as possible
e90d21d preview: QtPreview: Copy source to a temporary line buffer for speed
9b609e2 core: Add header guard in libcamera_encoder.hpp
8dd7213 utils: Update the timestamp script to work with container files
88b620a image: Fix missing fclose
18b3a88 libav: Update to the new audio channel API
84a7f01 libav: Fixes for audio resampling
64be3bd encoder: H264: Trap framerate=0 to avoid division by zero error
edf073f core: Minor code refactoring
a5b5506 preview: QtPreview: Fix black level; optimize and tidy.
6d2ee58 image: Exif "Model" tags should store camera model, not ID
40e0012 preview: Fix QtPreview for preview width not a multiple of 4
a65682a core: pass VIDIOC_QUERYCAP as unsigned long
9f08463 (tag: v1.1.1) core: Allow info-text to display on the console
77a03d9 image: Add Subject Distance to EXIF data, to encode Lens Position
eca5a3c build: Set a SONAME version in the libraries
dc86fee options: Automatically set H.264 level 4.2 if needed
29f3943 libcamera-detect: Add multiple file name output generation options
4a824f1 actions: Add imx708 tests
785bfe7 actions: Switch to v3 scripts
1d91fdd options: prevent null pointer access to FrameDurationLimits
4fea2ee (tag: v1.1.0) core: Add HDR option, with a stop-gap implementation using V4L2 control
bce2788 core: Tweak default AF options; AfMode now defaults typically to CAF
d696979 core: Update documentation URL
9c5d319 (tag: v1.0.2) output: null_encoder: Fix bug in ordering of input/output callbacks
4068771 libcamera-still: --autofocus-on-capture: add a timeout for AfStateScanning
5a8926a libcamera_still: Add new option "--autofocus-on-capture"
57e6154 core: Add and implement LensPosition and AfTrigger controls
d523dbc core: LibcameraApp::SetControls now always merges new controls
80f17be core: Add autofocus status reporting in FrameInfo
35b461b core: Add libcamera autofocus options
187fcf8 options: Define buffer count overwrite
114c8ae Add YUV save to stdout on "-" path
73ab09f (tag: v1.0.1) libav: Add option to choose the audio source (alsa/pulseaudio)
51bfa73 core: Use automatic mode selection for framerate
baaed33 options: Switch to std::optional for framerate
b89cc36 (tag: v1.0.0) libav: Fix fps reporting for avi contaners
05daa79 libav: Simplify audio timestamping
d8330a4 libav: Fix mkv container framerate
edac99b libcamera-vid: Add SIGINT handler
cfc54c5 libav: Allow adjusting of the audio sample rate for encoding
891c8fa libav: Correctly pipe to stdout

* the libraries are now correctly versioned, remove SOLIBS setting to package them

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2023-05-15 15:56:03 +01:00
Martin Jansa
f528c55c1f rpi-libcamera-apps: fix version generation on hosts with older python
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2023-05-15 15:56:03 +01:00
Martin Jansa
f16219293a rpi-libcamera-apps: fix flags used in aarch64 builds
* the CMakeLists.txt recognizes only 2 values:

IF (NOT ENABLE_COMPILE_FLAGS_FOR_TARGET)
    # On a Pi this will give us armhf or arm64.
    execute_process(COMMAND dpkg-architecture -qDEB_HOST_ARCH
        OUTPUT_VARIABLE ENABLE_COMPILE_FLAGS_FOR_TARGET OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
message(STATUS "Platform: ${ENABLE_COMPILE_FLAGS_FOR_TARGET}")
if ("${ENABLE_COMPILE_FLAGS_FOR_TARGET}" STREQUAL "arm64")
    # 64-bit binaries can be fully optimised.
    add_definitions(-ftree-vectorize)
elseif ("${ENABLE_COMPILE_FLAGS_FOR_TARGET}" STREQUAL "armv8-neon")
    # Only build with 32-bit Pi 3/4 specific optimisations if requested on the command line.
    add_definitions(-mfpu=neon-fp-armv8 -ftree-vectorize)
endif()

  the value from dpkg-architecture on host is useless
  when cross-compiling, so we always need to pass something

  for raspberrypi4-64 we were passing "armv8-neon" which results in:
  aarch64-oe-linux-g++: error: unrecognized command-line option '-mfpu=neon-fp-armv8'
  as all -mfpu options are rejected in aarch64 builds, pass better
  ENABLE_COMPILE_FLAGS_FOR_TARGET value for all MACHINEs

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2023-05-15 15:56:03 +01:00
Rodrigo M. Duarte
bf948e0aa8 python3-adafruit-blinka: Fix the correct python recipes path in dynamic-layer sub-dir
The python recipes in the dynamic-layer need one more subdirectory
to be in accordance with the defined in the layer settings.

The recipes moved to new python sub-dir are:
python3-adafruit-blinka
python3-adafruit-circuitpython-busdevice
python3-adafruit-circuitpython-motor
python3-adafruit-circuitpython-motorkit
python3-adafruit-circuitpython-pca9685

Signed-off-by: Rodrigo M. Duarte <rodrigo.duarte@ossystems.com.br>
2023-04-17 11:06:52 +01:00
Jesse Visser
56fba81e37 docs: Update extra build config Raspberry Pi Camera Module section
Signed-off-by: Jesse Visser <jssvssr2000@gmail.com>
2023-04-17 11:06:24 +01:00
Jesse Visser
2ad4dd667a recipe-bsp: Add support for Raspberry Pi Camera Module v3
Signed-off-by: Jesse Visser <jssvssr2000@gmail.com>
2023-04-17 11:06:24 +01:00
Khem Raj
3afdbbf782 rpidistro-vlc: Fix build with clang16
Disable new warning about incompatible function pointers

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-27 09:34:06 +01:00
Khem Raj
1e5acb9d59 rpidistro-ffmpeg: Pin to use gcc always
When using clang some .S files are not clang friendly

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-27 09:34:06 +01:00
Khem Raj
9f6dfcf82c gstreamer1.0-plugins-bad: Drop gpl packageconfig
This packageconfig has been removed from oe-core via commit 3ec1f30ebba498566d4b266168e1faf182a38fb8
therefore adjust

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-27 09:34:06 +01:00
Khem Raj
12a1187b01 rpi-default-versions: Use 6.1 kernel as default
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-24 07:32:08 +00:00
Khem Raj
98349bb367 psplash: Make psplash wait for the framebuffer to be ready
Especially with systemd its seen that psplash-start service starts
before /dev/fb0 is created by kernel which results in

[FAILED] Failed to start Start psplash boot splash screen.

this is quite frequent race now with kernel 6.1

Add device dependency on sys-devices-platform-gpu-graphics-fb0.device
via a unit file drop-in

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-24 07:32:08 +00:00
Khem Raj
b5753bd2ac linux-raspberrypi: Add recipes for 6.1 kernel
Default is still 5.15, until we test it out for any regressions and
issues before making 6.1 as default kernel.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-24 07:32:08 +00:00
Carlos Alberto Lopez Perez
15206a15b4 mesa-demos: enable build with userland graphics drivers.
* mesa-demos can be built fine if both gles1 and egl options are
disabled. This allows to have utilities like glxinfo or glxgears

Signed-off-by: Carlos Alberto Lopez Perez <clopez@igalia.com>
2023-03-07 01:09:06 +00:00
Khem Raj
e15b876155 linux-raspberrypi_5.15.bb: Upgrade to 5.15.92
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-01 23:44:52 +00:00
Florian Frank
dac1d9245b linux-firmware-rpidistro: Fix wireless on model 3B and Zero W
Firmware links for model 3B and Zero W were missing.

This patch sets the necessary links for brcmfmac firmware. Without the
links, the firmware cannot be loaded without causing boot messages like:
brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.bin failed with error -2

Signed-off-by: Florian Frank <git@ffrnk.de>
2023-02-16 13:39:08 +00:00
Martin Jansa
659dd6d107 gstreamer1.0-plugins-good: rename bbappend, drop version
* the PACKAGECONFIG[rpi] isn't version specific, use versionless
  bbappend as other gstreamer1.0*.bbappend files here
* oe-core upgrade 1.20.5 -> 1.22.0:
  https://git.openembedded.org/openembedded-core/commit/?id=fb2d28e0315ece6180c87c7047587673024a09f7

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2023-02-16 12:06:18 +00:00
Allan Xavier
e43af1e3a6 rpi-eeprom: Add recipe for eeprom update/configuration
This recipe will allow yocto images to support configuring and updating
the bootloader on Raspberry Pi 4 boards. So far this recipe just
includes the commands and firmware with no automation for updates.

Note that this depends on nvmem-rmem support either built into the
kernel or as a module. If that is not part of the kernel the scripts
will error out suggesting that the vcgencmd command from the userland
package is missing. Whilst using vcgencmd from the userland package does
work, it would lead to a conflict with the mesa backend for graphics, so
using the kernel interface is recommended.

Co-authored-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
Signed-off-by: Allan Xavier <mr.a.xavier@googlemail.com>
2023-02-08 22:04:18 +00:00
Allan Xavier
c9d9582a23 linux-raspberrypi: Build eeprom access into kernel
To better support rpi-eeprom without depending on userland it was
decided to build nvmem-rmem support into the kernel for Raspberry Pi 4
machines.

Signed-off-by: Allan Xavier <mr.a.xavier@googlemail.com>
2023-02-08 22:04:18 +00:00
Martin Jansa
c759b5edf3 raspidmx, userland, omxplayer: Fix Upstream-Status formatting
* now I've used the right tool to hopefully find them all in one go:

../openembedded-core/scripts/contrib/patchreview.py .
Total patches found: 70
Patches missing Signed-off-by: 17 (24%)
Patches with malformed Signed-off-by: 0 (0%)
Patches missing CVE: 1 (1%)
Patches missing Upstream-Status: 32 (46%)
Patches with malformed Upstream-Status: 0 (0%)
Patches in Pending state: 8 (11%)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2023-02-03 21:39:37 +00:00
Khem Raj
a02173f597 linux-raspberrypi: Remove unused patches
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-02-01 23:15:11 +00:00
Khem Raj
3c5959ba85 linux-raspberrypi: Fix build with gcc13
Backport a needed patch

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-02-01 23:15:11 +00:00
Khem Raj
1d8a12ffa7 linux-raspberrypi: Update to 5.15.90
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-02-01 23:15:11 +00:00
Martin Jansa
6c57b92708 gstreamer1.0-omx: fix Upstream-Status format
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2023-01-26 19:20:07 +00:00
Martin Jansa
d76d59f5ac pi-bluetooth: fix typo in Upstream-Status
* fixes:
  WARNING: pi-bluetooth-0.1.17-r0 do_patch: QA Issue: Malformed Upstream-Status in patch
  meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch
  Please correct according to https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines#Patch_Header_Recommendations:_Upstream-Status :
  Upstream-Status: Inapproprate [OE-specific] [patch-status-noncore]

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2023-01-26 17:01:39 +00:00
Vincent Davis Jr
896566aa92 rpidistro-ffmpeg: remove --enable-v4l2-request flag
When building with latest OE-Core master. Running into
bellow issue. After further research issue appears to
be similar to

https://github.com/bootlin/libva-v4l2-request/issues/35

| src/libavcodec/hevc-ctrls-v2.h:59:8: error: redefinition of 'struct
v4l2_ctrl_hevc_sps'
|    59 | struct v4l2_ctrl_hevc_sps {
|       |        ^~~~~~~~~~~~~~~~~~
| In file included from
/../../../recipe-sysroot/usr/include/linux/videodev2.h:65,
|                  from src/libavcodec/hevc-ctrls-v2.h:14:

Disable ffmpeg libva-v4l2-request so that master builds
and until better investigation can be done to fix
issue.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2023-01-12 06:51:45 +00:00
Khem Raj
2e9b0c375f linux-raspberrypi.inc: Weakly assign COMPATIBLE_MACHINE
COMPATIBLE_MACHINE is expected to be overridden by
linux-raspberrypi-v7.inc for linux-raspberrypi-v7 machine this however
does not work because linux-raspberrypi-v7_5.15.bb includes
linux-raspberrypi-v7.inc and linux-raspberrypi.inc ( via
linux-raspberrypi_5.15.bb) and setting from linux-raspberrypi.inc takes
precedence over one coming from linux-raspberrypi-v7.inc as a result
linux-raspberrypi-v7 kernel recipe becomes available for raspberrypi4
machine as well, this recipe however needs certain defines
e.g.RASPBERRYPI_v7_KERNEL which are only available in
raspberrypi-armv7.conf

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-06 05:26:38 +00:00
Khem Raj
65d5176642 lirc: Drop upstreamed patch
This has been applied [1] in version now in OE-core

[1] aaa3493d09/

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-06 05:26:38 +00:00
Martin Jansa
e103faeff5 layer.conf: update LAYERSERIES_COMPAT for mickledore
* oe-core switched to mickedore in:
  https://git.openembedded.org/openembedded-core/commit/?id=57239d66b933c4313cf331d35d13ec2d0661c38f

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2023-01-03 19:24:38 +00:00
Carlos Alberto Lopez Perez
2b733d53f3 weston: disablepackageconfig options that fail to build with userland drivers
* Weston 10 (Yocto Langdale) fails to build with userland drivers
  when the packageconfig options 'egl' or 'clients' are enabled, and
  those are enabled by default. So disable them by default when
  building with DISABLE_VC4GRAPHICS=1

Signed-off-by: Carlos Alberto Lopez Perez <clopez@igalia.com>
2022-12-22 21:56:54 +00:00
Martin Jansa
9e655c6c9d bluez5: update patches to apply on 5.66 version
* updated in:
  https://git.openembedded.org/openembedded-core/commit/?id=45686afe96bb42c24bfd4ab540ea44423a0f57c3

* 0004-Move-the-43xx-firmware-into-lib-firmware.patch didn't apply and needed to be rebased
  maybe we should just set FIRMWARE_DIR in rpi builds instead of
  changing the default in the source, but I'll leave that to someone
  else

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-12-20 18:29:00 +00:00
Vincent Davis Jr
1f33240549 rpidistro-ffmpeg: upgrade 4.3.2 -> 4.3.4
Upgrades version of ffmpeg to 4.3.4
* Reason for not upgrading to 4.3.5 all ported raspberrypi
  team patches may not be included in that version/commit.
* SRCREV set to 246e1a55a0eca931537d8706acd8b133c07beb05

Updates to PACKAGECONFIG
* Only include --enable-opengl flag when opengl is set in
  DISTRO_FEATURES
* Add new flag --enable-epoxy required by vout-egl
* vout-egl requires both libepoxy and x11. Only
  enable vout-egl if x11 contained in DISTRO_FEATURES.
* The remaining RPI-Distro related flags added
  through patches. Are only enabled if vc4graphics
  is disabled and userland graphics enabled. As an
  attempt to keep ffmpeg ./configure generic unless
  specified other wise.

Removes TARGET_CFLAGS:append as include flags are set in
./configure via the 2001-configure-setup-for-OE-core-usage.patch
patch.

Replaces patches with updated patches used in actual commit.
Adds four new patches to fix ./configure, compile, runtime bugs.

PATCHES:
- 2001-configure-setup-for-OE-core-usage.patch
* The ./configure stage fails if neither x11 or wayland defined
  in DISTRO_FEATURES. When opengl enabled ./configure checks for
  relevant headers. The last header it checks for is ES2/gl.h which
  doesn't exists. Neither do the others if certain perameters
  are not meet. Patch addes check for GLES2/gl2.h which does
  exists. We use utilize GLESv2 to compile and link with.
  Patch also replaces where compiler find mmal and omx headers
  and libs.

- 2002-libavdevice-opengl_enc-update-dynamic-function-loader.patch
* After configure stage succeeds the compile stage fails as
  SelectedGetProcAddress isn't defined. It can't be define as
  if x11 isn't enabled. Patch defines SelectedGetProcAddress
  if x11 not enabled, but sdl2 enabled to SDL_GL_GetProcAddress.
  If neither sdl2 or x11 is enabled patch loads GL functions
  pointers at compile time versus dynamically at runtime.

- 2003-libavcodec-fix-v4l2_req_devscan.patch
* v412_req_devscan.h function definitions where different
  from v412_req_devscan.c function implementations.

- 2004-libavcodec-omx-replace-opt-vc-path-with-usr-lib.patch
* Fixes where libbcm_host.so and libopenmaxil.so are loaded from.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-12-13 02:32:11 +00:00
Vincent Davis Jr
813b299e09 rpi-default-providers: add libav and libpostproc
ERROR: Multiple .bb files are due to be built which each provide
libav/libpostproc:
  /../../meta-raspberrypi/recipes-multimedia/rpidistro-ffmpeg/rpidistro-ffmpeg_4.3.4.bb
  /../../openembedded-core/meta/recipes-multimedia/ffmpeg/ffmpeg_5.1.2.bb

Ensures bitbake understands which recipe to select first.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-12-13 01:00:53 +00:00
Vincent Davis Jr
e493266180 rpidistro-vlc: upgrade 3.0.12 -> 3.0.17
Update is also meant to fix bug where if x11
isn't define in DISTRO_FEATURES builds will
fail to compile.

Upgrades version of VLC to 3.0.17
* Reason for update with version 3.0.12 compiling
  using GLESv2 and without x11/wayland defined in
  DISTRO_FEATURES it was proven to be difficult.
  Newer version of VLC appears to have better support
  for GLESv2 as there was far less hurdles.
* SRCREV set to b276eb0d7bc3213363e97dbb681ef7c927be6c73

Updates to PACKAGECONFIG
* Only include GLESv2 if opengl defined in DISTRO_FEATURES
* Only include libnotify is x11 included in DISTRO_FEATURES.
  Not checking for wayland as well because wayland integration
  requires a separate MR.
* remove ability to set certain flags as they require
  significant more development time to integrate. Probably
  best to include in separate MR.
  Flags for:
  - opencv
  - freerdp
  - samba
  - dvdread
  - vdpau
  - wayland
  - dca

Removal of
--------------------------------------------------------
TARGET_CFLAGS:append = " -fcommon"
TARGET_CXXFLAGS:append = " -fcommon"
--------------------------------------------------------
as define in configure.ac via the
3001-configure.ac-setup-for-OE-usage.patch patch

Removes extraneous sed operations in the do_configure
takes. Appears to nolonger be required.

Adds required flags to build that couldn't be set in configure.ac
------------------------------------------------------------------
TARGET_CFLAGS:append = " -I${STAGING_INCDIR}/drm"
TARGET_LDFLAGS:append = " ${@bb.utils.contains('DISTRO_FEATURES',
                          'opengl', '-lGLESv2', '', d)}"
------------------------------------------------------------------

Replaces patches with updated patches used in actual commit.
Prepend patches that are from meta-openembedded/meta-multimedia
to 2XXX-<PATCH NAME>.patch. Adds nine new patches to fix ./configure,
compile, runtime bugs.

PATCHES:
- 3001-configure.ac-setup-for-OE-usage.patch
* Used to ensure crossed compilted OE libraries are used during
  compilation. Specifically for the mmal and omxil libraries.

- 3002-fix-EGL-macro-undeclared-and-EGLImageKHR.patch
* Appears to be missing EGL preprocesor directives patch
  defines them. The function createImageKHR also appears
  to return EGLImageKHR not EGLImage patch updates. To
  accommodate for change.

- 3003-codec-omxil_core-replace-opt-vc-path-with-usr-lib.patch
* Configures omxil_core.c for OE usages as libbcm_host.so
  and libopenmaxil.so are located in a different location.

- 3004-use-GLESv2-headers-over-GL-headers.patch
* Ensures GLESv2 headers are used over OpenGL headers.

- 3005-modules-remove-glspectrum-usage.patch
* Removes glspectrum plugin as it appears to require
  normal OpenGL and not GLESv2 for usage.

- 3006-codec-omxil_core.h-fix-multiple-definition-of.patch
* Removes compile error due to function pointer in omxil_core.h
  header being defined multiple times as the header is included
  in multiple c source files.

- 3007-remove-xorg-related-link-libs.patch
* Removes xorg related flags if x11 isn't defined in
  DISTRO_FEATURES variable.

- 3008-vo-Makefile.am-exclude-libgl_plugin.patch
* Removes the libgl_plugin from being built if opengl
  not defined in DISTRO_FEATURES variable.

- 3009-vo-converter_vaapi-Fix-EGL-macro-undeclared.patch
* Appears to be missing EGL preprocesor directives patch
  defines them.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-12-12 23:29:00 +00:00
Vincent Davis Jr
4946b8d538 rpidistro-vlc,rpidistro-ffmpeg: update COMPATIBLE_HOST regex
Remove the single quotes from the
COMPATIBLE_HOST variable regex as it appears
to make expression invalid. Thus, leading to

ERROR: Nothing PROVIDES 'rpidistro-ffmpeg'
rpidistro-ffmpeg was skipped: incompatible with host arm-*-gnueabi (not in COMPATIBLE_HOST)

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-12-05 20:55:13 +00:00
Martin Jansa
93dadf336c raspberrypi4-64: drop DEFAULTTUNE assignment
* it matches the default from tune-cortexa72.inc:
  $ grep DEFAULTTUNE openembedded-core/meta/conf/machine/include/arm/armv8a/tune-cortexa72.inc
  DEFAULTTUNE ?= "cortexa72"

* the assignment was introduced in:
  cd234925fa
  to switch to cortexa72-crc, but this change was effectively reverted in:
  42ef0f5046
  by setting it back to default "cortexa72".

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-11-08 09:56:06 +00:00
Andrei Gherzan
de9bfd04d5 ci: Fix dco-check job with newer git versions
Due to https://nvd.nist.gov/vuln/detail/cve-2022-24765, git introduced a
feature where without explicitly allowing it, it won't parse or consider
hooks that are owned by another git user while erroring out with:

  fatal: detected dubious ownership in repository at [...]

This won't be an issue in our setup due to how we guard the code via PRs
so we configure git to avoid this check.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2022-11-08 08:21:47 +00:00
Andrei Gherzan
150d442a9b ci: Bump actions/checkout to v3
This addresses warnings like:

Node.js 12 actions are deprecated. [...] Please update the following
actions to use Node.js 16: actions/checkout, actions/checkout

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2022-11-08 08:21:47 +00:00
Sung Gon Kim
a305f4804b libcamera: rename bbappend to match any version
libcamera has been renamed in meta-openembedded in:
1032bce778

Signed-off-by: Sung Gon Kim <sunggon82.kim@lge.com>
2022-10-28 14:03:00 +01:00
Oliver Lang
722c51647c rpi-base.inc: handle empty/undefined KERNEL_DEVICETREE
This patch is based on an analog patch from Christopher Boyd <xpboyd@gmail.com> committed at meta-freescale.
(see 954d7a7d7a)

Signed-off-by: Oliver Lang <quantenkeks@gmail.com>
2022-10-20 10:11:38 +01:00
Zygmunt Krynicki
fc5f80a47e ci: fix apparent typo in file patterns
Signed-off-by: Zygmunt Krynicki <me@zygoon.pl>
2022-10-11 18:58:35 +01:00
Zygmunt Krynicki
c573499166 ci: fix typo: unconditionally
Signed-off-by: Zygmunt Krynicki <me@zygoon.pl>
2022-10-11 18:58:35 +01:00
Martin Jansa
757d88af9f lirc: rename bbappend to match 0.10.%
* lirc was upgraded in meta-oe in:
  https://git.openembedded.org/meta-openembedded/commit/?id=b1287c4ef25e416cbbea163930c3fd1df480f183

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-10-11 13:03:38 +01:00
Devendra Tewari
acb2f73e58 rpi-libcamera-apps: add new recipe
Signed-off-by: Devendra Tewari <devendra.tewari@gmail.com>
2022-10-11 00:24:58 +01:00
Devendra Tewari
5edbd17c5b libcamera: Tweak to build for Raspberry Pi
Add Raspberry Pi pipeline handler and Image
Processing Algorithms.

Work around clang 14/15 build error:
field within 'v4l2_ext_control' is less aligned.
See
https://github.com/kbingham/libcamera/pull/40.

Signed-off-by: Devendra Tewari <devendra.tewari@gmail.com>
2022-10-11 00:24:58 +01:00
Devendra Tewari
d3cdc30958 rpi-cmdline: Leave cma value to kernel default
Fixes #1095 where setting cma to a lower value affects the ability of
libcamera-apps to capture higher resolution images.

Signed-off-by: Devendra Tewari <devendra.tewari@gmail.com>
2022-10-11 00:24:39 +01:00
Khem Raj
45d56d82b7 layers: Add langdale to LAYERSERIES_COMPAT
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-09-30 10:11:17 +01:00
Chris Blättermann
80441d263d meta-raspberrypi: Include the device tree for Raspberry Pi CM4S
Signed-off-by: Chris Blättermann <chris.blaettermann@voltstorage.com>
2022-09-25 08:01:23 +01:00
Andrei Gherzan
f38baedb86 ci: Add raspberrypi-armv8 to the build matrix
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-14 20:39:18 +01:00
Andrei Gherzan
2f43edae00 Add support for a ARMv8 machine supporting multiple Raspberry Pi boards
The new raspberrypi-armv8.conf aims at supporting all the ARMv8
Raspberry Pi boards.

This initial support was tested on:
* Raspberry Pi 4 Model B
* Raspberry Pi 3 Model B
* Raspberry Pi 0 2 WiFi

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-14 20:39:18 +01:00
Andrei Gherzan
fe96a4511f ci: Add raspberrypi-armv7 to the build matrix
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-14 20:39:18 +01:00
Andrei Gherzan
10b649bdb0 Add support for a ARMv7 machine supporting multiple Raspberry Pi boards
The new raspberrypi-armv7.conf aims at supporting all the ARMv7
Raspberry Pi boards.

This initial support was tested on:
* Raspberry Pi 4 Model B
* Raspberry Pi 3 Model B
* Raspberry Pi 0 2 WiFi

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-14 20:39:18 +01:00
Andrei Gherzan
f24c3bdc3c rpi-base.inc: Split IMAGE_BOOT_FILES for kernel image
The kernel image deployment is now defined in IMAGE_BOOT_FILES as a
separate variable: RPI_EXTRA_IMAGE_BOOT_FILES. This allows a custom
kernel image deployment by redefining this variable when needed.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-14 20:39:18 +01:00
Andrei Gherzan
063ac5c919 raspberrypi0-2w.conf: Include the RPi 0-2w dtb for all 32-bit machines
All 32-bit machines are sharing the list of machine dtbs with the
exception of raspberrypi0-2w. Move this away too to unify the
machine configurations.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-14 20:39:18 +01:00
Andrei Gherzan
1440ac8589 sdcard_image-rpi.bbclass: Move SDIMG_KERNELIMAGE definitions to their machines
This unifies the configuration of SDIMG_KERNELIMAGE across machines.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-14 20:39:18 +01:00
Vincent Davis Jr
4b9c0dd543 docs: add info for raspberrypi distro vlc
Explains that PREFERRED_PROVIDER_ffmpeg/vlc
can be used to select an implementation of ffmpeg
or vlc. Also adds information on how vlc mmal_vout
plugin could be utilized. As well as how to expose
rpidistro-vlc.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-09-14 20:38:30 +01:00
Khem Raj
1b598573be rpidistro-vlc,rpidistro-ffmpeg: Limit scope to just rpi machines
enable mmal only when using userland graphics

Fixes builds on non-rpi machines e.g.
ERROR: Nothing PROVIDES 'userland' (but /mnt/jenkins/workspace/yocto-world-glibc/sources/meta-raspberrypi/recipes-multimedia/rpidistro-ffmpeg/rpidistro-ffmpeg_4.3.2.bb DEPENDS on or otherwise requires it)
userland was skipped: incompatible with machine qemumips (not in COMPATIBLE_MACHINE)
NOTE: Runtime target 'rpidistro-ffmpeg' is unbuildable, removing...

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-09-13 22:15:08 +01:00
Andrei Gherzan
e9d70d6b77 linux-firmware-rpidistro: Fix wireless on Raspberry Pi 4
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-09-12 23:44:30 +01:00
Vinicius Aquino
9ea5daf9fc raspberrypi-firmware: Update to 20220830 snapshot
Signed-off-by: Vinicius Aquino <vinicius.aquino@ossystems.com.br>
2022-09-09 18:21:36 +01:00
Vincent Davis Jr
465c8106ff Add support for optional selection of vlc and ffmpeg
Adds ability to select rpidistro version of vlc and ffmpeg over oe-core version.
via the PREFERRED_PROVIDER_vlc & PREFERRED_PROVIDER_ffmpeg
variables.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-09-06 03:32:59 +01:00
Vincent Davis Jr
8f88bfa824 rpidistro-vlc: add rpidistro VLC build (with MMAL enabled)
This adds support for building rpidistro version of VLC with hardware
acceleration through MMAL. The version of VLC located in
meta-openembedded/meta-multimedia/recipes-multimedia/vlc uses mainline
VLC and doesn't give all the proper flags. The series of patches attached
to commit gives necessarly vlc mmal flags.

* https://code.videolan.org/videolan/vlc/-/issues/24617
* https://bugs.gentoo.org/723006

The build fails with errors such as "multiple definition of `pf_enable_graphic_buffers'"
when omxil is enabled. The issue seems to be due to compiler flags. Adding -fcommon to
both cflags and cxxflags yields a full compile.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-09-06 03:32:59 +01:00
Vincent Davis Jr
ba965e3b67 raspidistro-ffmpeg: add support for building raspidistro ffmpeg
Pulls the raspidistro version of ffmpeg down and applies the necessary
patches that are located in the debian/patches folder.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-09-06 03:32:59 +01:00
Lluis Campos
c57b464b88 rpi-cmdline: do_compile: Use pure Python syntax to get CMDLINE
Otherwise the shell snippet fails with `bad syntax` when `CMDLINE`
contains special characters like `${...}` (useful to insert a U-Boot
variable in `cmdline.txt`).

Signed-off-by: Lluis Campos <lluis.campos@northern.tech>
2022-09-03 00:00:05 +01:00
Andrei Gherzan
b6a1645a97 Use a png with transparency for balena logo
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:18:20 +01:00
Andrei Gherzan
9a65a5cc18 Add initial version of CODE_OF_CONDUCT.md
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:18:20 +01:00
Andrei Gherzan
3bef4f04cc README.md: Refactor top table
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:18:20 +01:00
Andrei Gherzan
d9ea8f66d9 README.md: Mention Yocto Compatible Layer
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:18:20 +01:00
Andrei Gherzan
0ffe5110ec ci: Set LICENSE_FLAGS_ACCEPTED in builder docker container
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
7c31b9b4b5 linux-firmware-rpidistro: Guard the recipe under a license flag
We do this as a result of an upstream issue[1].

Some of the firmware blobs are provided under the 'Synapse' license
including a clause that can (at least theoretically) be used as a
'killswitch'. To make sure users are aware of this, we guard this
behind a license flag.

Users of this recipe will need to add to their configuration:

    LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"

[1] https://github.com/RPi-Distro/firmware-nonfree/issues/29

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
1b4215d5d0 linux-firmware-rpidistro: Revamp, cleanup and restructure recipe
Besides general cleanup and formatting (for example dropping the
conflicts and replaces on the raspbian packages which was deprecated
long ago) this also cleans up the license of the package as per the
updated upstream copyright file. This recipe now provides firmware files
of two different licenses.

bcm43430 bcm43455 - binary-redist-Cypress
bcm43436 bcm43436s bcm43456 - Synaptics

The license file itself is GPLv2 as other debian files.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
3122d5291d omxplayer: Bump to latest revision
Also, add a deprecation note as per the project's status:
https://github.com/popcornmix/omxplayer/blob/master/README.md

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
263920a672 linux-firmware-rpidistro: Update to 1:20210315-3+rpt7 release
This new revision comes with a lot of changes around the license. We
have two issues raised against upstream to clarify them:

https://github.com/RPi-Distro/firmware-nonfree/issues/28
https://github.com/RPi-Distro/firmware-nonfree/issues/29

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
8f8b8c9fee linux-raspberrypi: Update 5.10 recipe to latest revision
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
73142a23e4 linux-raspberrypi: Update 5.15 recipe to 5.15.56
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
18a11f59b8 bluez-firmware-rpidistro: Backport patch to fix CYW43455 and various CVEs
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
38776890b7 userland: Bump revision to the current HEAD
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
a087707b1f python3-adafruit-circuitpython-register: Bump to 1.9.10
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
444f83221c python3-adafruit-platformdetect: Bump to 3.27.0
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
356c0afee9 rpi-gpio: Bump to 0.7.1
Workaround not needed anymore as a fix was included from 0.7.1a[1].

[1] https://sourceforge.net/p/raspberry-gpio-python/tickets/187/#52f3

Also, this drops a patch merged upstream.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Andrei Gherzan
4ede22cb67 raspberrypi-tools.inc: Bump to latest revision
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-31 02:16:37 +01:00
Vincent Davis Jr
3337b532eb docs: remove backticks
WM8960 soundcard support contains
markdown that's not needed.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2022-07-30 04:06:28 +01:00
Andrei Gherzan
70191d3c87 ci: Don't run yocto builds on PRs that don't affect them
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-30 03:46:42 +01:00
Andrei Gherzan
05cafd056a ci: Run the mirror workflow on generic workers
No need to bottleneck on the self hosted worker(s) when this is a light
job.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-30 03:46:42 +01:00
Andrei Gherzan
584785bf45 ci: Run the compliance workflow on generic workers
No need to bottleneck on the self hosted worker(s) when this is a light
job.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-30 03:46:42 +01:00
Andrei Gherzan
1a15fefb27 ci: Run the cancel workflow on generic workers and update action
No need to bottleneck on the self hosted worker(s) when this is a light
job that needs to run as soon as possible so that it can cancel early.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-07-30 03:46:42 +01:00
Andrei Gherzan
260b3b97d0 ci: Migrate worflow to using latest git-mirror-me-action revision
This has full support for env variables.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2022-07-27 11:27:00 +01:00
Khem Raj
62a84833d9 linux-raspberrypi: Upgrade to 5.15.38
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-05-13 15:10:34 +01:00
Khem Raj
a5c2bef10e linux-firmware-rpidistro: Create brcmfmac43455-sdio.raspberrypi,4-model-b.bin symlink
This fixes a boot time message on rpi4b
brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin failed with error -2

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-05-07 12:37:11 +01:00
Andrei Gherzan
90448d7dd3 Revert "kmod: Enable xz compression"
This reverts commit c97a9e34ab.
2022-05-05 08:57:35 +01:00
Khem Raj
6afb32b00e rpi-config: Add option to enable One-wire interface
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-05-03 11:46:07 +01:00
Andrei Gherzan
c97a9e34ab kmod: Enable xz compression
The RaspberryPi default Linux kernel configuration uses xz for
compressing kernel modules[1]. This was introduced in 5.15. We need the
respective support in kmod too.

[1]https://github.com/raspberrypi/linux/pull/4991

Fixes: https://github.com/agherzan/meta-raspberrypi/issues/1054

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2022-04-29 13:37:14 +01:00
Andrei Gherzan
0135a02ea5 rpi-base.inc: Add MCP3008 ADC overlay
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Jan <jan.claussen10@web.de>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
ad6ebc053a docs: Bump copyright year
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
785181f695 docs: Drop mention of deprecated images
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Davide Gardenal
901cb604b5 bluez-firmware-rpidistro: Add compatibility to oe-core/create-spdx
Add do_create_spdx dependency to fix error when LICENCE is not found

Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
2022-04-21 21:41:38 +01:00
Meng Li
c3275986b6 u-boot: Remove the randundant patch
This patch had been merged into u-boot upstream. Its commit is
29f7d05a347a("dm: core: Move ofdata_to_platdata() call earlier").
So, remove the randundant patch to avoid building error.

Signed-off-by: Meng Li <Meng.Li@windriver.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
993436b0fe ci: Use test builds with the test image
rpi-test-image is based on core-image-base but includes more packages
that this layer provides. In this way we can have CI test more recipe
updates.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
61ad24a65e packagegroup-rpi-test: Include more packages
Include more packages from this layer so we can test/CI the support
easier.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
258dcb3e15 rpi-hwup-image: Drop image
This was deprecated for a good while now so let's drop it.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
82871068c2 rpi-basic-image: Drop image
This was deprecated for a good while now so let's drop it.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
b90b06785c python3-adafruit-circuitpython-register: Upgrade to 1.9.8
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
e6209f5671 python3-adafruit-platformdetect: Upgrade to 3.22.1
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
7a3e4193f1 python3-adafruit-pureio: Uprade to 1.1.8
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
34c1d4739d rpio: Upgrade to 0.10.1
Drop the 0001-include-sys-types.h-explicitly-for-getting-caddr_t-d.patch
patch as it was fixed in this version[1].

This switches the source from pypi to git (github) as the new version
wasn't published yet.

Lastly, we use the LICENSE.txt file for LIC_FILES_CHKSUM so we don't
have to deal with context lines in the README file.

[1] https://github.com/metachris/RPIO/pull/41

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
cbb15c7a34 python3-rtimu: Upgrade to 7.2.1
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
dda2c3a73e raspi-gpio: Uprev revision to current HEAD of master branch
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
97101ee4fb linux-firmware-rpidistro: Update to 20210315-3+rpt4
The 43438 WLAN firmware doesn't include the clm_blob anymore which now
comes as a separate file: cyfmac43430-sdio.clm_blob.

The 43455 WLAN firmware now comes with a minimal build too. We make sure
that it is packaged and we dropped the associated README. In the future
we might want to introduce a build configuration for switching between
the two builds. For now we only deploy it on target and let users deal
with the symlink accordinly.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
a92429d950 pi-blaster: Uprev the recipe
This updates the recipe to the head of the master branch. Upstream
shifted the license section in the README file so this patch changes
LIC_FILES_CHKSUM accordingly.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
7da2c1886e bcm2835: Update to 1.71
This version is now released as GPLv3. It also adds an example that is
not a simple binary anymore - it is provided as a tiny library and an
associated tool (spiram/spiram_test). Restructure the compilation and
installation of all examples to cater for this case.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>

m
2022-04-21 21:41:38 +01:00
Andrei Gherzan
4f356af004 linux-raspberrypi: Update 5.10 recipe to 5.10.110
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
49ad2d8bee linux-raspberrypi: Update 5.15 recipe to 5.15.34
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
70ea7a678a raspberrypi-firmware: Update to 20220331
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Khem Raj
893aad8ce8 python3-sense-hat: Use specific BSD license
Fixes
WARNING: python3-sense-hat-2.2.0-r0 do_populate_lic: QA Issue: python3-sense-hat: No generic license file exists for: BSD in any provider [license-exists]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-04-20 11:53:56 +01:00
Jan Vermaete
3a91ee04eb docs: link to latest documentation of kas
Version 1.0 of kas is not the latest anymore.

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2022-04-14 10:37:30 +01:00
AJ Bagwell
83f5577d8d linux-raspberrypi: add UBOOT_ENTRYPOINT to match LOADADDR
This is so that uboot fit images have an entry point that matches the
LOADADDR that everything is expecting.

Signed-off-by: AJ Bagwell <anthony.bagwell@hivehome.com>
2022-04-11 17:15:30 +01:00
Khem Raj
cfbb192e5c omxplayer: Use internal version of ffmpeg
OE-Core's ffmpeg has moved to 5.x version whose headers are not directly
compatible with what omxplayer expects anymore. Therefore use captured
version of ffmpeg and point the header search paths accordingly.

Add missing dependency on alsa-lib for libasound headers

Fixes build with master/kirkstone

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-04-04 20:04:06 +01:00
Khem Raj
9f5aaa1a29 picamera-libs: Adjust sourcedir
After switching the SRC_URI for firmware, this adjustment was needed to
let this recipe find /opt/vc path in correct place

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-04-04 20:04:06 +01:00
Khem Raj
354e7153be userland: Update to latest as of 20220323
Fix build with clang

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-04-04 20:04:06 +01:00
Andrew Penner
8eff5d59ed extra-build-config: Add documentation for the ISOLATED_CPUS configuration variable
Signed-off-by: Andrew Penner <andrew.penner@protonmail.com>
2022-04-04 10:08:08 +01:00
Andrew Penner
2beae018fb rpi-cmdline: Add ability to specify CPUs to add to the isolcpus list
Signed-off-by: Andrew Penner <andrew.penner@protonmail.com>
2022-04-04 10:08:08 +01:00
Andrei Gherzan
1ea28cfb2a docs: Add information for RTC devices
The `rtc` machine feature is "considered" by default for all the
machines we provide until now. This can confuse people who would want an
RTC device attached to a RaspberryPi board[1]. Clarify this via
documentation.

[1] https://github.com/agherzan/meta-raspberrypi/issues/1010

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-02 22:04:31 +01:00
Jan Vermaete
8d7e6b533b docs: untabify the few tabs in the file
Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2022-04-02 21:48:17 +01:00
Khem Raj
31c33d155c armstubs: Upgrade to 20211101
- Switch to using git fetcher, avoid the QA issue

  ERROR: armstubs-20211101-r0 do_unpack: QA Issue: armstubs: SRC_URI uses unstable GitHub/GitLab archives, convert recipe to use git protocol [src-uri-bad]

- Use shallow clone to reduce size of cloned repo

  Normal archive tarball
  raspberrypi-tools-13474ee775d0c5ec8a7da4fb0a9fa84187abfc87.tar.gz - 324M

  Shallow clone achive tarball
  gitshallow_github.com.raspberrypi.tools_13474ee-1_master.tar.gz - 189M

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-31 12:03:32 +01:00
Khem Raj
03c6ab0cae raspberrypi-firmware: Update to match 5.15.32
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-31 12:03:32 +01:00
Khem Raj
b64df25754 linux-raspberrypi_5.15.bb: Upgrade to 5.15.32
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-31 12:03:32 +01:00
Matthias Klein
c06ae5eacf u-boot: always set fdt_addr with firmware-provided FDT address
The Raspberry firmware prepares the FDT blob in memory at an address that
depends on both the memory size and the blob size.
For details see description in the patch itself.

The patch is not yet upstream, but has already been submitted by the original
author: https://lore.kernel.org/all/20210512123945.25649-1-m.salvini@koansoftware.com/

For me, the described problem occurs in conjunction with RAUC, which uses the
following U-Boot script: https://github.com/rauc/meta-rauc-community/blob/master/meta-rauc-raspberrypi/recipes-bsp/rpi-u-boot-scr/files/boot.cmd.in

As soon as I add an overlay the fdt_addr changes and the system does not boot
anymore.

Signed-off-by: Matthias Klein <matthias@extraklein.de>
2022-03-27 22:59:24 +01:00
Andrei Gherzan
bc10842957 linux-raspberrypi: Bump 5.15 recipe to 5.15.30
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-03-24 21:06:09 +00:00
Khem Raj
7a9b2751f0 linux-raspberrypi: Update to 5.15.28
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-17 14:32:23 +00:00
Khem Raj
747f5f33f5 python: Unbolt wheel packaging PIP_INSTALL_PACKAGE band-aids
OE-Core has improved packaging the whl files therefore remove the
band-aids.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-11 01:07:59 +00:00
Khem Raj
030bbc50b7 linux-raspberrypi: Update to 5.15.27
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-10 01:32:27 +00:00
Khem Raj
8096c3118a linux-raspberrypi_5.15.bb: Update to 5.15.26
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-06 05:47:38 +00:00
Khem Raj
c25f42074a rpi-gpio: Port to PEP-517 packaging
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-06 05:47:38 +00:00
Khem Raj
0637a85edd linux-raspberrypi_5.15.bb: Upgrade to 5.15.25
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-02 13:33:07 +00:00
Khem Raj
36e5cdd8bc python3-adafruit-platformdetect: Fix build with wheel
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-01 09:26:31 +00:00
Khem Raj
df8670fb5a python3-rtimu: Port to using setuptools and fix build with wheel
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-01 09:26:31 +00:00
Khem Raj
18345cfb4a python3-adafruit-pureio: Fix build with wheel
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-01 09:26:31 +00:00
Khem Raj
7474b7951a python3-adafruit-circuitpython-register: Define PIP_INSTALL_PACKAGE
Fixes build with wheel

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-01 09:26:31 +00:00
Andrei Gherzan
390b3f63cf docs: Update www.raspberrypi.com documentation links
www.raspberrypi.com restructured its documentation. Reflect the new
links in our docs.

Fixes #954

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-25 21:37:49 +00:00
Andrei Gherzan
9340e202d4 sdcard_image-rpi.bbclass: Use processed list of device trees
make_dtb_boot_files already creates the list of device trees with their
right destination. There is no need to redo a similar logic here. As a
matter of fact, the sdimg functionality had a bug because it didn't
treat overlay_map.dtb as an overlays file.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-25 21:37:49 +00:00
Andrei Gherzan
906cf0ba2a rpi-base.inc: Cleanup redundant imgtyp variable
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-25 21:37:49 +00:00
Andrei Gherzan
1dfa0471ad raspberrypi-firmware.inc: Move to using tarballs from rpi deb repo
This helps to avoid unstable GitHub archives. It also silences the
associated build warning:

WARNING: rpi-bootfiles-20211007-r3 do_unpack: QA Issue: rpi-bootfiles:
SRC_URI uses unstable GitHub/GitLab archives, convert recipe to use git
protocol [src-uri-bad]

Fixes #1002

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-25 21:37:49 +00:00
Andrei Gherzan
559dd4240d linux-raspberrypi: linux-raspberrypi: Bump 5.15 revision
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-25 21:37:49 +00:00
Andrei Gherzan
122baacb82 linux-raspberrypi: linux-raspberrypi: Bump 5.10 to 5.10.95
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-25 21:37:49 +00:00
Andrei Gherzan
e39a0a570c ci: Use the current stable version for the mirror action
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-23 00:40:39 +01:00
Andrei Gherzan
0c5c1c9b76 ci: No need for checkout step in mirror workflow
The git-mirror-me-action handles the cloning of the source.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-23 00:17:23 +01:00
Andrei Gherzan
45a7fd9c18 ci: Add git mirror workflow
This will resume syncing the Yocto git repository with the GitHub one.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-22 22:16:51 +01:00
Martin Jansa
2bfbdd633c meta: update license names
* openembedded-core/scripts/contrib/convert-spdx-licenses.py .
  ...
  All files processed with version 0.01

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-02-22 16:21:17 +00:00
Martin Jansa
3a8359693d meta: update variable names
* openembedded-core/scripts/contrib/convert-variable-renames.py .
  ...
  All files processed with version 0.1

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-02-22 16:21:17 +00:00
Khem Raj
0bc1eac5a5 layers: Bump to use kirkstone
its not going to be backward ABI compatible with honister due to variable renaming.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-02-22 14:17:20 +00:00
Khem Raj
157f72b808 rpi-default-versions: Use 5.15 as default kernel
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-02-21 00:16:17 +00:00
Khem Raj
50d8dc933e linux-raspberrypi: Add recipe for 5.15 LTS kernel
This is not default branch for linux-raspberrypi as well.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-02-21 00:16:17 +00:00
Martin Jansa
076aa51c59 gstreamer1.0-plugins-bad: remove libmms PACKAGECONFIG and add gpl
* libmms was removed with 1.20.0 upgrade in:
  https://git.openembedded.org/openembedded-core/commit/?id=76433d3628cbad311b428a57b25b4e2701ee513b

* fixes:
  ERROR: gstreamer1.0-plugins-bad-1.20.0-r0 do_configure: QA Issue: gstreamer1.0-plugins-bad: invalid PACKAGECONFIG: libmms [invalid-packageconfig]

* faad now requires gpl to be enabled:
  | ../gst-plugins-bad-1.20.0/ext/faad/meson.build:1:0: ERROR: Feature faad cannot be enabled:
  |   Plugin faad explicitly required via options but GPL-licensed plugins disabled via options.
  |   Pass option -Dgpl=enabled to Meson to allow GPL-licensed plugins to be built.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-02-20 14:16:25 +00:00
Martin Jansa
e0fc6806ef sdcard_image-rpi: fix DeprecationWarning
* fixes:
classes/sdcard_image-rpi.bbclass:87: DeprecationWarning: invalid escape sequence \S
classes/sdcard_image-rpi.bbclass:88: DeprecationWarning: invalid escape sequence \S
classes/sdcard_image-rpi.bbclass:90: DeprecationWarning: invalid escape sequence \S
classes/sdcard_image-rpi.bbclass:91: DeprecationWarning: invalid escape sequence \S

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2022-02-20 10:14:31 +00:00
Khem Raj
7a45b41810 python3-adafruit-blinka: Disable on musl
it provides prebuilts which are linked against glibc. so disable it for
musl

Fixes
microcontroller/bcm283x/pulseio/libgpiod_pulsein contained in package python3-adafruit-blinka requires libc.so.6(GLIBC_2.4), but no providers found in RDEPENDS:python3-adafruit-blinka? [file-rdeps]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-02-20 09:20:54 +00:00
Bernhard Guillon
596b92e8d1 rpi-base.inc: enable i2c-gpio overlay
Adds support for software i2c controller on gpio pins

RPI_EXTRA_CONFIG += "\
dtoverlay=i2c-gpio,bus=7,i2c_gpio_sda=6,i2c_gpio_scl=5 \
"
Will configure a /dev/i2c-7 bus with sda=gpio#6 and slc=gpio#5

The overlay documentation can be found here:
https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README

Signed-off-by: Bernhard Guillon <Bernhard.Guillon@begu.org>
2022-02-20 00:00:22 +00:00
Michal Toman
9bd5f90229 rpi-base.inc: Add vc4-fkms-v3d-pi4 overlay
Since RPi kernel commit 9e87248154a633b18b4900ee742d9894b49e019b FKMS overlay
for Pi4 family is split into a separate file. Not shipping the overlay means
FKMS does not load correctly on these devices and VC4 is not brought up.

Signed-off-by: Michal Toman <michal@toman.sk>
2022-02-19 14:19:12 +00:00
Andrei Gherzan
b7b34ecce7 ci: Add workflow to cancel redundant workflows
This is not yet baked into GitHub but can be achived using a public
action.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
218635ea9e ci: Introduce workflow Yocto operations/builds
We include a workflow for checking yocto compliance using the poky
provided script and also a matrix workflow for building the CI supported
build configurations.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
637393827d ci: Introduce workflow for compliance
It includes jobs for checking DCO and reuse. The latter is set to allow
fails as the repository is not yet reuse compliant. When that is done,
we can switch it.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
3786353f51 ci: Define an action for cleaning/removing an image
This is useful when cleaning up after a temporary built docker image.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
2906a95cff ci: Define an action for cleaning dangling image
Cleanup existing dangling docker images on the runner.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
8b1ab71006 ci: Define an action for building a local docker image
It provides support for building a locally defined image. It also
includes a retry logic to handle eventual concurrent cleanups on the
runner.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
2b81733c40 docs: Detail the merging process of patches sent through the mailing list
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
9a2c13f822 README.md: Don't advertise meta-oe dependency
The dependencies to the meta-openembedded layers are handled through
dynamic layers so there is no need to advertise this in the
documentation. Especially that the layer configuration doesn't set that
either.

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
221e048d54 Move the python3-adafruit recipes depending on meta-oe to dynamic layers
python3-adafruit-blinka depends on libgpiod which is provided by
meta-oe. To avoid this dependency at all times, we move the recipe under
the dynamic structure (along with the ones depending on it).

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Andrei Gherzan
b05c2bdf85 README.md: Add contributing section
This also fixes a check in the yocto project compatible script.
https://bugzilla.yoctoproject.org/show_bug.cgi?id=11131

Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-02-19 09:27:59 +00:00
Aníbal Limón
a96a61c16d gstreamer1.0-plugins-good: Update bbappend to 1.20
Gstreamer upgraded to 1.20 see,

https://git.openembedded.org/openembedded-core/commit/?id=75891f361f3e9df9fc3e97c720a2ae57dda75888

Signed-off-by: Aníbal Limón <anibal@rzerosystems.com>
Signed-off-by: Aníbal Limón <limon.anibal@gmail.com>
2022-02-09 21:08:41 +00:00
Khem Raj
e1014d41ef rpi-gpio: Replace setuptool3 instead of distutils3
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-01-28 22:32:58 +00:00
Khem Raj
2e83546856 picamera-libs,python3-picamera: Limit visibility to 32 bit rpi machines
These recipes use prebuilt vc libs which are 32bit only libs

They also do not work on musl

https://github.com/agherzan/meta-raspberrypi/pull/983 introduced these
recipes however these are not generic packages that can be used on non-rpi machines
therefore mark them so. It helps in using this SOC layer with other SOC
layers in a distro

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-01-28 22:32:58 +00:00
bhargavthriler
bfac0b9ccb python3-picamera: Add picamera library
python3-picamera : recipe for python picamera library.
picamera-libs    : recipe raspberry pi firmware which are required
by picamera.

Closes: #959
Signed-off-by: Bhargav Das <bhargavthriler@gmail.com>
2022-01-25 16:25:49 +00:00
Paul Barker
42ef0f5046 raspberrypi4-64: Switch to cortexa72 tune
After commits ca50267ab568 & 03cebdd7ef92 in openembedded-core, the
`cortexa72-crc` tune is no longer available and the `cortexa72` tune
includes the crc extension by default. Update the raspberrypi4-64
machine config to handle these changes.

Signed-off-by: Paul Barker <paul.barker@sancloud.com>
2022-01-21 11:45:23 +00:00
Mingli Yu
6eebb58ef6 xserver-xorg: remove xshmfence configure option
After the commit [1] introduced in openembedded-core layer,
some configure options is't carried over include xshmfence
option, so remove the xshmfence configure option to silence
the below warning.
  WARNING: xserver-xorg-2_21.1.1-r0 do_configure: QA Issue: xserver-xorg: invalid PACKAGECONFIG: xshmfence [invalid-packageconfig]

[1] https://git.openembedded.org/openembedded-core/commit/?id=e05abd87ee5d23750c641d0129d9c83db68ee2e8

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
2022-01-04 13:09:16 +01:00
Otto Esko
2e3ed68f9d Add documentation for gpio-shutdown
Signed-off-by: Otto Esko <otto.esko@gmail.com>
2022-01-04 11:39:18 +00:00
Otto Esko
bf2d2eae4e recipes-bsp: Add support for gpio-shutdown
- Feature is enabled with ENABLE_GPIO_SHUTDOWN variable
- Include the gpio-shutdown overlay
- If using SysV init include the additional keymap and inittab entries
  to bind the KEY_POWER event
- Systemd init does not require any additional bindings

Signed-off-by: Otto Esko <otto.esko@gmail.com>
2022-01-04 11:39:18 +00:00
Mauro Anjo
58cc662539 machine: add Pi Zero 2 W 32bits
Added new machine configuration for Raspberry Pi Zero 2 W in 32bit mode.

Signed-off-by: Mauro Anjo <maurosanjo@gmail.com>
2021-12-26 23:35:46 +00:00
Khem Raj
cd234925fa raspberrypi4-64: Switch to using cortexa72-crc default tune
rpi4 SOC does not have AES Crypto in H/W

Fixes Issue #964

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-12-10 08:36:10 +00:00
Devendra Tewari
ce12544b86 linux-raspberrypi: Upgrade to 5.10.83
Fixes #957

Signed-off-by: Devendra Tewari <devendra.tewari@gmail.com>
2021-12-08 10:02:16 +00:00
Joel Winarske
836755370f mesa: Enable building vulkan driver
Support to enable building Mesa Broadcom v3d Vulkan Driver

Upstream support Merged in master 2021-11-07
http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=ddcaf3596227a32628b436f4130f4c0b1541a4be

Signed-off-by: Joel Winarske <joel.winarske@gmail.com>
2021-12-03 21:33:06 +00:00
Khem Raj
de1007b690 weston-init: Add --continue-without-input option to weston
launching with --continue-without-input helps starting weston
without keyboard/mouse

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-11-29 18:37:10 +00:00
Khem Raj
63a3d8cb17 linux-raspberrypi: Upgrade to 5.10.81
Also fixes
https://github.com/agherzan/meta-raspberrypi/issues/957

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-11-23 11:32:35 +00:00
Khem Raj
4a827bfff2 parselogs: Update the error regexps to 5.10 kernel
The old messages are no longer necessary

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-11-23 11:32:35 +00:00
Peter A. Bigot
54213e7127 conf/machine: add variant Wi-Fi/BT drivers for CM4 and Pi 400
These boards use a slightly different chip which requires additional
firmware to be present.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2021-11-19 14:22:40 +00:00
Khem Raj
4c76dab6f0 linux-firmware-rpidistro: Use bullseye branch
Switch to using bullseye release 20210315-3+rpt3
License is pointed in different location in new repo structure WHENCE
file is gone too.

Fixes
https://github.com/YoeDistro/yoe-distro/issues/617

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-11-18 09:17:24 +00:00
Martin Jansa
7413c72dd5 rpi-config: don't trigger bbfatal for empty ENABLE_UART
Fixes https://github.com/agherzan/meta-raspberrypi/pull/941 not to
show fatal error for default configuration with ENABLE_UART being empty.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-11-17 11:08:55 +00:00
Cameron Kellough
c0dd1c9129 rpi-base.inc: Added gpio-poweroff overlay.
Some machines need to have the kernel toggle a gpio when an external
power source needs to shut off power to complete a shutdown and de-energize
the processor.  gpio-poweroff provides this functionality but was omitted
from the kernel overlays brought oveer by the rpi-layer from the kernel.
Signed-off-by: Cameron Kellough <cameron@telemetrak.com>
2021-11-14 15:40:25 +00:00
Andrei Gherzan
b1570cff21 rpi-config: Take into consideration ENABLE_UART value of 0
Also, validate if the value of it is not 0 or 1.

Fixes: https://github.com/agherzan/meta-raspberrypi/issues/567

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 15:39:42 +00:00
Andrei Gherzan
690b4a5e98 libwpe: Migrate build workaround from oe-core
This was removed from oe-core[1] so we pull in the change here where it
should have been in the first place.

Fixes: https://github.com/agherzan/meta-raspberrypi/issues/893

[1] https://lists.openembedded.org/g/openembedded-core/topic/84653556

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 15:39:24 +00:00
Andrei Gherzan
fed7688925 README.md: Fix the matrix chat link
matrix.org doesn't allow guest logins which is required by the shield.
Use a custom one to avoid a confusing badge warning.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 02:14:11 +00:00
Andrei Gherzan
da03175b91 Update references to Yocto mailing list
The mailing list infrastructure at Yocto project changed (for a good
while now) but we still reference the old address/links. Update them
accordingly.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 01:13:35 +00:00
Andrei Gherzan
cecf45083a docs: Advertise raspberrypi0-2w-64 supported machine
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 01:04:00 +00:00
Andrei Gherzan
e1411c7520 docs: Add module dependency/requirement for RtD
myst_parser is not in the default Read The Docs container by default.
Pull it in as we use it for parsing the markdown files.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 01:03:59 +00:00
Andrei Gherzan
dc2c0b8197 docs: Fix RtD build
Markdown parser has changed[1].

[1] https://docs.readthedocs.io/en/stable/intro/getting-started-with-sphinx.html#using-markdown-with-sphinx

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 00:32:53 +00:00
Andrei Gherzan
0737be26d2 README.md: Fix sponsor table take two
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 00:27:03 +00:00
Andrei Gherzan
705faf1a74 README.md: Fix sponsor table
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 00:25:17 +00:00
Andrei Gherzan
361df89060 docs: Bump copyright year
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 00:19:58 +00:00
Andrei Gherzan
0892e309d3 README.md: Fix docs and minor tweaks
* Remove CI badges - I plan to move to github CI soon and they are broken
* anyway. So I might as well look into them when I migrate the CI.
* Update maintainer email.
* Drop temporary the sponsor logo - it breaks documentation builds in
  Read The Docs. I'll check it out when I revamp the docs.
* Update the matrix channel.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-14 00:19:25 +00:00
Alexandru Costache
0d0879dc37 linux-raspberrypi: Bump to 5.10.78
To include Pi Zero 2W device-tree changes
for brcmfmac firmware.

Signed-off-by: Alexandru Costache <alexandru@balena.io>
2021-11-13 23:30:28 +00:00
Alexandru Costache
edf90ee729 linux-firmware-rpidistro: Package bcm43436 and bcm43436s firmware
Signed-off-by: Alexandru Costache <alexandru@balena.io>
2021-11-13 23:30:28 +00:00
Alexandru Costache
f0a5f4944e conf/machine: Add Pi Zero 2 Wifi 64bit yocto machine
This inherits Pi3 64bit configuration

Signed-off-by: Alexandru Costache <alexandru@balena.io>
2021-11-13 23:30:28 +00:00
Marcel Hamer
e31fba4c96 recipes: Update SRC_URI protocols for github
Use protocols=https for GitHub SRC_URIs using the conversion script in
openembedded-core.

Signed-off-by: Marcel Hamer <marcel@solidxs.se>
2021-11-07 21:30:23 +00:00
Andrei Gherzan
316b017c53 linux-raspberrypi: Drop 5.4
The currently preferred version, 5.10 is the upstream stable, and an LTS
version so I don't see why anybody would want to go with 5.4 anymore.
Also, these two versions now diverged in terms of what device tree
overlays they provide making it more complicated to maintain. Until
there is a good reason to maintain that support, I propose to drop this
version.

Fixes: https://github.com/agherzan/meta-raspberrypi/issues/927

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-11-03 12:32:14 +00:00
Andrei Gherzan
7968de3b78 linux-raspberrypi: Bump 5.10 to 5.10.76
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-10-30 21:27:43 +01:00
Andrei Gherzan
4a1340691e raspberrypi-firmware: Bump to 20211007
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-10-30 21:27:43 +01:00
Zygmunt Krynicki
90b3ac6fb3 rpi-config: warn on config.txt lines exceeding 80 bytes
The Raspberry Pi firmware does not support lines exceeding 80 bytes.
This is documented at https://www.raspberrypi.com/documentation/computers/config_txt.html#file-format

It seems that comments can be longer but it's still best to avoid this
problem instead of debug it. Detect the situation in do_deploy_append
and bbwarn if the limit is exceeded.

Connected to #917

Signed-off-by: Zygmunt Krynicki <me@zygoon.pl>
2021-10-14 23:09:47 +01:00
Andrew Penner
9eb4879cf4 rpi-cmdline: Support ethernet over USB
Support ethernet over USB via config.txt and cmdline.txt

Signed-off-by: Andrew Penner <andrew.penner@protonmail.com>
2021-09-24 17:34:23 +01:00
Khem Raj
5f72ec0aa4 raspberrypi-firmware: Update to latest
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-09-17 11:36:53 +01:00
Khem Raj
937ca693a9 linux-raspberrypi: Update to 5.10.63
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-09-17 11:36:53 +01:00
Khem Raj
a6fa6b3aec raspberrypi4: Use full kms (vc4-kms-v3d) DT overlay
With latest 5.10 kernel fkms version fails to bring up VC4 and we do not
get dri device initialized ( /dev/dri ) is empty, which means we can not
launch wayland componsitors.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-25 12:56:18 +01:00
Khem Raj
b488b4a194 raspberrypi-firmware: Update to latest
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-25 12:56:18 +01:00
Khem Raj
435720fffa linux-raspberrypi: Update to 5.10.59
Update metadata branch to latest 5.10 as well

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-25 12:56:18 +01:00
Khem Raj
d4ab9ca93c machines: Use tune files from new location in oe-core
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-20 11:22:56 +03:00
Marcus Comstedt
596907b3ba pi-bluetooth: Add compatibility with non-systemd builds
Signed-off-by: Marcus Comstedt <marcus@mc.pp.se>
2021-08-19 11:03:16 +03:00
Tom Rini
fcd7b67d9c xserver-xf86-config: Correctly append to FILES:${PN}
When updating FILES:${PN} based on an override you must use
FILES:${PN}:append:OVERRIDE as the syntax otherwise you will end up
replacing the contents of FILES:${PN} entirely.  Update to use this
syntax correctly and then only add "${sysconfdir}/X11/xorg.conf.d/*"

Reported-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-19 11:01:49 +03:00
Omer Akram
32921fc9bd linux-firmware-rpidistro: fix wifi driver loading on cm4
Signed-off-by: Omer Akram <omer@thing.com>
2021-08-12 12:51:19 +03:00
Otavio Salvador
fc5d68f135 rpi-config: Allow setting hdmi_cvt
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2021-08-11 13:48:49 +03:00
Khem Raj
c7f4c739a3 sdcard_image-rpi.bbclass: Fix IMAGE_TYPEDEP override to use new syntax
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-09 15:28:18 +03:00
Martin Jansa
86015f0957 userland: package man pages in PN-doc
* last userland upgrade in:
  2a25b7ef8b
  brings this upstream commit:
  45a0022ac6

  which results in:
  ERROR: userland-20210623-r0 do_package: QA Issue: userland: Files/directories were installed but not shipped in any package:
    /usr/man
    /usr/man/man1
    /usr/man/man7
    /usr/man/man1/raspistill.1
    /usr/man/man1/raspividyuv.1
    /usr/man/man1/dtparam.1
    /usr/man/man1/raspivid.1
    /usr/man/man1/tvservice.1
    /usr/man/man1/vcmailbox.1
    /usr/man/man1/raspiyuv.1
    /usr/man/man1/dtoverlay.1
    /usr/man/man1/vcgencmd.1
    /usr/man/man1/dtmerge.1
    /usr/man/man7/raspicam.7
    /usr/man/man7/raspirev.7
    /usr/man/man7/raspiotp.7
    /usr/man/man7/vcmailbox.7
  Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
  userland: 17 installed and not shipped files. [installed-vs-shipped]

  it's incorrectly installed in /usr/man by CMake as discussed in upstream
  move it to /usr/share/man where it's picked by default FILES:${PN}-doc

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-08-09 15:25:46 +03:00
Pierre-Jean Texier
0df167c61f kas: local.conf: disable prelink
Keep configuration synchronized with OE-Core, see [1].

[1] - http://git.openembedded.org/openembedded-core/commit/?id=f9719cc1c3fe9d380336e7af418daf27473b2e8b

Signed-off-by: Pierre-Jean Texier <texier.pj2@gmail.com>
2021-08-09 15:23:22 +03:00
Khem Raj
3abe06359a raspberrypi-tools: Update to latest
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-06 00:35:47 +03:00
Khem Raj
72ab8dfb17 raspberrypi-firmware: Update to latest
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-06 00:35:47 +03:00
Khem Raj
2a25b7ef8b userland: Update to latest master branch
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-06 00:35:47 +03:00
Khem Raj
dea02a4b64 linux-raspberrypi: Upgrade to 5.10.52
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-08-06 00:35:47 +03:00
Pierre-Jean Texier
7fb784a402 kas: local.conf: bump CONF_VERSION variable
Since commit 5452f1ba337685cf89d3429e08255450ab90b96f ("local.conf.sample: Bump version so users update their config") in OE-Core,
we need to update the default local.conf due to the new syntax.

Fixes:

ERROR: Error executing a python function in exec_python_func() autogenerated:

The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:oecore_update_localconf(d)
     0003:
File: '/work/poky/meta/classes/sanity.bbclass', lineno: 56, function: oecore_update_localconf
     0052:
     0053:is a good way to visualise the changes."""
     0054:    failmsg = d.expand(failmsg)
     0055:
 *** 0056:    raise NotImplementedError(failmsg)
     0057:}
     0058:
     0059:SANITY_SITECONF_SAMPLE ?= "${COREBASE}/meta*/conf/site.conf.sample"
     0060:python oecore_update_siteconf() {
Exception: NotImplementedError: Your version of local.conf was generated from an older/newer version of
local.conf.sample and there have been updates made to this file. Please compare the two
files and merge any changes before continuing.

Matching the version numbers will remove this message.

"meld conf/local.conf /work/poky/meta*/conf/local.conf.sample"

is a good way to visualise the changes.

Signed-off-by: Pierre-Jean Texier <texier.pj2@gmail.com>
2021-08-04 21:36:05 +03:00
Martin Jansa
5689280cd8 layer.conf: Update to honister
This marks the layers as compatible with honister now they use the new override
syntax.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-08-04 12:30:12 +03:00
Martin Jansa
3f703e1b1d Manually fix conversion
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-08-04 12:30:12 +03:00
Martin Jansa
9ea7aa2cd2 Convert to new override syntax
This is the result of automated script conversion:

oe-core/scripts/contrib/convert-overrides.py .

converting the metadata to use ":" as the override character instead of "_".

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-08-04 12:30:12 +03:00
Andrei Gherzan
8dc3a31088 rpi-cmdline: Make rootfstype easier to customize
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2021-07-22 11:24:33 +03:00
Martin Jansa
a18a760d1e python3-adafruit-*: fix branch parameter
* master branch was renamed to main

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-07-15 11:19:33 +03:00
Omer Akram
0e48785e15 Update raspberrypi firmware to 20210527
Signed-off-by: Omer Akram <omer@thing.com>
2021-07-09 11:26:39 +03:00
Paul Barker
17b56ab075 rpi-cmdline: Package is machine-specific
The cmdline.txt file generated by this recipe includes machine-specific
information so we should set PACKAGE_ARCH appropriately.

Signed-off-by: Paul Barker <paul@pbarker.dev>
2021-06-18 00:17:18 +01:00
Devendra Tewari
246555aea7 Add WM8960 soundcard support
Signed-off-by: Devendra Tewari <devendra.tewari@gmail.com>
2021-06-10 21:22:24 +01:00
Andreas Müller
7057d5dcbf pi-bluetooth: upgrade 0.1.12 -> 0.1.17
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2021-06-08 14:05:13 +01:00
Pierre-Jean Texier
66d20862de kas: remove 'image-mklibs' from USER_CLASSES list
mklibs is no longer supported, see [1]

[1] - http://git.openembedded.org/openembedded-core/commit/meta/classes?id=908df863b419d1cad7317153101fc827e7e3a354

Signed-off-by: Pierre-Jean Texier <texier.pj2@gmail.com>
2021-06-07 12:59:23 +01:00
Martin Jansa
ffc402ef5e linux-raspberrypi-dev: use static SRCREV when not selected with PREFERRED_PROVIDER_virtual/kernel
* the anonymous python function was supposed to prevent AUTOREV
  being parsed when not selected, but that doesn't work, use
  the same trick with static SRCREV as linux-yocto-dev is using:
  https://git.openembedded.org/openembedded-core/commit/?id=5e8cf6e568ab90365894478a272b5c28dc941031

* Use LINUX_RPI_KMETA_BRANCH yocto-5.10 instead of master, because that's
  where static SRCREV_meta is contained.

* fixes "git ls-remote git://git.yoctoproject.org/yocto-kernel-cache"
  being called to resolve AUTOREV in SRCPV even when PREFERRED_PROVIDER_virtual/kernel
  is set to linux-raspberrypi not linux-raspberrypi-dev.

* I've noticed this in a build which was stuck in parsing for 15 minutes before
  the connection timeout:

Loaded 0 entries from dependency cache.
Parsing recipes...ERROR: ExpansionError during parsing /jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb
Traceback (most recent call last):
  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/__init__.py", line 1172, in srcrev_internal_helper(ud=<bb.fetch2.FetchData object at 0x7f8422a6ef60>, d=<bb.data_smart.DataSmart object at 0x7f8422b25a20>, name='meta'):
         if srcrev == "AUTOINC":
    >        srcrev = ud.method.latest_revision(ud, d, name)

  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/__init__.py", line 1581, in Git.latest_revision(ud=<bb.fetch2.FetchData object at 0x7f8422a6ef60>, d=<bb.data_smart.DataSmart object at 0x7f8422b25a20>, name='meta'):
             except KeyError:
    >            revs[key] = rev = self._latest_revision(ud, d, name)
                 return rev
  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/git.py", line 694, in Git._latest_revision(ud=<bb.fetch2.FetchData object at 0x7f8422a6ef60>, d=<bb.data_smart.DataSmart object at 0x7f8422b25a20>, name='meta'):
             """
    >        output = self._lsremote(ud, d, "")
             # Tags of the form ^{} may not work, need to fallback to other form
  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/git.py", line 683, in Git._lsremote(ud=<bb.fetch2.FetchData object at 0x7f8422a6ef60>, d=<bb.data_smart.DataSmart object at 0x7f8422b25a20>, search=''):
                     bb.fetch2.check_network_access(d, cmd, repourl)
    >            output = runfetchcmd(cmd, d, True)
                 if not output:
  File "/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/lib/bb/fetch2/__init__.py", line 889, in runfetchcmd(cmd='export PSEUDO_DISABLED=1; export PATH="/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/meta-webosose/meta-webos/scripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/openembedded-core/scripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin/arm-webos-linux-gnueabi:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot/usr/bin/crossscripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/sbin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/sbin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/hosttools"; export HOME="/home/jenkins"; git -c core.fsyncobjectfiles=0 ls-remote git://git.yoctoproject.org/yocto-kernel-cache ', d=<bb.data_smart.DataSmart object at 0x7f8422b58e80>, quiet=True, cleanup=[], log=None, workdir=None):

    >        raise FetchError(error_message)

bb.data_smart.ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception FetchError: Fetcher failure: Fetch command export PSEUDO_DISABLED=1; export PATH="/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/meta-webosose/meta-webos/scripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/openembedded-core/scripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin/arm-webos-linux-gnueabi:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot/usr/bin/crossscripts:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/sbin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/sbin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/bitbake/bin:/jenkins/home/workspace/jansa/webos-foxy-honister/webos-foxy-honister/tmp-glibc/hosttools"; export HOME="/home/jenkins"; git -c core.fsyncobjectfiles=0 ls-remote git://git.yoctoproject.org/yocto-kernel-cache  failed with exit code 128, output:
fatal: read error: Connection timed out

* it's easily reproducible locally by adding git.yoctoproject.org to /etc/hosts (e.g. in this case 127.0.1.1),
  then it refuses the connection immediately instead of getting stuck waiting for timeout:

oe-core$ bitbake -k linux-raspberrypi
Loading cache: 100% |                                                                                                                                                                                                                                                                 | ETA:  --:--:--
Loaded 0 entries from dependency cache.
ERROR: ExpansionError during parsing /OE/build/oe-core/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-dev.bb                                                                                                                                                                  | ETA:  0:00:14
Traceback (most recent call last):
  File "/OE/bitbake/lib/bb/fetch2/__init__.py", line 1172, in srcrev_internal_helper(ud=<bb.fetch2.FetchData object at 0x7ff35e059430>, d=<bb.data_smart.DataSmart object at 0x7ff35dfd7760>, name='meta'):
         if srcrev == "AUTOINC":
    >        srcrev = ud.method.latest_revision(ud, d, name)

  File "/OE/bitbake/lib/bb/fetch2/__init__.py", line 1581, in Git.latest_revision(ud=<bb.fetch2.FetchData object at 0x7ff35e059430>, d=<bb.data_smart.DataSmart object at 0x7ff35dfd7760>, name='meta'):
             except KeyError:
    >            revs[key] = rev = self._latest_revision(ud, d, name)
                 return rev
  File "/OE/bitbake/lib/bb/fetch2/git.py", line 694, in Git._latest_revision(ud=<bb.fetch2.FetchData object at 0x7ff35e059430>, d=<bb.data_smart.DataSmart object at 0x7ff35dfd7760>, name='meta'):
             """
    >        output = self._lsremote(ud, d, "")
             # Tags of the form ^{} may not work, need to fallback to other form
  File "/OE/bitbake/lib/bb/fetch2/git.py", line 683, in Git._lsremote(ud=<bb.fetch2.FetchData object at 0x7ff35e059430>, d=<bb.data_smart.DataSmart object at 0x7ff35dfd7760>, search=''):
                     bb.fetch2.check_network_access(d, cmd, repourl)
    >            output = runfetchcmd(cmd, d, True)
                 if not output:
  File "/OE/bitbake/lib/bb/fetch2/__init__.py", line 889, in runfetchcmd(cmd='export PSEUDO_DISABLED=1; export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"; export SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"; export PATH="/OE/build/oe-core/openembedded-core/scripts:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot/usr/bin/crossscripts:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/sbin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/sbin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/bin:/OE/build/oe-core/bitbake/bin:/OE/build/oe-core/tmp-glibc/hosttools"; export HOME="/home/martin"; git -c core.fsyncobjectfiles=0 ls-remote git://git.yoctoproject.org/yocto-kernel-cache ', d=<bb.data_smart.DataSmart object at 0x7ff35dfb4fa0>, quiet=True, cleanup=[], log=None, workdir=None):

    >        raise FetchError(error_message)

bb.data_smart.ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception FetchError: Fetcher failure: Fetch command export PSEUDO_DISABLED=1; export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"; export SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"; export PATH="/OE/build/oe-core/openembedded-core/scripts:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot/usr/bin/crossscripts:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/sbin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/usr/bin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/sbin:/OE/build/oe-core/tmp-glibc/work/raspberrypi4-oe-linux-gnueabi/linux-raspberrypi-dev/1_fetcheravoidrecurse-fetcheravoidrecurse/recipe-sysroot-native/bin:/OE/build/oe-core/bitbake/bin:/OE/build/oe-core/tmp-glibc/hosttools"; export HOME="/home/martin"; git -c core.fsyncobjectfiles=0 ls-remote git://git.yoctoproject.org/yocto-kernel-cache  failed with exit code 128, output:
fatal: unable to connect to git.yoctoproject.org:
git.yoctoproject.org[0: 127.0.1.1]: errno=Connection refused

Summary: There was 1 ERROR message shown, returning a non-zero exit code.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-05-28 13:19:39 +01:00
Martin Jansa
8ddcacc687 linux-raspberrypi-dev: drop protocol=git and add LINUX_RPI_KMETA_BRANCH
* update SRC_URI format to use the same as linux-raspberrypi_5.10.bb
  and linux-raspberrypi_5.4.bb by dropping protocol=git and using
  LINUX_RPI_KMETA_BRANCH

* protocol=git was dropped from other linux-raspberrypi recipes in:

  commit 0381ac4d08
  Author: Timm Eversmeyer <saeugetier@googlemail.com>
  Date:   Wed Sep 11 07:08:50 2019 +0200

    raspberrypi-linux: removed protocoll setting from SRC_URI

    Default protocoll for git will be used. Default setting is in the most case https.

    Signed-off-by: Timm Eversmeyer saeugetier@gmail.com

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-05-28 13:19:39 +01:00
Martin Jansa
20abebb324 linux-raspberrypi: allow to change the yocto-kernel-cache branch with LINUX_RPI_KMETA_BRANCH
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-05-28 13:19:39 +01:00
Andrei Gherzan
faf3f33e84 layer.conf: Define LAYERDEPENDS
We should currently only depend on core - everything should be handled
through dynamic layers.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-05-26 10:00:04 +01:00
249 changed files with 88658 additions and 1078 deletions

7
.github/CODE_OF_CONDUCT.md vendored Normal file
View File

@@ -0,0 +1,7 @@
## Code of Conduct
This project has adopted the [Contributor
Covenant](https://www.contributor-covenant.org/). For details, see the full
text [here](https://www.contributor-covenant.org/version/2/1/code_of_conduct/).
For more information, additional questions or comments contact the project's
maintainers.

47
.github/actions/docker-build/action.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: "Build a docker image"
inputs:
docker_image:
required: true
description: "The name of the docker image"
id:
required: true
description: "Namespace for the image"
runs:
using: "composite"
steps:
- name: Build the ${{ inputs.docker_image }} docker image
shell: bash
# We run this unconditionally even if the change doesn't touch the
# relevant docker files because there is a chance that another PR (or
# something else) rebuilt the local image. For example if the first
# version of the PR included change for the relevant docker image but a
# subsequent push to the PR branch dropped them. In this way we rebuild
# the image to avoid using the changes from the previous push.
run: |
cd .github/workflows/docker-images/
# We build a temporary image namespaced by the PR number so we can
# handle multiple runners on the same host using the same docker
# storage.
tries=3
n=1
until [ "$n" -gt "$tries" ]; do
echo "Building the docker image ${{ inputs.docker_image }}-${{ inputs.id }}... try $n..."
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
# untagged image first (dangling) before tagging it at the end.
# If between these two operations a dangling cleanup happens,
# build fails.
break
fi
n=$((n+1))
done
[ "$n" -lt "$tries" ]
echo "Temporary image built in ${{ inputs.docker_image }}."

View File

@@ -0,0 +1,18 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: "Cleanup dangling docker images"
runs:
using: "composite"
steps:
- name: Cleanup dangling images
shell: bash
run: |
echo -n "Cleanup dangling images... "
if ! docker rmi $(docker images --filter "dangling=true" -q --no-trunc) > /dev/null 2>&1; then
echo "no dangling images found."
else
echo "done."
fi

View File

@@ -0,0 +1,19 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: "Cleanup docker storage"
inputs:
docker_image:
required: true
description: "The name of the docker image"
runs:
using: "composite"
steps:
- name: Cleanup temporary image
shell: bash
run: |
echo "Cleanup ${{ inputs.docker_image }} image..."
docker rmi "${{ inputs.docker_image }}" || true

View File

@@ -0,0 +1,23 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: Cancel redundant workflows
on:
workflow_run:
workflows:
- "Builds"
- "Compliance"
- "Yocto Compatible"
types:
- requested
jobs:
cancel-redundant-workflows:
runs-on: ubuntu-latest
steps:
- uses: styfle/cancel-workflow-action@0.10.0
with:
all_but_latest: true
workflow_id: ${{ github.event.workflow.id }}

49
.github/workflows/compliance.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: Compliance
on:
pull_request:
jobs:
dco:
name: DCO
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Build a temporary DCO image
uses: ./.github/actions/docker-build
with:
docker_image: dco-check
id: ${{ github.event.number }}
- name: Do DCO check
run: |
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
uses: ./.github/actions/docker-clean-image
with:
docker_image: dco-check-${{ github.event.number }}
if: always()
- name: Cleanup dangling docker images
uses: ./.github/actions/docker-clean-dangling
if: always()
reuse:
name: reuse
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Do reuse check
continue-on-error: true
uses: fsfe/reuse-action@v1

View File

@@ -0,0 +1,21 @@
<!--
SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
SPDX-License-Identifier: MIT
-->
# Docker images for CI
Each directory contains the files for a docker image.
## Building an image
When building a docker image, the build context is expected to be where this
`README.md` file resides. This means that building the images will require
passing the appropriate `-f` argument.
Here is an example for building the `dco-check` image:
```
docker build --no-cache . -f dco-check/Dockerfile -t dco-check
```

View File

@@ -0,0 +1,13 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
FROM christophebedard/dco-check:latest
# Run under normal user called 'ci'
RUN useradd --create-home --uid 1000 --shell /usr/bin/bash ci
USER ci
COPY ./dco-check/entrypoint.sh /
COPY ./utils.sh /
ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -0,0 +1,16 @@
<!--
SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
SPDX-License-Identifier: MIT
-->
# Docker image for DCO checks
This image provides the environment and the logic of running a DCO check
against a repository.
## Configuration
The `entrypoint.sh` script assumes at runtime that the repository to be checked
is available under `/work`. This path is to be populated via bind mounts when
running the container.

View File

@@ -0,0 +1,29 @@
#!/bin/sh
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
set -e
# shellcheck disable=SC1091
. /utils.sh
GIT_REPO_PATH="/work"
[ -n "$BASE_REF" ] ||
error "DCO checks needs to know the target branch. Make sure that is set in BASE_REF."
[ -d "$GIT_REPO_PATH/.git" ] ||
error "Can't find a git checkout under $GIT_REPO_PATH ."
cd "$GIT_REPO_PATH"
# The GitHub runner user and the container user might differ making git error
# out with:
# error: fatal: detected dubious ownership in repository at '/work'
# Avoid this as the security risk is minimum here while guarding the git hooks
# via PRs.
git config --global --add safe.directory /work
dco-check \
--verbose \
--default-branch "origin/$BASE_REF"

View File

@@ -0,0 +1,28 @@
#!/bin/sh
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
_log() {
_level="$1"
_msg="$2"
echo "[$_level] $_msg"
}
error() {
_msg="$1"
_log "ERR" "$1"
exit 1
}
warn() {
_msg="$1"
_log "WRN" "$1"
exit 1
}
log() {
_msg="$1"
_log "LOG" "$1"
}

View File

@@ -0,0 +1,43 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
FROM ubuntu:22.04
ARG DEBIAN_FRONTEND="noninteractive"
RUN apt-get update -q -y
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.in
# https://git.yoctoproject.org/poky/tree/documentation/tools/host_packages_scripts/ubuntu_essential.sh
RUN eatmydata apt-get install -qq -y \
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 \
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
&& locale-gen
ENV LANG en_US.utf8
RUN eatmydata apt-get clean && rm -rf /var/lib/apt/lists/*
# Have bash as shell
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
WORKDIR /home/ci
COPY ./yocto-builder/entrypoint-yocto-check-layer.sh /
COPY ./yocto-builder/entrypoint-build.sh /
COPY ./utils.sh /

View File

@@ -0,0 +1,16 @@
<!--
SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
SPDX-License-Identifier: MIT
-->
# Docker image for builds
This defines the docker image for running Yocto/OE based operations/builds. It
privides multiple scripts for driving different operations.
## Configuration
The `entrypoint` scripts assumes at runtime that the repository to drive the
operation against is available under `/work`. This path is to be populated via
bind mounts when running the container.

View File

@@ -0,0 +1,64 @@
#!/bin/sh
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
set -ex
# shellcheck disable=SC1091
. /utils.sh
META_RASPBERRYPI_PATH="/work"
[ -n "$BASE_REF" ] ||
error "Target branch is needed. Make sure that is set in BASE_REF."
[ -d "$META_RASPBERRYPI_PATH/.git" ] ||
error "Can't find a git checkout under $META_RASPBERRYPI_PATH ."
[ -n "$MACHINE" ] ||
error "Machine to be used for build not provided."
[ -n "$IMAGE" ] ||
error "Image to build not provided."
TEMP_DIR="$(mktemp -d)"
cd "$TEMP_DIR"
REPOS=" \
git://git.yoctoproject.org/poky.git \
"
for repo in $REPOS; do
log "Cloning $repo on branch $BASE_REF..."
git clone --depth 1 --branch "$BASE_REF" "$repo"
done
# shellcheck disable=SC1091,SC2240
. ./poky/oe-init-build-env build
# Build configuration
printf "\n# ------ ci ------\n" >> conf/local.conf
[ -z "$SSTATE_DIR" ] || echo SSTATE_DIR = \""$SSTATE_DIR"\" >> conf/local.conf
[ -z "$DL_DIR" ] || echo DL_DIR = \""$DL_DIR"\" >> conf/local.conf
[ -z "$DISTRO" ] || echo DISTRO = \""$DISTRO"\" >> conf/local.conf
cat <<EOCONF >>conf/local.conf
BB_NUMBER_THREADS = "6"
PARALLEL_MAKE = "-j 6"
# unmerged-usr is deprecated
# https://lore.kernel.org/all/3f2f03085301d22854e5429019fb010f27d98bc7.camel@linuxfoundation.org/t/
DISTRO_FEATURES:append = " systemd usrmerge"
VIRTUAL-RUNTIME_init_manager = "systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit"
VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"
LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
EOCONF
# Add the BSP layer
bitbake-layers add-layer "$META_RASPBERRYPI_PATH"
# Log configs for debugging purposes
for f in 'conf/local.conf' 'conf/bblayers.conf'; do
printf "\n------ %s ------\n" "$f"
cat "$f"
done
# Fire!
MACHINE="$MACHINE" bitbake "$IMAGE"

View File

@@ -0,0 +1,33 @@
#!/bin/sh
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
set -ex
# shellcheck disable=SC1091
. /utils.sh
GIT_REPO_PATH="/work"
[ -n "$BASE_REF" ] ||
error "Target branch is needed. Make sure that is set in BASE_REF."
[ -d "$GIT_REPO_PATH/.git" ] ||
error "Can't find a git checkout under $GIT_REPO_PATH ."
TEMP_DIR="$(mktemp -d)"
cd "$TEMP_DIR"
REPOS=" \
git://git.yoctoproject.org/poky.git \
"
for repo in $REPOS; do
log "Cloning $repo on branch $BASE_REF..."
git clone --depth 1 --branch "$BASE_REF" "$repo"
done
# shellcheck disable=SC1091,SC2240
. ./poky/oe-init-build-env build
yocto-check-layer --with-software-layer-signature-check --debug \
"$GIT_REPO_PATH"

22
.github/workflows/mirror.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: Mirrors
on: [ push, delete, create ]
concurrency:
group: git-mirror-me
jobs:
yocto-mirror:
name: Yocto Git Mirror
runs-on: ubuntu-latest
steps:
- uses: agherzan/git-mirror-me-action@11f54c7186724daafbe5303b5075954f1a19a63e
env:
GMM_SSH_PRIVATE_KEY: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_PRIVATE_KEY }}
GMM_SSH_KNOWN_HOSTS: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_KNOWN_HOSTS }}
GMM_DST_REPO: "ssh://git@push.yoctoproject.org/meta-raspberrypi"
GMM_DEBUG: "1"

91
.github/workflows/yocto-builds.yml vendored Normal file
View File

@@ -0,0 +1,91 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
---
name: Builds
on:
pull_request:
jobs:
build:
strategy:
fail-fast: true
matrix:
machine:
- raspberrypi
- raspberrypi0-2w-64
- raspberrypi0-2w
- raspberrypi0
- raspberrypi0-wifi
- raspberrypi2
- raspberrypi3-64
- raspberrypi3
- raspberrypi4-64
- raspberrypi4
- raspberrypi5
- raspberrypi-cm3
- raspberrypi-cm
- raspberrypi-armv7
- raspberrypi-armv8
image: [rpi-test-image]
distro: [poky]
runs-on: [self-hosted, Linux]
name: ${{ matrix.machine }}/${{ matrix.image }}/poky/systemd
env:
DL_DIR: /var/lib/ci/yocto/downloads
SSTATE_DIR: /var/lib/ci/yocto/sstate
steps:
- name: Checkout the code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Define Yocto build files
id: changed-files-specific
uses: tj-actions/changed-files@v24
with:
files: |
.github/actions/**
.github/workflows/docker-images/yocto-builder/**
.github/workflows/docker-images/*.sh
.github/workflows/yocto-builds.yml
classes/**
conf/**
dynamic-layers/**
files/**
lib/**
recipes-**
wic/**
- name: Build a temporary yocto-builder image
uses: ./.github/actions/docker-build
with:
docker_image: yocto-builder
id: ${{ github.event.number }}
if: steps.changed-files-specific.outputs.any_changed == 'true'
- name: Build the image
run: |
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" \
--env "BASE_REF=$GITHUB_BASE_REF" \
--env "MACHINE=${{ matrix.machine }}" \
--env "DISTRO=${{ matrix.distro }}" \
--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'
- name: Cleanup temporary docker image
uses: ./.github/actions/docker-clean-image
with:
docker_image: yocto-builder-${{ github.event.number }}
if: always()
- name: Cleanup dangling docker images
uses: ./.github/actions/docker-clean-dangling
if: always()

58
.github/workflows/yocto-layer.yml vendored Normal file
View File

@@ -0,0 +1,58 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
---
name: Yocto Compatible
on:
pull_request:
jobs:
yocto-check-layer:
name: Validate with yocto-check-layer
runs-on: [self-hosted, Linux]
steps:
- name: Checkout the code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Define Yocto build files
id: changed-files-specific
uses: tj-actions/changed-files@v24
with:
files: |
.github/actions/**
.github/workflows/docker-images/yocto-builder/**
.github/workflows/docker-images/*.sh
.github/workflows/yocto-builds.yml
classes/**
conf/**
dynamic-layers/**
files/**
lib/**
recipes-**
wic/**
- name: Build a temporary yocto-builder image
uses: ./.github/actions/docker-build
with:
docker_image: yocto-builder
id: ${{ github.event.number }}
if: steps.changed-files-specific.outputs.any_changed == 'true'
- name: Run yocto-check-layer
run: |
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
if: steps.changed-files-specific.outputs.any_changed == 'true'
- name: Cleanup temporary docker image
uses: ./.github/actions/docker-clean-image
with:
docker_image: yocto-builder-${{ github.event.number }}
if: always()
- name: Cleanup dangling docker images
uses: ./.github/actions/docker-clean-dangling
if: always()

11
.readthedocs.yaml Normal file
View File

@@ -0,0 +1,11 @@
version: 2
sphinx:
configuration: docs/conf.py
build:
os: ubuntu-22.04
tools:
python: "3.7"
python:
install:
- requirements: docs/requirements.txt

View File

@@ -2,22 +2,31 @@
Yocto BSP layer for the Raspberry Pi boards - <http://www.raspberrypi.org/>.
[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi1/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi1)
[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi2/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi2)
[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi3/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi3)
[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi4/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi4)
[![Documentation Status](https://readthedocs.org/projects/meta-raspberrypi/badge/?version=latest)](https://meta-raspberrypi.readthedocs.io/en/latest/?badge=latest)
[![Matrix](https://img.shields.io/matrix/meta-raspberrypi:cub.icu.svg?server_fqdn=matrix.cub.icu)](https://matrix.to/#/#meta-raspberrypi:cub.icu)
[![Matrix](https://img.shields.io/badge/chat-meta--raspberrypi-brightgreen)](https://matrix.to/#/#meta-raspberrypi:matrix.org)
| | |
|:-: | :-: |
| Build server sponsored by | [![balena.io](./img/balena.png)](https://www.balena.io/). |
<table border="0" rules="none">
<tr border="0">
<td width="140" height="100" align="center">
<br />
<a href="https://www.yoctoproject.org/ecosystem/branding/">
<img alt="Yocto Project Layer Compatible" src="img/LF_17_02_Yocto-Badge-Update_Compatible_Final_Blank.png">
</a>
</td>
<td width="150" height="100" align="center">
Sponsored by:<br />
<a href="https://balena.io">
<img alt="balena.io" src="img/balena.png">
</a>
</td>
</tr>
</table>
## Quick links
* Git repository web frontend:
<https://github.com/agherzan/meta-raspberrypi>
* Mailing list (yocto mailing list): <yocto@yoctoproject.org>
* Mailing list (yocto mailing list): <yocto@lists.yoctoproject.org>
* Issues management (Github Issues):
<https://github.com/agherzan/meta-raspberrypi/issues>
* Documentation: <http://meta-raspberrypi.readthedocs.io/en/latest/>
@@ -35,6 +44,12 @@ OpenEmbedded/Yocto distributions and layer stacks, such as:
* Yoe Disto (Video and Camera Products).
* Yocto/Poky (main focus of testing).
## Yocto Project Compatible Layer
This layer is officially approved as part of the `Yocto Project Compatible
Layers Program`. You can find details of that on the official Yocto Project
[website](https://www.yoctoproject.org/software-overview/layers/?searchTerm=meta-raspberrypi).
## Dependencies
This layer depends on:
@@ -43,11 +58,6 @@ This layer depends on:
* branch: master
* revision: HEAD
* URI: git://git.openembedded.org/meta-openembedded
* layers: meta-oe, meta-multimedia, meta-networking, meta-python
* branch: master
* revision: HEAD
## Quick Start
1. source poky/oe-init-build-env rpi-build
@@ -77,8 +87,15 @@ local_conf_header:
To configure the machine, you have to update the `machine` variable.
And the same for the `distro`.
For further information, you can read more at <https://kas.readthedocs.io/en/1.0/index.html>
For further information, you can read more at <https://kas.readthedocs.io/en/latest/index.html>
## Contributing
You can send patches using the GitHub pull request process or/and through the
Yocto mailing list. Refer to the
[documentation](https://meta-raspberrypi.readthedocs.io/en/latest/contributing.html)
for more information.
## Maintainers
* Andrei Gherzan `<andrei at gherzan.ro>`
* Andrei Gherzan `<andrei at gherzan.com>`

View File

@@ -23,12 +23,7 @@ inherit image_types
# 0 4MiB 4MiB + 48MiB 4MiB + 48Mib + SDIMG_ROOTFS
# This image depends on the rootfs image
IMAGE_TYPEDEP_rpi-sdimg = "${SDIMG_ROOTFS_TYPE}"
# Kernel image name
SDIMG_KERNELIMAGE_raspberrypi ?= "kernel.img"
SDIMG_KERNELIMAGE_raspberrypi2 ?= "kernel7.img"
SDIMG_KERNELIMAGE_raspberrypi3-64 ?= "kernel8.img"
IMAGE_TYPEDEP:rpi-sdimg = "${SDIMG_ROOTFS_TYPE}"
# Boot partition volume id
# Shorten raspberrypi to just rpi to keep it under 11 characters
@@ -65,7 +60,7 @@ do_image_rpi_sdimg[depends] = " \
do_image_rpi_sdimg[recrdeps] = "do_build"
# SD card image name
SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.rpi-sdimg"
SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rpi-sdimg"
# Additional files and/or directories to be copied into the vfat partition from the IMAGE_ROOTFS.
FATPAYLOAD ?= ""
@@ -75,19 +70,7 @@ SDIMG_VFAT_DEPLOY ?= "${RPI_USE_U_BOOT}"
SDIMG_VFAT = "${IMAGE_NAME}.vfat"
SDIMG_LINK_VFAT = "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.vfat"
def split_overlays(d, out, ver=None):
dts = d.getVar("KERNEL_DEVICETREE")
# Device Tree Overlays are assumed to be suffixed by '-overlay.dtb' (4.1.x) or by '.dtbo' (4.4.9+) string and will be put in a dedicated folder
if out:
overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d)
overlays = oe.utils.str_filter_out('\S+\.dtbo$', overlays, d)
else:
overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d) + \
" " + oe.utils.str_filter('\S+\.dtbo$', dts, d)
return overlays
IMAGE_CMD_rpi-sdimg () {
IMAGE_CMD:rpi-sdimg () {
# Align partitions
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
@@ -97,7 +80,7 @@ IMAGE_CMD_rpi-sdimg () {
echo "Creating filesystem with Boot partition ${BOOT_SPACE_ALIGNED} KiB and RootFS $ROOTFS_SIZE KiB"
# Check if we are building with device tree support
DTS="${KERNEL_DEVICETREE}"
DTS="${@make_dtb_boot_files(d)}"
# Initialize sdcard image file
dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE}
@@ -120,17 +103,20 @@ IMAGE_CMD_rpi-sdimg () {
mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/armstubs/${ARMSTUB} ::/ || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/armstubs/${ARMSTUB} into boot.img"
fi
if test -n "${DTS}"; then
# Copy board device trees to root folder
for dtbf in ${@split_overlays(d, True)}; do
dtb=`basename $dtbf`
mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$dtb ::$dtb || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/$dtb into boot.img"
done
# Copy device tree overlays to dedicated folder
# Copy board device trees (including overlays)
# There is an assumption here - no DTB in other directories than root
# and root/overlays. mmd/mcopy are not very flexible tools.
mmd -i ${WORKDIR}/boot.img overlays
for dtbf in ${@split_overlays(d, False)}; do
dtb=`basename $dtbf`
mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$dtb ::overlays/$dtb || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/$dtb into boot.img"
for entry in ${DTS} ; do
# Split entry at optional ';'
if [ $(echo "$entry" | grep -c \;) = "0" ] ; then
DEPLOY_FILE="$entry"
DEST_FILENAME="$entry"
else
DEPLOY_FILE="$(echo "$entry" | cut -f1 -d\;)"
DEST_FILENAME="$(echo "$entry" | cut -f2- -d\;)"
fi
mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${DEPLOY_FILE} ::${DEST_FILENAME} || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/${DEPLOY_FILE} into boot.img"
done
fi
if [ "${RPI_USE_U_BOOT}" = "1" ]; then

View File

@@ -9,7 +9,11 @@ BBFILE_COLLECTIONS += "raspberrypi"
BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
BBFILE_PRIORITY_raspberrypi = "9"
LAYERSERIES_COMPAT_raspberrypi = "hardknott honister"
LAYERSERIES_COMPAT_raspberrypi = "nanbield scarthgap"
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"
@@ -35,5 +39,5 @@ BBFILES_DYNAMIC += " \
multimedia-layer:${LAYERDIR}/dynamic-layers/multimedia-layer/*/*/*.bbappend \
"
DEFAULT_TEST_SUITES_remove_rpi = "parselogs"
DEFAULT_TEST_SUITES_append_rpi = " parselogs_rpi"
DEFAULT_TEST_SUITES:remove:rpi = "parselogs"
DEFAULT_TEST_SUITES:append:rpi = " parselogs_rpi"

View File

@@ -18,24 +18,38 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
overlays/overlay_map.dtb \
overlays/at86rf233.dtbo \
overlays/disable-bt.dtbo \
overlays/disable-wifi.dtbo \
overlays/dwc2.dtbo \
overlays/gpio-ir.dtbo \
overlays/gpio-ir-tx.dtbo \
overlays/gpio-key.dtbo \
overlays/gpio-poweroff.dtbo \
overlays/gpio-shutdown.dtbo \
overlays/hifiberry-amp.dtbo \
overlays/hifiberry-amp100.dtbo \
overlays/hifiberry-amp3.dtbo \
overlays/hifiberry-amp4pro.dtbo \
overlays/hifiberry-dac.dtbo \
overlays/hifiberry-dacplus.dtbo \
overlays/hifiberry-dacplusadc.dtbo \
overlays/hifiberry-dacplusadcpro.dtbo \
overlays/hifiberry-dacplusdsp.dtbo \
overlays/hifiberry-dacplushd.dtbo \
overlays/hifiberry-digi-pro.dtbo \
overlays/hifiberry-digi.dtbo \
overlays/justboom-both.dtbo \
overlays/justboom-dac.dtbo \
overlays/justboom-digi.dtbo \
overlays/i2c-gpio.dtbo \
overlays/i2c-rtc.dtbo \
overlays/imx219.dtbo \
overlays/imx477.dtbo \
overlays/imx708.dtbo \
overlays/iqaudio-dac.dtbo \
overlays/iqaudio-dacplus.dtbo \
overlays/mcp2515-can0.dtbo \
overlays/mcp2515-can1.dtbo \
overlays/mcp3008.dtbo \
overlays/miniuart-bt.dtbo \
overlays/pitft22.dtbo \
overlays/pitft28-capacitive.dtbo \
@@ -44,29 +58,47 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
overlays/pps-gpio.dtbo \
overlays/rpi-ft5406.dtbo \
overlays/rpi-poe.dtbo \
overlays/uart0.dtbo \
overlays/uart0-pi5.dtbo \
overlays/uart1.dtbo \
overlays/uart1-pi5.dtbo \
overlays/uart2.dtbo \
overlays/uart2-pi5.dtbo \
overlays/uart3.dtbo \
overlays/uart3-pi5.dtbo \
overlays/uart4.dtbo \
overlays/uart4-pi5.dtbo \
overlays/uart5.dtbo \
overlays/vc4-fkms-v3d.dtbo \
overlays/vc4-fkms-v3d-pi4.dtbo \
overlays/vc4-kms-v3d.dtbo \
overlays/vc4-kms-v3d-pi4.dtbo \
overlays/vc4-kms-v3d-pi5.dtbo \
overlays/vc4-kms-dsi-7inch.dtbo \
overlays/vc4-kms-dsi-ili9881-7inch.dtbo \
overlays/w1-gpio.dtbo \
overlays/w1-gpio-pullup.dtbo \
overlays/wm8960-soundcard.dtbo \
overlays/bcm2712d0.dtbo \
"
RPI_KERNEL_DEVICETREE ?= " \
bcm2708-rpi-zero.dtb \
bcm2708-rpi-zero-w.dtb \
bcm2708-rpi-b.dtb \
bcm2708-rpi-b-rev1.dtb \
bcm2708-rpi-b-plus.dtb \
bcm2709-rpi-2-b.dtb \
bcm2710-rpi-2-b.dtb \
bcm2710-rpi-3-b.dtb \
bcm2710-rpi-3-b-plus.dtb \
bcm2711-rpi-4-b.dtb \
bcm2711-rpi-400.dtb \
bcm2708-rpi-cm.dtb \
bcm2710-rpi-cm3.dtb \
bcm2711-rpi-cm4.dtb \
broadcom/bcm2708-rpi-zero.dtb \
broadcom/bcm2708-rpi-zero-w.dtb \
broadcom/bcm2708-rpi-b.dtb \
broadcom/bcm2708-rpi-b-rev1.dtb \
broadcom/bcm2708-rpi-b-plus.dtb \
broadcom/bcm2709-rpi-2-b.dtb \
broadcom/bcm2710-rpi-2-b.dtb \
broadcom/bcm2710-rpi-3-b.dtb \
broadcom/bcm2710-rpi-3-b-plus.dtb \
broadcom/bcm2710-rpi-zero-2.dtb \
broadcom/bcm2711-rpi-4-b.dtb \
broadcom/bcm2711-rpi-400.dtb \
broadcom/bcm2708-rpi-cm.dtb \
broadcom/bcm2710-rpi-cm3.dtb \
broadcom/bcm2711-rpi-cm4.dtb \
broadcom/bcm2711-rpi-cm4s.dtb \
"
KERNEL_DEVICETREE ??= " \
@@ -95,6 +127,7 @@ MACHINE_FEATURES_BACKFILL_CONSIDERED = "rtc"
MACHINE_EXTRA_RRECOMMENDS += "kernel-modules udev-rules-rpi"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "${@oe.utils.conditional('ENABLE_I2C', '1', 'kernel-module-i2c-dev kernel-module-i2c-bcm2708', '', d)}"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "${@oe.utils.conditional('ENABLE_IR', '1', 'kernel-module-gpio-ir kernel-module-gpio-ir-tx', '', d)}"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "${@oe.utils.conditional('ENABLE_GPIO_SHUTDOWN', '1', 'gpio-shutdown kernel-module-gpio-keys', '', d)}"
SERIAL_CONSOLES_CHECK ??= "${SERIAL_CONSOLES}"
@@ -102,14 +135,14 @@ SERIAL_CONSOLES_CHECK ??= "${SERIAL_CONSOLES}"
# This variable is referred to by recipes fetching / generating the files.
BOOTFILES_DIR_NAME ?= "bootfiles"
# Set Raspberrypi splash image
SPLASH ?= "psplash-raspberrypi"
def make_dtb_boot_files(d):
# Generate IMAGE_BOOT_FILES entries for device tree files listed in
# KERNEL_DEVICETREE.
alldtbs = d.getVar('KERNEL_DEVICETREE')
imgtyp = d.getVar('KERNEL_IMAGETYPE')
# DTBs may be built out of kernel with devicetree.bbclass
if not alldtbs:
return ''
def transform(dtb):
base = os.path.basename(dtb)
@@ -127,14 +160,21 @@ def make_dtb_boot_files(d):
return ' '.join([transform(dtb) for dtb in alldtbs.split(' ') if dtb])
RPI_EXTRA_IMAGE_BOOT_FILES ?= " \
${@bb.utils.contains('RPI_USE_U_BOOT', '1', \
'${KERNEL_IMAGETYPE} u-boot.bin;${SDIMG_KERNELIMAGE} boot.scr', \
'${KERNEL_IMAGETYPE};${SDIMG_KERNELIMAGE}', d)} \
"
IMAGE_BOOT_FILES ?= "${BOOTFILES_DIR_NAME}/* \
${@make_dtb_boot_files(d)} \
${@bb.utils.contains('RPI_USE_U_BOOT', '1', \
'${KERNEL_IMAGETYPE} u-boot.bin;${SDIMG_KERNELIMAGE} boot.scr', \
'${KERNEL_IMAGETYPE};${SDIMG_KERNELIMAGE}', d)} \
${RPI_EXTRA_IMAGE_BOOT_FILES} \
"
EXTRA_IMAGEDEPENDS += "rpi-bootfiles"
do_image_wic[depends] += " \
virtual/kernel:do_deploy \
rpi-bootfiles:do_deploy \
${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'u-boot:do_deploy', '',d)} \
"
@@ -143,4 +183,4 @@ do_image_wic[recrdeps] = "do_build"
# The kernel image is installed into the FAT32 boot partition and does not need
# to also be installed into the rootfs.
RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""
RDEPENDS:${KERNEL_PACKAGE_NAME}-base = ""

View File

@@ -7,6 +7,10 @@ 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"

View File

@@ -5,5 +5,5 @@ IMAGE_CLASSES += "sdcard_image-rpi"
# RPI kernel has errors of its own which should be filtered
# therefore use parselogs_rpi test instead of parselogs from oe-core
#
DEFAULT_TEST_SUITES_append_rpi = " parselogs_rpi"
DEFAULT_TEST_SUITES_remove_rpi = " parselogs"
DEFAULT_TEST_SUITES:append:rpi = " parselogs_rpi"
DEFAULT_TEST_SUITES:remove:rpi = " parselogs"

View File

@@ -1,3 +1,4 @@
# RaspberryPi BSP default versions
PREFERRED_VERSION_linux-raspberrypi ??= "5.10.%"
PREFERRED_VERSION_linux-raspberrypi ??= "6.6.%"
PREFERRED_VERSION_linux-raspberrypi-v7 ??= "${PREFERRED_VERSION_linux-raspberrypi}"

View File

@@ -7,11 +7,11 @@ TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'arm1176jzfs', ' -mcpu=arm
MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'arm1176jzfs', 'armv6:', '', d)}"
AVAILTUNES += "arm1176jzfs"
ARMPKGARCH_tune-arm1176jzfs = "arm1176jzfs"
TUNE_FEATURES_tune-arm1176jzfs = "arm thumb vfp arm1176jzfs"
PACKAGE_EXTRA_ARCHS_tune-arm1176jzfs = "${PACKAGE_EXTRA_ARCHS_tune-armv6} arm1176jzfs"
ARMPKGARCH:tune-arm1176jzfs = "arm1176jzfs"
TUNE_FEATURES:tune-arm1176jzfs = "arm thumb vfp arm1176jzfs"
PACKAGE_EXTRA_ARCHS:tune-arm1176jzfs = "${PACKAGE_EXTRA_ARCHS:tune-armv6} arm1176jzfs"
AVAILTUNES += "arm1176jzfshf"
ARMPKGARCH_tune-arm1176jzfshf = "${ARMPKGARCH_tune-arm1176jzfs}"
TUNE_FEATURES_tune-arm1176jzfshf = "${TUNE_FEATURES_tune-arm1176jzfs} callconvention-hard"
PACKAGE_EXTRA_ARCHS_tune-arm1176jzfshf = "${PACKAGE_EXTRA_ARCHS_tune-armv6thf} arm1176jzfshf-vfp"
ARMPKGARCH:tune-arm1176jzfshf = "${ARMPKGARCH:tune-arm1176jzfs}"
TUNE_FEATURES:tune-arm1176jzfshf = "${TUNE_FEATURES:tune-arm1176jzfs} callconvention-hard"
PACKAGE_EXTRA_ARCHS:tune-arm1176jzfshf = "${PACKAGE_EXTRA_ARCHS:tune-armv6thf} arm1176jzfshf-vfp"

View File

@@ -0,0 +1,39 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
#@TYPE: Machine
#@NAME: RaspberryPi Development Boards (32bit)
#@DESCRIPTION: Machine configuration for the RaspberryPi boards in 32 bit mode
DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/arm/armv7a/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc
# This machine includes by default the kernel for v7l. We hook in support for
# v7.
RASPBERRYPI_v7_KERNEL = "linux-raspberrypi-v7"
RASPBERRYPI_v7_KERNEL_PACKAGE_NAME = "kernel-v7"
RASPBERRYPI_v7_KERNEL_FILE ?= "kernel7.img"
# We don't need a lot for v7l because it is the default provider,
# virtual/kernel.
RASPBERRYPI_v7l_KERNEL_FILE ?= "kernel7l.img"
MACHINE_FEATURES += "pci"
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43430 \
linux-firmware-rpidistro-bcm43436 \
linux-firmware-rpidistro-bcm43436s \
linux-firmware-rpidistro-bcm43455 \
linux-firmware-rpidistro-bcm43456 \
bluez-firmware-rpidistro-bcm43430a1-hcd \
bluez-firmware-rpidistro-bcm43430b0-hcd \
bluez-firmware-rpidistro-bcm4345c0-hcd \
bluez-firmware-rpidistro-bcm4345c5-hcd \
"
# FIXME: This machine doesn't support u-boot (yet)
RPI_EXTRA_IMAGE_BOOT_FILES = " \
${KERNEL_IMAGETYPE};${RASPBERRYPI_v7l_KERNEL_FILE} \
${RASPBERRYPI_v7_KERNEL_PACKAGE_NAME}/${KERNEL_IMAGETYPE};${RASPBERRYPI_v7_KERNEL_FILE} \
"

View File

@@ -0,0 +1,49 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
#@TYPE: Machine
#@NAME: RaspberryPi Development Boards (64bit)
#@DESCRIPTION: Machine configuration for the RaspberryPi boards in 64 bit mode
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
include conf/machine/include/rpi-base.inc
MACHINE_FEATURES += "pci"
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43430 \
linux-firmware-rpidistro-bcm43455 \
linux-firmware-rpidistro-bcm43456 \
linux-firmware-rpidistro-bcm43436 \
linux-firmware-rpidistro-bcm43436s \
bluez-firmware-rpidistro-bcm43430a1-hcd \
bluez-firmware-rpidistro-bcm43430b0-hcd \
bluez-firmware-rpidistro-bcm4345c0-hcd \
bluez-firmware-rpidistro-bcm4345c5-hcd \
"
RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2710-rpi-3-b.dtb \
broadcom/bcm2710-rpi-3-b-plus.dtb \
broadcom/bcm2837-rpi-3-b.dtb \
broadcom/bcm2710-rpi-cm3.dtb \
broadcom/bcm2710-rpi-zero-2.dtb \
broadcom/bcm2711-rpi-4-b.dtb \
broadcom/bcm2711-rpi-400.dtb \
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"
KERNEL_IMAGETYPE_UBOOT ?= "Image"
KERNEL_IMAGETYPE_DIRECT ?= "Image"
KERNEL_BOOTCMD ?= "booti"
UBOOT_MACHINE = "rpi_arm64_config"
SERIAL_CONSOLES ?= "115200;ttyS0"
VC4DTBO ?= "vc4-fkms-v3d"

View File

@@ -2,7 +2,7 @@
#@NAME: RaspberryPi Compute Module (CM1)
#@DESCRIPTION: Machine configuration for the RaspberryPi Compute Module (CM1)
MACHINEOVERRIDES = "raspberrypi:${MACHINE}"
MACHINEOVERRIDES =. "raspberrypi:"
include conf/machine/raspberrypi.conf
ARMSTUB ?= "armstub.bin"

View File

@@ -3,7 +3,7 @@
#@DESCRIPTION: Machine configuration for the RaspberryPi Compute Module 3 (CM3)
DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/tune-cortexa7.inc
require conf/machine/include/arm/armv7a/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc
SDIMG_KERNELIMAGE ?= "kernel7.img"

View File

@@ -7,8 +7,8 @@ DEFAULTTUNE ?= "arm1176jzfshf"
require conf/machine/include/tune-arm1176jzf-s.inc
include conf/machine/include/rpi-base.inc
SDIMG_KERNELIMAGE ?= "kernel.img"
UBOOT_MACHINE = "rpi_config"
SERIAL_CONSOLES ?= "115200;ttyAMA0"
UBOOT_MACHINE = "rpi_config"
ARMSTUB ?= "armstub.bin"

View File

@@ -0,0 +1,17 @@
#@TYPE: Machine
#@NAME: RaspberryPi0 2 Wifi Development Board
#@DESCRIPTION: Machine configuration for the RaspberryPi0 2 Wifi in 64 bits mode
MACHINEOVERRIDES =. "raspberrypi3-64:"
include conf/machine/raspberrypi3-64.conf
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43436 \
linux-firmware-rpidistro-bcm43436s \
bluez-firmware-rpidistro-bcm43430b0-hcd \
"
RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2710-rpi-zero-2.dtb \
"

View File

@@ -0,0 +1,13 @@
#@TYPE: Machine
#@NAME: RaspberryPi0 2 Wifi Development Board
#@DESCRIPTION: Machine configuration for the RaspberryPi0 2 Wifi in 32 bits mode
MACHINEOVERRIDES =. "raspberrypi3:"
include conf/machine/raspberrypi3.conf
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43436 \
linux-firmware-rpidistro-bcm43436s \
bluez-firmware-rpidistro-bcm43430b0-hcd \
"

View File

@@ -2,7 +2,7 @@
#@NAME: RaspberryPi Zero Development Board
#@DESCRIPTION: Machine configuration for the RaspberryPi Zero board (https://www.raspberrypi.org/blog/raspberry-pi-zero)
MACHINEOVERRIDES = "raspberrypi:${MACHINE}"
MACHINEOVERRIDES =. "raspberrypi:"
include conf/machine/raspberrypi.conf
SERIAL_CONSOLES ?= "115200;ttyAMA0"

View File

@@ -4,11 +4,11 @@
DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/tune-cortexa7.inc
require conf/machine/include/arm/armv7a/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc
SDIMG_KERNELIMAGE ?= "kernel7.img"
SERIAL_CONSOLES ?= "115200;ttyAMA0"
UBOOT_MACHINE = "rpi_2_config"
ARMSTUB ?= "armstub7.bin"

View File

@@ -2,7 +2,7 @@
#@NAME: RaspberryPi 3 Development Board
#@DESCRIPTION: Machine configuration for the RaspberryPi 3 in 64 bits mode
MACHINEOVERRIDES = "raspberrypi3:${MACHINE}"
MACHINEOVERRIDES =. "raspberrypi3:"
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43430 \
@@ -11,7 +11,7 @@ MACHINE_EXTRA_RRECOMMENDS += "\
bluez-firmware-rpidistro-bcm4345c0-hcd \
"
require conf/machine/include/tune-cortexa53.inc
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
include conf/machine/include/rpi-base.inc
RPI_KERNEL_DEVICETREE = " \
@@ -21,16 +21,15 @@ RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2710-rpi-cm3.dtb \
"
SERIAL_CONSOLES ?= "115200;ttyS0"
UBOOT_MACHINE = "rpi_arm64_config"
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;ttyS0"
VC4DTBO ?= "vc4-fkms-v3d"
ARMSTUB ?= "armstub8.bin"

View File

@@ -3,7 +3,7 @@
#@DESCRIPTION: Machine configuration for the RaspberryPi 3 in 32 bits mode
DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/tune-cortexa7.inc
require conf/machine/include/arm/armv7a/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc
MACHINE_EXTRA_RRECOMMENDS += "\

View File

@@ -2,21 +2,24 @@
#@NAME: RaspberryPi 4 Development Board (64bit)
#@DESCRIPTION: Machine configuration for the RaspberryPi 4 in 64 bits mode
MACHINEOVERRIDES = "raspberrypi4:${MACHINE}"
MACHINEOVERRIDES =. "raspberrypi4:"
MACHINE_FEATURES += "pci"
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43455 \
bluez-firmware-rpidistro-bcm4345c0-hcd \
linux-firmware-rpidistro-bcm43456 \
bluez-firmware-rpidistro-bcm4345c5-hcd \
"
require conf/machine/include/tune-cortexa72.inc
require conf/machine/include/arm/armv8a/tune-cortexa72.inc
include conf/machine/include/rpi-base.inc
RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2711-rpi-4-b.dtb \
broadcom/bcm2711-rpi-400.dtb \
broadcom/bcm2711-rpi-cm4.dtb \
broadcom/bcm2711-rpi-cm4s.dtb \
"
SDIMG_KERNELIMAGE ?= "kernel8.img"
@@ -24,7 +27,7 @@ SERIAL_CONSOLES ?= "115200;ttyS0"
UBOOT_MACHINE = "rpi_arm64_config"
VC4DTBO ?= "vc4-fkms-v3d"
VC4DTBO ?= "vc4-kms-v3d"
# When u-boot is enabled we need to use the "Image" format and the "booti"
# command to load the kernel

View File

@@ -3,13 +3,15 @@
#@DESCRIPTION: Machine configuration for the RaspberryPi 4 in 32 bit mode
DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/tune-cortexa7.inc
require conf/machine/include/arm/armv7a/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc
MACHINE_FEATURES += "pci"
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43455 \
bluez-firmware-rpidistro-bcm4345c0-hcd \
linux-firmware-rpidistro-bcm43456 \
bluez-firmware-rpidistro-bcm4345c5-hcd \
"
# 'l' stands for LPAE
@@ -17,5 +19,5 @@ SDIMG_KERNELIMAGE ?= "kernel7l.img"
UBOOT_MACHINE = "rpi_4_32b_config"
SERIAL_CONSOLES ?= "115200;ttyS0"
VC4DTBO ?= "vc4-fkms-v3d"
VC4DTBO ?= "vc4-kms-v3d"
ARMSTUB ?= "armstub7.bin"

View File

@@ -0,0 +1,36 @@
#@TYPE: Machine
#@NAME: RaspberryPi 5 Development Board (64bit)
#@DESCRIPTION: Machine configuration for the RaspberryPi 5 in 64 bits mode
require conf/machine/include/arm/armv8-2a/tune-cortexa76.inc
include conf/machine/include/rpi-base.inc
MACHINE_FEATURES += "pci"
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43455 \
bluez-firmware-rpidistro-bcm4345c0-hcd \
linux-firmware-rpidistro-bcm43456 \
bluez-firmware-rpidistro-bcm4345c5-hcd \
"
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"
SERIAL_CONSOLES ?= "115200;ttyAMA10"
VC4DTBO ?= "vc4-kms-v3d"
# 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"

View File

@@ -30,7 +30,10 @@
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = []
extensions = [
'myst_parser',
'sphinx_rtd_theme'
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@@ -50,7 +53,7 @@ master_doc = 'index'
# General information about the project.
project = 'meta-raspberrypi'
copyright = '2017, meta-raspberrypi contributors'
copyright = '2022, meta-raspberrypi contributors'
author = 'meta-raspberrypi contributors'
# The version info for the project you're documenting, acts as replacement for
@@ -121,6 +124,7 @@ todo_include_todos = False
# a list of builtin themes.
#
# html_theme = 'alabaster'
html_theme = "sphinx_rtd_theme"
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
@@ -154,7 +158,7 @@ todo_include_todos = False
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
#html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
@@ -337,7 +341,3 @@ texinfo_documents = [
# If true, do not generate a @detailmenu in the "Top" node's menu.
#
# texinfo_no_detailmenu = False
source_parsers = {
'.md': 'recommonmark.parser.CommonMarkParser',
}

View File

@@ -4,8 +4,8 @@
The main communication tool in use is the Yocto Project mailing list:
* <yocto@yoctoproject.org>
* <https://lists.yoctoproject.org/listinfo/yocto>
* <yocto@lists.yoctoproject.org>
* <https://lists.yoctoproject.org/g/yocto>
Feel free to ask any kind of questions but please always prepend your email
subject with `[meta-raspberrypi]` as this is the global *Yocto* mailing
@@ -84,7 +84,11 @@ sure to use the following formatting for the message subject:
Then, for sending patches to the mailing list, you may use this command:
git send-email --to yocto@yoctoproject.org <generated patch>
git send-email --to yocto@lists.yoctoproject.org <generated patch>
When patches are sent through the mailing list, the maintainer will include
them in a GitHub pull request that will take the patches through the CI
workflows. This process happens periodically.
## GitHub issues

View File

@@ -6,4 +6,4 @@ omxplayer depends on libav which has a commercial license. So in order to be
able to compile omxplayer you will need to whiteflag the commercial
license in your local.conf:
LICENSE_FLAGS_WHITELIST = "commercial"
LICENSE_FLAGS_ACCEPTED = "commercial"

View File

@@ -29,7 +29,7 @@ Accommodate the values above to your own needs (ex: ext3 / ext4).
* `GPU_MEM_1024`: GPU memory in megabyte for the 1024MB Raspberry Pi. Ignored by
the 256MB/512MB RP. Overrides gpu_mem. Max 944. Default not set.
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/memory.md>
See: <https://www.raspberrypi.com/documentation/computers/config_txt.html#memory-options>
## VC4
@@ -47,7 +47,7 @@ You can supply more licenses separated by comma. Example:
KEY_DECODE_WVC1 = "0x12345678,0xabcdabcd,0x87654321"
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/codeclicence.md>
See: <https://www.raspberrypi.com/documentation/computers/config_txt.html#licence-key-and-codec-options>
## Disable overscan
@@ -74,6 +74,22 @@ To remove (or adjust) this delay set these variables in local.conf:
BOOT_DELAY = "0"
BOOT_DELAY_MS = "0"
## Boot media
The Raspberry Pi 4 board can load the boot image files from SD card and USB memory.
By default SD card media is used as boot media.
To switch the boot media from SD card to USB memory, the following variables are supported
in local.conf: `CMDLINE_ROOT_PARTITION` and `BOOT_MEDIA`.
The default value of `CMDLINE_ROOT_PARTITION` is "/dev/mmcblk0p2" to mount SD card. If you want to mount USB memory partition, set CMDLINE_ROOT_PARTITION to "/dev/sda2".
`BOOT_MEDIA` allows `mmc` and `usb`. The "mmc" is required to load an image from the SD card, following the u-boot specification. Similarly, if you want to load a boot image file from USB memory, set BOOT_MEDIA to "usb".
For example, if you want to use USB boot, please define
the following parameters in your local.conf file.
CMDLINE_ROOT_PARTITION = "/dev/sda2"
BOOT_MEDIA = "usb"
## Set overclocking options
The Raspberry Pi can be overclocked. As of now overclocking up to the "Turbo
@@ -89,7 +105,7 @@ Example official settings for Turbo Mode in Raspberry Pi 2:
SDRAM_FREQ = "500"
OVER_VOLTAGE = "6"
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md>
See: <https://www.raspberrypi.com/documentation/computers/config_txt.html#overclocking-options>
## HDMI and composite video options
@@ -99,14 +115,14 @@ selected according to the connected monitor's EDID information and the composite
mode is defaulted to NTSC using a 4:3 aspect ratio. Check the config.txt for a
detailed description of options and modes. The following variables are supported in
local.conf: `HDMI_FORCE_HOTPLUG`, `HDMI_DRIVE`, `HDMI_GROUP`, `HDMI_MODE`,
`CONFIG_HDMI_BOOST`, `SDTV_MODE`, `SDTV_ASPECT` and `DISPLAY_ROTATE`.
`HDMI_CVT`, `CONFIG_HDMI_BOOST`, `SDTV_MODE`, `SDTV_ASPECT` and `DISPLAY_ROTATE`.
Example to force HDMI output to 720p in CEA mode:
HDMI_GROUP = "1"
HDMI_MODE = "4"
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/video.md>
See: <https://www.raspberrypi.com/documentation/computers/configuration.html#hdmi-configuration>
## Video camera support with V4L2 drivers
@@ -155,11 +171,21 @@ For further customisation the KERNEL_IMAGETYPE and KERNEL_BOOTCMD variables can
be overridden to select the exact kernel image type (eg. zImage) and u-boot
command (eg. bootz) to be used.
To operate correctly, U-Boot requires `enable_uart=1` in `config.txt` file for
the following boards:
* Raspberry Pi Zero W
* Raspberry Pi 3 32-bit
* 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"`.
## Image with Initramfs
To build an initramfs image:
* Set this 3 kernel variables (in kernel's do_configure_prepend in linux-raspberrypi.inc after the line kernel_configure_variable LOCALVERSION "\"\""
* Set this 3 kernel variables (in kernel's do_configure:prepend in linux-raspberrypi.inc after the line kernel_configure_variable LOCALVERSION "\"\""
)
- kernel_configure_variable BLK_DEV_INITRD y
- kernel_configure_variable INITRAMFS_SOURCE ""
@@ -170,7 +196,7 @@ To build an initramfs image:
- `INITRAMFS_IMAGE_BUNDLE = "1"`
- `BOOT_SPACE = "1073741"`
- `INITRAMFS_MAXSIZE = "315400"`
- `IMAGE_FSTYPES_pn-${INITRAMFS_IMAGE} = "${INITRAMFS_FSTYPES}"`
- `IMAGE_FSTYPES:pn-${INITRAMFS_IMAGE} = "${INITRAMFS_FSTYPES}"`
## Including additional files in the SD card image boot partition
@@ -195,7 +221,7 @@ by tasks that image building task must depend upon, to ensure that the
files are available when they are needed, so these component deploy
tasks must be added to: RPI_SDIMG_EXTRA_DEPENDS.
RPI_SDIMG_EXTRA_DEPENDS_append = " example:do_deploy"
RPI_SDIMG_EXTRA_DEPENDS:append = " example:do_deploy"
## Enable SPI bus
@@ -211,7 +237,7 @@ When using device tree kernels, set this variable to enable I2C:
Furthermore, to auto-load I2C kernel modules set:
KERNEL_MODULE_AUTOLOAD_rpi += "i2c-dev i2c-bcm2708"
KERNEL_MODULE_AUTOLOAD:rpi += "i2c-dev i2c-bcm2708"
## Enable PiTFT support
@@ -278,6 +304,18 @@ the header extension should set the following in local.conf:
ENABLE_DWC2_HOST = "1"
## Set CPUs to be isolated from the standard Linux scheduler
By default Linux will use all available CPUs for scheduling tasks. For real time
purposes there can be an advantage to isolating one or more CPUs from the
standard scheduler. It should be noted that CPU 0 is special, it is the only CPU
available during the early stages of the boot process and cannot be isolated.
The string assigned to this variable may be a single CPU number, a comma
separated list ("1,2"), a range("1-3"), or a mixture of these ("1,3-5")
ISOLATED_CPUS = "1-2"
## Enable Openlabs 802.15.4 radio module
When using device tree kernels, set this variable to enable the 802.15.4 hat:
@@ -290,18 +328,25 @@ See: <https://openlabs.co/OSHW/Raspberry-Pi-802.15.4-radio>
In order to use CAN with an MCP2515-based module, set the following variables:
ENABLE_SPI_BUS = "1"
ENABLE_CAN = "1"
ENABLE_SPI_BUS = "1"
ENABLE_CAN = "1"
In case of dual CAN module (e.g. PiCAN2 Duo), set following variables instead:
ENABLE_SPI_BUS = "1"
ENABLE_DUAL_CAN = "1"
ENABLE_DUAL_CAN = "1"
Some modules may require setting the frequency of the crystal oscillator used on the particular board. The frequency is usually marked on the package of the crystal. By default, it is set to 16 MHz. To change that to 8 MHz, the following variable also has to be set:
CAN_OSCILLATOR="8000000"
Configure the interrupt pin to the one connected to the CAN module. By default,
the pins are set to 25 for can0 and 24 for can1. To change them to 12 and 16,
the following variables also have to be set:
CAN0_INTERRUPT_PIN = "12"
CAN1_INTERRUPT_PIN = "16"
Tested modules:
* PiCAN2 (16 MHz crystal): <http://skpang.co.uk/catalog/pican2-canbus-board-for-raspberry-pi-23-p-1475.html>
@@ -320,6 +365,38 @@ Appropriate kernel modules will be also included in the image. By default the
GPIO pin for gpio-ir is set to 18 and the pin for gpio-ir-tx is 17. Both pins
can be easily changed by modifying variables `GPIO_IR` and `GPIO_IR_TX`.
## Enable gpio-shutdown
When using device tree kernels, set this variable to enable gpio-shutdown:
ENABLE_GPIO_SHUTDOWN = "1"
This will add the corresponding device tree overlay to config.txt and include
the gpio-keys kernel module in the image. If System V init is used, additional
mapping is applied to bind the button event to shutdown command. Systemd init
should handle the event out of the box.
By default the feature uses gpio pin 3 (except RPi 1 Model B rev 1 enumerates
the pin as gpio 1). This conflicts with the I2C bus. If you set `ENABLE_I2C`
to `1` or enabled `PiTFT` support, or otherwise want to use another pin, use
`GPIO_SHUTDOWN_PIN` to assign another pin. Example using gpio pin 25:
GPIO_SHUTDOWN_PIN = "25"
## Enable One-Wire Interface
One-wire is a single-wire communication bus typically used to connect sensors
to the RaspberryPi. The Raspberry Pi supports one-wire on any GPIO pin, but
the default is GPIO 4. To enable the one-wire interface explicitly set it in
`local.conf`
ENABLE_W1 = "1"
Once discovery is complete you can list the devices that your Raspberry Pi has
discovered via all 1-Wire busses check the interface with this command
`ls /sys/bus/w1/devices/`
## Manual additions to config.txt
The `RPI_EXTRA_CONFIG` variable can be used to manually add additional lines to
@@ -335,17 +412,93 @@ option:
# Raspberry Pi 7\" display/touch screen \n \
lcd_rotate=2 \n \
'
## Enable Raspberrypi Camera V2
## Enable Raspberry Pi Camera Module
RaspberryPi does not have the unicam device ( RaspberryPi Camera ) enabled by default.
Raspberry Pi does not have the unicam device ( Raspberry Pi Camera ) enabled by default.
Because this unicam device ( bcm2835-unicam ) as of now is used by libcamera opensource.
So we have to explicitly set in local.conf.
So we have to explicitly enable it in local.conf.
RASPBERRYPI_CAMERA_V2 = "1"
This will add the device tree overlays imx219 ( RaspberryPi Camera sensor V2 driver ) to config.txt.
Also, this will enable adding Contiguous Memory Allocation value in the cmdline.txt.
This will add the device tree overlay imx219 ( Raspberry Pi Camera Module V2 sensor driver
) to config.txt. Also, this will enable adding Contiguous Memory Allocation value in the
cmdline.txt.
Ref.:
* <https://github.com/raspberrypi/documentation/blob/master/linux/software/libcamera/README.md>
Similarly, the Raspberry Pi Camera Module v3 also has to be explicitly enabled in local.conf.
RASPBERRYPI_CAMERA_V3 = "1"
This will add the device tree overlay imx708 ( Raspberry Pi Camera Module V3 sensor driver )
to config.txt.
See:
* <https://www.raspberrypi.com/documentation/computers/camera_software.html>
* <https://www.raspberrypi.org/blog/an-open-source-camera-stack-for-raspberry-pi-using-libcamera/>
## WM8960 soundcard support
Support for WM8960 based sound cards such as the WM8960 Hi-Fi Sound Card HAT for Raspberry Pi from Waveshare, and ReSpeaker 2 / 4 / 6 Mics Pi HAT from Seeed Studio, can be enabled in `local.conf`
MACHINE_FEATURES += "wm8960"
You may need to adjust volume and toggle switches that are off by default
amixer -c1 sset 'Headphone',0 80%,80%
amixer -c1 sset 'Speaker',0 80%,80%
amixer -c1 sset 'Left Input Mixer Boost' toggle
amixer -c1 sset 'Left Output Mixer PCM' toggle
amixer -c1 sset 'Right Input Mixer Boost' toggle
amixer -c1 sset 'Right Output Mixer PCM' toggle
Audio capture on ReSpeaker 2 / 4 / 6 Mics Pi HAT from Seeed Studio is very noisy.
## Support for RTC devices
The RaspberryPi boards don't feature an RTC module and the machine
configurations provided in this BSP layer have this assumption (until, if at
all, some later boards will come with one).
`rtc` is handled as a `MACHINE_FEATURES` in the context of the build system
which means that if an attached device is provided for which support is needed,
the recommended way forward is to write a new machine configuration based on an
existing one. Check the documentation for
`MACHINE_FEATURES_BACKFILL_CONSIDERED` for how this is disabled for the
relevant machines.
Even when `MACHINE_FEATURES` is tweaked to include the needed `rtc` string,
make sure that your kernel configuration is supporting the attached device and
the device tree is properly tweaked. Also, mind the runtime components that
take advantage of your RTC device. You can do that by checking what is
included/configured in the build system based on the inclusion of `rtc` in
`MACHINE_FEATURES`.
## Raspberry Pi Distro VLC
To enable Raspberry Pi Distro VLC, the `meta-openembedded/meta-multimedia` layer must be
included in your `bblayers.conf`.
VLC does not support HW accelerated video decode through MMAL on a 64-bit OS.
See:
* <https://forums.raspberrypi.com/viewtopic.php?t=275370>
* <https://forums.raspberrypi.com/viewtopic.php?t=325218#p1946169>
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:
PREFERRED_PROVIDER_ffmpeg = "ffmpeg"
PREFERRED_PROVIDER_vlc = "vlc"
Usage example: Start VLC with mmal_vout plugin and without an active display server.
DISPLAYNUM=$(tvservice -l | tail -c 2)
MMAL_DISPLAY=$(expr $DISPLAYNUM + 1)
VLC_SETTINGS="-I dummy --vout=mmal_vout --mmal-resize --mmal-display hdmi-$MMAL_DISPLAY --no-dbus"
cvlc $VLC_SETTINGS <video/playlist>

View File

@@ -15,6 +15,7 @@ Contents:
layer-contents
extra-build-config
extra-apps
ipcompliance
contributing
Indices and tables

23
docs/ipcompliance.md Normal file
View File

@@ -0,0 +1,23 @@
# IP Compliance
## linux-firmware-rpidistro
By default, some of the machine configurations recommend packages for the
WiFi/BT firmware, provided by
[linux-firmware-rpidistro](https://github.com/RPi-Distro/firmware-nonfree).
This package includes some firmware blobs under the `Synaptics` license which
could carry a legal risk: one of the clauses can be (at least theoretically)
used as a `killswitch`. This was
[reported](https://github.com/RPi-Distro/firmware-nonfree/issues/29) in the
upstream repository.
You can find the full license text body in the content of the above mentioned
package.
Due to the above, the build system will only allow this recipe to be built if
the user acknowledges this risk by adding the following configuration:
LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
You can provide this configuration as part of your `local.conf`, `distro.conf`,
etc.

View File

@@ -5,6 +5,7 @@
* raspberrypi
* raspberrypi0
* raspberrypi0-wifi
* raspberrypi0-2w-64
* raspberrypi2
* raspberrypi3
* raspberrypi3-64 (64 bit kernel & userspace)
@@ -15,6 +16,28 @@
Note: The raspberrypi3 machines include support for Raspberry Pi 3B+.
## Multi-board Machines
This layer generally provides support for machines that are targetting a single
Raspberry Pi board (or a very few subsets of them). This is so that the build
infrastructure can tune and tweak the configuration with the flexibility to
optimise for both runtime performance and disk storage.
For usecases where compatibility of more boards is required, the layer provides
machines that are tagetting a wider support of Raspberry Pi boards.
### raspberrypi-armv7
This machine targets support for all the ARMv7-based Raspberry Pi boards. It
will pull in the firmware and deploy the kernel image and kernel modules for
all the relevant boards.
### raspberrypi-armv8
This machine targets support for all the ARMv8-based Raspberry Pi boards. It
will pull in the firmware and deploy the kernel image and kernel modules for
all the relevant boards.
## Images
* rpi-test-image
@@ -22,8 +45,7 @@ Note: The raspberrypi3 machines include support for Raspberry Pi 3B+.
layer and some media samples.
For other uses it's recommended to base images on `core-image-minimal` or
`core-image-base` as appropriate. The old image names (`rpi-hwup-image` and
`rpi-basic-image`) are deprecated.
`core-image-base` as appropriate.
## WiFi and Bluetooth Firmware

2
docs/requirements.txt Normal file
View File

@@ -0,0 +1,2 @@
myst_parser
sphinx_rtd_theme

View File

@@ -1,175 +0,0 @@
diff -ruN lirc-0.10.1.orig/lib/config_file.c lirc-0.10.1/lib/config_file.c
--- lirc-0.10.1.orig/lib/config_file.c 2017-09-10 17:52:19.000000000 +0900
+++ lirc-0.10.1/lib/config_file.c 2019-06-26 00:39:45.734320696 +0900
@@ -71,7 +71,7 @@
typedef void* (*array_guest_func)(void* item, void* arg);
-#define LINE_LEN 1024
+#define LINE_LEN 4096
#define MAX_INCLUDES 10
const char* whitespace = " \t";
diff -ruN lirc-0.10.1.orig/lib/ir_remote.h lirc-0.10.1/lib/ir_remote.h
--- lirc-0.10.1.orig/lib/ir_remote.h 2017-09-10 17:52:19.000000000 +0900
+++ lirc-0.10.1/lib/ir_remote.h 2019-06-26 00:39:45.714321224 +0900
@@ -110,12 +110,17 @@
static inline int is_pulse(lirc_t data)
{
- return data & PULSE_BIT ? 1 : 0;
+ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_PULSE) ? 1 : 0;
}
static inline int is_space(lirc_t data)
{
- return !is_pulse(data);
+ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_SPACE) ? 1 : 0;
+}
+
+static inline int is_timeout(lirc_t data)
+{
+ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_TIMEOUT) ? 1 : 0;
}
static inline int has_repeat(const struct ir_remote* remote)
diff -ruN lirc-0.10.1.orig/lib/irrecord.c lirc-0.10.1/lib/irrecord.c
--- lirc-0.10.1.orig/lib/irrecord.c 2017-09-10 17:52:19.000000000 +0900
+++ lirc-0.10.1/lib/irrecord.c 2019-06-26 00:39:45.724320960 +0900
@@ -1398,9 +1398,16 @@
state->retval = 0;
return STS_LEN_TIMEOUT;
}
+ if (is_timeout(state->data)) {
+ return STS_LEN_AGAIN;
+ }
state->count++;
if (state->mode == MODE_GET_GAP) {
- state->sum += state->data & PULSE_MASK;
+ if (state->sum != 0 || is_pulse(state->data)) {
+ state->sum += state->data & PULSE_MASK;
+ }else{
+ return STS_LEN_AGAIN;
+ }
if (state->average == 0 && is_space(state->data)) {
if (state->data > 100000) {
state->sum = 0;
@@ -1472,6 +1479,10 @@
state->keypresses = lastmaxcount;
return STS_LEN_AGAIN;
} else if (state->mode == MODE_HAVE_GAP) {
+ if (state->count==1 && is_space(state->data)) {
+ state->count = 0;
+ return STS_LEN_AGAIN;
+ }
if (state->count <= MAX_SIGNALS) {
signals[state->count - 1] = state->data & PULSE_MASK;
} else {
@@ -1510,7 +1521,7 @@
/* such long pulses may appear with
* crappy hardware (receiver? / remote?)
*/
- else {
+ else if(is_pulse(state->data)) {
remote->gap = 0;
return STS_LEN_NO_GAP_FOUND;
}
@@ -1811,22 +1822,24 @@
static int raw_data_ok(struct button_state* btn_state)
{
- int r;
+ int r = 0;
int ref;
- if (!is_space(btn_state->data)) {
+ if (is_pulse(btn_state->data)) {
r = 0;
- } else if (is_const(&remote)) {
- if (remote.gap > btn_state->sum) {
- ref = (remote.gap - btn_state->sum);
- ref *= (100 - remote.eps);
- ref /= 100;
+ } else if (is_space(btn_state->data)) {
+ if (is_const(&remote)) {
+ if (remote.gap > btn_state->sum) {
+ ref = (remote.gap - btn_state->sum);
+ ref *= (100 - remote.eps);
+ ref /= 100;
+ } else {
+ ref = 0;
+ }
+ r = btn_state->data > ref;
} else {
- ref = 0;
+ r = btn_state->data > (remote.gap * (100 - remote.eps)) / 100;
}
- r = btn_state->data > ref;
- } else {
- r = btn_state->data > (remote.gap * (100 - remote.eps)) / 100;
}
return r;
}
@@ -1970,7 +1983,7 @@
btn_state->data = remote.gap;
}
if (btn_state->count == 0) {
- if (!is_space(btn_state->data)
+ if (is_pulse(btn_state->data)
|| btn_state->data <
remote.gap - remote.gap * remote.eps /
100) {
diff -ruN lirc-0.10.1.orig/lib/lirc/ir_remote.h lirc-0.10.1/lib/lirc/ir_remote.h
--- lirc-0.10.1.orig/lib/lirc/ir_remote.h 2017-09-10 17:52:58.000000000 +0900
+++ lirc-0.10.1/lib/lirc/ir_remote.h 2019-06-26 00:39:45.724320960 +0900
@@ -110,12 +110,17 @@
static inline int is_pulse(lirc_t data)
{
- return data & PULSE_BIT ? 1 : 0;
+ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_PULSE) ? 1 : 0;
}
static inline int is_space(lirc_t data)
{
- return !is_pulse(data);
+ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_SPACE) ? 1 : 0;
+}
+
+static inline int is_timeout(lirc_t data)
+{
+ return ((data & LIRC_MODE2_MASK)==LIRC_MODE2_TIMEOUT) ? 1 : 0;
}
static inline int has_repeat(const struct ir_remote* remote)
diff -ruN lirc-0.10.1.orig/tools/mode2.cpp lirc-0.10.1/tools/mode2.cpp
--- lirc-0.10.1.orig/tools/mode2.cpp 2017-09-10 17:52:19.000000000 +0900
+++ lirc-0.10.1/tools/mode2.cpp 2019-06-26 00:45:38.840404976 +0900
@@ -326,12 +326,24 @@
void print_mode2_data(unsigned int data)
{
static int bitno = 1;
+ static bool leading_space = true;
+ unsigned int msg = data & LIRC_MODE2_MASK;
switch (opt_dmode) {
case 0:
- printf("%s %u\n", (
- data & PULSE_BIT) ? "pulse" : "space",
- (uint32_t)(data & PULSE_MASK));
+ if (leading_space && msg == LIRC_MODE2_SPACE ) {
+ break;
+ } else {
+ leading_space = false;
+ }
+ if (msg == LIRC_MODE2_PULSE) {
+ printf("pulse %u\n", (__u32)(data & PULSE_MASK));
+ } else if (msg == LIRC_MODE2_SPACE) {
+ printf("space %u\n", (__u32)(data & PULSE_MASK));
+ } else if (msg == LIRC_MODE2_TIMEOUT) {
+ printf("timeout %u\n", (__u32)(data & PULSE_MASK));
+ leading_space = true;
+ }
break;
case 1: {
/* print output like irrecord raw config file data */

View File

@@ -0,0 +1,5 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
SRC_URI:append:rpi = " \
file://lircd.service \
"

View File

@@ -1,6 +0,0 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI_append_rpi = " \
file://lirc-gpio-ir-0.10.patch \
file://lircd.service \
"

View File

@@ -1,4 +1,4 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
RDEPENDS_${PN} += "python3-sense-hat"
RDEPENDS:${PN} += "python3-sense-hat"

View File

@@ -1,7 +1,7 @@
SUMMARY = "Python module to control the Raspberry Pi Sense HAT used in the Astro Pi mission"
HOMEPAGE = "https://github.com/RPi-Distro/python-sense-hat"
SECTION = "devel/python"
LICENSE = "BSD"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=d80fe312e1ff5fbd97369b093bf21cda"
inherit setuptools3 pypi
@@ -17,8 +17,8 @@ DEPENDS += " \
freetype \
"
RDEPENDS_${PN} += " \
${PYTHON_PN}-numpy \
${PYTHON_PN}-rtimu \
${PYTHON_PN}-pillow \
RDEPENDS:${PN} += " \
python3-numpy \
python3-rtimu \
python3-pillow \
"

View File

@@ -0,0 +1,42 @@
From bbc1ea3e4119c665723cfd1c5a364bc8c7cbb464 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Thu, 4 May 2023 18:07:16 +0000
Subject: [PATCH] utils/version.py: use /usr/bin/env in shebang
* it uses subprocess text=True which is available only since python-3.7
when running on host with python-3.6 it fails with:
Traceback (most recent call last):
File "TOPDIR/BUILD/work/raspberrypi4_64-oe-linux/rpi-libcamera-apps/git-r0/git/utils/version.py", line 19, in generate_version
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, text=True)
File "/usr/lib/python3.6/subprocess.py", line 423, in run
with Popen(*popenargs, **kwargs) as process:
TypeError: __init__() got an unexpected keyword argument 'text'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "TOPDIR/BUILD/work/raspberrypi4_64-oe-linux/rpi-libcamera-apps/git-r0/git/utils/version.py", line 52, in <module>
generate_version()
File "TOPDIR/BUILD/work/raspberrypi4_64-oe-linux/rpi-libcamera-apps/git-r0/git/utils/version.py", line 48, in generate_version
print(f'{commit} {datetime.now().strftime("%d-%m-%Y (%H:%M:%S)")}', end="")
UnboundLocalError: local variable 'commit' referenced before assignment
Generating version string:
even when newer python3 is in PATH (either from buildtools or from python3native)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Upstream-Status: Pending
---
utils/version.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/utils/version.py b/utils/version.py
index 48d7e05..4a5e35c 100755
--- a/utils/version.py
+++ b/utils/version.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# Copyright (C) 2021, Raspberry Pi (Trading) Limited
# Generate version information for rpicam-apps

View File

@@ -0,0 +1,271 @@
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");
}

View File

@@ -0,0 +1,44 @@
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"

View File

@@ -1,2 +0,0 @@
PACKAGECONFIG[raspberrypi] = "-Dpipelines=raspberrypi"
PACKAGECONFIG_append_rpi = " raspberrypi"

View File

@@ -0,0 +1,2 @@
PACKAGECONFIG[raspberrypi] = "-Dpipelines=rpi/vc4 -Dipas=rpi/vc4 -Dcpp_args=-Wno-unaligned-access"
PACKAGECONFIG:append:rpi = " raspberrypi"

View File

@@ -0,0 +1,25 @@
From: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= <remi@remlab.net>
Date: Sat, 16 Jun 2018 21:31:45 +0300
Subject: configure: fix linking on RISC-V ISA
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches
to enable raspiberry pi support.
---
configure.ac | 1 +
1 file changed, 1 insertion(+)
diff --git a/configure.ac b/configure.ac
index 2037a9e..df26367 100644
--- a/configure.ac
+++ b/configure.ac
@@ -113,6 +113,7 @@ case "${host_os}" in
;;
linux*)
SYS=linux
+ test "${host_cpu}" = "riscv64" && CFLAGS="${CFLAGS} -pthread"
;;
bsdi*)
SYS=bsdi

View File

@@ -0,0 +1,27 @@
From: Sebastian Ramacher <sramacher@debian.org>
Date: Mon, 19 Aug 2019 21:08:26 +0200
Subject: Revert "configure: Require libmodplug >= 0.8.9"
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches
to enable raspiberry pi support.
This reverts commit 48f014768dc22ecad23d0e9f53c38805a3aff832.
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index df26367..b8580ec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2207,7 +2207,7 @@ AC_ARG_ENABLE(mod,
[AS_HELP_STRING([--disable-mod],
[do not use libmodplug (default auto)])])
if test "${enable_mod}" != "no" ; then
- PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.9.0], [
+ PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
VLC_ADD_PLUGIN([mod])
VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod

View File

@@ -0,0 +1,83 @@
From 4fcace61801f418786c42487c6b06b693ee87666 Mon Sep 17 00:00:00 2001
From: Romain Vimont <rom1v@videolabs.io>
Date: Mon, 19 Sep 2022 17:17:01 +0200
Subject: [PATCH] vnc: fix possible buffer overflow
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches
to enable raspiberry pi support.
Thanks to 0xMitsurugi [1] from Synacktiv [2] for the bug report and fix.
[1] https://twitter.com/0xMitsurugi
[2] https://www.synacktiv.com/
Fixes #27335
(cherry picked from commit 5eb783fd44ed6298db3e38f7765f21c42e4405f9)
---
modules/access/vnc.c | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
--- a/modules/access/vnc.c
+++ b/modules/access/vnc.c
@@ -33,6 +33,7 @@
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
+#include <assert.h>
#include <vlc_common.h>
#include <vlc_plugin.h>
@@ -115,7 +116,7 @@
int i_cancel_state;
rfbClient* p_client;
- int i_framebuffersize;
+ size_t i_framebuffersize;
block_t *p_block;
float f_fps;
@@ -143,11 +144,16 @@
p_sys->es = NULL;
}
- int i_width = p_client->width;
- int i_height = p_client->height;
- int i_depth = p_client->format.bitsPerPixel;
+ assert(!(p_client->width & ~0xffff)); // fits in 16 bits
+ uint16_t i_width = p_client->width;
- switch( i_depth )
+ assert(!(p_client->height & ~0xffff)); // fits in 16 bits
+ uint16_t i_height = p_client->height;
+
+ uint8_t i_bits_per_pixel = p_client->format.bitsPerPixel;
+ assert((i_bits_per_pixel & 0x7) == 0); // multiple of 8
+
+ switch( i_bits_per_pixel )
{
case 8:
i_chroma = VLC_CODEC_RGB8;
@@ -180,7 +186,10 @@
}
/* Set up framebuffer */
- p_sys->i_framebuffersize = i_width * i_height * i_depth / 8;
+ if (mul_overflow(i_width, i_height * (i_bits_per_pixel / 8), &p_sys->i_framebuffersize)) {
+ msg_Err(p_demux, "VNC framebuffersize overflow");
+ return FALSE;
+ }
/* Reuse unsent block */
if ( p_sys->p_block )
@@ -211,7 +220,7 @@
fmt.video.i_frame_rate_base = 1000;
fmt.video.i_frame_rate = 1000 * p_sys->f_fps;
- fmt.video.i_bits_per_pixel = i_depth;
+ fmt.video.i_bits_per_pixel = i_bits_per_pixel;
fmt.video.i_rmask = p_client->format.redMax << p_client->format.redShift;
fmt.video.i_gmask = p_client->format.greenMax << p_client->format.greenShift;
fmt.video.i_bmask = p_client->format.blueMax << p_client->format.blueShift;

View File

@@ -0,0 +1,19 @@
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches
to enable raspiberry pi support.
--- a/bin/vlc.c
+++ b/bin/vlc.c
@@ -106,7 +106,10 @@ static void vlc_kill (void *data)
static void exit_timeout (int signum)
{
(void) signum;
- signal (SIGINT, SIG_DFL);
+// This doesn't seem to be strong enough to reliably kill us if we fail to exit
+// in a timely fashion - so upgrade to _exit().
+// signal (SIGINT, SIG_DFL);
+ _exit(0);
}
/*****************************************************************************

View File

@@ -0,0 +1,19 @@
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches
to enable raspiberry pi support.
--- a/modules/video_chroma/chain.c
+++ b/modules/video_chroma/chain.c
@@ -280,8 +280,9 @@ static int BuildTransformChain( filter_t
return VLC_SUCCESS;
/* Lets try resize+chroma first, then transform */
- msg_Dbg( p_filter, "Trying to build chroma+resize" );
- EsFormatMergeSize( &fmt_mid, &p_filter->fmt_out, &p_filter->fmt_in );
+ msg_Dbg( p_filter, "Trying to build chroma+resize, then transform" );
+ es_format_Copy( &fmt_mid, &p_filter->fmt_out );
+ video_format_TransformTo(&fmt_mid.video, p_filter->fmt_in.video.orientation);
i_ret = CreateChain( p_filter, &fmt_mid );
es_format_Clean( &fmt_mid );
if( i_ret == VLC_SUCCESS )

View File

@@ -0,0 +1,53 @@
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches
to enable raspiberry pi support.
--- a/modules/hw/mmal/blend_rgba_neon.S
+++ b/modules/hw/mmal/blend_rgba_neon.S
@@ -1,10 +1,10 @@
- .syntax unified
- .arm
-// .thumb
- .text
+#include "../../arm_neon/asm.S"
.align 16
.arch armv7-a
- .fpu neon-vfpv4
+ .syntax unified
+#if HAVE_AS_FPU_DIRECTIVE
+ .fpu neon-vfpv4
+#endif
@ blend_rgbx_rgba_neon
--- a/modules/hw/mmal/codec.c
+++ b/modules/hw/mmal/codec.c
@@ -29,6 +29,7 @@
#include <stdatomic.h>
#include <vlc_common.h>
+#include <vlc_cpu.h>
#include <vlc_plugin.h>
#include <vlc_codec.h>
#include <vlc_filter.h>
@@ -2311,6 +2312,9 @@ static int OpenBlendMmal(vlc_object_t *o
filter_t * const p_filter = (filter_t *)object;
const vlc_fourcc_t vfcc_dst = p_filter->fmt_out.video.i_chroma;
+ if (!vlc_CPU_ARM_NEON())
+ return VLC_EGENERIC;
+
if (!hw_mmal_chroma_is_mmal(vfcc_dst) ||
!hw_mmal_vzc_subpic_fmt_valid(&p_filter->fmt_in.video))
{
@@ -2421,6 +2425,9 @@ static int OpenBlendNeon(vlc_object_t *o
MMAL_FOURCC_T mfcc_dst = vlc_to_mmal_video_fourcc(&p_filter->fmt_out.video);
blend_neon_fn * blend_fn = (blend_neon_fn *)0;
+ if (!vlc_CPU_ARM_NEON())
+ return VLC_EGENERIC;
+
// Non-alpha RGB only for dest
if (vfcc_dst != VLC_CODEC_RGB32)
return VLC_EGENERIC;

View File

@@ -0,0 +1,26 @@
From 048e4fdd08ac588feb27b03e3ec1824e24f77d62 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 5 Mar 2023 14:13:25 -0800
Subject: [PATCH 3/3] configure: Disable incompatible-function-pointer-types
warning
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
configure.ac | 5 +++++
1 file changed, 5 insertions(+)
--- a/configure.ac
+++ b/configure.ac
@@ -105,6 +105,11 @@ AC_SUBST([AM_CFLAGS], [-fcommon])
dnl Prevent clang from accepting unknown flags with a mere warning
AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CFLAGS])
AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CXXFLAGS])
+dnl disable clang from erroring on function pointer protype mismatch, vlc seems to rely on that
+dnl especially in modules/video_filter/deinterlace/algo_yadif.c how it interpolates 'filter` variable
+dnl between different functions yadif_filter_line_c_16bit() and yadif_filter_line_c()
+AX_APPEND_COMPILE_FLAGS([-Wno-error=incompatible-function-pointer-types -Wno-error=incompatible-function-pointer-types], [CFLAGS])
+AX_APPEND_COMPILE_FLAGS([-Wno-error=incompatible-function-pointer-types -Wno-error=incompatible-function-pointer-types], [CXXFLAGS])
dnl
dnl Check the operating system

View File

@@ -0,0 +1,30 @@
From 6fca76ebd76bf8fce9b111e31bda64015cdc770f Mon Sep 17 00:00:00 2001
From: Johannes Kauffmann <johanneskauffmann@hotmail.com>
Date: Mon, 11 Jul 2022 19:35:57 +0000
Subject: [PATCH] demux: dash: include cstdint, needed for uint64_t
Fixes #27077.
Upstream-Status: Backport
https://github.com/videolan/vlc/commit/6fca76ebd76bf8fce9b111e31bda64015cdc770f
---
modules/demux/dash/mpd/TemplatedUri.hpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/demux/dash/mpd/TemplatedUri.hpp b/modules/demux/dash/mpd/TemplatedUri.hpp
index 1eeb70cbb6..7f7264a9c8 100644
--- a/modules/demux/dash/mpd/TemplatedUri.hpp
+++ b/modules/demux/dash/mpd/TemplatedUri.hpp
@@ -21,6 +21,7 @@
#ifndef TEMPLATEDURI_HPP
#define TEMPLATEDURI_HPP
+#include <cstdint>
#include <string>
namespace dash
--
2.34.1

View File

@@ -0,0 +1,236 @@
* luaL_checkint and luaL_optint were deprecated in lua 5.3
* replacement functions are luaL_checkinteger and luaL_optinteger
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches to enable
raspiberry pi support.
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
--- a/modules/lua/demux.c
+++ b/modules/lua/demux.c
@@ -52,7 +52,7 @@ struct vlclua_playlist
static int vlclua_demux_peek( lua_State *L )
{
stream_t *s = (stream_t *)vlclua_get_this(L);
- int n = luaL_checkint( L, 1 );
+ int n = luaL_checkinteger( L, 1 );
const uint8_t *p_peek;
ssize_t val = vlc_stream_Peek(s->p_source, &p_peek, n);
@@ -66,7 +66,7 @@ static int vlclua_demux_peek( lua_State
static int vlclua_demux_read( lua_State *L )
{
stream_t *s = (stream_t *)vlclua_get_this(L);
- int n = luaL_checkint( L, 1 );
+ int n = luaL_checkinteger( L, 1 );
char *buf = malloc(n);
if (buf != NULL)
--- a/modules/lua/libs/net.c
+++ b/modules/lua/libs/net.c
@@ -179,7 +179,7 @@ static int vlclua_net_listen_tcp( lua_St
{
vlc_object_t *p_this = vlclua_get_this( L );
const char *psz_host = luaL_checkstring( L, 1 );
- int i_port = luaL_checkint( L, 2 );
+ int i_port = luaL_checkinteger( L, 2 );
int *pi_fd = net_ListenTCP( p_this, psz_host, i_port );
if( pi_fd == NULL )
return luaL_error( L, "Cannot listen on %s:%d", psz_host, i_port );
@@ -251,7 +251,7 @@ static int vlclua_net_connect_tcp( lua_S
{
vlc_object_t *p_this = vlclua_get_this( L );
const char *psz_host = luaL_checkstring( L, 1 );
- int i_port = luaL_checkint( L, 2 );
+ int i_port = luaL_checkinteger( L, 2 );
int i_fd = net_ConnectTCP( p_this, psz_host, i_port );
lua_pushinteger( L, vlclua_fd_map_safe( L, i_fd ) );
return 1;
@@ -259,14 +259,14 @@ static int vlclua_net_connect_tcp( lua_S
static int vlclua_net_close( lua_State *L )
{
- int i_fd = luaL_checkint( L, 1 );
+ int i_fd = luaL_checkinteger( L, 1 );
vlclua_fd_unmap_safe( L, i_fd );
return 0;
}
static int vlclua_net_send( lua_State *L )
{
- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
+ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
size_t i_len;
const char *psz_buffer = luaL_checklstring( L, 2, &i_len );
@@ -278,7 +278,7 @@ static int vlclua_net_send( lua_State *L
static int vlclua_net_recv( lua_State *L )
{
- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
+ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
size_t i_len = (size_t)luaL_optinteger( L, 2, 1 );
char psz_buffer[i_len];
@@ -312,7 +312,7 @@ static int vlclua_net_poll( lua_State *L
lua_pushnil( L );
for( int i = 0; lua_next( L, 1 ); i++ )
{
- luafds[i] = luaL_checkint( L, -2 );
+ luafds[i] = luaL_checkinteger( L, -2 );
p_fds[i].fd = vlclua_fd_get( L, luafds[i] );
p_fds[i].events = luaL_checkinteger( L, -1 );
p_fds[i].events &= POLLIN | POLLOUT | POLLPRI;
@@ -360,7 +360,7 @@ static int vlclua_fd_open( lua_State *L
#ifndef _WIN32
static int vlclua_fd_write( lua_State *L )
{
- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
+ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
size_t i_len;
const char *psz_buffer = luaL_checklstring( L, 2, &i_len );
@@ -371,7 +371,7 @@ static int vlclua_fd_write( lua_State *L
static int vlclua_fd_read( lua_State *L )
{
- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
+ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
size_t i_len = (size_t)luaL_optinteger( L, 2, 1 );
char psz_buffer[i_len];
--- a/modules/lua/libs/osd.c
+++ b/modules/lua/libs/osd.c
@@ -154,7 +154,7 @@ static int vlc_osd_slider_type_from_stri
static int vlclua_osd_slider( lua_State *L )
{
- int i_position = luaL_checkint( L, 1 );
+ int i_position = luaL_checkinteger( L, 1 );
const char *psz_type = luaL_checkstring( L, 2 );
int i_type = vlc_osd_slider_type_from_string( psz_type );
int i_chan = (int)luaL_optinteger( L, 3, VOUT_SPU_CHANNEL_OSD );
@@ -198,7 +198,7 @@ static int vlclua_spu_channel_register(
static int vlclua_spu_channel_clear( lua_State *L )
{
- int i_chan = luaL_checkint( L, 1 );
+ int i_chan = luaL_checkinteger( L, 1 );
input_thread_t *p_input = vlclua_get_input_internal( L );
if( !p_input )
return luaL_error( L, "Unable to find input." );
--- a/modules/lua/libs/playlist.c
+++ b/modules/lua/libs/playlist.c
@@ -69,7 +69,7 @@ static int vlclua_playlist_next( lua_Sta
static int vlclua_playlist_skip( lua_State * L )
{
- int i_skip = luaL_checkint( L, 1 );
+ int i_skip = luaL_checkinteger( L, 1 );
playlist_t *p_playlist = vlclua_get_playlist_internal( L );
playlist_Skip( p_playlist, i_skip );
return 0;
@@ -127,7 +127,7 @@ static int vlclua_playlist_random( lua_S
static int vlclua_playlist_gotoitem( lua_State * L )
{
- int i_id = luaL_checkint( L, 1 );
+ int i_id = luaL_checkinteger( L, 1 );
playlist_t *p_playlist = vlclua_get_playlist_internal( L );
PL_LOCK;
playlist_ViewPlay( p_playlist, NULL,
@@ -138,7 +138,7 @@ static int vlclua_playlist_gotoitem( lua
static int vlclua_playlist_delete( lua_State * L )
{
- int i_id = luaL_checkint( L, 1 );
+ int i_id = luaL_checkinteger( L, 1 );
playlist_t *p_playlist = vlclua_get_playlist_internal( L );
PL_LOCK;
@@ -152,8 +152,8 @@ static int vlclua_playlist_delete( lua_S
static int vlclua_playlist_move( lua_State * L )
{
- int i_item = luaL_checkint( L, 1 );
- int i_target = luaL_checkint( L, 2 );
+ int i_item = luaL_checkinteger( L, 1 );
+ int i_target = luaL_checkinteger( L, 2 );
playlist_t *p_playlist = vlclua_get_playlist_internal( L );
PL_LOCK;
playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_item );
--- a/modules/lua/libs/stream.c
+++ b/modules/lua/libs/stream.c
@@ -123,7 +123,7 @@ static int vlclua_stream_read( lua_State
{
int i_read;
stream_t **pp_stream = (stream_t **)luaL_checkudata( L, 1, "stream" );
- int n = luaL_checkint( L, 2 );
+ int n = luaL_checkinteger( L, 2 );
uint8_t *p_read = malloc( n );
if( !p_read ) return vlclua_error( L );
--- a/modules/lua/libs/volume.c
+++ b/modules/lua/libs/volume.c
@@ -48,7 +48,7 @@
static int vlclua_volume_set( lua_State *L )
{
playlist_t *p_this = vlclua_get_playlist_internal( L );
- int i_volume = luaL_checkint( L, 1 );
+ int i_volume = luaL_checkinteger( L, 1 );
if( i_volume < 0 )
i_volume = 0;
int i_ret = playlist_VolumeSet( p_this, i_volume/(float)AOUT_VOLUME_DEFAULT );
--- a/modules/lua/libs/dialog.c
+++ b/modules/lua/libs/dialog.c
@@ -382,7 +382,7 @@ static int lua_GetDialogUpdate( lua_Stat
/* Read entry in the Lua registry */
lua_pushlightuserdata( L, (void*) &key_update );
lua_gettable( L, LUA_REGISTRYINDEX );
- return luaL_checkint( L, -1 );
+ return luaL_checkinteger( L, -1 );
}
/** Manually update a dialog
@@ -573,22 +573,22 @@ static int vlclua_create_widget_inner( l
/* Set common arguments: col, row, hspan, vspan, width, height */
if( lua_isnumber( L, arg ) )
- p_widget->i_column = luaL_checkint( L, arg );
+ p_widget->i_column = luaL_checkinteger( L, arg );
else goto end_of_args;
if( lua_isnumber( L, ++arg ) )
- p_widget->i_row = luaL_checkint( L, arg );
+ p_widget->i_row = luaL_checkinteger( L, arg );
else goto end_of_args;
if( lua_isnumber( L, ++arg ) )
- p_widget->i_horiz_span = luaL_checkint( L, arg );
+ p_widget->i_horiz_span = luaL_checkinteger( L, arg );
else goto end_of_args;
if( lua_isnumber( L, ++arg ) )
- p_widget->i_vert_span = luaL_checkint( L, arg );
+ p_widget->i_vert_span = luaL_checkinteger( L, arg );
else goto end_of_args;
if( lua_isnumber( L, ++arg ) )
- p_widget->i_width = luaL_checkint( L, arg );
+ p_widget->i_width = luaL_checkinteger( L, arg );
else goto end_of_args;
if( lua_isnumber( L, ++arg ) )
- p_widget->i_height = luaL_checkint( L, arg );
+ p_widget->i_height = luaL_checkinteger( L, arg );
else goto end_of_args;
end_of_args:
--- a/modules/lua/libs/io.c
+++ b/modules/lua/libs/io.c
@@ -139,7 +139,7 @@ static int vlclua_io_file_seek( lua_Stat
const char* psz_mode = luaL_optstring( L, 2, NULL );
if ( psz_mode != NULL )
{
- long i_offset = luaL_optlong( L, 3, 0 );
+ long i_offset = (long)luaL_optinteger( L, 3, 0 );
int i_mode;
if ( !strcmp( psz_mode, "set" ) )
i_mode = SEEK_SET;

View File

@@ -0,0 +1,33 @@
From d0a7ba506fd302ad195f79f287b5a5a154ac02a3 Mon Sep 17 00:00:00 2001
From: Vincent Davis Jr <vince@underview.tech>
Date: Sun, 4 Dec 2022 16:09:51 -0600
Subject: [PATCH] tremor provides libvorbisidec, use it instead of libvorbisdec
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches to enable
raspiberry pi support.
THIS PATCHES HAS BEEN REIMPLEMENTED INORDER TO APPLY PROPERLY.
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
---
modules/codec/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/codec/Makefile.am b/modules/codec/Makefile.am
index 3dadf1119..8b6189e92 100644
--- a/modules/codec/Makefile.am
+++ b/modules/codec/Makefile.am
@@ -324,7 +324,7 @@ codec_LTLIBRARIES += $(LTLIBdaala)
libtremor_plugin_la_SOURCES = codec/vorbis.c
libtremor_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DMODULE_NAME_IS_tremor
libtremor_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)'
-libtremor_plugin_la_LIBADD = -lvorbisdec -logg
+libtremor_plugin_la_LIBADD = -lvorbisidec -logg
EXTRA_LTLIBRARIES += libtremor_plugin.la
codec_LTLIBRARIES += $(LTLIBtremor)
--
2.38.1

View File

@@ -0,0 +1,124 @@
From ddc2ea76058466b45a1acf37bed0d794cd3112a3 Mon Sep 17 00:00:00 2001
From: Vincent Davis Jr <vince@underview.tech>
Date: Fri, 9 Dec 2022 19:04:42 -0600
Subject: [PATCH] configure.ac: setup for OE usage
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches to enable
raspiberry pi support.
Need to use userland graphics libraries package files as it's best
to not assume /opt/vc is where all libs and headers are installed per
distro. Also, needed to include $BCMHOST_MMAL_LIBS variable as
AC_CHECK_LIB(bcm_host) fails to find `vc_tv_unregister_callback_full`.
Adding $BCMHOST_MMAL_LIBS uses all libs inside
bcm_host.pc, mmal.pc, vcsm.pc, openmaxil.pc files when checking
for `vc_tv_unregister_callback_full` function.
Supposed to change linked version to opengl to GLESv2
Ensure correct package config file is used for:
* opencv
* freerdp
Adds Workaround for modules/codec/omxil/omxil_core.h
multiple definition of `pf_enable_graphic_buffers'
multiple definition of `pf_get_graphic_buffer_usage'
multiple definition of `pf_get_hal_format'
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
---
configure.ac | 34 ++++++++++++++++++++++------------
1 file changed, 22 insertions(+), 12 deletions(-)
diff --git a/configure.ac b/configure.ac
index a72dca0b6..5b8585a26 100644
--- a/configure.ac
+++ b/configure.ac
@@ -95,6 +95,13 @@ AS_IF([test -n "${with_binary_version}"],[
[Binary specific version])
])
+# Workaround for modules/codec/omxil/omxil_core.h
+# multiple definition of `pf_enable_graphic_buffers'
+# multiple definition of `pf_get_graphic_buffer_usage'
+# multiple definition of `pf_get_hal_format'
+AC_SUBST([AM_CXXFLAGS], [-fcommon])
+AC_SUBST([AM_CFLAGS], [-fcommon])
+
dnl Prevent clang from accepting unknown flags with a mere warning
AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CFLAGS])
AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CXXFLAGS])
@@ -1900,7 +1907,7 @@ PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray f
dnl
dnl OpenCV wrapper and example filters
dnl
-PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
+PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv4 >= 2.0], (OpenCV (computer vision) filter), [auto])
dnl
@@ -2077,7 +2084,7 @@ PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client su
dnl RDP/Remote Desktop access module
dnl
-PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
+PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp2 >= 1.0.1], (RDP/Remote Desktop client support) )
dnl
dnl Real RTSP plugin
@@ -3089,14 +3096,14 @@ PKG_CHECK_MODULES([GL], [gl], [
#ifdef _WIN32
# include <GL/glew.h>
#endif
-#include <GL/gl.h>
+#include <GLES2/gl2.h>
]], [
[int t0 = GL_TEXTURE0;]])
], [
GL_CFLAGS=""
have_gl="yes"
AS_IF([test "${SYS}" != "mingw32"], [
- GL_LIBS="-lGL"
+ GL_LIBS="-lGLESv2"
], [
GL_LIBS="-lopengl32"
])
@@ -3483,15 +3490,14 @@ AC_ARG_ENABLE(mmal_avcodec,
[Use MMAL enabled avcodec libs (default disable)]))
if test "${enable_mmal}" != "no"; then
VLC_SAVE_FLAGS
- LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
- CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
- AC_CHECK_HEADERS(interface/mmal/mmal.h,
- [ AC_CHECK_LIB(bcm_host, vc_tv_unregister_callback_full, [
+ PKG_CHECK_MODULES(BCMHOST_MMAL, [bcm_host mmal vcsm openmaxil egl], [
+ HAVE_MMAL=yes
+ AC_CHECK_HEADERS(interface/mmal/mmal.h,
+ [ AC_CHECK_LIB(bcm_host $BCMHOST_MMAL_LIBS, vc_tv_unregister_callback_full, [
have_mmal="yes"
- VLC_ADD_PLUGIN([mmal])
- VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
- VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
- VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif -lvchiq_arm -lvcsm ]) ], [
+ VLC_ADD_PLUGIN([bcm_host mmal vcsm openmaxil egl])
+ VLC_ADD_CFLAGS([bcm_host mmal vcsm openmaxil egl],[$BCMHOST_MMAL_CFLAGS])
+ VLC_ADD_LIBS([bcm_host mmal vcsm openmaxil egl],[$BCMHOST_MMAL_LIBS -lmmal_components]) ], [
AS_IF([test "${enable_mmal}" = "yes"],
[ AC_MSG_ERROR([Cannot find bcm library...]) ],
[ AC_MSG_WARN([Cannot find bcm library...]) ])
@@ -3500,6 +3506,10 @@ if test "${enable_mmal}" != "no"; then
] , [ AS_IF([test "${enable_mmal}" = "yes"],
[ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
[ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
+ ],:[
+ AC_MSG_WARN([${BCMHOST_PKG_ERRORS}: userland graphics not available.])
+ HAVE_MMAL=NO
+ ])
VLC_RESTORE_FLAGS
fi
AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
--
2.38.1

View File

@@ -0,0 +1,61 @@
From: Vincent Davis Jr <vince@underview.tech>
Date: Fri, 07 Jan 2022 07:01:47 PM CST
Subject: [PATCH] Fix EGL macro undeclared and EGLImageKHR
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches to enable
raspiberry pi support.
* Fixes compiler issues related to EGL macro constant/enum value type not being defined
* Updates EGLImage to EGLImageKHR
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
diff --git a/modules/hw/mmal/converter_mmal.c b/modules/hw/mmal/converter_mmal.c
index f31cb81d8..426af668b 100644
--- a/modules/hw/mmal/converter_mmal.c
+++ b/modules/hw/mmal/converter_mmal.c
@@ -28,6 +28,34 @@
#define TRACE_ALL 0
+// Pass Yocto related build errors
+#define EGL_LINUX_DMA_BUF_EXT 0x3270
+#define EGL_LINUX_DRM_FOURCC_EXT 0x3271
+#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272
+#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273
+#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274
+#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275
+#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276
+#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277
+#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278
+#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279
+#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A
+#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B
+#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C
+#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
+#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
+#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443
+#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444
+#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445
+#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446
+#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447
+#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448
+#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440
+#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441
+#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442
+#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449
+#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A
+
typedef struct mmal_gl_converter_s
{
EGLint drm_fourcc;
@@ -199,7 +227,7 @@ static tex_context_t * get_tex_context(const opengl_tex_converter_t * const tc,
*a = EGL_NONE;
- const EGLImage image = tc->gl->egl.createImageKHR(tc->gl, EGL_LINUX_DMA_BUF_EXT, NULL, attribs);
+ const EGLImageKHR image = tc->gl->egl.createImageKHR(tc->gl, EGL_LINUX_DMA_BUF_EXT, NULL, attribs);
if (!image) {
msg_Err(tc, "Failed to import fd %d: Err=%#x", fd, tc->vt->GetError());
goto fail;

View File

@@ -0,0 +1,43 @@
From 85f6603aca1d174848b42e696a4cff8af57613d6 Mon Sep 17 00:00:00 2001
From: Vincent Davis Jr <vince@underview.tech>
Date: Thu, 8 Dec 2022 23:38:36 -0600
Subject: [PATCH] codec: omxil_core replace /opt/vc path with /usr/lib
Upstream-Status: Inappropriate
RPI-Distro repo clones original VLC and applies patches to enable
raspiberry pi support.
Configures omxil_core.c for OE usages as libbcm_host.so
and libopenmaxil.so are located in a different location.
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
---
modules/codec/omxil/omxil_core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/codec/omxil/omxil_core.c b/modules/codec/omxil/omxil_core.c
index 5098f517a..5922d9034 100644
--- a/modules/codec/omxil/omxil_core.c
+++ b/modules/codec/omxil/omxil_core.c
@@ -56,7 +56,7 @@ static const char *ppsz_dll_list[] =
#if defined(USE_IOMX)
"libiomx.so", /* Not used when using IOMX, the lib should already be loaded */
#elif defined(RPI_OMX)
- "/opt/vc/lib/libopenmaxil.so", /* Broadcom IL core */
+ "/usr/lib/libopenmaxil.so", /* Broadcom IL core */
#elif 1
"libOMX_Core.so", /* TI OMAP IL core */
"libOmxCore.so", /* Qualcomm IL core */
@@ -70,7 +70,7 @@ static const char *ppsz_dll_list[] =
#ifdef RPI_OMX
static const char *ppsz_extra_dll_list[] =
{
- "/opt/vc/lib/libbcm_host.so", /* Broadcom host library */
+ "/usr/lib/libbcm_host.so", /* Broadcom host library */
0
};
#endif
--
2.38.1

View File

@@ -0,0 +1,60 @@
From 377a67af6c3f7c38f6f7ba24f042ba1a6cfd3f24 Mon Sep 17 00:00:00 2001
From: Vincent Davis Jr <vince@underview.tech>
Date: Fri, 9 Dec 2022 00:21:43 -0600
Subject: [PATCH] use GLESv2 headers over GL headers
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches to enable
raspiberry pi support.
We utilize GLESv2 during compilation. Patches ensures
we utilize headers for it.
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
---
modules/video_output/opengl/converter.h | 12 +++---------
modules/visualization/glspectrum.c | 4 +++-
2 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/modules/video_output/opengl/converter.h b/modules/video_output/opengl/converter.h
index 7000e1f38..a3fe32671 100644
--- a/modules/video_output/opengl/converter.h
+++ b/modules/video_output/opengl/converter.h
@@ -41,15 +41,9 @@
# include <OpenGLES/ES2/glext.h>
# endif
#else /* !defined (__APPLE__) */
-# if defined (USE_OPENGL_ES2)
-# include <GLES2/gl2.h>
-# include <GLES2/gl2ext.h>
-# else
-# ifdef _WIN32
-# include <GL/glew.h>
-# endif
-# include <GL/gl.h>
-# endif
+#define USE_OPENGL_ES2
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
#endif
#define VLCGL_PICTURE_MAX 128
diff --git a/modules/visualization/glspectrum.c b/modules/visualization/glspectrum.c
index 06f8d1bdf..470080b1a 100644
--- a/modules/visualization/glspectrum.c
+++ b/modules/visualization/glspectrum.c
@@ -37,7 +37,9 @@
#ifdef __APPLE__
# include <OpenGL/gl.h>
#else
-# include <GL/gl.h>
+#define USE_OPENGL_ES2
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
#endif
#include <math.h>
--
2.38.1

View File

@@ -0,0 +1,149 @@
From 5f1bb5889d838719e381350b25c00ef3a75d0e02 Mon Sep 17 00:00:00 2001
From: Vincent Davis Jr <vince@underview.tech>
Date: Fri, 9 Dec 2022 01:07:55 -0600
Subject: [PATCH] modules: remove glspectrum usage
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches to enable
raspiberry pi support.
The glspectrum modules requries OpenGL
while we only want to utilize GLESv2.
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
---
modules/Makefile.in | 24 ------------------------
modules/visualization/Makefile.am | 10 ----------
2 files changed, 34 deletions(-)
diff --git a/modules/Makefile.in b/modules/Makefile.in
index bde45db53..c9c4342ad 100644
--- a/modules/Makefile.in
+++ b/modules/Makefile.in
@@ -481,7 +481,6 @@ TESTS = hpack_test$(EXEEXT) hpackenc_test$(EXEEXT) \
@HAVE_WIN32_FALSE@am__append_247 = $(X_LIBS) $(X_PRE_LIBS) -lX11
@HAVE_DARWIN_FALSE@@HAVE_WIN32_FALSE@am__append_248 = $(X_LIBS) $(X_PRE_LIBS) -lX11
@HAVE_EVAS_TRUE@am__append_249 = libevas_plugin.la
-@HAVE_GL_TRUE@am__append_250 = libglspectrum_plugin.la
@ENABLE_SOUT_TRUE@@HAVE_GCRYPT_TRUE@am__append_251 = libaccess_output_livehttp_plugin.la
@ENABLE_SOUT_TRUE@am__append_252 = libaccess_output_shout_plugin.la \
@ENABLE_SOUT_TRUE@ libaccess_output_srt_plugin.la \
@@ -2028,13 +2027,7 @@ libgles2_plugin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(libgles2_plugin_la_CFLAGS) $(CFLAGS) \
$(libgles2_plugin_la_LDFLAGS) $(LDFLAGS) -o $@
-libglspectrum_plugin_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
-am_libglspectrum_plugin_la_OBJECTS = visualization/glspectrum.lo \
- visualization/visual/fft.lo visualization/visual/window.lo
-libglspectrum_plugin_la_OBJECTS = \
- $(am_libglspectrum_plugin_la_OBJECTS)
-@HAVE_GL_TRUE@am_libglspectrum_plugin_la_rpath = -rpath $(visudir)
libglwin32_plugin_la_DEPENDENCIES = libchroma_copy.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_5)
am__objects_23 = \
@@ -6507,7 +6500,6 @@ am__depfiles_remade = \
video_splitter/$(DEPDIR)/clone.Plo \
video_splitter/$(DEPDIR)/libpanoramix_plugin_la-panoramix.Plo \
video_splitter/$(DEPDIR)/wall.Plo \
- visualization/$(DEPDIR)/glspectrum.Plo \
visualization/$(DEPDIR)/libgoom_plugin_la-goom.Plo \
visualization/$(DEPDIR)/libprojectm_plugin_la-projectm.Plo \
visualization/$(DEPDIR)/libvsxu_plugin_la-vsxu.Plo \
@@ -6731,7 +6723,6 @@ SOURCES = $(liba52_plugin_la_SOURCES) $(libaa_plugin_la_SOURCES) \
$(libglconv_vaapi_x11_plugin_la_SOURCES) \
$(libglconv_vdpau_plugin_la_SOURCES) \
$(libgles2_plugin_la_SOURCES) \
- $(libglspectrum_plugin_la_SOURCES) \
$(libglwin32_plugin_la_SOURCES) $(libglx_plugin_la_SOURCES) \
$(libgme_plugin_la_SOURCES) $(libgnutls_plugin_la_SOURCES) \
$(libgoom_plugin_la_SOURCES) $(libgradfun_plugin_la_SOURCES) \
@@ -7130,7 +7121,6 @@ DIST_SOURCES = $(liba52_plugin_la_SOURCES) $(libaa_plugin_la_SOURCES) \
$(libglconv_vaapi_x11_plugin_la_SOURCES) \
$(libglconv_vdpau_plugin_la_SOURCES) \
$(libgles2_plugin_la_SOURCES) \
- $(libglspectrum_plugin_la_SOURCES) \
$(libglwin32_plugin_la_SOURCES) $(libglx_plugin_la_SOURCES) \
$(libgme_plugin_la_SOURCES) $(libgnutls_plugin_la_SOURCES) \
$(libgoom_plugin_la_SOURCES) $(libgradfun_plugin_la_SOURCES) \
@@ -12696,13 +12686,6 @@ libevent_thread_la_LDFLAGS = -static
visudir = $(pluginsdir)/visualization
visu_LTLIBRARIES = $(am__append_250) $(LTLIBgoom) $(LTLIBprojectm) \
libvisual_plugin.la $(LTLIBvsxu)
-libglspectrum_plugin_la_SOURCES = \
- visualization/glspectrum.c \
- visualization/visual/fft.c visualization/visual/fft.h \
- visualization/visual/window.c visualization/visual/window.h \
- visualization/visual/window_presets.h
-
-libglspectrum_plugin_la_LIBADD = $(GL_LIBS) $(LIBM)
libgoom_plugin_la_SOURCES = visualization/goom.c
libgoom_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) $(GOOM_CFLAGS)
libgoom_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(visudir)'
@@ -15715,8 +15698,6 @@ visualization/$(am__dirstamp):
visualization/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) visualization/$(DEPDIR)
@: > visualization/$(DEPDIR)/$(am__dirstamp)
-visualization/glspectrum.lo: visualization/$(am__dirstamp) \
- visualization/$(DEPDIR)/$(am__dirstamp)
visualization/visual/$(am__dirstamp):
@$(MKDIR_P) visualization/visual
@: > visualization/visual/$(am__dirstamp)
@@ -15728,8 +15709,6 @@ visualization/visual/fft.lo: visualization/visual/$(am__dirstamp) \
visualization/visual/window.lo: visualization/visual/$(am__dirstamp) \
visualization/visual/$(DEPDIR)/$(am__dirstamp)
-libglspectrum_plugin.la: $(libglspectrum_plugin_la_OBJECTS) $(libglspectrum_plugin_la_DEPENDENCIES) $(EXTRA_libglspectrum_plugin_la_DEPENDENCIES)
- $(AM_V_CCLD)$(LINK) $(am_libglspectrum_plugin_la_rpath) $(libglspectrum_plugin_la_OBJECTS) $(libglspectrum_plugin_la_LIBADD) $(LIBS)
video_output/opengl/libglwin32_plugin_la-vout_helper.lo: \
video_output/opengl/$(am__dirstamp) \
video_output/opengl/$(DEPDIR)/$(am__dirstamp)
@@ -21420,7 +21399,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@video_splitter/$(DEPDIR)/clone.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@video_splitter/$(DEPDIR)/libpanoramix_plugin_la-panoramix.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@video_splitter/$(DEPDIR)/wall.Plo@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@visualization/$(DEPDIR)/glspectrum.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@visualization/$(DEPDIR)/libgoom_plugin_la-goom.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@visualization/$(DEPDIR)/libprojectm_plugin_la-projectm.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@visualization/$(DEPDIR)/libvsxu_plugin_la-vsxu.Plo@am__quote@ # am--include-marker
@@ -30324,7 +30302,6 @@ distclean: distclean-recursive
-rm -f video_splitter/$(DEPDIR)/clone.Plo
-rm -f video_splitter/$(DEPDIR)/libpanoramix_plugin_la-panoramix.Plo
-rm -f video_splitter/$(DEPDIR)/wall.Plo
- -rm -f visualization/$(DEPDIR)/glspectrum.Plo
-rm -f visualization/$(DEPDIR)/libgoom_plugin_la-goom.Plo
-rm -f visualization/$(DEPDIR)/libprojectm_plugin_la-projectm.Plo
-rm -f visualization/$(DEPDIR)/libvsxu_plugin_la-vsxu.Plo
@@ -31722,7 +31699,6 @@ maintainer-clean: maintainer-clean-recursive
-rm -f video_splitter/$(DEPDIR)/clone.Plo
-rm -f video_splitter/$(DEPDIR)/libpanoramix_plugin_la-panoramix.Plo
-rm -f video_splitter/$(DEPDIR)/wall.Plo
- -rm -f visualization/$(DEPDIR)/glspectrum.Plo
-rm -f visualization/$(DEPDIR)/libgoom_plugin_la-goom.Plo
-rm -f visualization/$(DEPDIR)/libprojectm_plugin_la-projectm.Plo
-rm -f visualization/$(DEPDIR)/libvsxu_plugin_la-vsxu.Plo
diff --git a/modules/visualization/Makefile.am b/modules/visualization/Makefile.am
index 10619e030..aafc97f87 100644
--- a/modules/visualization/Makefile.am
+++ b/modules/visualization/Makefile.am
@@ -1,16 +1,6 @@
visudir = $(pluginsdir)/visualization
visu_LTLIBRARIES =
-libglspectrum_plugin_la_SOURCES = \
- visualization/glspectrum.c \
- visualization/visual/fft.c visualization/visual/fft.h \
- visualization/visual/window.c visualization/visual/window.h \
- visualization/visual/window_presets.h
-libglspectrum_plugin_la_LIBADD = $(GL_LIBS) $(LIBM)
-if HAVE_GL
-visu_LTLIBRARIES += libglspectrum_plugin.la
-endif
-
libgoom_plugin_la_SOURCES = visualization/goom.c
libgoom_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) $(GOOM_CFLAGS)
libgoom_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(visudir)'
--
2.38.1

View File

@@ -0,0 +1,43 @@
From fd4d233757cc46cd89f68b45ec4b059940dd84ae Mon Sep 17 00:00:00 2001
From: Vincent Davis Jr <vince@underview.tech>
Date: Fri, 9 Dec 2022 19:58:11 -0600
Subject: [PATCH] codec: omxil_core.h fix multiple definition of
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches
to enable raspiberry pi support.
Issue occurs during compilation as
* pf_enable_graphic_buffers
* pf_get_graphic_buffer_usage
* pf_get_hal_format
Apears to be defined multiple times as the omxil_core.h
is included in multiple files.
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
---
modules/codec/omxil/omxil_core.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/codec/omxil/omxil_core.h b/modules/codec/omxil/omxil_core.h
index ac3db510b..f6e42f5ed 100644
--- a/modules/codec/omxil/omxil_core.h
+++ b/modules/codec/omxil/omxil_core.h
@@ -34,9 +34,9 @@ extern OMX_ERRORTYPE (*pf_component_enum)(OMX_STRING, OMX_U32, OMX_U32);
extern OMX_ERRORTYPE (*pf_get_roles_of_component)(OMX_STRING, OMX_U32 *, OMX_U8 **);
/* Extra IOMX android functions. Can be NULL if we don't link with libiomx */
-OMX_ERRORTYPE (*pf_enable_graphic_buffers)(OMX_HANDLETYPE, OMX_U32, OMX_BOOL);
-OMX_ERRORTYPE (*pf_get_graphic_buffer_usage)(OMX_HANDLETYPE, OMX_U32, OMX_U32*);
-OMX_ERRORTYPE (*pf_get_hal_format) (const char *, int *);
+extern OMX_ERRORTYPE (*pf_enable_graphic_buffers)(OMX_HANDLETYPE, OMX_U32, OMX_BOOL);
+extern OMX_ERRORTYPE (*pf_get_graphic_buffer_usage)(OMX_HANDLETYPE, OMX_U32, OMX_U32*);
+extern OMX_ERRORTYPE (*pf_get_hal_format) (const char *, int *);
int InitOmxCore(vlc_object_t *p_this);
void DeinitOmxCore(void);
--
2.38.1

View File

@@ -0,0 +1,36 @@
From 34e4f4dad923095989ccb0ab8efb883c592bdbfd Mon Sep 17 00:00:00 2001
From: Vincent Davis Jr <vince@underview.tech>
Date: Fri, 9 Dec 2022 20:04:27 -0600
Subject: [PATCH] remove xorg related link libs
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches
to enable raspiberry pi support.
If x11 isn't defined in DISTRO_FEATURES
required xorg related libs are not included
in recipe-sysroot resulting in compilation
failure.
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
---
modules/hw/mmal/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/hw/mmal/Makefile.am b/modules/hw/mmal/Makefile.am
index 4abe68e2e..86dad2c2d 100644
--- a/modules/hw/mmal/Makefile.am
+++ b/modules/hw/mmal/Makefile.am
@@ -8,7 +8,7 @@ libmmal_vout_plugin_la_SOURCES = vout.c mmal_cma.c mmal_picture.c subpic.c\
mmal_cma.h mmal_picture.h subpic.h transform_ops.h\
mmal_piccpy_neon.S
libmmal_vout_plugin_la_CFLAGS = $(AM_CFLAGS)
-libmmal_vout_plugin_la_LDFLAGS = $(AM_LDFLAGS) -lm -lX11 -lXrandr
+libmmal_vout_plugin_la_LDFLAGS = $(AM_LDFLAGS) -lm
libmmal_vout_plugin_la_LIBADD = $(LIBS_mmal)
mmal_LTLIBRARIES = libmmal_vout_plugin.la
--
2.38.1

View File

@@ -0,0 +1,97 @@
From 28917a258a4173af0abda0eef7faef5cbf95f123 Mon Sep 17 00:00:00 2001
From: Vincent Davis Jr <vince@underview.tech>
Date: Fri, 9 Dec 2022 21:28:48 -0600
Subject: [PATCH] vo: Makefile.am exclude libgl_plugin
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches
to enable raspiberry pi support.
In the situation where opengl isn't included in
DISTRO_FEATURES. We need to exclude the opengl
vout plugin from being built.
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
---
modules/video_output/Makefile.am | 64 --------------------------------
1 file changed, 64 deletions(-)
diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am
index 78c06cfc4..14a330e68 100644
--- a/modules/video_output/Makefile.am
+++ b/modules/video_output/Makefile.am
@@ -57,70 +57,6 @@ if HAVE_TVOS
vout_LTLIBRARIES += libvout_ios_plugin.la libglconv_cvpx_plugin.la
endif
-### OpenGL ###
-libgles2_plugin_la_SOURCES = $(OPENGL_COMMONSOURCES) video_output/opengl/display.c
-libgles2_plugin_la_CFLAGS = $(AM_CFLAGS) $(GLES2_CFLAGS) -DUSE_OPENGL_ES2 $(OPENGL_COMMONCLFAGS)
-libgles2_plugin_la_LIBADD = $(GLES2_LIBS) $(LIBM) $(OPENGL_COMMONLIBS)
-libgles2_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(voutdir)'
-
-EXTRA_LTLIBRARIES += libgles2_plugin.la
-vout_LTLIBRARIES += $(LTLIBgles2)
-
-libgl_plugin_la_SOURCES = $(OPENGL_COMMONSOURCES) video_output/opengl/display.c
-libgl_plugin_la_CFLAGS = $(AM_CFLAGS) $(GL_CFLAGS) $(OPENGL_COMMONCLFAGS)
-libgl_plugin_la_LIBADD = $(LIBM) $(OPENGL_COMMONLIBS)
-if HAVE_WIN32
-libgl_plugin_la_CFLAGS += -DHAVE_GL_CORE_SYMBOLS
-libgl_plugin_la_LIBADD += $(GL_LIBS)
-endif
-
-libglconv_vaapi_wl_plugin_la_SOURCES = video_output/opengl/converter_vaapi.c \
- video_output/opengl/converter.h \
- hw/vaapi/vlc_vaapi.c hw/vaapi/vlc_vaapi.h
-libglconv_vaapi_wl_plugin_la_CFLAGS = $(AM_CFLAGS) $(GL_CFLAGS) -DHAVE_VA_WL $(LIBVA_WL_CFLAGS)
-libglconv_vaapi_wl_plugin_la_LIBADD = $(LIBVA_LIBS) $(LIBVA_EGL_LIBS) \
- $(LIBVA_WL_LIBS)
-
-libglconv_vaapi_x11_plugin_la_SOURCES = $(libglconv_vaapi_wl_plugin_la_SOURCES)
-libglconv_vaapi_x11_plugin_la_CFLAGS = $(AM_CFLAGS) -DHAVE_VA_X11
-libglconv_vaapi_x11_plugin_la_LIBADD = $(LIBVA_LIBS) $(LIBVA_EGL_LIBS) \
- $(LIBVA_X11_LIBS) $(X_LIBS) $(X_PRE_LIBS) -lX11
-
-libglconv_vaapi_drm_plugin_la_SOURCES = $(libglconv_vaapi_wl_plugin_la_SOURCES)
-libglconv_vaapi_drm_plugin_la_CFLAGS = $(AM_CFLAGS) -DHAVE_VA_DRM
-libglconv_vaapi_drm_plugin_la_LIBADD = $(LIBVA_LIBS) $(LIBVA_EGL_LIBS) \
- $(LIBVA_DRM_LIBS)
-
-libglconv_vdpau_plugin_la_SOURCES = video_output/opengl/converter_vdpau.c \
- video_output/opengl/converter.h hw/vdpau/vlc_vdpau.h
-libglconv_vdpau_plugin_la_CFLAGS = $(AM_CFLAGS) $(VDPAU_CFLAGS)
-libglconv_vdpau_plugin_la_LIBADD = $(LIBDL) libvlc_vdpau.la $(X_LIBS) $(X_PRE_LIBS) -lX11
-
-if HAVE_GL
-vout_LTLIBRARIES += libgl_plugin.la
-if HAVE_EGL
-if HAVE_VAAPI
-if HAVE_WAYLAND_EGL
-if HAVE_VAAPI_WL
-vout_LTLIBRARIES += libglconv_vaapi_wl_plugin.la
-endif
-endif
-if HAVE_XCB
-if HAVE_VAAPI_X11
-vout_LTLIBRARIES += libglconv_vaapi_x11_plugin.la
-endif
-endif
-if HAVE_VAAPI_DRM
-vout_LTLIBRARIES += libglconv_vaapi_drm_plugin.la
-endif
-endif
-endif # HAVE_EGL
-
-if HAVE_VDPAU
-vout_LTLIBRARIES += libglconv_vdpau_plugin.la
-endif
-endif # HAVE_GL
-
### XCB ###
libvlc_xcb_events_la_SOURCES = \
video_output/xcb/events.c video_output/xcb/events.h
--
2.38.1

View File

@@ -0,0 +1,59 @@
From 35276c4b02b9114436108e74727d192f1e21f239 Mon Sep 17 00:00:00 2001
From: Vincent Davis Jr <vince@underview.tech>
Date: Fri, 9 Dec 2022 23:31:33 -0600
Subject: [PATCH] vo: converter_vaapi Fix EGL macro undeclared
Upstream-Status: Inappropriate
RPI-Distro repo forks original vlc and applies patches to enable
raspiberry pi support.
Fixes compiler issues related to EGL macro constant/enum value type
not being defined
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
---
modules/video_output/opengl/converter_vaapi.c | 27 +++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/modules/video_output/opengl/converter_vaapi.c b/modules/video_output/opengl/converter_vaapi.c
index cd842f711..59245fe4c 100644
--- a/modules/video_output/opengl/converter_vaapi.c
+++ b/modules/video_output/opengl/converter_vaapi.c
@@ -55,6 +55,33 @@
#define DRM_FORMAT_MOD_INVALID fourcc_mod_code(NONE, DRM_FORMAT_RESERVED)
+#define EGL_LINUX_DMA_BUF_EXT 0x3270
+#define EGL_LINUX_DRM_FOURCC_EXT 0x3271
+#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272
+#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273
+#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274
+#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275
+#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276
+#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277
+#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278
+#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279
+#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A
+#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B
+#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C
+#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
+#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
+#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443
+#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444
+#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445
+#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446
+#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447
+#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448
+#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440
+#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441
+#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442
+#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449
+#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A
+
struct priv
{
struct vlc_vaapi_instance *vainst;
--
2.38.1

View File

@@ -0,0 +1,59 @@
From 4caba7560aec54f6d944accd1a8d216e8d9b1d92 Mon Sep 17 00:00:00 2001
From: Vincent Davis Jr <vince@underview.tech>
Date: Tue, 14 Nov 2023 20:17:11 -0500
Subject: [PATCH] po: Fix typos in oc.po for gettext compatibility
Upstream-Status: Inappropriate
Ws moved upstream, but upstream patch couldn't be applied.
https://code.videolan.org/videolan/vlc/-/commit/9d67e20c2edd25251b46d1780a7973b44ac5e5ba
gettext-0.22 became stricter and started to validate format strings. Fix
the typos.
Bug: https://bugs.gentoo.org/909015
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
---
po/oc.po | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/po/oc.po b/po/oc.po
index 86f2ed8a1..ce68c581f 100644
--- a/po/oc.po
+++ b/po/oc.po
@@ -5298,18 +5298,18 @@ msgstr "Comanda+"
#: src/misc/update.c:482
#, c-format
msgid "%.1f GiB"
-msgstr "%.lf Gio"
+msgstr "%.1f Gio"
#: src/misc/update.c:484
#, c-format
msgid "%.1f MiB"
-msgstr "%.lf Mio"
+msgstr "%.1f Mio"
#: src/misc/update.c:486 modules/gui/macosx/VLCPlaylistInfo.m:138
#: modules/gui/macosx/VLCPlaylistInfo.m:140
#, c-format
msgid "%.1f KiB"
-msgstr "%.lf Kio"
+msgstr "%.1f Kio"
#: src/misc/update.c:488
#, c-format
@@ -33071,7 +33071,7 @@ msgstr "Lista del gestionari de mèdias"
#, fuzzy
#~ msgid "%.1f kB"
-#~ msgstr "%.lf Gio"
+#~ msgstr "%.1f Gio"
#, fuzzy
#~ msgid "Speed"
--
2.34.1

View File

@@ -0,0 +1,165 @@
DESCRIPTION = "Video player and streamer - davinci edition"
HOMEPAGE = "http://www.videolan.org"
SECTION = "multimedia"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "\
git://git@github.com/RPi-Distro/vlc;protocol=https;branch=buster-rpt \
file://0001-configure-fix-linking-on-RISC-V-ISA.patch \
file://0002-Revert-configure-Require-libmodplug-0.8.9.patch \
file://0003-CVE-2022-41325.patch \
file://0004-mmal_20.patch \
file://0005-mmal_exit_fix.patch \
file://0006-mmal_chain.patch \
file://0007-armv6.patch \
file://0008-configure-Disable-incompatible-function-pointer-type.patch \
file://0009-demux-dash-include-cstdint-needed-for-uint64_t.patch \
file://2001-fix-luaL-checkint.patch \
file://2002-use-vorbisidec.patch \
file://3001-configure.ac-setup-for-OE-usage.patch \
file://3002-fix-EGL-macro-undeclared-and-EGLImageKHR.patch \
file://3003-codec-omxil_core-replace-opt-vc-path-with-usr-lib.patch \
file://3004-use-GLESv2-headers-over-GL-headers.patch \
file://3005-modules-remove-glspectrum-usage.patch \
file://3006-codec-omxil_core.h-fix-multiple-definition-of.patch \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'file://3007-remove-xorg-related-link-libs.patch', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '', 'file://3008-vo-Makefile.am-exclude-libgl_plugin.patch', d)} \
file://3009-vo-converter_vaapi-Fix-EGL-macro-undeclared.patch \
file://3010-po-Fix-typos-in-oc.po-for-gettext-compatibility.patch \
"
SRCREV = "b276eb0d7bc3213363e97dbb681ef7c927be6c73"
S = "${WORKDIR}/git"
PROVIDES = "vlc"
RPROVIDES:${PN} = "${PROVIDES}"
DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native \
dbus libxml2 gnutls tremor faad2 ffmpeg flac alsa-lib libidn \
jpeg xz libmodplug mpeg2dec libmtp libopus orc libsamplerate0 \
avahi libusb1 schroedinger taglib tiff"
inherit autotools gettext pkgconfig mime-xdg
export BUILDCC = "${BUILD_CC} -std=c11"
EXTRA_OECONF = "\
--enable-run-as-root \
--enable-xvideo \
--disable-lua \
--disable-screen \
--disable-caca \
--enable-vlm \
--enable-tremor \
--disable-aa \
--disable-faad \
--enable-dbus \
--without-contrib \
--without-kde-solid \
--enable-realrtsp \
--disable-libtar \
--enable-avcodec \
--disable-css \
"
PACKAGECONFIG ?= "\
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'mmal', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2', '', d)} \
${@bb.utils.contains_any('DISTRO_FEATURES', 'x11', 'notify', '', d)} \
live555 dv1394 fontconfig fluidsynth freetype png udev \
x264 alsa harfbuzz jack neon fribidi dvbpsi a52 v4l2 \
"
PACKAGECONFIG[mmal] = "--enable-omxil --enable-omxil-vout --enable-rpi-omxil --enable-mmal --enable-mmal-avcodec,,userland"
PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264"
PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
PACKAGECONFIG[a52] = "--enable-a52,--disable-a52,liba52"
PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
PACKAGECONFIG[live555] = "--enable-live555 LIVE555_PREFIX=${STAGING_DIR_HOST}${prefix},--disable-live555,live555"
PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass"
PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc,libpostproc"
PACKAGECONFIG[libva] = "--enable-libva,--disable-libva,libva"
#PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv"
PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex"
PACKAGECONFIG[gstreamer] = "--enable-gst-decode,--disable-gst-decode,gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx, libvpx"
#PACKAGECONFIG[freerdp] = "--enable-freerdp,--disable-freerdp, freerdp"
PACKAGECONFIG[dvbpsi] = "--enable-dvbpsi,--disable-dvbpsi, libdvbpsi"
#PACKAGECONFIG[samba] = "--enable-smbclient,--disable-smbclient, samba"
PACKAGECONFIG[upnp] = "--enable-upnp,--disable-upnp,libupnp"
PACKAGECONFIG[dvdnav] = "--enable-dvdnav,--disable-dvdnav,libdvdnav libdvdcss"
PACKAGECONFIG[sftp] = "--enable-sftp,--disable-sftp,libssh2"
PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis libogg"
PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libvorbis libogg"
PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394"
PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libavc1394"
PACKAGECONFIG[svg] = "--enable-svg,--disable-svg,librsvg"
PACKAGECONFIG[svgdec] = "--enable-svgdec,--disable-svgdec,librsvg cairo"
PACKAGECONFIG[notify] = "--enable-notify,--disable-notify, libnotify gtk+3"
PACKAGECONFIG[fontconfig] = "--enable-fontconfig,--disable-fontconfig, fontconfig"
PACKAGECONFIG[freetype] = "--enable-freetype,--disable-freetype, freetype"
#PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread, libdvdread libdvdcss"
PACKAGECONFIG[vnc] = "--enable-vnc,--disable-vnc, libvncserver"
PACKAGECONFIG[x11] = "--with-x --enable-xcb,--without-x --disable-xcb, xcb-util-keysyms libxpm libxinerama"
PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
#PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
#PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native"
PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,virtual/libgles2"
#PACKAGECONFIG[dca] = "--enable-dca,--disable-dca,libdca"
PACKAGECONFIG[fribidi] = "--enable-fribidi,,fribidi"
PACKAGECONFIG[gnutls] = "--enable-gnutls,,gnutls"
PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,,fluidsynth"
PACKAGECONFIG[harfbuzz] = "--enable-harfbuzz,--disable-harfbuzz,harfbuzz"
PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev"
PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,"
PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus libogg"
PACKAGECONFIG[ncurses] = "--enable-ncurses,--disable-ncurses,ncurses"
PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
PACKAGECONFIG[sdl-image] = "--enable-sdl-image,,libsdl-image"
PACKAGECONFIG[v4l2] = "--enable-v4l2,,v4l-utils"
TARGET_CFLAGS:append = " -I${STAGING_INCDIR}/drm"
TARGET_LDFLAGS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '-lGLESv2', '', d)}"
# Ensures the --enable-mmal-avcodec flag is available for usage
do_configure:prepend() {
olddir=`pwd`
cd ${S}
./bootstrap
cd $olddir
}
# This recipe packages vlc as a library as well, so qt4 dependencies
# can be avoided when only the library is installed.
PACKAGES =+ "libvlc"
LEAD_SONAME_libvlc = "libvlc.so.5"
FILES:libvlc = "${libdir}/lib*.so.*"
FILES:${PN} += "\
${bindir}/vlc \
${libdir}/vlc \
${datadir}/applications \
${datadir}/vlc \
${datadir}/icons \
${datadir}/metainfo/vlc.appdata.xml \
"
FILES:${PN}-dbg += "\
${libdir}/vlc/*/.debug \
${libdir}/vlc/plugins/*/.debug \
"
FILES:${PN}-staticdev += "\
${libdir}/vlc/plugins/*/*.a \
${libdir}/vlc/libcompat.a \
"
# Only enable it for rpi class of machines
COMPATIBLE_HOST = "null"
COMPATIBLE_HOST:rpi = "(.*)"
INSANE_SKIP:${PN} = "dev-so"

View File

@@ -1,3 +1,3 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
COMPATIBLE_MACHINE_rpi = "(null)"
COMPATIBLE_MACHINE:rpi = "(null)"

View File

@@ -1 +1 @@
RDEPENDS_packagegroup-meta-oe-kernel_remove_rpi = "bpftool"
RDEPENDS:packagegroup-meta-oe-kernel:remove:rpi = "bpftool"

View File

@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/adafruit/Adafruit_Blinka"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=660e614bc7efb0697cc793d8a22a55c2"
SRC_URI = "git://github.com/adafruit/Adafruit_Blinka.git"
SRC_URI = "git://github.com/adafruit/Adafruit_Blinka.git;branch=main;protocol=https"
SRCREV = "dc688f354fe779c9267c208b99f310af87e79272"
S = "${WORKDIR}/git"
@@ -12,7 +12,7 @@ inherit setuptools3
DEPENDS += "python3-setuptools-scm-native"
do_install_append() {
do_install:append() {
# it ships ./bcm283x/pulseio/libgpiod_pulsein which is a prebuilt
# 32bit binary therefore we should make this specific to 32bit rpi machines (based on bcm283x) only
if [ ${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '1', '0', d)} = "0" ]; then
@@ -20,11 +20,14 @@ do_install_append() {
fi
}
RDEPENDS_${PN} += " \
RDEPENDS:${PN} += " \
libgpiod \
python3-adafruit-platformdetect \
python3-adafruit-pureio \
python3-core \
"
RDEPENDS_${PN}_append_rpi = " rpi-gpio"
RDEPENDS:${PN}:append:rpi = " rpi-gpio"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_BusDevice"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec69d6e9e6c85adfb7799d7f8cf044e"
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_BusDevice.git"
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_BusDevice.git;branch=main;protocol=https"
SRCREV = "1bfe8005293205e2f7b2cc498ab5a946f1133b40"
S = "${WORKDIR}/git"
@@ -12,7 +12,8 @@ inherit setuptools3
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS_${PN} += " \
RDEPENDS:${PN} += " \
python3-adafruit-blinka \
python3-core \
"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_Motor"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b72678307cc7c10910b5ef460216af07"
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Motor.git"
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Motor.git;branch=main;protocol=https"
SRCREV = "2251bfc0501d0acfb96c0a43f4f2b4c6a10ca14e"
S = "${WORKDIR}/git"
@@ -12,7 +12,8 @@ inherit setuptools3
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS_${PN} += " \
RDEPENDS:${PN} += " \
python3-adafruit-blinka \
python3-core \
"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_MotorKit"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6ad4a8854b39ad474755ef1aea813bac"
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_MotorKit.git"
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_MotorKit.git;branch=main;protocol=https"
SRCREV = "8c1462b4129b21f6db156d1517abb017bb74b982"
S = "${WORKDIR}/git"
@@ -12,7 +12,7 @@ inherit setuptools3
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS_${PN} += " \
RDEPENDS:${PN} += " \
python3-adafruit-blinka \
python3-adafruit-circuitpython-busdevice \
python3-adafruit-circuitpython-motor \
@@ -20,3 +20,4 @@ RDEPENDS_${PN} += " \
python3-adafruit-circuitpython-register \
python3-core \
"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_PCA9685"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e7eb6b599fb0cfb06485c64cd4242f62"
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_PCA9685.git"
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_PCA9685.git;branch=main;protocol=https"
SRCREV = "2780c4102f4c23fbab252aa1198b61ba7e2d1b2c"
S = "${WORKDIR}/git"
@@ -12,9 +12,10 @@ inherit setuptools3
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS_${PN} += " \
RDEPENDS:${PN} += " \
python3-adafruit-blinka \
python3-adafruit-circuitpython-busdevice \
python3-adafruit-circuitpython-register \
python3-core \
"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

@@ -1,19 +1,19 @@
PACKAGECONFIG_GL_rpi = "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'gl', \
PACKAGECONFIG_GL:rpi = "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'gl', \
bb.utils.contains('DISTRO_FEATURES', 'opengl', 'eglfs gles2', \
'', d), d)}"
PACKAGECONFIG_GL_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', ' kms', '', d)}"
PACKAGECONFIG_GL_append_rpi = " gbm"
PACKAGECONFIG_FONTS_rpi = "fontconfig"
PACKAGECONFIG_append_rpi = " libinput examples tslib xkbcommon"
PACKAGECONFIG_remove_rpi = "tests"
PACKAGECONFIG_GL:append:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', ' kms', '', d)}"
PACKAGECONFIG_GL:append:rpi = " gbm"
PACKAGECONFIG_FONTS:rpi = "fontconfig"
PACKAGECONFIG:append:rpi = " libinput examples tslib xkbcommon"
PACKAGECONFIG:remove:rpi = "tests"
OE_QTBASE_EGLFS_DEVICE_INTEGRATION_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'eglfs_brcm', d)}"
OE_QTBASE_EGLFS_DEVICE_INTEGRATION:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'eglfs_brcm', d)}"
do_configure_prepend_rpi() {
do_configure:prepend:rpi() {
# Add the appropriate EGLFS_DEVICE_INTEGRATION
if [ "${@d.getVar('OE_QTBASE_EGLFS_DEVICE_INTEGRATION')}" != "" ]; then
echo "EGLFS_DEVICE_INTEGRATION = ${OE_QTBASE_EGLFS_DEVICE_INTEGRATION}" >> ${S}/mkspecs/oe-device-extra.pri
fi
}
RDEPENDS_${PN}_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' userland', d)}"
DEPENDS_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' userland', d)}"
RDEPENDS:${PN}:append:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' userland', d)}"
DEPENDS:append:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' userland', d)}"

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@@ -42,10 +42,10 @@ local_conf_header:
reduce_diskspace: |
INHERIT += "rm_work_and_downloads"
standard: |
CONF_VERSION = "1"
CONF_VERSION = "2"
PACKAGE_CLASSES = "package_rpm"
SDKMACHINE = "x86_64"
USER_CLASSES = "buildstats image-mklibs image-prelink"
USER_CLASSES = "buildstats"
PATCHRESOLVE = "noop"
debug-tweaks: |
EXTRA_IMAGE_FEATURES = "debug-tweaks"
@@ -55,7 +55,7 @@ local_conf_header:
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K \
ABORT,/tmp,10M,1K"
HALT,${TMPDIR},100M,1K \
HALT,${DL_DIR},100M,1K \
HALT,${SSTATE_DIR},100M,1K \
HALT,/tmp,10M,1K"

View File

@@ -1,12 +1,6 @@
from oeqa.runtime.cases.parselogs import *
rpi_errors = [
'bcmgenet fd580000.genet: failed to get enet-eee clock',
'bcmgenet fd580000.genet: failed to get enet-wol clock',
'bcmgenet fd580000.genet: failed to get enet clock',
'bcmgenet fd580000.ethernet: failed to get enet-eee clock',
'bcmgenet fd580000.ethernet: failed to get enet-wol clock',
'bcmgenet fd580000.ethernet: failed to get enet clock',
]
ignore_errors['raspberrypi4'] = rpi_errors + common_errors

View File

@@ -5,7 +5,16 @@ LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=c403841ff2837657b2ed8e5bb474ac8d
inherit deploy nopackages
include recipes-bsp/common/raspberrypi-firmware.inc
RPIFW_DATE ?= "20250430"
SRCREV = "bc7f439c234e19371115e07b57c366df59cc1bc7"
SHORTREV = "${@d.getVar("SRCREV", False).__str__()[:7]}"
RPIFW_SRC_URI ?= "https://api.github.com/repos/raspberrypi/firmware/tarball/${SRCREV};downloadfilename=raspberrypi-firmware-${SHORTREV}.tar.gz"
RPIFW_S ?= "${WORKDIR}/raspberrypi-firmware-${SHORTREV}"
SRC_URI = "${RPIFW_SRC_URI}"
SRC_URI[sha256sum] = "2c027debbef53c86c9ff9197d056d501b95f6ad214ad4db00a8a59b947574eb1"
PV = "${RPIFW_DATE}"
INHIBIT_DEFAULT_DEPS = "1"

View File

@@ -7,14 +7,14 @@ INHIBIT_DEFAULT_DEPS = "1"
inherit deploy nopackages
CMDLINE_DWC_OTG ?= "dwc_otg.lpm_enable=0"
CMDLINE_ROOTFS ?= "root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
CMDLINE_ROOT_FSTYPE ?= "rootfstype=ext4"
CMDLINE_ROOT_PARTITION ?= "/dev/mmcblk0p2"
CMDLINE_ROOTFS ?= "root=${CMDLINE_ROOT_PARTITION} ${CMDLINE_ROOT_FSTYPE} rootwait"
CMDLINE_SERIAL ?= "${@oe.utils.conditional("ENABLE_UART", "1", "console=serial0,115200", "", d)}"
CMDLINE_CMA ?= "${@oe.utils.conditional("RASPBERRYPI_CAMERA_V2", "1", "cma=64M", "", d)}"
CMDLINE_CMA ?= "${@oe.utils.conditional("RASPBERRYPI_HD_CAMERA", "1", "cma=64M", "", d)}"
CMDLINE_PITFT ?= "${@bb.utils.contains("MACHINE_FEATURES", "pitft", "fbcon=map:10 fbcon=font:VGA8x8", "", d)}"
# Add the kernel debugger over console kernel command line option if enabled
@@ -27,7 +27,30 @@ CMDLINE_LOGO ?= '${@oe.utils.conditional("DISABLE_RPI_BOOT_LOGO", "1", "logo.nol
# to enable kernel debugging.
CMDLINE_DEBUG ?= ""
# Add a request to isolate processors from the Linux scheduler. ISOLATED_CPUS
# may have the form of a comma separated list of processor numbers "0,1,3", a
# range "0-2", a combination of the two "0-1,3", or a single processor you may
# not specify ALL processors simultaneously
def setup_isolcpus(d):
string = ""
if d.getVar('ISOLATED_CPUS'):
string = 'isolcpus=' + d.getVar('ISOLATED_CPUS')
return string
CMDLINE_ISOL_CPUS ?= "${@setup_isolcpus(d)}"
# Add RNDIS capabilities (must be after rootwait)
# example:
# CMDLINE_RNDIS = "modules-load=dwc2,g_ether g_ether.host_addr=<some MAC
# address> g_ether.dev_addr=<some MAC address>"
# if the MAC addresses are omitted, random values will be used
CMDLINE_RNDIS ?= ""
# That allows to keep the traditional network interface names
CMDLINE_IFNAMES ?= "net.ifnames=0"
CMDLINE = " \
${CMDLINE_ISOL_CPUS} \
${CMDLINE_DWC_OTG} \
${CMDLINE_SERIAL} \
${CMDLINE_ROOTFS} \
@@ -36,10 +59,12 @@ CMDLINE = " \
${CMDLINE_LOGO} \
${CMDLINE_PITFT} \
${CMDLINE_DEBUG} \
${CMDLINE_RNDIS} \
${CMDLINE_IFNAMES} \
"
do_compile() {
echo "${@' '.join('${CMDLINE}'.split())}" > "${WORKDIR}/cmdline.txt"
echo "${@' '.join(d.getVar('CMDLINE').split())}" > "${WORKDIR}/cmdline.txt"
}
do_deploy() {
@@ -49,3 +74,5 @@ do_deploy() {
addtask deploy before do_build after do_install
do_deploy[dirs] += "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -0,0 +1,55 @@
From ce27f7e22b2cd7453a425e08780a338a71301961 Mon Sep 17 00:00:00 2001
From: Leon Anavi <leon.anavi@konsulko.com>
Date: Mon, 20 Nov 2023 15:19:15 +0200
Subject: [PATCH] config.txt: reintroduce start_x
Reintroduce configuration "start_x". Based on the experience with
Yocto/OpenEmbedded layer meta-raspberrypi, it has been observed
that Raspberry Pi 4B 4GB may fail to enable the camera if
"start_x=1" is at the end of the file. Therefore, "start_x=1"
is expected in config.txt template and it has been set to replace
the original occurrence, which is at the middle of the file.
Also update revision and date stamp.
GitHub pull request: https://github.com/Evilpaul/RPi-config/pull/8
Upstream-Status: Submitted
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
---
config.txt | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/config.txt b/config.txt
index 1cf7b29..e28ed02 100644
--- a/config.txt
+++ b/config.txt
@@ -1,7 +1,7 @@
################################################################################
## Raspberry Pi Configuration Settings
##
-## Revision 17, 2021/08/15
+## Revision 18, 2023/11/20
##
## Details taken from the eLinux wiki and official Raspberry Pi documentation.
## For up-to-date information please refer to links below.
@@ -760,6 +760,16 @@
## Camera Settings
################################################################################
+## start_x
+## Set to "1" to enable the camera module.
+##
+## Enabling the camera requires gpu_mem option to be specified with a value
+## of at least 128.
+##
+## Default 0
+##
+#start_x=0
+
## disable_camera_led
## Turn off the red camera led when recording video or taking a still
## picture.
--
2.39.2

View File

@@ -7,8 +7,9 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
COMPATIBLE_MACHINE = "^rpi$"
SRCREV = "648ffc470824c43eb0d16c485f4c24816b32cd6f"
SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=git;branch=master \
SRCREV = "6ac2d832c6c3b208e2669f50ec1abf2c20cb7ff4"
SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=https;branch=master \
file://0001-config.txt-reintroduce-start_x.patch \
"
S = "${WORKDIR}/git"
@@ -29,6 +30,14 @@ GPIO_IR ?= "18"
GPIO_IR_TX ?= "17"
CAN_OSCILLATOR ?= "16000000"
CAN0_INTERRUPT_PIN ?= "25"
CAN1_INTERRUPT_PIN ?= "24"
ENABLE_UART ??= ""
WM8960="${@bb.utils.contains("MACHINE_FEATURES", "wm8960", "1", "0", d)}"
GPIO_SHUTDOWN_PIN ??= ""
inherit deploy nopackages
@@ -103,6 +112,9 @@ do_deploy() {
if [ -n "${HDMI_MODE}" ]; then
sed -i '/#hdmi_mode=/ c\hdmi_mode=${HDMI_MODE}' $CONFIG
fi
if [ -n "${HDMI_CVT}" ]; then
echo 'hdmi_cvt=${HDMI_CVT}' >> $CONFIG
fi
if [ -n "${CONFIG_HDMI_BOOST}" ]; then
sed -i '/#config_hdmi_boost=/ c\config_hdmi_boost=${CONFIG_HDMI_BOOST}' $CONFIG
fi
@@ -169,9 +181,25 @@ do_deploy() {
fi
# UART support
if [ "${ENABLE_UART}" = "1" ]; then
if [ "${ENABLE_UART}" = "1" ] || [ "${ENABLE_UART}" = "0" ]; then
echo "# Enable UART" >>$CONFIG
echo "enable_uart=1" >>$CONFIG
echo "enable_uart=${ENABLE_UART}" >>$CONFIG
elif [ -n "${ENABLE_UART}" ]; then
bbfatal "Invalid value for ENABLE_UART [${ENABLE_UART}]. The value for ENABLE_UART can be 0 or 1."
fi
# U-Boot requires "enable_uart=1" for various boards to operate correctly
# cf https://source.denx.de/u-boot/u-boot/-/blob/v2023.04/arch/arm/mach-bcm283x/Kconfig?ref_type=tags#L65
if [ "${RPI_USE_U_BOOT}" = "1" ] && [ "${ENABLE_UART}" != "1" ]; then
case "${UBOOT_MACHINE}" in
rpi_0_w_defconfig|rpi_3_32b_config|rpi_4_32b_config|rpi_arm64_config)
if [ "${ENABLE_UART}" = "0" ]; then
bbfatal "Invalid configuration: RPI_USE_U_BOOT requires to enable the UART in config.txt for ${MACHINE}"
fi
echo "# U-Boot requires UART" >>$CONFIG
echo "enable_uart=1" >>$CONFIG
;;
esac
fi
# Infrared support
@@ -199,6 +227,12 @@ do_deploy() {
# echo "dtoverlay=imx477" >> $CONFIG
#fi
# Choose Camera Sensor to be used, default imx708 sensor
if [ "${RASPBERRYPI_CAMERA_V3}" = "1" ]; then
echo "# Enable Sony RaspberryPi Camera(imx708)" >> $CONFIG
echo "dtoverlay=imx708" >> $CONFIG
fi
# Waveshare "C" 1024x600 7" Rev2.1 IPS capacitive touch (http://www.waveshare.com/7inch-HDMI-LCD-C.htm)
if [ "${WAVESHARE_1024X600_C_2_1}" = "1" ]; then
echo "# Waveshare \"C\" 1024x600 7\" Rev2.1 IPS capacitive touch screen" >> $CONFIG
@@ -210,7 +244,7 @@ do_deploy() {
fi
# DWC2 USB peripheral support
if [ "${ENABLE_DWC2_PERIPHERAL}" = "1" ]; then
if ([ "${ENABLE_DWC2_PERIPHERAL}" = "1" ] && [ "${ENABLE_DWC2_OTG}" != "1" ]); then
echo "# Enable USB peripheral mode" >> $CONFIG
echo "dtoverlay=dwc2,dr_mode=peripheral" >> $CONFIG
fi
@@ -220,6 +254,12 @@ do_deploy() {
echo "# Enable USB host mode" >> $CONFIG
echo "dtoverlay=dwc2,dr_mode=host" >> $CONFIG
fi
# DWC2 USB OTG support
if ([ "${ENABLE_DWC2_OTG}" = "1" ] && [ "${ENABLE_DWC2_PERIPHERAL}" != "1" ]); then
echo "# Enable USB OTG mode" >> $CONFIG
echo "dtoverlay=dwc2,dr_mode=otg" >> $CONFIG
fi
# AT86RF23X support
if [ "${ENABLE_AT86RF}" = "1" ]; then
@@ -230,12 +270,28 @@ do_deploy() {
# ENABLE DUAL CAN
if [ "${ENABLE_DUAL_CAN}" = "1" ]; then
echo "# Enable DUAL CAN" >>$CONFIG
echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=25" >>$CONFIG
echo "dtoverlay=mcp2515-can1,oscillator=${CAN_OSCILLATOR},interrupt=24" >>$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 CAN
elif [ "${ENABLE_CAN}" = "1" ]; then
echo "# Enable CAN" >>$CONFIG
echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=25" >>$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.
# If I2C is configured and an alternative pin is not configured for
# gpio-shutdown, there is a configuration conflict.
bbfatal "I2C and gpio-shutdown are both enabled and using the same pins!"
fi
echo "# Enable gpio-shutdown" >> $CONFIG
if [ -z "${GPIO_SHUTDOWN_PIN}" ]; then
echo "dtoverlay=gpio-shutdown" >> $CONFIG
else
echo "dtoverlay=gpio-shutdown,gpio_pin=${GPIO_SHUTDOWN_PIN}" >> $CONFIG
fi
fi
# Append extra config if the user has provided any
@@ -251,9 +307,28 @@ do_deploy() {
;;
esac
fi
# WM8960 support
if [ "${WM8960}" = "1" ]; then
echo "# Enable WM8960" >> $CONFIG
echo "dtoverlay=wm8960-soundcard" >> $CONFIG
fi
# W1-GPIO - One-Wire Interface
if [ "${ENABLE_W1}" = "1" ]; then
echo "# Enable One-Wire Interface" >> $CONFIG
echo "dtoverlay=w1-gpio" >> $CONFIG
fi
# Reduce config.txt file size to avoid corruption and
# to boot successfully Raspberry Pi 5. The issue has
# been reported to related projects:
# https://github.com/raspberrypi/firmware/issues/1848
# https://github.com/Evilpaul/RPi-config/issues/9
sed -i '/^##/d' $CONFIG
}
do_deploy_append_raspberrypi3-64() {
do_deploy:append:raspberrypi3-64() {
echo "# have a properly sized image" >> $CONFIG
echo "disable_overscan=1" >> $CONFIG
@@ -261,6 +336,12 @@ do_deploy_append_raspberrypi3-64() {
echo "dtparam=audio=on" >> $CONFIG
}
do_deploy:append() {
if grep -q -E '^.{80}.$' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt; then
bbwarn "config.txt contains lines longer than 80 characters, this is not supported"
fi
}
addtask deploy before do_build after do_install
do_deploy[dirs] += "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"

View File

@@ -1,9 +1,9 @@
RPIFW_DATE ?= "20210421"
SRCREV ?= "2ac4de4eaac5c1d1b25acec4a5e0a9fdb16f0c91"
RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/${SRCREV}.tar.gz;downloadfilename=raspberrypi-firmware-${SRCREV}.tar.gz"
RPIFW_S ?= "${WORKDIR}/firmware-${SRCREV}"
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}"
SRC_URI = "${RPIFW_SRC_URI}"
SRC_URI[sha256sum] = "c687aa1b5127a8dc0773e8aefb1f009f24bf71ccb4c9e8b40a1d46cbbb7bee0c"
SRC_URI[sha256sum] = "1d9eb83111826b708f461101766fd2000d45f1c171ad573936d000f623ca8098"
PV = "${RPIFW_DATE}"

View File

@@ -1,9 +1,11 @@
RPITOOLS_DATE ?= "20201008"
SRCREV ?= "fc0e73c13865450e95edd046200e42a6e52d8256"
RPITOOLS_SRC_URI ?= "https://github.com/raspberrypi/tools/archive/${SRCREV}.tar.gz;downloadfilename=raspberrypi-tools-${SRCREV}.tar.gz"
RPITOOLS_S ?= "${WORKDIR}/tools-${SRCREV}"
RPITOOLS_DATE ?= "20220711"
SRCREV ?= "439b6198a9b340de5998dd14a26a0d9d38a6bcac"
RPITOOLS_SRC_URI ?= "git://github.com/raspberrypi/tools;protocol=https;branch=master"
RPITOOLS_S ?= "${WORKDIR}/git"
SRC_URI = "${RPITOOLS_SRC_URI}"
SRC_URI[sha256sum] = "05217b942150830225e8ee04a8f16b8ecc2ffbbe5dd815541b15333f783e805e"
PV = "${RPITOOLS_DATE}"
BB_GIT_SHALLOW = "1"

View File

@@ -1 +1 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"

Some files were not shown because too many files have changed in this diff Show More