359 Commits

Author SHA1 Message Date
Leon Anavi
7439575078 yocto-builder/entrypoint-yocto-check-layer.sh: Replace Poky
Following the recent major breaking change with the introduction of
bitbake-setup because of which the Poky repository master branch is
no longer being updated, the Poky git repository has to be replaced
by bitbake and openembedded-core. This fixes the GitHub workflow
with branch master of meta-raspberrypi for yocto-check-layer test.

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-11-20 14:09:11 +00:00
Leon Anavi
9806b9981a yocto-builder/entrypoint-build.sh: Replace Poky
Following the recent major breaking change with the introduction of
bitbake-setup because of which the Poky repository master branch is
no longer being updated, the Poky git repository has to be replaced
by bitbake, openembedded-core and meta-yocto which provides layers
meta-poky and meta-yocto-bsp. This fixes the GitHub workflows with
branch master of meta-raspberrypi and allows running auto checks.

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-11-20 14:09:11 +00:00
Leon Anavi
161be949b9 rpi-base.inc: Add rpi-backlight.dtbo
Add rpi-backlight.dtbo to RPI_KERNEL_DEVICETREE_OVERLAYS. This is
a devicetree overlay for mailbox-driven Raspberry Pi DSI Display
backlight controller.

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-10-29 20:32:22 +01:00
Khem Raj
0e56e2f1b3 libpisp: Upgrade to 1.3.0 release
Drop upstreamed patch

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-10-25 09:07:04 +02:00
Gyorgy Sarvari
e75c190de3 libcamera: move PACKAGECONFIG def to meta-oe
Move the raspberrypi PACKAGECONFIG to meta-oe (at least partially),
as the libcamera recipe needs to know when is it built for an rpi due
to a new build dependency. Also, make the PACKAGECONFIG append device
specific. Otherwise the behavior of the bbappend should not change
by this patch.

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
2025-10-18 09:04:23 +01:00
Gyorgy Sarvari
016b1cec8f libpisp: introduce recipe
It is a dependency of libcamera, when it is built with rpi support.

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
2025-10-18 09:04:23 +01:00
Gyorgy Sarvari
6bfb571142 libcamera-apps: upgrade 1.4.2 -> 1.9.0
Quite a few things have changed lately, eaiser to browse the release
page: https://github.com/raspberrypi/rpicam-apps/releases

The main reason for the update it improved build-compatibiltiy with
tensorflow-lite: it doesn't need cmake/pkg-config file anymore to
find the library, so it should be easier to integrate it with
meta-tensorflow.

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
2025-10-18 09:04:23 +01:00
Leon Anavi
f2fd4b0ea2 rpi-base.inc: Add w1-gpio-pi5.dtbo
Add w1-gpio-pi5.dtbo to RPI_KERNEL_DEVICETREE_OVERLAYS to resolve
the following issue noticed in vclog --msg on Raspberry Pi 5 when
ENABLE_W1 is set to 1:

dtdebug: mapped overlay 'w1-gpio' to 'w1-gpio-pi5'
dtdebug: Failed to open overlay file 'overlays/w1-gpio-pi5.dtbo'

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-10-09 01:51:46 +01:00
Gaël PORTAY
90ce848980 raspberrypi2-64.conf: add machine for Raspberry Pi 2B V1.2 (64-bit)
This machine configuration is for the Raspberry Pi 2B V1.2 (64-bit).

Note: Raspberry Pi 2 Model B V1.2[1] switched from BCM2836[2] (V1.0,
V1.1) to BCM2837[3] that is 64-bit CPU used in Raspberry Pi 3 Model B.

	BCM2836[2]

	The Broadcom chip used in the Raspberry Pi 2 Model B. The
	underlying architecture in BCM2836 is identical to BCM2835. The
	only significant difference is the removal of the ARM1176JZF-S
	processor and replacement with a quad-core Cortex-A7 cluster.

	BCM2837[3]

	This is the Broadcom chip used in the Raspberry Pi 3 Model B,
	later models of the Raspberry Pi 2 Model B, and the Raspberry Pi
	Compute Module 3. The underlying architecture of the BCM2837 is
	identical to the BCM2836. The only significant difference is the
	replacement of the ARMv7 quad core cluster with a quad-core ARM
	Cortex A53 (ARMv8) cluster.

	The ARM cores run at 1.2GHz, making the device about 50% faster
	than the Raspberry Pi 2. The VideoCore IV runs at 400MHz.

See:

	Poky (Yocto Project Reference Distro) 5.2.99+snapshot-cfbb00657ab961a3c3a8e6619fc08a2a3f4255c7 raspberrypi2-64 ttyAMA0

	raspberrypi2-64 login: root

	WARNING: Poky is a reference Yocto Project distribution that should be used for testing and development purposes only. It is recommended that you create your own distribution for production use.

	root@raspberrypi2-64:~# uname -a
	Linux raspberrypi2-64 6.12.41-v8 #1 SMP PREEMPT Thu Aug  7 16:48:46 UTC 2025 aarch64 GNU/Linux
	root@raspberrypi2-64:~# cat /proc/device-tree/compatible
	raspberrypi,2-model-b-rev2brcm,bcm2837
	root@raspberrypi2-64:~# tty
	/dev/ttyAMA0
	root@raspberrypi2-64:~# dmesg | head
	[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
	[    0.000000] Linux version 6.12.41-v8 (oe-user@oe-host) (aarch64-poky-linux-gcc (GCC) 15.2.0, GNU ld (GNU Binutils) 2.45.0.20250908) #1 SMP PREEMPT Thu Aug  7 16:48:46 UTC 2025
	[    0.000000] KASLR enabled
	[    0.000000] random: crng init done
	[    0.000000] Machine model: Raspberry Pi 2 Model B Rev 1.2
	[    0.000000] efi: UEFI not found.
	[    0.000000] Reserved memory: created CMA memory pool at 0x000000001ec00000, size 256 MiB
	[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
	[    0.000000] OF: reserved mem: 0x000000001ec00000..0x000000002ebfffff (262144 KiB) map reusable linux,cma
	[    0.000000] NUMA: Faking a node at [mem 0x0000000000000000-0x000000003b3fffff]

[1]: https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#flagship-series
[2]: https://www.raspberrypi.com/documentation/computers/processors.html#bcm2836
[3]: https://www.raspberrypi.com/documentation/computers/processors.html#bcm2837

Signed-off-by: Gaël PORTAY <gael.portay@rtone.fr>
2025-10-08 11:22:01 +01:00
Jon Mason
bf065600bc raspberrypi2.conf: add QB_ variables for runqemu
Add the relevant QB_ variables sufficient to get the QEMU raspi2b model
running with runqemu.

Signed-off-by: Jon Mason <jdmason@kudzu.us>
2025-09-17 11:27:57 +01:00
Leon Anavi
33a3ab273d 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-08-31 20:50:39 +03:00
Omri Sarig
cd66341124 linux-firmware-rpidistro: Fix wireless error message on RPi
Fixes: #1396

Signed-off-by: Omri Sarig <omri.sarig@prevas.dk>
2025-08-20 11:57:18 +03:00
Trevor Woerner
93375824f4 pi-blaster: 32-bit target only
The pi-blaster code only works on 32-bit targets.
See https://github.com/sarfata/pi-blaster/issues/114

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2025-08-20 11:32:22 +03:00
Joe Kale
65eec6d4e8 pi-bluetooth: Update version from 0.1.17 -> 0.1.19
Signed-off-by: Joe Kale <jkale@ptxag.com>
2025-08-20 10:19:06 +03:00
Bhargav Das
b32d1172a3 libcamera-apps: Fix library packaging issues for rpicam_app.so.1.4.2
Package rpicam_app.so.1.4.2 library for the default package to fix the
following error.

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.1.4.2
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]
ERROR: libcamera-apps-1.4.2+git-r0 do_package: Fatal QA errors were found, failing task.
ERROR: Logfile of failure stored in: /home/build-2/tmp/work/cortexa53-poky-linux/libcamera-apps/1.4.2+git/temp/log.do_package.1110484
ERROR: Task (/home/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/libcamera-apps/libcamera-apps_git.bb:do_package) failed with exit code '1'

The following version expansion is used to make it compatible with future
package version changes.

${@d.getVar("PV", False).__str__().split('+')[0]}"

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

Signed-off-by: Bhargav Das <bhargavdas100@gmail.com>
2025-08-20 10:10:31 +03:00
Khem Raj
5a2359bfa8 raspberrypi3-64,raspberrypi4-64: Use nocrypto default tunes
SOCs used in rpi3 and rpi4 do not have AES crypto HW engine
denote it by using more appropriate default tune, this ensures
that it enforces +nocrypto into -mtune regardless of gcc or clang
compiler.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-08-16 00:05:11 -07:00
Khem Raj
e145dc4d24 raspi-utils: Upgrade to latest tip
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-08-13 08:02:35 -07:00
Khem Raj
065874418d rpi-eeprom: Update to v2025.07.17-2712
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-08-13 08:02:35 -07:00
Khem Raj
b21dd5cd60 rpi-bootfiles: Update to latest tip as of 20250801
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-08-13 08:02:35 -07:00
Khem Raj
bb660e9ec7 linux-raspberrypi-6.12: Upgrade to 6.12.41
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-08-13 08:02:35 -07:00
Anibal Limon
a3b23e5cb8 recipes-bsp: u-boot drop rpi always set fdt_addr patch
It is already applied on upstream, see u-boot rev,

564d99d0723e338792df6897dc7407df2cf6196d

Fixes:

ERROR: u-boot-1_2025.07-r0 do_patch: Applying patch '0001-rpi-always-set-fdt_addr-with-firmware-provided-FDT-address.patch' on target directory '/workspaces/ls/linux-distro/build-ls-rpi4/tmp/work/ls_rpi4-limonsoftware-linux/u-boot/2025.07/sources/u-boot-2025.07'
CmdError('quilt --quiltrc /workspaces/ls/linux-distro/build-ls-rpi4/tmp/work/ls_rpi4-limonsoftware-linux/u-boot/2025.07/recipe-sysroot-native/etc/quiltrc push', 0, 'stdout: Applying patch 0001-rpi-always-set-fdt_addr-with-firmware-provided-FDT-address.patch
patching file board/raspberrypi/rpi/rpi.c
Hunk #1 FAILED at 318.
1 out of 1 hunk FAILED -- rejects in file board/raspberrypi/rpi/rpi.c
patch unexpectedly ends in middle of line
Patch 0001-rpi-always-set-fdt_addr-with-firmware-provided-FDT-address.patch can be reverse-applied

Signed-off-by: Anibal Limon <anibal@limonsoftware.com>
Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2025-08-12 08:15:24 -07:00
Moritz Boesenberg
55cdc0341c docs, conf/machine/include/rpi-base.inc, rpi-config: added seeed-can-fd-hat-v2.dtbo
I needed support of the seeed-can-fd-hat-v2 Can Shield

Added the seeed-can-fd-hat-v2.dtbo device tree overlay to the rpi-base.inc and added the parameter for the CAN shield under the rpi-config so it can be easily enabled as a parameter from e.g. the local.conf and is added to the /boot/config.txt of the Pi. I also added the changes to the documentation.

Signed-off-by: Moritz Boesenberg <moritz@techmountain.dev>
2025-07-29 18:48:43 -07:00
Martin Jansa
03981f9365 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>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-07-17 08:28:56 -07:00
Martin Jansa
3dedb92dcc raspberrypi-firmware: fix RPIFW_S to use UNPACKDIR
Similarly to https://github.com/agherzan/meta-raspberrypi/pull/1481 this file also
needs an update.

picamera-libs-20230509~buster-r0 do_populate_lic fails:
ERROR: QA Issue: lib32-picamera-libs: LIC_FILES_CHKSUM points to an invalid file: lib32-picamera-libs/20230509~buster/raspberrypi-firmware-1.20230509~buster/opt/vc/LICENCE [license-checksum]

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-07-17 08:28:56 -07:00
Jan Vermaete
7bff7365cf rpi-bootfile: changed WORKDIR -> UNPACKDIR
To solve the AQ Issue it could not find the license file:

  ERROR: rpi-bootfiles-20250430-r3 do_populate_lic: QA Issue: rpi-bootfiles: LIC_FILES_CHKSUM points to an invalid file: .../build/tmp/work/raspberrypi5-oe-linux/rpi-bootfiles/20250430/raspberrypi-firmware-bc7f439/boot/LICENCE.broadcom [license-checksum]

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-07-17 08:28:56 -07:00
Alper Ak
0a29a2b44c omxplayer: use BB_GIT_DEFAULT_DESTSUFFIX instead of hardcoded git destsuffix
Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-07-17 08:28:56 -07:00
Alper Ak
6d6f02ad1f Remove consecutive blank lines
Some of them were introduced by mass-removal of S = WORKDIR/git assignments;
rather than try to fix up (or redo) just these, I've run this sed command over
the whole tree:

sed -i -z -E 's/([ \t\f\v\r]*\n){3,}/\n\n/g' `find . -name *.bb -o -name *.inc`

The rationale is that more than one empty line is wasting vertical screen space, and
does nothing for readability.

Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-07-17 08:28:56 -07:00
Alper Ak
77654bddba set S from UNPACKDIR in recipes that use only local files
There is no need to have two assignments; also setting S from
UNPACKDIR (and not vice versa) is more logical as unpack
task comes first, and tasks that come after unpack use S to access
unpack results.

https://git.openembedded.org/openembedded-core/commit/?id=f64b7e5fb3181734c8dde87b27e872a026261a74
https://git.openembedded.org/openembedded-core/commit/?id=46480a5e66747a673041fe4452a0ab14a1736d5e

Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-07-17 08:28:56 -07:00
Alper Ak
b9a4acca5f remove S in recipes that fetch from git via setting BB_GIT_DEFAULT_DESTSUFFIX
Removing all the S = ${WORKDIR}/git assignments works because BB_GIT_DEFAULT_DESTSUFFIX
is set to match S from bitbake.conf (which itself is set to match typical tarball
releases).

https://git.openembedded.org/openembedded-core/commit/?id=f80c07019ddadaf9c5fb890faabfda7920ecd15e
https://git.openembedded.org/openembedded-core/commit/?id=46480a5e66747a673041fe4452a0ab14a1736d5e

Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-07-17 08:28:56 -07:00
Alper Ak
5aa62b1cf5 layer.conf: Update to whinlatter release series
Since there are currently multiple breaking changes, update to a new
release series for the next release so layers can show compatibility
correctly.

Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-07-17 08:28:56 -07:00
stu westerman
49a2d12489 raspi-utils: add the following utilities
* dtmerge
      * eeptools
      * otpset
      * overlaycheck
      * ovmerge
      * raspinfo
      * vcgencmd
      * vclog
      * vcmailbox

Signed-off-by: stu westerman <stuartwesterman@gmail.com>
2025-05-28 16:52:35 -07:00
Leon Anavi
c489c75260 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-05-17 14:27:52 -07:00
Markus Volk
b9d14e4289 rpi-bootfiles: update to latest release
Signed-off-by: Markus Volk <f_l_k@t-online.de>
2025-05-17 14:25:00 -07:00
Markus Volk
2b05eb76b9 rpi-default-versions: Switch default kernel to 6.12
Signed-off-by: Markus Volk <f_l_k@t-online.de>
2025-05-17 14:25:00 -07:00
Markus Volk
decad3c132 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>
2025-05-17 14:25:00 -07:00
Markus Volk
d4a80461c8 mesa: drop dri3 PACKAGECONFIG
- remove DRIDRIVERS variable

Both are not available in current mesa recipe

This fixes:
ERROR: mesa-2_25.0.5-r0 do_recipe_qa: QA Issue: mesa: invalid PACKAGECONFIG(s): dri3 [invalid-packageconfig]
ERROR: mesa-2_25.0.5-r0 do_recipe_qa: Fatal QA errors were found, failing task.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
2025-05-17 05:00:58 -07:00
Jan Vermaete
c4cb89e7c1 README.md: added how to set the machine when using Kas
Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2025-05-10 18:50:05 -07:00
Martin Jansa
cdcbd825ec armstubs, rpi-config: add whitespace around assignments
With:
https://lists.openembedded.org/g/bitbake-devel/message/17508
there are WARNINGs like:

WARNING: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:21 has a lack of whitespace around the assignment: 'PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"'
WARNING: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:22 has a lack of whitespace around the assignment: 'PITFT22="${@bb.utils.contains("MACHINE_FEATURES", "pitft22", "1", "0", d)}"'
WARNING: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:23 has a lack of whitespace around the assignment: 'PITFT28r="${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}"'
WARNING: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:24 has a lack of whitespace around the assignment: 'PITFT28c="${@bb.utils.contains("MACHINE_FEATURES", "pitft28c", "1", "0", d)}"'
WARNING: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:25 has a lack of whitespace around the assignment: 'PITFT35r="${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}"'
WARNING: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:27 has a lack of whitespace around the assignment: 'VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"'
WARNING: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb: meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb:38 has a lack of whitespace around the assignment: 'WM8960="${@bb.utils.contains("MACHINE_FEATURES", "wm8960", "1", "0", d)}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:14 has a lack of whitespace around the assignment: 'export CC7="${CC}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:15 has a lack of whitespace around the assignment: 'export LD7="${LD}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:16 has a lack of whitespace around the assignment: 'export OBJCOPY7="${OBJCOPY}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:17 has a lack of whitespace around the assignment: 'export OBJDUMP7="${OBJDUMP}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:18 has a lack of whitespace around the assignment: 'export CC8="${CC}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:19 has a lack of whitespace around the assignment: 'export LD8="${LD}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:20 has a lack of whitespace around the assignment: 'export OBJCOPY8="${OBJCOPY}"'
WARNING: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb: meta-raspberrypi/recipes-bsp/armstubs/armstubs.bb:21 has a lack of whitespace around the assignment: 'export OBJDUMP8="${OBJDUMP} -maarch64"'

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2025-05-10 18:13:55 -07:00
Damiano Ferrari
07ba2ff5fb rpi-bootfiles: Update to latest release
Signed-off-by: Damiano Ferrari <damiano.ferrari@ferrarigrowtech.com>
2025-05-10 15:47:18 -07:00
Damiano Ferrari
c705e756e3 rpi-eeprom: Update to latest release
Signed-off-by: Damiano Ferrari <damiano.ferrari@ferrarigrowtech.com>
2025-05-10 15:47:18 -07:00
Florin Sarbu
c300562cf8 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-05-09 18:45:46 -07:00
Martin Jansa
8d57f35e44 mesa: drop kmsro PACKAGECONFIG
kmsro is no longer valid gallium-drivers, the PACKAGECONFIG will be removed by:
https://lists.openembedded.org/g/openembedded-core/message/214763

we need to remove it here as well.

kmsro was removed in:
89863a050b

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2025-05-09 17:55:10 -07:00
Leon Anavi
1059a239ca .github/workflows: seccomp=unconfined
Run docker without the default seccomp profile

Suggested-by: Martin Steegmanns <martin.steegmanns@govcert.etat.lu>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-05-09 08:35:55 -07:00
Leon Anavi
2aa34651a7 .github/workflows: Disable apparmor
Add --security-opt apparmor=unconfined to docker cmdline.

Suggested-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-05-09 08:35:55 -07:00
Leon Anavi
48c571a537 Dockerfile: Increase vm.max_map_count
Fix the resource exhaustion problem on the build infrastructure.

Suggested-by: Stu Westerman @stu-spp
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-05-09 08:35:55 -07:00
Leon Anavi
dcf586cb7b yocto-builds.yml: Set ulimit
Add --ulimit "nofile=1024:1048576" to yocto-builds.yml.

Suggested-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-05-09 08:35:55 -07:00
Leon Anavi
54ed1f7c65 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.

Fixes:

RuntimeError: Sorry, python 3.9.0 or later is required for this version of bitbake

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2025-05-09 08:35:55 -07:00
Jan Vermaete
3ba4438d9d doc: added raspberrypi5 to the list of supported machines
Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2025-04-12 11:25:01 -07:00
Leon Anavi
cd558f77b6 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-03-12 02:12:30 -07:00
Joshua Watt
d605ed7ae7 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>
2025-02-27 16:54:47 -08:00
Khem Raj
7494a37818 udev-rules-rpi: Delete fb.rules
OE-core has added fb.rules to psplash via [1] so avoid adding it here

This effectively reverts commit e9e5efa750

[1] https://git.yoctoproject.org/poky/commit/?id=af38235305fc2ac59a82f0413a1fe4cc5161ff86

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Bastian Wanner <bastian.wanner@inovex.de>
2025-02-21 10:11:43 -08:00
Gyorgy Sarvari
923ac579c7 libcamera: fix c++ flags and failed buildpaths QA check
Building libcamera from the latest version of meta-or fails
the buildpaths qa check with a number of generated binaries.

Looking into the logs, it seemed that the -f*-prefix-map
flags were present to gcc invocations, but the used flags
were quite off for g++ invocations. It seems that using
the cpp_args meson option overwrites (at least most of)
the CXXFLAGS set by Yocto, including the -f*-prefix-map
flags.

To avoid this, append the extra compile flag to the
CXXFLAGS variable instead of using meson's cpp_args option.

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
2025-02-14 11:28:31 +00:00
Markus Volk
4f934c0ed1 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>
2025-02-12 13:41:42 +00:00
Gijs Peskens
810f1a2395 rpi-base: Fix CM5 boot panic
Compute module 5 depends on the bcm2712d0 overlay, and will
panic during boot without it.

Signed-off-by: Gijs Peskens <gijs.peskens@munisense.com>
2025-02-12 03:13:24 +00:00
Gijs Peskens
51f06365f3 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-02-12 03:13:24 +00:00
Andrei Gherzan
b58e2af859 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-02-03 20:45:15 +00:00
Jan Vermaete
880d36b7c2 kas: debug-tweaks as IMAGE_FEATURE is removed
And replaced it by the features that was below it.

see:
  commit 43b8b3fa72d75d8d82a478613a4d9bf4645b5389
  Author: Ross Burton <ross.burton@arm.com>
  Date:   Thu Nov 7 13:47:52 2024 +0000

      classes-recipe/core-image: drop debug-tweaks IMAGE_FEATURE

      Remove the 'debug-tweaks' IMAGE_FEATURE. It sounds friendly and kind to
      developers, but it results primarily in an image which root can login
      remotely without a password.  This is incredibly useful for local
      development and testing purposes, but we really want to be explicit that
      this is what is happening instead of hiding it behind a vague "debug
      tweaks" statement.

      To preserve the eixsting behaviour, debug-tweaks should be replaced with
      these features:

        allow-empty-password empty-root-password allow-root-login post-install-logging

      (From OE-Core rev: 2c229f9542c6ba608912e14c9c3f783c3fa89349)

      Signed-off-by: Ross Burton <ross.burton@arm.com>
      Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2025-01-17 10:23:07 +00:00
Jan Vermaete
38c6930a8e kas: added the synaptics-killswitch license in comment
I leave it to the user to allow the license by uncomment it.

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2025-01-17 10:23:07 +00:00
Anibal Limon
6e1d838b18 linux-firmware-rpidistro: Add cyfmac43455-sdio.bin symlink to minimal
According to the README on rpi-distro firmware-nonfree [1] this symlink
needs to exists.

Fixes,

```
[    6.794584] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin failed with error -2
```

There are previous reported stability issues with 802.11r [2] and
choosing minimal removes this support and indirectly fixes the issues.

[1] https://github.com/RPi-Distro/firmware-nonfree/blob/bookworm/debian/config/brcm80211/cypress/README.txt
[2] https://github.com/raspberrypi/linux/issues/3849

Signed-off-by: Anibal Limon <anibal@limonsoftware.com>
2025-01-17 06:27:29 +00:00
Luca Carlon
97d7a6b5ec picamera-libs: removed unused libraries from python3-picamera
Apparently the recipe for python3 picamera is installing some libraries
from /opt/vc/lib that are not necessary to the picamera module. The
gles2 library, in particular, overwrites a symlink to another version
of the gles2 library. The result is that two different gles2 libs are
placed in /usr/lib.

This commit removes a few unneeded libraries, leaving libmmal and its
dependencies, that are instead required.

Signed-off-by: Luca Carlon <carlon.luca@gmail.com>
2024-12-13 11:36:32 +00:00
Khem Raj
a2f8a64bc6 SECURITY.md: Add instructions for reporting security issues
Fixes Issues like https://github.com/agherzan/meta-raspberrypi/pull/1390#issuecomment-2522661895

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-12-12 22:47:13 +00:00
Khem Raj
57fa41ae95 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>
2024-12-12 22:44:39 +00:00
Khem Raj
aea022fbc6 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>
2024-12-12 22:44:39 +00:00
Garrett Brown
aea47ad612 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>
2024-12-05 20:09:29 +00:00
Jan Vermaete
f1fe818543 extra-build-config.md: added a white line
There was in the rendered MarkDown no new line between the bullet list and the next line.

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2024-12-05 10:38:52 +00:00
Jan Vermaete
1aeda3f52a raspi-utils: added new recipe
For now only the 'dtmerge' (including 'dtoverlay' and 'dtparam') and 'pinctrl' utilities are included.

Added the 'raspi-' prefix to make it less conflicting with other 'utils' recipes.

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2024-11-06 08:59:42 +01:00
Robert Yang
1b6de69afd conf/layer.conf: Remove duplicated BBFILES
The following line doubles BBFILES for all layers in BBFILE_COLLECTIONS:
BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bb' % layer \
               for layer in BBFILE_COLLECTIONS.split())}"

And most of them are invalid, use BBFILES_DYNAMIC is the correct solution.

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2024-10-30 09:07:39 +01:00
Khem Raj
91868fb83f layer.conf: Update to walnascar (5.2) layer/release series
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-10-29 17:58:50 +01:00
Leon Anavi
fe96d4ddc3 conf/layer.conf: Remove meta-lts-mixins
Remove layer dependency from meta-lts-mixins 'scarthgap/u-boot'
because now the BSP supports styhead which brings U-Boot 2024.07.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-10-29 17:49:53 +01:00
Matthias Klein
d5ffe135c7 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-21 11:50:51 +01:00
Victor Löfgren
f44832bcdd README.md: Update link to compatible layers
The previous link pointing to Yocto Project Compatible Layers was no
longer valid.

Signed-off-by: Victor Löfgren <victor.l0fgr3n@gmail.com>
2024-09-09 13:59:04 +01:00
Pierrick Curt
e49de22873 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>
2024-09-05 09:09:52 +01:00
Andrew Lalaev
f6c79cde63 rpi-base.inc: add the disable-wifi-pi5 overlay
For RPi5 we need to use a different overlay to disable built-in WiFi.

Signed-off-by: Andrew Lalaev <andrey.lalaev@gmail.com>
2024-09-05 00:51:04 +01:00
Vincent Davis Jr
43dada0771 docs: include PREFERRED_PROVIDER_ffmpeg,vlc change
Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2024-09-04 10:49:54 +01:00
Vincent Davis Jr
2b97daf196 rpi-default-providers: remove vlc,ffmpeg PREFFERED_PROVIDER
Switch to defaulting to OE core ffmpeg &
meta-openembedded vlc.

Upgrades to newer rpi-distro VLC version
in an OE environment have proven to be
tedious due to all the PI foundation patches.

Some patches aren't fully pushed into github
and require updates to build.

Maintaining patches have also proven to be unstable.

Defualt to stable builds of both so that.

Peoples builds aren't broken. If rpi-distro
rpi-distro version of ffmpeg & vlc wanted
users may switch by setting PREFFERED_PROVIDER.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2024-09-04 10:49:54 +01:00
Martin Jansa
ec745772dc mesa: rename bbappend to match new recipe name from oe-core
Otherwise it will fail to parse.

Renamed in:
https://git.openembedded.org/openembedded-core/commit/?id=f5cfb3e23603cefb2f3f6bfe776afaedefd10808

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-08-28 14:14:28 +01:00
Bastian Wanner
e9e5efa750 udev-rules-rpi.bb: Fix psplash systemd connection
Add udev rule to notify systemd of available framebuffer

Using psplash in combination with systemd the splash screen is not
shown. The dependency to sys-devices-platform-gpu-graphics-fb0.device
will terminate psplash-start.service because systemd is not aware of the
existing framebuffer device node.
See https://lists.yoctoproject.org/g/yocto/topic/91286438#57156

Signed-off-by: Bastian Wanner <bastian.wanner@inovex.de>
2024-08-03 07:35:56 +01:00
Khem Raj
3d6873db6b weston-init.bbappend: Delete
These options are now part of weston.ini since yocto 4.0 [1]

[1] https://git.yoctoproject.org/poky/commit/?id=5c95402ff95

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-07-30 13:20:11 +01:00
Jan Vermaete
633e51f4bc rpi-base.inc: added the disable-bt-pi5 device tree overlay
The overlay to disable Bluetooth is different for Raspberry Pi 5.

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2024-07-19 00:21:26 +01:00
Leon Anavi
434ed33c90 rpi-u-boot-scr: WORKDIR -> UNPACKDIR transition
This adapts to the oe-core rework to enforce a separate directory
for unpacking local sources (UNPACKDIR) instead of directly using
WORKDIR.

Follows the preliminary guideline from:
https://lists.openembedded.org/g/openembedded-architecture/message/2007

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-07-18 11:51:41 +01:00
Jan Vermaete
065d5a457f README.md: pi3-disable-bt is renamed to disable-bt in kas example
in commit 01b162388e
with commit message:

  rpi-base: Drop old dtbo names

  pi3-disable-bt is renamed to disable-bt and pi3-miniuart-bt is renamed
  to miniuart-bt in 2014, now with 5.4 these are not recognised anymore
  and miniuart-bt and disable-bt are already part of RPI_KERNEL_DEVICETREE_OVERLAYS

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2024-07-17 22:16:29 +01:00
Jaeyoon Jung
cc529a811d 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>
2024-07-17 22:13:21 +01:00
Khem Raj
6bf0b1874b linux-raspberrypi: Upgrade kernel to 6.6.36
Also bring matching linux-yocto kernel metadata

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-07-09 10:44:00 +01:00
Jan Vermaete
da35d1f663 kas: updated the refspec syntax of the kas file
Fixed the warning from kas:
  WARNING  - Using deprecated refspec for repository "poky". You should migrate to commit/tag/branch.
  WARNING  - Using deprecated refspec for repository "meta-openembedded". You should migrate to commit/tag/branch.
  WARNING  - Using deprecated refspec for repository "meta-qt5". You should migrate to commit/tag/branch.

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
2024-07-08 13:41:52 +01:00
Vincent Davis Jr
eb8ffc4e63 rpidistro-ffmpeg: upgrade 4.3.4 -> 5.1.4
Reduce amount of patches applied as they
are no longer required for building.

From older commit no longer required

* 0001-avcodec-arm-sbcenc-avoid-callee-preserved-vfp-regist.patch
* 0002-Fix-build-on-powerpc-and-ppc64.patch
* 0003-avcodec-pngenc-remove-monowhite-from-apng-formats.patch
* 0004-ffmpeg-4.3.4-rpi_14.patc
* 0005-fix-flags.diff

Created by OE community to fix builds and are no longer required

* 2002-libavdevice-opengl_enc-update-dynamic-function-loader.patch
* 2003-libavcodec-fix-v4l2_req_devscan.patch

rpidistro-ffmpeg updates:

* removal of avresample flag. No longer exists
* removal of rpi flag. No longer exists
* include vout-egl and epoxy if opengl or x11 included
  in DISTRO_FEATURES.

Signed-off-by: Vincent Davis Jr <vince@underview.tech>
2024-06-18 09:15:20 +01:00
Matthias Klein
b7fa9b4ba1 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-04 11:39:47 +01:00
Martin Jansa
380d2fc255 gstreamer1.0-omx: remove the .bbappend
oe-core upgrade 1.22.11 -> 1.24.3:
9c21815339

be aware that this also dropped gstreamer1.0-omx recipe as upstream has removed it:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4976
and similarly for libomxil:
63535ce551

So now meta-raspberrypi doesn't parse again due to this .bbappend

Remove it to unblock parsing, but there will be other improvements
or cleanups needed later (preferrably by someone who was using that
I'm just seeing parsing failure in world builds). e.g.:

conf/machine/include/rpi-default-providers.inc:PREFERRED_PROVIDER_virtual/libomxil ?= "userland"
conf/machine/include/rpi-default-providers.inc:VIRTUAL-RUNTIME_libomxil = "userland"
dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/rpidistro-vlc_3.0.17.bb:    file://3003-codec-omxil_core-replace-opt-vc-path-with-usr-lib.patch \
dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/rpidistro-vlc_3.0.17.bb:    file://3006-codec-omxil_core.h-fix-multiple-definition-of.patch \
dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/rpidistro-vlc_3.0.17.bb:PACKAGECONFIG[mmal] = "--enable-omxil --enable-omxil-vout --enable-rpi-omxil --enable-mmal --enable-mmal-avcodec,,userland"
recipes-graphics/userland/userland_git.bb:PROVIDES += "virtual/libomxil"
recipes-multimedia/omxplayer/omxplayer_git.bb:DEPENDS = "alsa-lib libpcre virtual/egl boost freetype dbus openssl libssh virtual/libomxil coreutils-native curl-native userland"

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-06-03 22:38:53 +01:00
Martin Jansa
2174bfd0b2 layer.conf: declare compatibility only with styhead
* we don't know yet what changes will be needed to stay compatible with
  final styhead, but we already know that the last changes for UNPACKDIR
  aren't compatible with scarthgap or nanbield.

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-05-30 00:33:12 +01:00
Martin Jansa
c39c2b165e rpi-u-boot-scr: use UNPACKDIR
* see:
  https://lists.openembedded.org/g/openembedded-architecture/message/2007

* fixes:
  sed: can't read TOPDIR/BUILD/work/raspberrypi4_64-webos-linux/rpi-u-boot-scr/1.0/boot.cmd.in: No such file or directory

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-05-30 00:33:12 +01:00
Khem Raj
ee5ae72808 recipes: Switch to using UNPACKDIR instead of WORKDIR
UNPACKDIR is new contruct for do_unpack things in latest master
we should be using that instead of WORKDIR for referencing those
files

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-05-28 23:52:53 +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
214 changed files with 42759 additions and 1114 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 -qq
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,68 @@
#!/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.openembedded.org/openembedded-core \
git://git.openembedded.org/bitbake \
git://git.yoctoproject.org/meta-yocto \
"
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
. ./openembedded-core/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-yocto/meta-poky"
bitbake-layers add-layer "../meta-yocto/meta-yocto-bsp"
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,34 @@
#!/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.openembedded.org/openembedded-core \
git://git.openembedded.org/bitbake \
"
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
. ./openembedded-core/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"

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

@@ -0,0 +1,92 @@
# 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-64
- 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()

View File

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

View File

@@ -3,11 +3,24 @@
Yocto BSP layer for the Raspberry Pi boards - <http://www.raspberrypi.org/>.
[![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:matrix.org)
[![Matrix](https://img.shields.io/badge/chat-meta--raspberrypi-brightgreen)](https://matrix.to/#/#meta-raspberrypi:matrix.org)
| | |
|:-: | :-: |
| Build server sponsored by | [balena.io](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
@@ -31,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/development/yocto-project-compatible-layers/).
## Dependencies
This layer depends on:
@@ -39,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
@@ -56,9 +70,10 @@ This layer depends on:
## Quick Start with kas
1. Install kas build tool from PyPi (sudo pip3 install kas)
2. kas build meta-raspberrypi/kas-poky-rpi.yml
3. Use bmaptool to copy the generated .wic.bz2 file to the SD card
4. Boot your RPI
2. Set the `machine: ` in kas-poky-rpi.yml to one of the supported boards (see conf/machine/*.conf)
3. kas build meta-raspberrypi/kas-poky-rpi.yml
4. Use bmaptool to copy the generated .wic.bz2 file to the SD card
5. Boot your RPI
To adjust the build configuration with specific options (I2C, SPI, ...), simply add
a section as follows:
@@ -67,13 +82,20 @@ a section as follows:
local_conf_header:
rpi-specific: |
ENABLE_I2C = "1"
RPI_EXTRA_CONFIG = "dtoverlay=pi3-disable-bt"
RPI_EXTRA_CONFIG = "dtoverlay=disable-bt"
```
To configure the machine, you have to update the `machine` variable.
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

20
SECURITY.md Normal file
View File

@@ -0,0 +1,20 @@
How to Report a Potential Vulnerability?
========================================
If you would like to report a public issue (for example, one with a released
CVE number), please report it via GitHub issues:
https://github.com/agherzan/meta-raspberrypi/issues/new/choose
If you are dealing with a not-yet released or urgent issue, please send a
message to one of the maintainers listed in the [README.md](https://github.com/agherzan/meta-raspberrypi/blob/master/README.md). Include as many
details as possible:
- the layer or software module affected
- the recipe and its version
- any example code, if available
Branches maintained with security fixes
---------------------------------------
See https://wiki.yoctoproject.org/wiki/Releases for the list of current
releases. We only accept patches for the LTS releases and the master branch.

View File

@@ -25,11 +25,6 @@ inherit image_types
# 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"
# Boot partition volume id
# Shorten raspberrypi to just rpi to keep it under 11 characters
# now enforced by mkfs.vfat from dosfstools-4.2
@@ -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,18 +70,6 @@ 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 () {
# Align partitions
@@ -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,7 @@ BBFILE_COLLECTIONS += "raspberrypi"
BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
BBFILE_PRIORITY_raspberrypi = "9"
LAYERSERIES_COMPAT_raspberrypi = "honister"
LAYERSERIES_COMPAT_raspberrypi = "whinlatter"
LAYERDEPENDS_raspberrypi = "core"
# Additional license directories.
@@ -20,11 +20,6 @@ LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
#
# The .bbappend and .bb files are included if the respective layer
# collection is available.
BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bbappend' % layer \
for layer in BBFILE_COLLECTIONS.split())}"
BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bb' % layer \
for layer in BBFILE_COLLECTIONS.split())}"
BBFILES_DYNAMIC += " \
openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bb \
openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bbappend \
@@ -34,6 +29,8 @@ BBFILES_DYNAMIC += " \
qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bbappend \
multimedia-layer:${LAYERDIR}/dynamic-layers/multimedia-layer/*/*/*.bb \
multimedia-layer:${LAYERDIR}/dynamic-layers/multimedia-layer/*/*/*.bbappend \
meta-python:${LAYERDIR}/dynamic-layers/meta-python/*/*/*.bb \
meta-python:${LAYERDIR}/dynamic-layers/meta-python/*/*/*.bbappend \
"
DEFAULT_TEST_SUITES:remove:rpi = "parselogs"

View File

@@ -18,24 +18,41 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
overlays/overlay_map.dtb \
overlays/at86rf233.dtbo \
overlays/disable-bt.dtbo \
overlays/disable-bt-pi5.dtbo \
overlays/disable-wifi.dtbo \
overlays/disable-wifi-pi5.dtbo \
overlays/dwc2.dtbo \
overlays/gpio-ir.dtbo \
overlays/gpio-ir-tx.dtbo \
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/seeed-can-fd-hat-v2.dtbo \
overlays/mcp3008.dtbo \
overlays/miniuart-bt.dtbo \
overlays/pitft22.dtbo \
overlays/pitft28-capacitive.dtbo \
@@ -44,30 +61,49 @@ 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/rpi-backlight.dtbo \
overlays/w1-gpio.dtbo \
overlays/w1-gpio-pullup.dtbo \
overlays/w1-gpio-pi5.dtbo \
overlays/wm8960-soundcard.dtbo \
overlays/bcm2712d0.dtbo \
"
RPI_KERNEL_DEVICETREE ?= " \
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 ??= " \
@@ -96,6 +132,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}"
@@ -103,14 +140,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)
@@ -128,14 +165,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)} \
"

View File

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

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,50 @@
# 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-2-b.dtb \
broadcom/bcm2710-rpi-3-b.dtb \
broadcom/bcm2710-rpi-3-b-plus.dtb \
broadcom/bcm2837-rpi-3-b.dtb \
broadcom/bcm2710-rpi-cm3.dtb \
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

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

@@ -2,9 +2,9 @@
#@NAME: RaspberryPi0 2 Wifi Development Board
#@DESCRIPTION: Machine configuration for the RaspberryPi0 2 Wifi in 64 bits mode
include conf/machine/raspberrypi3-64.conf
MACHINEOVERRIDES =. "raspberrypi3-64:"
MACHINEOVERRIDES := "${@'${MACHINEOVERRIDES}'.replace(':${MACHINE}',':raspberrypi3-64:${MACHINE}')}"
include conf/machine/raspberrypi3-64.conf
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43436 \

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

@@ -0,0 +1,30 @@
#@TYPE: Machine
#@NAME: RaspberryPi 2 V1.2 Development Board
#@DESCRIPTION: Machine configuration for the RaspberryPi 2 in 64 bits mode
MACHINEOVERRIDES =. "raspberrypi3-64:"
DEFAULTTUNE ?= "cortexa53-nocrypto"
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
include conf/machine/include/rpi-base.inc
RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2710-rpi-2-b.dtb \
broadcom/bcm2710-rpi-3-b.dtb \
broadcom/bcm2710-rpi-3-b-plus.dtb \
broadcom/bcm2837-rpi-3-b.dtb \
broadcom/bcm2710-rpi-cm3.dtb \
"
SDIMG_KERNELIMAGE ?= "kernel8.img"
# When u-boot is enabled we need to use the "Image" format and the "booti"
# command to load the kernel
KERNEL_IMAGETYPE_UBOOT ?= "Image"
# "zImage" not supported on arm64 and ".gz" images not supported by bootloader yet
KERNEL_IMAGETYPE_DIRECT ?= "Image"
KERNEL_BOOTCMD ?= "booti"
UBOOT_MACHINE = "rpi_arm64_config"
SERIAL_CONSOLES ?= "115200;ttyAMA0"
VC4DTBO ?= "vc4-fkms-v3d"
ARMSTUB ?= "armstub8.bin"

View File

@@ -7,8 +7,24 @@ DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
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"
#
# Below are variables ONLY needed for running with Yocto/OE's runqemu script
#
IMAGE_CLASSES += "qemuboot"
QB_SYSTEM_NAME = "qemu-system-arm"
QB_MACHINE = "-machine raspi2b"
QB_MEM = "-m 1024"
QB_DTB = "bcm2709-rpi-2-b.dtb"
QB_NET = "none"
QB_KERNEL_ROOT = "/dev/mmcblk0"
QB_KERNEL_CMDLINE_APPEND = "rootwait"
QB_RNG = ""
QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=sd,format=raw"
QB_DEFAULT_FSTYPE = "ext3"

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,26 +11,27 @@ MACHINE_EXTRA_RRECOMMENDS += "\
bluez-firmware-rpidistro-bcm4345c0-hcd \
"
DEFAULTTUNE ?= "cortexa53-nocrypto"
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
include conf/machine/include/rpi-base.inc
RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2710-rpi-2-b.dtb \
broadcom/bcm2710-rpi-3-b.dtb \
broadcom/bcm2710-rpi-3-b-plus.dtb \
broadcom/bcm2837-rpi-3-b.dtb \
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

@@ -2,14 +2,18 @@
#@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 \
"
DEFAULTTUNE = "cortexa72-nocrypto"
require conf/machine/include/arm/armv8a/tune-cortexa72.inc
include conf/machine/include/rpi-base.inc
@@ -17,6 +21,7 @@ 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"

View File

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

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 = ['myst_parser']
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 = '2021, 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

View File

@@ -86,6 +86,10 @@ Then, for sending patches to the mailing list, you may use this command:
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
In order to manage and track the layer issues more efficiently, the

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
@@ -106,7 +122,7 @@ 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,6 +171,17 @@ 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:
@@ -170,7 +197,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
@@ -278,6 +305,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,24 +329,37 @@ 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>
* WaveShare RS485 CAN HAT (8 MHz or 12 MHz crystal): <https://www.waveshare.com/rs485-can-hat.htm>
* PiCAN2 Duo (16 MHz crystal): <http://skpang.co.uk/catalog/pican2-duo-canbus-board-for-raspberry-pi-23-p-1480.html>
To enable the 2-Channel CAN-BUS(FD) Shield (MCP2518FD), set:
ENABLE_DUAL_CAN_SEED_FD_HAT_V2 = "1"
* Seed Studio (2-Channel CAN-BUS(FD) Shield): <https://wiki.seeedstudio.com/2-Channel-CAN-BUS-FD-Shield-for-Raspberry-Pi/>
## Enable infrared
Users who want to enable infrared support, for example for using LIRC (Linux
@@ -320,6 +372,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,38 +419,94 @@ 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`
```conf
MACHINE_FEATURES += "wm8960"
```
You may need to adjust volume and toggle switches that are off by default
```bash
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 oe-core
implementation of ffmpeg and the meta-openembedded/meta-multimedia implementation of VLC.
The Raspberry Pi's Distro implementation of VLC with HW accelerated video decode through
MMAL and the Raspberry PI's Distro implementation of ffmpeg. Can however be selected via:
PREFERRED_PROVIDER_vlc = "rpidistro-vlc"
PREFERRED_PROVIDER_ffmpeg = "rpidistro-ffmpeg"
PREFERRED_PROVIDER_libav = "rpidistro-ffmpeg"
PREFERRED_PROVIDER_libpostproc = "rpidistro-ffmpeg"
Usage example: Start VLC with mmal_vout plugin and without an active display server.
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

@@ -7,15 +7,42 @@
* raspberrypi0-wifi
* raspberrypi0-2w-64
* raspberrypi2
* raspberrypi2-64 (64 bit kernel & userspace)
* raspberrypi3
* raspberrypi3-64 (64 bit kernel & userspace)
* raspberrypi4
* raspberrypi4-64 (64 bit kernel & userspace)
* raspberrypi5
* raspberrypi-cm (dummy alias for raspberrypi)
* raspberrypi-cm3
Note: The raspberrypi2-64 machine includes 64-bit support for Raspberry Pi 2B
V1.2.
Note: The raspberrypi3 machines include support for Raspberry Pi 3B+.
## Multi-board Machines
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
@@ -23,8 +50,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

View File

@@ -1 +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

@@ -1,6 +1,5 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
SRC_URI:append:rpi = " \
file://lirc-gpio-ir-0.10.patch \
file://lircd.service \
"

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
@@ -18,7 +18,7 @@ DEPENDS += " \
"
RDEPENDS:${PN} += " \
${PYTHON_PN}-numpy \
${PYTHON_PN}-rtimu \
${PYTHON_PN}-pillow \
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,24 @@
add missing header
When compiling with gcc15, compiliation fails with the following error:
| In file included from ../sources/libcamera-apps-1.9.0/post_processing_stages/segmentation_tf_stage.cpp:8:
| ../sources/libcamera-apps-1.9.0/post_processing_stages/segmentation.hpp:15:82: error: 'uint8_t' was not declared in this scope
| 15 | Segmentation(int w, int h, std::vector<std::string> l, const std::vector<uint8_t> &s)
To avoid it, add the cstdint header to the offending file.
Upstream-Status: Submitted [https://github.com/raspberrypi/rpicam-apps/pull/861]
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
diff --git a/post_processing_stages/segmentation.hpp b/post_processing_stages/segmentation.hpp
index ac87228..82d7939 100644
--- a/post_processing_stages/segmentation.hpp
+++ b/post_processing_stages/segmentation.hpp
@@ -7,6 +7,7 @@
#pragma once
+#include <cstdint>
#include <string>
#include <vector>

View File

@@ -0,0 +1,47 @@
SUMMARY = "A suite of libcamera-based apps"
DESCRIPTION = "This is a small suite of libcamera-based apps that aim to \
copy the functionality of the existing \"raspicam\" apps."
HOMEPAGE = "https://github.com/raspberrypi/rpicam-apps"
SECTION = "console/utils"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://license.txt;md5=a0013d1b383d72ba4bdc5b750e7d1d77"
SRC_URI = "\
git://github.com/raspberrypi/rpicam-apps.git;protocol=https;branch=main \
file://0001-utils-version.py-use-usr-bin-env-in-shebang.patch \
file://add-missing-header.patch \
"
SRCREV = "eca9928b76c106141667288f1cef935d02ba59b3"
PROVIDES += "rpicam-apps"
DEPENDS = "libcamera libexif jpeg tiff libpng boost"
PACKAGECONFIG ??= "drm"
PACKAGECONFIG[libav] = "-Denable_libav=enabled, -Denable_libav=disabled, libav"
PACKAGECONFIG[drm] = "-Denable_drm=enabled, -Denable_drm=disabled, libdrm"
PACKAGECONFIG[egl] = "-Denable_egl=enabled, -Denable_egl=disabled, virtual/egl"
PACKAGECONFIG[qt] = "-Denable_qt=enabled, -Denable_qt=disabled, qtbase"
PACKAGECONFIG[opencv] = "-Denable_opencv=enabled, -Denable_opencv=disabled, opencv"
PACKAGECONFIG[tflite] = "-Denable_tflite=enabled, -Denable_tflite=disabled, tensorflow-lite"
inherit meson pkgconfig
NEON_FLAGS = ""
NEON_FLAGS:aarch64 = "-Dneon_flags=arm64"
NEON_FLAGS:arm:raspberrypi3 = "-Dneon_flags=armv8-neon"
NEON_FLAGS:arm:raspberrypi4 = "-Dneon_flags=armv8-neon"
EXTRA_OEMESON += "${NEON_FLAGS}"
# QA Issue: /usr/bin/camera-bug-report contained in package libcamera-apps requires /usr/bin/python3
# QA Issue: File /usr/lib/pkgconfig/rpicam_app.pc in package libcamera-apps-dev contains reference to TMPDIR
do_install:append() {
rm -v ${D}/${bindir}/camera-bug-report
sed -i "s,${RECIPE_SYSROOT}${libdir},$\{libdir},g" ${D}${libdir}/pkgconfig/rpicam_app.pc
}
FILES:${PN} += "${libdir}/rpicam-apps-postproc \
${libdir}/rpicam-apps-preview \
${datadir}/rpi-camera-assets"

View File

@@ -1,2 +0,0 @@
PACKAGECONFIG[raspberrypi] = "-Dpipelines=raspberrypi"
PACKAGECONFIG:append:rpi = " raspberrypi"

View File

@@ -0,0 +1,3 @@
EXTRA_OEMESON:append:rpi = " -Dipas=rpi/vc4,rpi/pisp"
PACKAGECONFIG:append:rpi = " raspberrypi"
CXXFLAGS:append:rpi = " -Wno-unaligned-access "

View File

@@ -0,0 +1,14 @@
DESCRIPTION = "A helper library to generate run-time configuration for the Raspberry Pi \
ISP (PiSP), consisting of the Frontend and Backend hardware components."
HOMEPAGE = "https://github.com/raspberrypi/libpisp"
LICENSE = "BSD-2-Clause & GPL-2.0-only & GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3417a46e992fdf62e5759fba9baef7a7 \
file://LICENSES/GPL-2.0-only.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://LICENSES/GPL-2.0-or-later.txt;md5=fed54355545ffd980b814dab4a3b312c"
SRC_URI = "git://github.com/raspberrypi/libpisp.git;protocol=https;branch=main;tag=v${PV}"
SRCREV = "9ba67e6680f03f31f2b1741a53e8fd549be82cbe"
DEPENDS = "nlohmann-json"
inherit meson pkgconfig

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,163 @@
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"
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

@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=660e614bc7efb0697cc793d8a22a55c2"
SRC_URI = "git://github.com/adafruit/Adafruit_Blinka.git;branch=main;protocol=https"
SRCREV = "dc688f354fe779c9267c208b99f310af87e79272"
S = "${WORKDIR}/git"
inherit setuptools3
DEPENDS += "python3-setuptools-scm-native"
@@ -28,3 +26,6 @@ RDEPENDS:${PN} += " \
"
RDEPENDS:${PN}:append:rpi = " rpi-gpio"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

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

View File

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

View File

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

View File

@@ -6,8 +6,6 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e7eb6b599fb0cfb06485c64cd4242f62"
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_PCA9685.git;branch=main;protocol=https"
SRCREV = "2780c4102f4c23fbab252aa1198b61ba7e2d1b2c"
S = "${WORKDIR}/git"
inherit setuptools3
DEPENDS += "python3-setuptools-scm-native"
@@ -18,3 +16,4 @@ RDEPENDS:${PN} += " \
python3-adafruit-circuitpython-register \
python3-core \
"
COMPATIBLE_HOST:libc-musl:class-target = "null"

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

@@ -12,7 +12,7 @@ repos:
poky:
url: https://git.yoctoproject.org/git/poky
path: layers/poky
refspec: master
branch: master
layers:
meta:
meta-poky:
@@ -21,7 +21,7 @@ repos:
meta-openembedded:
url: http://git.openembedded.org/meta-openembedded
path: layers/meta-openembedded
refspec: master
branch: master
layers:
meta-oe:
meta-python:
@@ -31,7 +31,7 @@ repos:
meta-qt5:
url: https://github.com/meta-qt5/meta-qt5/
path: layers/meta-qt5
refspec: master
branch: master
bblayers_conf_header:
standard: |
@@ -48,14 +48,18 @@ local_conf_header:
USER_CLASSES = "buildstats"
PATCHRESOLVE = "noop"
debug-tweaks: |
EXTRA_IMAGE_FEATURES = "debug-tweaks"
IMAGE_FEATURES += "empty-root-password allow-empty-password allow-root-login post-install-logging"
diskmon: |
BB_DISKMON_DIRS = "\
STOPTASKS,${TMPDIR},1G,100K \
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"
license: |
# Uncomment next line to allow the license
# See: linux-firmware-rpidistro in docs/ipcompliance.md
#LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"

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

@@ -11,14 +11,14 @@ COMPATIBLE_MACHINE = "^rpi$"
S = "${RPITOOLS_S}/armstubs"
export CC7="${CC}"
export LD7="${LD}"
export OBJCOPY7="${OBJCOPY}"
export OBJDUMP7="${OBJDUMP}"
export CC8="${CC}"
export LD8="${LD}"
export OBJCOPY8="${OBJCOPY}"
export OBJDUMP8="${OBJDUMP} -maarch64"
export CC7 = "${CC}"
export LD7 = "${LD}"
export OBJCOPY7 = "${OBJCOPY}"
export OBJDUMP7 = "${OBJDUMP}"
export CC8 = "${CC}"
export LD8 = "${LD}"
export OBJCOPY8 = "${OBJCOPY}"
export OBJDUMP8 = "${OBJDUMP} -maarch64"
do_compile() {
[ -z "${ARMSTUB}" ] && bbfatal "No ARMSTUB defined for your machine."

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 ?= "20250801"
SRCREV = "95be71b8c0f63f03dc06dd0e4c2e5535e6fb4a93"
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 ?= "${UNPACKDIR}/raspberrypi-firmware-${SHORTREV}"
SRC_URI = "${RPIFW_SRC_URI}"
SRC_URI[sha256sum] = "8b270b44b7702aae2d60e12b9bb4ea9ce0d9bc34662f7229092b8110d34ef7dd"
PV = "${RPIFW_DATE}"
INHIBIT_DEFAULT_DEPS = "1"

View File

@@ -9,14 +9,12 @@ inherit deploy nopackages
CMDLINE_DWC_OTG ?= "dwc_otg.lpm_enable=0"
CMDLINE_ROOT_FSTYPE ?= "rootfstype=ext4"
CMDLINE_ROOTFS ?= "root=/dev/mmcblk0p2 ${CMDLINE_ROOT_FSTYPE} rootwait"
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
@@ -29,6 +27,18 @@ 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
@@ -36,7 +46,11 @@ CMDLINE_DEBUG ?= ""
# 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} \
@@ -46,10 +60,11 @@ CMDLINE = " \
${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() {

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,30 +7,35 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
COMPATIBLE_MACHINE = "^rpi$"
SRCREV = "648ffc470824c43eb0d16c485f4c24816b32cd6f"
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"
PR = "r5"
INHIBIT_DEFAULT_DEPS = "1"
PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
PITFT22="${@bb.utils.contains("MACHINE_FEATURES", "pitft22", "1", "0", d)}"
PITFT28r="${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}"
PITFT28c="${@bb.utils.contains("MACHINE_FEATURES", "pitft28c", "1", "0", d)}"
PITFT35r="${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}"
PITFT = "${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
PITFT22 = "${@bb.utils.contains("MACHINE_FEATURES", "pitft22", "1", "0", d)}"
PITFT28r = "${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}"
PITFT28c = "${@bb.utils.contains("MACHINE_FEATURES", "pitft28c", "1", "0", d)}"
PITFT35r = "${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}"
VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
VC4GRAPHICS = "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
VC4DTBO ?= "vc4-kms-v3d"
GPIO_IR ?= "18"
GPIO_IR_TX ?= "17"
CAN_OSCILLATOR ?= "16000000"
CAN0_INTERRUPT_PIN ?= "25"
CAN1_INTERRUPT_PIN ?= "24"
WM8960="${@bb.utils.contains("MACHINE_FEATURES", "wm8960", "1", "0", d)}"
ENABLE_UART ??= ""
WM8960 = "${@bb.utils.contains("MACHINE_FEATURES", "wm8960", "1", "0", d)}"
GPIO_SHUTDOWN_PIN ??= ""
inherit deploy nopackages
@@ -174,9 +179,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
@@ -204,6 +225,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
@@ -241,12 +268,31 @@ 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 DUAL CAN FOR SEED CAN FD HAT V2
elif [ "${ENABLE_DUAL_CAN_SEED_FD_HAT_V2}" = "1" ]; then
echo "# Enable DUAL CAN FOR SEED CAN FD HAT V2" >>$CONFIG
echo "dtoverlay=seeed-can-fd-hat-v2" >>$CONFIG
# ENABLE CAN
elif [ "${ENABLE_CAN}" = "1" ]; then
echo "# Enable CAN" >>$CONFIG
echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=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
@@ -268,6 +314,19 @@ do_deploy() {
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() {

View File

@@ -1,9 +1,9 @@
RPIFW_DATE ?= "20211007"
SRCREV ?= "0c4fc71befd228419a225c84d316cabbda8633a7"
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 ?= "${UNPACKDIR}/raspberrypi-firmware-1.${RPIFW_DATE}"
SRC_URI = "${RPIFW_SRC_URI}"
SRC_URI[sha256sum] = "2502930165328be3b292389b1f7e25365c724000d6c404b63a5a0ba7af120aa7"
SRC_URI[sha256sum] = "1d9eb83111826b708f461101766fd2000d45f1c171ad573936d000f623ca8098"
PV = "${RPIFW_DATE}"

View File

@@ -1,9 +1,11 @@
RPITOOLS_DATE ?= "20210705"
SRCREV ?= "2e59fc67d465510179155973d2b959e50a440e47"
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 ?= "${UNPACKDIR}/${BP}"
SRC_URI = "${RPITOOLS_SRC_URI}"
SRC_URI[sha256sum] = "77b0d2350d5f1d7003cbfa68db5318241caec3e1b5e499d65673ec6d987dcb1a"
PV = "${RPITOOLS_DATE}"
BB_GIT_SHALLOW = "1"

View File

@@ -0,0 +1,2 @@
# Action on special keypress (Key Power)
kb::kbrequest:/sbin/shutdown -t1 -a -h -P now

View File

@@ -0,0 +1,13 @@
#!/bin/sh
##
# Bind the gpio-shutdown keycode as Keyboard signal and load it to the
# keymap during startup.
##
case "$1" in
start)
# Inject the gpio keycode to keymap
echo "keycode 116 = KeyboardSignal" | loadkeys
;;
*)
;;
esac

View File

@@ -0,0 +1,33 @@
SUMMARY = "GPIO shutdown bindings for SysV init"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
SRC_URI = "file://bind_gpio_shutdown.tab \
file://gpio-shutdown-keymap.sh \
"
S = "${UNPACKDIR}"
inherit update-rc.d
INITSCRIPT_NAME = "gpio-shutdown-keymap.sh"
# Run only once during startup
INITSCRIPT_PARAMS = "start 99 S ."
do_install() {
# The files are only needed if using SysV init.
if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
install -d ${D}${sysconfdir} \
${D}${sysconfdir}/inittab.d \
${D}${sysconfdir}/init.d
install -m 0755 ${UNPACKDIR}/gpio-shutdown-keymap.sh ${D}${sysconfdir}/init.d/
install -m 0755 ${UNPACKDIR}/bind_gpio_shutdown.tab ${D}${sysconfdir}/inittab.d/
elif ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
# Systemd init does not require any configuration.
# Note: cannot have an empty branch, hence the redundant dir install.
install -d ${D}${sysconfdir}
else
bbwarn "Not using sysvinit or systemd. The gpio-shutdown may require additional configuration."
fi
}

View File

@@ -0,0 +1,67 @@
SUMMARY = "Installation scripts and binaries for the Raspberry Pi 4 EEPROM"
DESCRIPTION = "This repository contains the rpi4/rpi5 bootloader and scripts \
for updating it in the spi eeprom"
LICENSE = "BSD-3-Clause & Broadcom-RPi"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a6c5149578a16272119f3f9c13d6549b"
SRC_URI = " \
git://github.com/raspberrypi/rpi-eeprom.git;protocol=https;branch=master \
"
SRCREV = "2349daafacfb7a7abe2cfecf30a49ae837bdf2c6"
PV = "v2025.07.17-2712"
RDEPENDS:${PN} += " \
coreutils \
python3 \
python3-pycryptodomex \
openssl \
xxd \
pciutils \
"
inherit python3native
do_install() {
install -d ${D}${bindir}
# install executables
install -m 0755 ${S}/tools/vl805 ${D}${bindir}
install -m 0755 ${S}/rpi-eeprom-update ${D}${bindir}
install -m 0755 ${S}/rpi-eeprom-config ${D}${bindir}
install -m 0755 ${S}/rpi-eeprom-digest ${D}${bindir}
# copy firmware files
install -d ${D}${base_libdir}/firmware/raspberrypi/bootloader-2711/default
install -d ${D}${base_libdir}/firmware/raspberrypi/bootloader-2711/latest
install -d ${D}${base_libdir}/firmware/raspberrypi/bootloader-2712/default
install -d ${D}${base_libdir}/firmware/raspberrypi/bootloader-2712/latest
install -m 644 ${S}/firmware-2711/default/* ${D}${base_libdir}/firmware/raspberrypi/bootloader-2711/default
install -m 644 ${S}/firmware-2711/latest/* ${D}${base_libdir}/firmware/raspberrypi/bootloader-2711/latest
install -m 644 ${S}/firmware-2712/default/* ${D}${base_libdir}/firmware/raspberrypi/bootloader-2712/default
install -m 644 ${S}/firmware-2712/latest/* ${D}${base_libdir}/firmware/raspberrypi/bootloader-2712/latest
ln -s default ${D}${base_libdir}/firmware/raspberrypi/bootloader-2711/critical
ln -s latest ${D}${base_libdir}/firmware/raspberrypi/bootloader-2711/stable
ln -s latest ${D}${base_libdir}/firmware/raspberrypi/bootloader-2711/beta
ln -s default ${D}${base_libdir}/firmware/raspberrypi/bootloader-2712/critical
ln -s latest ${D}${base_libdir}/firmware/raspberrypi/bootloader-2712/stable
ln -s latest ${D}${base_libdir}/firmware/raspberrypi/bootloader-2712/beta
# copy default config
install -d ${D}${sysconfdir}/default
install -D ${S}/rpi-eeprom-update-default ${D}${sysconfdir}/default/rpi-eeprom-update
}
FILES:${PN} += "${base_libdir}/firmware/raspberrypi/bootloader-*"
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
# vl805 tool sources are not available (yet), as it comes as a precompiled
# binary only. It has ARM architecture whereas target machine is Aarch64. We
# need to disable arch check for it otherwise it cannot packed.
QAPATHTEST[arch] = ""
COMPATIBLE_MACHINE = "raspberrypi4|raspberrypi4-64|raspberrypi5"

View File

@@ -1,4 +1,4 @@
fdt addr ${fdt_addr} && fdt get value bootargs /chosen bootargs
fatload mmc 0:1 ${kernel_addr_r} @@KERNEL_IMAGETYPE@@
if test ! -e mmc 0:1 uboot.env; then saveenv; fi;
fatload @@BOOT_MEDIA@@ 0:1 ${kernel_addr_r} @@KERNEL_IMAGETYPE@@
if test ! -e @@BOOT_MEDIA@@ 0:1 uboot.env; then saveenv; fi;
@@KERNEL_BOOTCMD@@ ${kernel_addr_r} - ${fdt_addr}

View File

@@ -9,15 +9,20 @@ INHIBIT_DEFAULT_DEPS = "1"
SRC_URI = "file://boot.cmd.in"
BOOT_MEDIA ?= "mmc"
do_compile() {
sed -e 's/@@KERNEL_IMAGETYPE@@/${KERNEL_IMAGETYPE}/' \
-e 's/@@KERNEL_BOOTCMD@@/${KERNEL_BOOTCMD}/' \
"${WORKDIR}/boot.cmd.in" > "${WORKDIR}/boot.cmd"
-e 's/@@BOOT_MEDIA@@/${BOOT_MEDIA}/' \
"${UNPACKDIR}/boot.cmd.in" > "${WORKDIR}/boot.cmd"
mkimage -A ${UBOOT_ARCH} -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr
}
inherit kernel-arch deploy nopackages
S = "${UNPACKDIR}"
do_deploy() {
install -d ${DEPLOYDIR}
install -m 0644 boot.scr ${DEPLOYDIR}

View File

@@ -1,51 +0,0 @@
From 336d86ebd146905cf4384912f4f27699b6e37c72 Mon Sep 17 00:00:00 2001
From: Simon Glass <sjg@chromium.org>
Date: Sun, 29 Dec 2019 21:19:17 -0700
Subject: [PATCH] dm: core: Move ofdata_to_platdata() call earlier
This method is supposed to extract platform data from the device tree. It
should be done before the device itself is probed. Move it earlier in the
device_probe() function.
Upstream-Status: Backport
Signed-off-by: Simon Glass <sjg@chromium.org>
---
drivers/core/device.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/core/device.c b/drivers/core/device.c
index 4e03708..291ff4c 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -375,6 +375,13 @@ int device_probe(struct udevice *dev)
return 0;
}
+ if (drv->ofdata_to_platdata &&
+ (CONFIG_IS_ENABLED(OF_PLATDATA) || dev_has_of_node(dev))) {
+ ret = drv->ofdata_to_platdata(dev);
+ if (ret)
+ goto fail;
+ }
+
seq = uclass_resolve_seq(dev);
if (seq < 0) {
ret = seq;
@@ -411,13 +418,6 @@ int device_probe(struct udevice *dev)
goto fail;
}
- if (drv->ofdata_to_platdata &&
- (CONFIG_IS_ENABLED(OF_PLATDATA) || dev_has_of_node(dev))) {
- ret = drv->ofdata_to_platdata(dev);
- if (ret)
- goto fail;
- }
-
/* Only handle devices that have a valid ofnode */
if (dev_of_valid(dev)) {
/*
--
2.7.4

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