360 Commits

Author SHA1 Message Date
Alex J Lennon
255500dd9f Update Kas configuration to replace refspec/ABORT
And also use Kirkstone branch for layer dependencies not master

Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
2025-08-20 23:38:38 +03:00
Martin Jansa
39e5dfd9cb docker-build: use --no-cache
* --no-cache is needed to actually call apt update instead of using it
  from docker cache and then failing to fetch pruned packages as shown:
  https://github.com/agherzan/meta-raspberrypi/actions/runs/16327036376/job/46119768952?pr=1491

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2025-07-22 18:38:35 -07:00
Florin Sarbu
9e12ad97b4 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-04-15 09:24:03 -07:00
Andrei Gherzan
ac5e8d64b5 docs: Fix ReadTheDocs sphinx.configuration requirement
Deprecation of projects using Sphinx or MkDocs without an explicit
configuration file:

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

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2025-03-21 09:31:47 +00:00
Michał Kluska
d7544f3575 rpi-base: Removed hifiberry amp4pro.
Removed hifiberry amp4pro.

Signed-off-by: Michał Kluska <kluska.mk@gmail.com>
2024-06-04 20:49:35 +01:00
Michał Kluska
d2bbc1f32e 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-06-04 20:49:35 +01:00
Pascal Huerst
160ae17ce6 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-06-04 20:49:35 +01:00
Andrei Gherzan
70c293b25f 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>
2024-05-30 10:03:18 +01:00
Martin Jansa
78ad1d44c3 linux-raspberrypi_5.15: backport 2 commits to fix compatibility with wireless-regdb-2024.01.23 and newer
* backported to oe-core kirkstone in:
  https://git.openembedded.org/openembedded-core/commit/?h=kirkstone&id=11c9c6eec5ff45cd1fd4858bc28f38693c5d0fde

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-05-30 10:03:18 +01:00
Khem Raj
a8b5f93c52 linux-raspberrypi: Upgrade to 6.1.77
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-05-30 10:03:18 +01:00
Khem Raj
fd64cfa5e8 linux-raspberrypi_6.1.bb: Upgrade to 6.1.74
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-05-30 10:03:18 +01:00
Leon Anavi
9dc6673d41 Add Raspberry Pi 5
Backport Raspberry Pi 5 support to branch kirkstone.

This work was sponsored by GOVCERT.LU.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-02-14 16:57:18 +00:00
Damiano Ferrari
ab5815a2ca docs: add info on how to set different CAN interrupt pins
Signed-off-by: Damiano Ferrari <damiano.ferrari@ferrarigrowtech.com>
2024-02-13 12:21:33 +00:00
Damiano Ferrari
ea4470da2a 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-02-13 12:21:33 +00:00
Carlos Alberto Lopez Perez
e6d2ff0b0c 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>
2024-02-01 11:48:44 +00:00
Khem Raj
8bad47eba3 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>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-01-09 15:47:26 +00:00
Leon Anavi
c40c6e21ed linux-raspberrypi: Update 5.15 recipe to 5.15.92
Update kernel to version 5.15.92 to fix Bluetooth and Wi-Fi issues
on 64-bit images for Raspberry Pi Zero 2.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2024-01-08 11:46:56 +00:00
Joshua Watt
59a6a1b5dd 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>
(cherry picked from commit 482d864b8f)
2023-09-29 20:44:32 +01:00
bigbearishappy
80a12f7fdd linux-raspberrypi: change kernel cfg of drm from y to m to fix the pwm issue #1180
When I was trying to drive a lcd(ili9881) with pwm backlight control.
I encountered with the problem in #1180.
After I check the kernel config of both raspbian OS and yocto.I find
the config of drm is different between them.
Detail of difference:
In raspbian OS, kernel conifg of drm is m while it's y in yocto.

So I change the config of drm to m in yocto too.And the pwm works fine now.

Signed-off-by: bigbearishappy <953308023@qq.com>
2023-08-03 16:34:19 +01:00
Florin Sarbu
43683cb14b 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-31 14:03:11 +01:00
Zachary T Welch
2a06e4e84b 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-04-06 19:32:48 +01:00
Vinicius Aquino
dacad9302a raspberrypi-firmware: Update to 20220830 snapshot
Signed-off-by: Vinicius Aquino <vinicius.aquino@ossystems.com.br>
(cherry picked from commit 9ea5daf9fc)
2022-09-10 00:06:04 +01:00
Lluis Campos
fdf8252440 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>
(cherry picked from commit c57b464b88)
2022-09-05 17:06:38 +01:00
Andrei Gherzan
0135a02ea5 rpi-base.inc: Add MCP3008 ADC overlay
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Jan <jan.claussen10@web.de>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
ad6ebc053a docs: Bump copyright year
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Andrei Gherzan
785181f695 docs: Drop mention of deprecated images
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
2022-04-21 21:41:38 +01:00
Davide Gardenal
901cb604b5 bluez-firmware-rpidistro: Add compatibility to oe-core/create-spdx
Add do_create_spdx dependency to fix error when LICENCE is not found

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Add missing dependency on alsa-lib for libasound headers

Fixes build with master/kirkstone

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

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

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

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

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

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

- Use shallow clone to reduce size of cloned repo

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

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

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

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

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

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

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

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

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

Fixes #954

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

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

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

Fixes #1002

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

They also do not work on musl

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

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

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

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

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

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

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

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

Fixes Issue #964

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Connected to #917

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

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

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

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

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

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

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

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

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

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

Fixes:

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

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

Matching the version numbers will remove this message.

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

is a good way to visualise the changes.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    >        raise FetchError(error_message)

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

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

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

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

    >        raise FetchError(error_message)

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

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

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

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

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

    raspberrypi-linux: removed protocoll setting from SRC_URI

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

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

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

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2021-05-26 10:00:04 +01:00
sss22213
11209a4981 recipes-bsp: Add support for Raspberry Pi HD quality camera
Signed-off-by: Bohung-Nian <n0404.n0404@gmail.com>
2021-05-19 20:00:02 +01:00
matt-hammond-bbc
b601818301 libva: Fix for when using userland
https://github.com/agherzan/meta-raspberrypi/issues/842

Fixes failing build of libva when using `userland` recipe.
Same as: ac16b0e9d7

Signed-off-by: Matt Hammond <matt.hammond@bbc.co.uk>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-05-18 14:58:43 +01:00
SCVready
e4ab480630 rpi-config: comment updated
Updated the comment that indicates there is a possible file limitation
in config.txt affecting certain variables, at least the "start_x" var.

This issue was originally discussed and fixed in:
https://github.com/agherzan/meta-raspberrypi/pull/678
and this commit updates the comment added with the new info gathered from:
https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=298129
and from a similar issue:
https://github.com/raspberrypi/firmware/issues/1012

Signed-off-by: SCVready <alejandro.solozabal@outlook.com>
2021-05-18 14:58:15 +01:00
Changqing Li
fb253346c2 99-com.rules: fix error invalid substitution type
fix below error:
/etc/udev/rules.d/99-com.rules:10 Invalid value "/bin/sh -c
'ALIASES=/proc/device-tree/aliases; if cmp -s $ALIASES/uart0
$ALIASES/serial0; then echo 0;elif cmp -s $ALIASES/uart0
$ALIASES/serial1; then echo 1; else exit 1; fi'" for PROGRAM (char 58:
invalid substitution type)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
2021-05-16 01:45:23 +01:00
Khem Raj
4302d3a509 bluez-firmware-rpidistro: Update to 1.2-4+rpt8
Package new firmwares for cm43430b0 and bcm4345c5
License-update: Updates about new firmware added [1]

[1] 83921f41fe (diff-93467241211d3f9d253fb8ad341738fbda5e5d3ade4721326f2bba82525fbaee)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-05-16 01:43:18 +01:00
Khem Raj
73ed90a6ff linux-firmware-rpidistro: Update to 20190114-1+rpt11
Update CYW43455 firmware
    - brcm/brcmfmac43455-sdio.bin 7.45.229
    - See: https://github.com/raspberrypi/linux/issues/3849

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-05-16 01:43:18 +01:00
Pierre-Jean Texier
d4d1441bd2 rpi-base: make SPLASH overridable from outside
Signed-off-by: Pierre-Jean Texier <texier.pj2@gmail.com>
2021-05-11 16:18:24 +01:00
Khem Raj
8cffbf5e85 raspberrypi-firmware: Update to include 5.10.31 updates
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-04-26 09:02:04 +01:00
Khem Raj
ff6cda5d8f linux-raspberrypi: Update to 5.10.31
Update yocto kernel metadata to latest 5.10 as well.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-04-26 09:02:04 +01:00
Persian Prince
bb974dc078 userland: Correct PV after SRCREV update 2021-04-12 17:11:03 +01:00
Khem Raj
f9a13f3b9a userland: Update to latest master
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-04-03 17:07:25 +01:00
Khem Raj
214c12870b raspberrypi-firmware: Update to 20210326
Includes prebuilts with 5.10.25 kernel

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-04-03 17:07:25 +01:00
Khem Raj
1e6e3222d9 linux-raspberrypi-5.10: Upgrade to 5.10.25
Detail changelog [1]

[1] ec967eb45f...d1fd8a5727
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-04-03 17:07:25 +01:00
Khem Raj
de51de5ca0 mesa-gl: Use GALLIUMDRIVERS instead of DRIDRIVERS for passing swrast
latest mesa errors out
../mesa-21.0.0/meson.build:21:0: ERROR: Options "swrast" are not in allowed choices: "auto, i915, i965, r100, r200, nouveau"

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-04-03 17:07:25 +01:00
Khem Raj
d1f191ed30 tune-arm1176jzf-s.inc: Rework to match oe-core
OE-core now uses -mcpu instead of mtune

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-03-24 16:32:03 +00:00
Khem Raj
3145390785 gitignore: Ignore .pyc files
They are generated, esepcially during test runs and selftests

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-03-24 10:07:46 +00:00
Khem Raj
8a149b63ab layer.conf: Drop gatesgarth and add honister to LAYERSERIES_COMPAT
master can only be validated with latest WIP oe-core releases so drop
gatesgrath which is now a dedicated release, soon hardknott will be out
too but for master needs its fine, while hear add honister ( fall 2021 )
release too

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-03-23 15:11:42 +00:00
Mike Looijmans
fdf02accfe rpi-base: Add missing overlay_map.dtb and vc4-kms-v3d-pi4.dtbo
overlay_map.dtb arranges that when config.txt requests "vc4-kms-v3d"
the rpi4 will actually load "vc4-kms-v3d-pi4" and fixups like that.
It is present on the official distros, and must be put into the
overlays subdirectory in the boot partition.
For a detailed description of the overlay_map.dts file see:
  https://www.raspberrypi.org/documentation/configuration/device-tree.md#part2.2.10

vc4-kms-v3d-pi4 is required for the arm based kms driver on the rpi4.

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
2021-03-09 19:44:16 +00:00
Mike Looijmans
ef04a3a523 linux-raspberrypi: Upgrade to 5.10.17
This fixes, amongst others, issues with I2C controller interrupts on the RPI4
that prevented a touch panel from functioning.

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
2021-03-09 19:44:16 +00:00
Mike Looijmans
0b4a73ebad raspberrypi-firmware: Update to 2021-02-25
This version is compatible with the 5.10.17 kernel
5985247fb7

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
2021-03-09 19:44:16 +00:00
Martin Jansa
853ccd7440 sdcard_image-rpi.bbclass: shorten the default BOOTDD_VOLUME_ID
* raspberrypi4-64 is 15 characters and with dosfstools-4.2 it breaks rootfs.rpi-sdimg with:
  mkfs.vfat: Label can be no longer than 11 characters
  mkfs.fat 4.2 (2021-01-31)

* introduced in:
  https://github.com/dosfstools/dosfstools/commit/c598354

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-03-04 16:24:38 +00:00
Mike Looijmans
68976061c5 overlays: Add "vc4-kms-dsi-7inch.dtbo"
In theory, this would allow one to use the official 7-inch touchscreen
in combination with the (non-firmware) kms driver by adding the
following lines to config.txt:

ignore_lcd=1
dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-dsi-7inch

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
2021-03-02 16:59:27 +00:00
Khem Raj
5e543bd817 python3-adafruit-blinka: Delete microcontroller/bcm283x for non arm32 machines
It has prebuilt binary libgpiod_pulsein for rpi machines and these binary is 32bit
therefore we can not include it for 64bit machines even if they are rpi
based unless they have multilib enabled.

This patch makes it visible only on 32bit rpi

Fixes QA errors like
ERROR: QA Issue: Architecture did not match (ARM, expected AArch64) in /usr/lib/python3.9/site-packages/adafruit_blinka/microcontroller/bcm283x/pulseio/.debug/libgpiod_pulsein [arch]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-03-01 10:49:06 +00:00
Khem Raj
0a83508fac python3-adafruit-blinka: Make rpi-gpio dependency conditional
https://github.com/agherzan/meta-raspberrypi/pull/815

introduced python3-adafruit-blinka and this recipe has added rdep on rpi-gpio,
however rpi-gpio is rpi specific package, and therefore should only be added
when building rpi based platforms, this makes the layer work in a
multi-bsp setup work

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-02-27 20:26:29 +00:00
Jose Quaresma
0a89fb8dac gstreamer1.0-omx: drop config-files-path.patch
gstreamer1.0-omx receipe on OE-core sets:
core-name=${GSTREAMER_1_0_OMX_CORE_NAME} on the installed gstomx.conf
in this case it will set:
core-name="${libdir}/libopenmaxil.so" in ${sysconfdir}/xdg/gstomx.conf
this is done in set_omx_core_name that is a do_install[postfuncs]

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2021-02-26 12:49:18 +00:00
Jose Quaresma
946fc1ee5f gstreamer1.0-omx: consolidate the append usage and only use one
move patches from gstreamer1.0-omx-1.18 => gstreamer1.0-omx
and use PN on FILESEXTRAPATHS

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2021-02-26 12:49:18 +00:00
Jose Quaresma
45a9819a43 gstreamer1.0-omx: drop custom cflags
This is not need any more to build with gstreamer 1.18

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2021-02-26 12:49:18 +00:00
Chris Laplante
f80b8d2dff python3-adafruit-pureio: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Chris Laplante
0d0c563aa1 python3-adafruit-platformdetect: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Chris Laplante
ca70494511 python3-adafruit-circuitpython-register: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Chris Laplante
76656d27bb python3-adafruit-circuitpython-pca9685: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Chris Laplante
0a58422984 python3-adafruit-circuitpython-motorkit: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Chris Laplante
b29eb27c5b python3-adafruit-circuitpython-motor: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Chris Laplante
823220e648 python3-adafruit-circuitpython-busdevice: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Chris Laplante
c8f7eae1b8 python3-adafruit-blinka: add recipe
Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
2021-02-26 12:48:42 +00:00
Martin Jansa
10d21b8022 sdcard_image-rpi.bbclass: increase default boot partition size from 40MiB to 48MiB
* 5.10 kernel got a bit bigger especially for aarch64:
  5.10:   22M     deploy/images/raspberrypi4-64/Image-raspberrypi4-64.bin
  5.10:  7.0M     deploy/images/raspberrypi4/uImage-raspberrypi4.bin
  5.4:    16M     deploy/images/raspberrypi4-64/Image-raspberrypi4-64.bin
  5.4:   6.2M     deploy/images/raspberrypi4/uImage-raspberrypi4.bin

* and the space in fat boot partition was already tight:
  Filesystem      Size  Used Avail Use% Mounted on
  /dev/mmcblk0p1   40M   38M  1.7M  96% /

* increase the size to compensate for it, otherwise
  do_image_rpi_sdimg now fails with:

Creating filesystem with Boot partition 40960 KiB and RootFS 1822720 KiB
0+0 records in
0+0 records out
0 bytes copied, 0.000100992 s, 0.0 kB/s
Model:  (file)
Disk foo.rootfs.rpi-sdimg: 1913MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  46.1MB  41.9MB  primary               boot, lba
 2      46.1MB  1913MB  1866MB  primary

mkfs.fat: warning - lowercase labels might not work properly with DOS or Windows
mkfs.fat 4.1 (2017-01-24)
Copying bootcode.bin
Copying cmdline.txt
Copying config.txt
Copying fixup.dat
Copying fixup4.dat
Copying fixup4cd.dat
Copying fixup4db.dat
Copying fixup4x.dat
Copying fixup_cd.dat
Copying fixup_db.dat
Copying fixup_x.dat
Copying rpi-bootfiles-20210205.stamp
Copying start.elf
Copying start4.elf
Copying start4cd.elf
Copying start4db.elf
Copying start4x.elf
Copying start_cd.elf
Copying start_db.elf
Copying start_x.elf
Copying bcm2711-rpi-4-b.dtb
Copying at86rf233.dtbo
Copying disable-bt.dtbo
Copying dwc2.dtbo
Copying gpio-ir.dtbo
Copying gpio-ir-tx.dtbo
Copying gpio-key.dtbo
Copying hifiberry-amp.dtbo
Copying hifiberry-dac.dtbo
Copying hifiberry-dacplus.dtbo
Copying hifiberry-digi.dtbo
Copying justboom-both.dtbo
Copying justboom-dac.dtbo
Copying justboom-digi.dtbo
Copying i2c-rtc.dtbo
Copying imx219.dtbo
Copying iqaudio-dac.dtbo
Copying iqaudio-dacplus.dtbo
Copying mcp2515-can0.dtbo
Copying mcp2515-can1.dtbo
Copying miniuart-bt.dtbo
Copying pitft22.dtbo
Copying pitft28-capacitive.dtbo
Copying pitft28-resistive.dtbo
Copying pitft35-resistive.dtbo
Copying pps-gpio.dtbo
Copying rpi-ft5406.dtbo
Copying rpi-poe.dtbo
Copying vc4-fkms-v3d.dtbo
Copying vc4-kms-v3d.dtbo
Copying w1-gpio.dtbo
Copying w1-gpio-pullup.dtbo
Copying kernel8.img
Copying boot.scr
Copying Image
Disk full
ERROR: mcopy cannot copy /OE/build/luneos-hardknott/webos-ports/tmp-glibc/deploy/images/raspberrypi4-64/Image into boot.img
WARNING: exit code 1 from a shell command.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-02-25 14:26:26 +00:00
Bartłomiej Burdukiewicz
f5fe02c30c rpi-cmdline: remove unnecessary spaces from cmdline.txt
With current recipe formatting CMDLINE variable contains
many unnecessary white spaces. This patch allow to drop
unnecessary spaces at the moment of writing them to
cmdline.txt. This will improve readability of cmdline.txt,
/proc/cmdline and dmesg output.

Signed-off-by: Bartłomiej Burdukiewicz <bartlomiej.burdukiewicz@gmail.com>
2021-02-08 17:37:46 +00:00
Aaron Shaw
509ff8c732 overlays: add missing device overlays
add overlays for pi zero, bcm2710 based rpi2 and rpi b rev 1

Change-type: patch
Signed-off-by: Aaron Shaw <aaron@balena.io>
2021-02-07 10:24:06 +00:00
Aaron Shaw
0c85f01506 overlays: add overlays for pi 400 and cm4
add overlays for pi 400 and cm4

Change-type: patch
Signed-off-by: Aaron Shaw <aaron@balena.io>
2021-02-07 10:24:06 +00:00
Aaron Shaw
fc11c5d95c overlays: add overlay to allow 64 bit usage with CM3
add overlay to allow 64 bit usage with CM3

Change-type: patch
Signed-off-by: Aaron Shaw <aaron@balena.io>
2021-02-07 10:24:06 +00:00
Martin Jansa
b52d47c048 raspberrypi-firmware.inc: upgrade to latest for 5.10.13 kernel
7d91570f20

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-02-06 13:23:34 +00:00
Martin Jansa
b947ce2148 rpi-default-versions: Switch default kernel to 5.10
* 5.10.11 is now considered stable:
  https://github.com/raspberrypi/firmware/blob/stable/extra/uname_string7
  8572bb50bf

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-02-06 13:23:34 +00:00
Martin Jansa
7565931e23 linux-raspberrypi: update LIC_FILES_CHKSUM in .inc file and drop from 5.10 and dev recipe
* COPYING was changed only 4 times (last time in 5.6 with:
  https://github.com/torvalds/linux/commit/74835c7db0322 )
  so hopefully it will last for a while

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-02-06 13:23:34 +00:00
Martin Jansa
dd163e0856 linux-raspberrypi: add recipe for 5.10 version
* 5.10.11 is now considered stable:
  https://github.com/raspberrypi/firmware/blob/stable/extra/uname_string7
  8572bb50bf

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-02-06 13:23:34 +00:00
Aurelian Zanoschi
48d081265d [documentation]Add USB host support in documentation
Signed-off-by: Aurelian Zanoschi <aurelian17@gmail.com>
2021-02-04 19:36:22 +00:00
Aurelian Zanoschi
7193857284 rpi-config: Add support for CM4 host USB
By default in case of CM4 IO board, the USB ports (header + built-in)
are disabled. In order to enable them the DWC2 mode needs to be set to
host.

Signed-off-by: Aurelian Zanoschi <aurelian17@gmail.com>
2021-02-04 19:36:22 +00:00
Ovidiu Panait
f24de44790 linux-raspberrypi: pass dtc flags via KERNEL_DTC_FLAGS
Currently, the do_compile log is cluttered with dtc warnings that should only
be printed when compiling with W="123":
...
/soc: node has a reg or ranges property, but no unit name
/soc/gpu: missing or empty reg/ranges property
/soc/firmware/gpio: missing or empty reg/ranges property
...

This happens because we pass dtc flags via KERNEL_EXTRA_ARGS directly on the
make command line, preventing scripts/Makefile.lib logic from appending flags
that silence dtc warnings (all assignments done from within a makefile, to a
variable specified on the command line, are ignored).

oe-core commit [1] introduced the dedicated KERNEL_DTC_FLAGS variable to pass
dtc flags via the environment. Use this variable to get rid of the do_compile
log noise.

The md5sums of the generated dtbs for raspberrypi3-64 and raspberrypi4-64 do
not change with this patch applied.

[1] https://github.com/openembedded/openembedded-core/commit/063b5de86624

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
2021-01-26 13:02:59 +00:00
Jonas Vautherin
56ab926557 linux-raspberrypi: Superfluous 'inherit kernel'
'recipes-kernel/linux/linux-yocto.inc' already inherits 'kernel'.
This commit removes the superfluous one in 'linux-raspberrypi.inc'.

Signed-off-by: Jonas Vautherin <jonas.vautherin@protonmail.ch>
2021-01-26 10:07:51 +00:00
Paul Barker
16eef23486 kas-poky-rpi.yml: Make git ignore layers cloned by kas
Move the layer paths used by kas into a `layers` subdirectory and add
this to the git ignore list.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2021-01-21 21:09:49 +00:00
Paul Barker
5570f2f55d linux-raspberrypi: Uprev yocto-kernel-cache
Signed-off-by: Paul Barker <pbarker@konsulko.com>
2021-01-21 21:09:49 +00:00
Paul Barker
b1d38437f5 linux-raspberrypi: Uprev to v5.4.83
Signed-off-by: Paul Barker <pbarker@konsulko.com>
2021-01-21 21:09:49 +00:00
Paul Barker
2a9c3bb551 raspberrypi4-64: No need to force arm_64bit=1
This workaround is no longer needed with recent firmware.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2021-01-21 21:09:49 +00:00
Paul Barker
a4a8ce9af4 conf: Use unified u-boot config for 64-bit targets
The rpi_arm64 configuration supports both Raspberry Pi 3 & 4 in 64-bit
mode. Switching to this config is a small step towards supporting a
unified build for these targets.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2021-01-21 21:09:49 +00:00
Aaron Shaw
9165aa52b6 overlays: add justboom overlays
add justboom overlays

Change-type: patch
Signed-off-by: Aaron Shaw <shawaj@gmail.com>
2021-01-19 09:24:51 +00:00
Aaron Shaw
1c66732627 overlays: reorder in alphabetical order
reorder list to be in alphabetical order

Change-type: patch
Signed-off-by: Aaron Shaw <aaron@balena.io>
2021-01-19 09:24:51 +00:00
Matt Spencer
881e603ca2 linux-raspberrypi: Enable use of 'RPI_EXTRA_CONFIG += ...' in local.conf
Before this patch, use of RPI_EXTRA_CONFIG += in a local.conf would overwrite
the needed 'arm_64bit=1' defined in the core recipes. The net result would be
a system that did not boot.

This patch fixes the assignment of 'arm_64bit=1' even if RPI_EXTRA_CONFIG
has been set elsewhere.

Signed-off-by: matthew@thespencers.me.uk
2021-01-19 09:24:09 +00:00
Martin Jansa
17eb1a2f00 rpi-config: use CONFIG shell variable
* instead of repeating //config.txt
  so many times, to make it a bit less error prone (as shown in previous commit)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-01-18 15:31:54 +00:00
Martin Jansa
5c9309de87 rpi-config: fix do_deploy
* in https://github.com/agherzan/meta-raspberrypi/pull/678 this line was acidentally changed
  from "${BOOTFILES_DIR_NAME}" to "bcm2835-bootfiles", causing do_deploy to fail finding config.txt

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-01-18 15:31:54 +00:00
SCVready
74deec51de rpi-config: Relocated "start_x=1" in config.txt
It seems like "start_x=1" needs to be earlier in the file to work properly on the Rapberry Pi 4 B.

Fixes: #670
Signed-off-by: SCVready <alejandro.solozabal@outlook.com>
2021-01-12 20:57:04 +00:00
Christopher Clark
e0b4b8c5df machine: use weak default for kernel and KERNEL_DEVICETREE settings
To allow other layers to easily provide a default kernel preference to
use with the Raspberry Pi MACHINEs, switch to use the ??= assignment
operator for setting the default kernel and the device tree value in
this layer.

This change is motivated by enabling Xen support in meta-virtualization
to use the raspberrypi4-64 MACHINE definition from this layer with the
Yocto Linux kernels.

Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
2021-01-12 20:43:49 +00:00
Ovidiu Panait
a7cc636d4e linux-raspberry: Drop 64-bit specific do_compile_append()
The functionality provided by this compile append is already present in
kernel-devicetree.bbclass since oe-core commit:
https://github.com/openembedded/openembedded-core/commit/74619de02774

The md5sums of the generated dtbs for raspberrypi3-64 and raspberrypi4-64 do
not change with this patch applied.

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
2020-12-24 17:52:49 +00:00
Khem Raj
3e2a8534a6 initramfs-image-bundle: Add MTD_UBI
CONFIG_UBIFS_FS is used as 'm' in defconfig and depends on MTD and MTD_UBI which
is also 'm', inorder for it to include in kernel proper, set MTD_UBI=y
and MTD=y as well.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-12-18 22:44:47 +00:00
Andrei Gherzan
3fe1f79ea2 README.md: Mention build server sponsor
balena.io has been sponsoring the project with a build server for a
while now. It's only fair for us to mention this somewhere in our
README.

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2020-12-18 22:44:13 +00:00
Khem Raj
361f42e346 raspidmx: Disable for all non-rpi hosts
Currently its only disabled when vc4graphics is in use but this recipe
actually needs userland and therefore can not be used for non-rpi
machines as well.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-12-14 23:20:22 +00:00
Trevor Woerner
e4f5c32925 raspidmx: add
Add a recipe to build a set of dispmanx examples.

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2020-12-13 20:34:11 +00:00
Trevor Woerner
4b89f63699 userland: fix invalid packageconfig
Fix the "allapps" PACKAGECONFIG to avoid the QA warning/error:

	userland-20201027-r0 do_configure: QA Issue: userland: invalid PACKAGECONFIG: allapps [invalid-packageconfig]

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2020-12-11 17:00:15 +00:00
Aaron Shaw
f82376c444 linux-firmware-rpidistro: Added firmware for BCM43456
The new Raspberry Pi 400 (and perhaps the CM4 as well) use the BCM43456 chip from Broadcom/Synaptics. This adds the necessary firmware.

Signed-off-by: Aaron Shaw <aaron@balena.io>
2020-12-09 00:17:10 +00:00
Khem Raj
1ae52a743c libglu: Fix build with userland graphics
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-12-04 11:18:40 +00:00
Khem Raj
80bcc2e0ed userland: Fix weston build with userland graphics
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-12-04 11:18:40 +00:00
Tobias Off
8e35fbffb0 linux-firmware-rpidistro: Missing link to firmware causes wifi not working on raspberrypi zero w
The link the brcmfmac is looking for was not created by the recipe for the raspberrypi zero w,
so the wifi was not working for this board. Adding link creation in the recipe solved the issue.

Signed-off-by: Tobias Off <sebastianoff@web.de>
2020-12-03 09:37:38 +00:00
Khem Raj
6c1c9ff4ee mesa-gl: Enable swrast dri backend for rpi/userland
After mesa switched build system to meson, the logic to generate dri
related artifacts changed too, which means when no dri backend is
enabled then dri drivers and corresponding headers dont get generated
and hence we end up with missing pkgconfig files e.g. dri.pc which
usually will come from full mesa3d package, but in rpi when userland is
used we only build GL pieces of mesa.

This patch therefore enables swrast dri backend when using userland,
which gives us the needed header and .pc files to build packages like
Xorg server, since EGL driver will come from userland, the dri backend
would be unused and hence should not be effective at runtime.

Addresses issue report with https://github.com/agherzan/meta-raspberrypi/pull/773

there is no need to check for graphics stack since mesa-gl is only used
with userland graphics

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Trevor Woerner <twoerner@gmail.com>
2020-12-02 22:10:03 +00:00
Trevor Woerner
3a1fec22c0 userland: add knob for ALL_APPS
The userland sources include a bunch of sample applications. Add an "allapps"
PACKAGECONFIG to allow the user to build the additional optional applications.

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2020-11-30 16:16:29 +00:00
Jose Quaresma
1da8814f8a gstreamer1.0-plugins-base: drop custom cppflags
This is not need any more to build with gstreamer 1.18

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2020-11-30 16:14:04 +00:00
Paul Barker
7a6759e242 linux-raspberrypi-dev: Update for testing v5.10.y
Linux 5.10 series will be the next LTS kernel so it's likely to be the
new stable branch for linux-raspberrypi within a couple of months. Let's
get set up to test it now.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
8c5809ebbb linux-raspberrypi: Merge v5.4 recipe & inc file
There is no need for a separate inc file for the v5.4 kernel recipe.

Variable assignments are simplified where possible after merging.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
64f6a1b7cc linux-raspberrypi: Drop unused rpi-kernel-misc config fragment
This config fragment was unconditionally disabled for the v5.4 kernel
so it can be dropped.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
2afeee9b82 linux-raspberrypi: Remove obsolete kernel versions
Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
ba3a417fbb rpi-bootfiles: Rename recipe to avoid ambiguity
The name `bootfiles` is too generic, we should use `rpi-bootfiles`
instead.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
b8440b3d26 bootfiles: Use BOOTFILES_DIR_NAME variable
This variable is set in rpi-base.inc and referenced by other recipes
which need to know the location of the bootfiles. If this is overridden
for any reason we need to ensure that the bootfiles recipe deploys to
the correct path.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
8827040d9c rpi-cmdline: Move cmdline.txt generation to a separate recipe
Instead of generating cmdline.txt in the kernel recipe, it is generated
in a standalone recipe and pulled in as a dependency of the bootfiles
recipe. This simplifies the process of using a linux-yocto,
linux-mainline or similiar kernel recipe instead of linux-raspberrypi.

In the rpi-cmdline recipe the command line is built from fragments which
can all be easily overridden. The variables `SERIAL` and `CMA` are
renamed to `CMDLINE_SERIAL` and `CMDLINE_CMA` for consistency. The
cmdline.txt file is created in the do_compile step to allow further
customisation via do_compile_append if needed.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
ba6a809a55 sdcard_image-rpi: Drop redundant dependency on rpi-config:do_deploy
The bootfiles:do_deploy task already depends on rpi-config:do_deploy so
we do not explicitly need to list the dependency again in the
sdcard_image-rpi class.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Paul Barker
1c8ad80861 linux-raspberrypi: Convert dynamic config patching to config fragments
This allows us to drop all of the custom config patching in
linux-raspberrypi.inc. It also allows the kernel config to be checked
during the build for any discrepancies between the selected config
options and the resulting .config file - this identified that
`CONFIG_DRM_VC4` depends on `CONFIG_SND` and `CONFIG_SND_SOC`.

Signed-off-by: Paul Barker <pbarker@konsulko.com>
2020-11-27 14:29:55 +00:00
Ming Liu
26a888d669 rpi-u-boot-scr: drop hard-coded 'arm'
Let's inherit kernel-arch and use ${UBOOT_ARCH} to replace the
hard-coded 'arm'.

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
2020-11-27 12:39:12 +00:00
Khem Raj
25d1eb4146 packagegroup-rpi-test: Add python3-sense-hat in a meta-python specific bbappend
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Khem Raj
5db97b41a8 armstubs: Always use gcc compiler
it uses assembly files .S which needs to be processed with gcc alone
until they are made portable use gcc

Fixes
| armstub7.S:175:2: error: instruction requires: thumb
|  cbz r6, 9f @ Skip this section if we are core 0
|  ^

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Khem Raj
dcdd0e4a20 raspberrypi-tools: Update to latest on master
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Khem Raj
fd83102af7 userland: Upgrade to latest as of 20201027
refresh patches

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Khem Raj
6a53db2fb6 raspberrypi-firmware: Update to latest to take 5.4.79 prebuilts
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Khem Raj
07a4d28f1d linux-raspberrypi_5.4.bb: Update to 5.4.79
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Khem Raj
a06878118c layer.conf: Add hardknott (3.3) to acceptable releases
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Khem Raj
08d27cd799 python3-sense-hat: Move to dynamic-layers
Only active when meta-python is in layermix, this recipe rdeps on
python3-pillow, which comes from meta-python, until that moves to
oe-core lets hide this recipe unless meta-python is used

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Jan-Simon Moeller
07fc972c60 python3-sense-hat: Switch to using pillow instead of imaging module
while meta-python does rprovide python3-imaging via python3-pillow, its
better to not rely on that bridge, since this might disappear in future

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-25 17:57:12 +00:00
Martin Jansa
9e9746f5a7 Revert "gstreamer1.0-plugins-good: add package config knob to enable rpicamsrc plugin"
This reverts commit 0ecec6a1f9.

The patch as well as PACKAGECONFIG were merged to oe-core recipe in:
https://git.openembedded.org/openembedded-core/commit/?id=fe828754467db0a09bbc5d6fd54bf6245bd0a747
2020-11-19 12:25:15 +00:00
Jose Quaresma
3db2e1e967 gstreamer1.0-plugins-good: enable rpicamsrc plugin
enable the plugin when vc4graphics is not on machine features
as it needs userland.

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2020-11-17 15:31:30 +00:00
Jose Quaresma
0ecec6a1f9 gstreamer1.0-plugins-good: add package config knob to enable rpicamsrc plugin
Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
2020-11-17 15:31:30 +00:00
Khem Raj
2e0b2d41cf linux-raspberrypi: Do not use += with append
append operator and += when used together results in undefined behaviour
in bitbake

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-11-14 23:27:08 +00:00
Madhavan Krishnan
b70c7b9021 libcamera: Enabled camera overlays define based
Added imx219.dtbo file in the overlays, and added dtoverlay in
/boot/config.txt define based.

To enable Sony Raspberry pi camera imx219 sensor, need to set
the variable RASPBERRYPI_CAMERA_V2 as 1.

In future, we can add any camera overlays here to support and
use them with libcamera.

Signed-off-by: Madhavan Krishnan <madhavan.krishnan@linaro.org>
2020-11-14 23:26:39 +00:00
Martin Jansa
15739db1ed layer.conf: Remove older releases from LAYERSERIES_COMPAT
* with gstreamer1.0-omx_1.18%.bbappend it won't even parse with
  dunfell and older
* and since
  36c3c2e7ca
  which renamed gstreamer1.0-omx_1.14%.bbappend to gstreamer1.0-omx_1.16%.bbappend it didn't
  parse with zeus and older

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-11-03 17:33:56 +00:00
Martin Jansa
393af232a7 gstreamer1.0-omx: rename bbappend to match new 1.18.0 version from oe-core
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-11-03 17:33:56 +00:00
Khem Raj
09a3c11696 userland: Apply format-overflow warning patch for gcc alone
This warning is gcc specific and causes build failures when building
with clang, lets therefore remove it when build is using clang compiler

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-21 17:56:14 +01:00
Marek Belisko
a8085558b5 u-boot: Fix booting raspberrypi CM3 module
With stock u-boot v2020.01 which we use from poky CM3 module won't boot.
We need to apply this patch in order to have platform again working.

Add it only for cm3 to not break anything else.

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
2020-10-21 17:39:43 +01:00
Khem Raj
6ca9b2f9f7 linux-raspberrypi: Fix build regression from last update
This patch is now backported into 5.4 stable

commit bc79abf4afea97d5ce682aa2bd1095fb74400916

so it should have been
deleted, otherwise its causing build/patch failures now as expected

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-20 20:09:55 +01:00
Eino Juhani Oltedal
2be75e2ef3 linux-raspberrypi: bump to Linux version 5.4.72
Fixes: "Bleeding Tooth" Bluetooth Vulnerability.

Signed-off-by: Eino Juhani Oltedal <einoju@gmail.com>
2020-10-20 16:39:25 +01:00
Khem Raj
6f85611576 layer.conf: Add gatesgarth to LAYERSERIES_COMPAT
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-15 20:47:33 +01:00
Alex Gonzalez
2324089fef linux-raspberrypi: Only deploy cmdline.txt for the main kernel
When multiple kernels are being built, not all of them can deploy the
same file.

Signed-off-by: Alex Gonzalez <alexg@balena.io>
2020-10-12 10:05:48 +01:00
Martin Jansa
6ed1b4ca64 python3-rtimu: don't use trailing slash in S
* see oe-core base.bbclass changes from:
  https://lists.openembedded.org/g/openembedded-core/message/143159
  https://lists.openembedded.org/g/openembedded-core/message/143161

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-10-11 20:27:56 +01:00
Martin Jansa
e13d6a2188 linux-raspberrypi-5.4: bump SRCREV to fix raspberrypi3-64 builds
* fixes:
  https://github.com/raspberrypi/linux/issues/3885

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-10-09 19:53:43 +01:00
Khem Raj
0355ceef76 rpi-default-settings: Replace default parselogs with parselogs_rpi
rpi kernel spits out additional errors in kernel logs which should be
ignored, there is no easy way to extend parselogs testcase other than
inheriting it into another testcase and use that testcase instead

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-09 19:53:43 +01:00
Khem Raj
a5626b6189 oeqa: Add 5.4 specific error messages to ignore list
with 5.4 fd580000.genet has been replaced with fd580000.ethernet in the
error text

Fixes
https://github.com/raspberrypi/linux/issues/3884

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-09 19:53:43 +01:00
Khem Raj
4606cf4831 raspberrypi-tools: Update to latest snapshot as of 20200803
Use date in PV, makes is good candidate for always increasing PV

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-05 18:39:54 +01:00
Khem Raj
a66e679f00 raspberrypi-firmware: Update to 20201002 snapshot
Brings in fixes for errors seen in kernel boot log
e.g.

https://github.com/raspberrypi/linux/issues/3878

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-05 18:39:54 +01:00
Khem Raj
f762c8d9f5 linux-raspberrypi_5.4.bb: Update to 5.4.69
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-05 18:39:54 +01:00
Madhavan Krishnan
6f4446bffc libcamera: Define packageconfig to enable rpi pipeline
libcamera middleware has supported many pipelines for video frames capturing.
So defined the packageconfig, to enable the rpi pipeline and to capture frames
using the rpi camera sensor.

Signed-off-by: Madhavan Krishnan <madhavan.krishnan@linaro.org>
2020-10-05 18:19:50 +01:00
Murat Kilivan
329b50f252 linux-raspberrypi_5.4.bb: Add kernel-cache source
Fixes the following error:
ERROR. input file "cfg/virtio.scc" does not exist

Signed-off-by: Murat Kilivan <murat.kilivan@gmail.com>
2020-10-05 12:05:39 +01:00
Khem Raj
165845b95d linux-firmware-rpidistro: Update to 20190114-1+rpt8
* Update brcmfmac43455-sdio.bin to 7.45.206
* Add BCM43456 firmware
  - brcm/brcmfmac43456-sdio.bin 7.84.17.1
  - brcm/brcmfmac43456-sdio.clm_blob
  - brcm/brcmfmac43456-sdio.txt

* Add compatibility links for direct firmware download to work properly
  Fixes
  brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt failed with error -2

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-10-05 11:44:07 +01:00
Martin Jansa
0e9c32c816 Revert "linux-raspberrypi-5.4: revert 1 commit from upstream to fix lttng-modules build"
This reverts commit d1257fc127.

Now lttng-modules in oe-core were updated in:
https://git.openembedded.org/openembedded-core/commit/?id=62c87d1a68c4f7c8f30c3c5330dcda9cbcbbbaa7
and the backported patch:
https://git.openembedded.org/openembedded-core/diff/meta/recipes-kernel/lttng/lttng-modules/0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch?id=62c87d1a68c4f7c8f30c3c5330dcda9cbcbbbaa7
now expects new writeback_queue_io API being available in LTTNG_KERNEL_RANGE(5,4,62, 5,5,0)
so we need to re-enable it.
2020-09-18 09:53:18 +01:00
Luis Alfredo da Silva
c5633df788 Revert "mesa: querying dma_buf modifiers for specific formats"
This reverts commit 84cb8538cd.

Fixes:
    - https://gitlab.gnome.org/GNOME/mutter/-/issues/1421
    - #711
2020-09-17 15:25:39 +01:00
Martin Jansa
60b4bcbae5 raspberrypi-{firmware,tools}: set downloadfilename
* otherwise we end with big archives in downloads directory without clear
  indication from where they came
* e.g. in one of my jenkins builds I've noticed:
  -rw-rw-r-- 1 jenkins jenkins 178M Jun 30 15:45 downloads/23548e550a757d368d3d5220373fe829b5961c42.tar.gz
  -rw-rw-r-- 1 jenkins jenkins 152M Sep  5  2019 downloads/7163480fff007dc98978899b556dcf06f8a462c8.tar.gz
  -rw-rw-r-- 1 jenkins jenkins 179M Jul 23 01:34 downloads/7e74bcb4f9706f36f752d1c3d3164628ccf2aae5.tar.gz
  -rw-rw-r-- 1 jenkins jenkins 178M Jun  5 12:34 downloads/7eff9f6774bb43bfd61e749a0b45ffddc98c2311.tar.gz
  -rw-rw-r-- 1 jenkins jenkins 177M Apr 23 14:49 downloads/84523e0b9a9e78aa69fca1f1a8d75b2bdb5155fc.tar.gz
  -rw-rw-r-- 1 jenkins jenkins 178M Jan 13  2020 downloads/9d6be5b07e81bdfb9c4b9a560e90fbc7477fdc6e.tar.gz

  -rw-rw-r-- 1 jenkins jenkins  463 Jul  1 03:58 downloads/23548e550a757d368d3d5220373fe829b5961c42.tar.gz.done
  -rw-rw-r-- 1 jenkins jenkins  141 Jan 16  2020 downloads/7163480fff007dc98978899b556dcf06f8a462c8.tar.gz.done
  -rw-rw-r-- 1 jenkins jenkins  463 Aug  1 15:40 downloads/7e74bcb4f9706f36f752d1c3d3164628ccf2aae5.tar.gz.done
  -rw-rw-r-- 1 jenkins jenkins  463 Jun  6 09:54 downloads/7eff9f6774bb43bfd61e749a0b45ffddc98c2311.tar.gz.done
  -rw-rw-r-- 1 jenkins jenkins  463 May 16 03:35 downloads/84523e0b9a9e78aa69fca1f1a8d75b2bdb5155fc.tar.gz.done
  -rw-rw-r-- 2 jenkins jenkins  141 Aug  7 22:10 downloads/9d6be5b07e81bdfb9c4b9a560e90fbc7477fdc6e.tar.gz.done

* unfortunately using git fetcher is still problematic because of git repo size:
  15G   firmware
  1,6G  tools

  -rw-rw-r-- 1 jenkins jenkins 180M Sep 17 13:59 downloads/raspberrypi-firmware-a490197f0672d948860b2b807884ae65eabc4d4f.tar.gz
  -rw-rw-r-- 1 jenkins jenkins  463 Sep 17 14:09 downloads/raspberrypi-firmware-a490197f0672d948860b2b807884ae65eabc4d4f.tar.gz.done
  -rw-rw-r-- 1 jenkins jenkins 324M Sep 17 14:10 downloads/raspberrypi-tools-b0c869bc929587a7e1d20a98e2dc828a24ca396a.tar.gz
  -rw-rw-r-- 1 jenkins jenkins  463 Sep 17 14:10 downloads/raspberrypi-tools-b0c869bc929587a7e1d20a98e2dc828a24ca396a.tar.gz.done

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-09-17 13:14:41 +01:00
Martin Jansa
d1257fc127 linux-raspberrypi-5.4: revert 1 commit from upstream to fix lttng-modules build
* fixes:
  lttng-modules/2.12.2-r0/lttng-modules-2.12.2/probes/../probes/lttng-tracepoint-event-impl.h:131:6: error: conflicting types for 'trace_writeback_queue_io'

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-09-14 15:59:27 +01:00
Pierre-Jean Texier
9f013e3cd1 linux-raspberrypi: bump to Linux version 5.4.64
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-09-12 21:38:16 +01:00
Pierre-Jean Texier
16a6e0b4ea raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-09-12 21:38:16 +01:00
Andrzej Bednarski
61bea92793 docs: Correct minor spelling issues
Correct spelling issues in the 'extra-build-config.md' file.

Signed-off-by: Andrzej Bednarski <andrzej.bednarski@gmail.com>
2020-09-11 15:30:59 +01:00
Khem Raj
a34a6d9eaf README: Mention Yoe distro in supported distro list
Remove angstrom as it is no longer uptodate

Fixes Issue #563

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-09-03 14:43:34 +01:00
Khem Raj
5013a063d5 linux-raspberrypi_5.4.bb: Build ashmem and binder drivers
These are android drivers, which help in running anbox on top of
raspberrypi machines

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-09-03 14:43:10 +01:00
Martin Jansa
46f4028e6f rpi-gpio: add -fcommon temporarily
* until the fix is available upstream

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-09-02 21:43:09 +01:00
Martin Jansa
1991ef8283 linux-raspberrypi-5.4: backport a fix for perf build with -fno-common from gcc-10
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-09-02 21:43:09 +01:00
Khem Raj
968dcd3f40 libsdl2: Add userland dependency when not using vc4graphics
Needed to provide KHR/khrplatform.h header

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-08-28 14:59:43 +01:00
Khem Raj
979fb504c3 xserver-xorg: Depend on userland when vc4graphics is disabled
This helps in getting right headers, we have made a choice to let
userland provide KHR/khrplatform.h when using it instead of mesa-gl
which could have been another provider, xserver-xorg's glx
implementation depends on virtual/libgl which in case of rpi-without-vc4
driver is provided by mesa-gl, as a result, compilation fails since no
one is providing this header in this case.

Fixes errors like
usr/include/GL/glext.h:56:10: fatal error: KHR/khrplatform.h: No such file or directory
|    56 | #include <KHR/khrplatform.h>
|       |          ^~~~~~~~~~~~~~~~~~~

Fixes issue #391

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-08-28 14:59:43 +01:00
Khem Raj
0433b69889 raspberrypi-firmware: Upgrade to 20200819
Includes 5.4.59 bumps

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-08-24 22:59:04 +01:00
Khem Raj
c61ccdbb93 linux-raspberrypi: Update to 5.4.59
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-08-24 22:59:04 +01:00
Martin Jansa
cc6074c660 linux-raspberrypi-5.4: bump SRCREV to latest to fix perf build
Needs some fixes from newer 5.4 kernel, e.g.:
1b940bbc5c55 Linux 5.4.56
df35e878d0a5 perf bench: Share some global variables to fix build with gcc 10
702d1b287fd2 perf env: Do not return pointers to local variables
73d2d6b421df perf tests bp_account: Make global variable static

to fix:
  LINK     perf/1.0-r9/perf-1.0/perf
perf/1.0-r9/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ld: error: perf/1.0-r9/perf-1.0/plugins/libtraceevent-dynamic-list:2:15: invalid character
perf/1.0-r9/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ld: error: perf/1.0-r9/perf-1.0/plugins/libtraceevent-dynamic-list:2:15: syntax error, unexpected end of file, expecting ';'
perf/1.0-r9/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ld: fatal error: unable to parse dynamic-list script file perf/1.0-r9/perf-1.0/plugins/libtraceevent-dynamic-list
collect2: error: ld returned 1 exit status
Makefile.perf:609: recipe for target 'perf/1.0-r9/perf-1.0/perf' failed
make[2]: *** [perf/1.0-r9/perf-1.0/perf] Error 1
make[2]: *** Waiting for unfinished jobs....
perf/1.0-r9/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ld: error: perf/1.0-r9/perf-1.0/plugins/libtraceevent-dynamic-list:2:15: invalid character
perf/1.0-r9/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ld: error: perf/1.0-r9/perf-1.0/plugins/libtraceevent-dynamic-list:2:15: syntax error, unexpected end of file, expecting ';'
perf/1.0-r9/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ld: fatal error: unable to parse dynamic-list script file perf/1.0-r9/perf-1.0/plugins/libtraceevent-dynamic-list
collect2: error: ld returned 1 exit status
error: command 'arm-oe-linux-gnueabi-gcc' failed with exit status 1
cp: cannot stat 'perf/1.0-r9/perf-1.0/python_ext_build/lib/perf*.so': No such file or directory
Makefile.perf:571: recipe for target 'perf/1.0-r9/perf-1.0/python/perf.so' failed

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2020-08-18 20:19:23 +01:00
Pierre-Jean Texier
f5c39711c4 linux-raspberrypi: bump to revision 4b945d5
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-08-13 17:09:44 +01:00
Pierre-Jean Texier
42e4b4b889 raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-08-13 17:09:44 +01:00
Pierre-Jean Texier
9adb9b81b2 rpi-default-versions: Switch defaults to 5.4
Linux Kernel 5.4 is now considered stable.

See [1] to check the current apt stable kernel.

[1] - https://github.com/raspberrypi/firmware/blob/stable/extra/uname_string7

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-08-13 17:09:44 +01:00
Andrei Gherzan
5c3bda2acb sdcard_image-rpi.bbclass: Fix when RPI_SDIMG_EXTRA_DEPENDS not defined
If the variable is not defined, bitbake will fail:

[...]
Task 'depends' should be specified in the form 'packagename:task'
[...]

This is because not expanding the variable leaves an invalid entry.

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
2020-08-10 11:09:45 +01:00
Jeff Ithier
f046b4128c Generalize the naming of the bootfiles deploy directory
The raspberry pi 4 variant has a BCM2711 chip, however it still
uses the same boot files as the BCM2835 used in previous generations.
This change generalizes the naming of the directory generated in the
$DEPLOY_DIR to avoid the implication that the files are only
meant for the BCM2835.

Signed-off-by: Jeff Ithier <ithijme@gmail.com>
2020-08-06 11:00:29 +01:00
Christopher Clark
11318d2da1 docs/extra-build-config.md: document vars to add to boot partition
FATPAYLOAD, DEPLOYPAYLOAD and RPI_SDIMG_EXTRA_DEPENDS

Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
2020-07-29 11:54:14 +01:00
Christopher Clark
c883daa802 sdcard_image-rpi.bbclass: enable extensible inclusion into boot
Add DEPLOYPAYLOAD, similar to the existing FATPAYLOAD, to enable
adding files to the boot partition from the image deploy directory.
Files such as hypervisor binaries may not be present (and in fact
unwanted) within the root filesystem, so FATPAYLOAD is not sufficient.

DEPLOYPAYLOAD is implemented with support for file renaming from the
source file in the image deploy directory to the filename written into
the boot image. DEPLOYPAYLOAD is a space-separated list of entries for
additions, each of which can optionally be colon-separated:
    <image deploy directory file>:<destination filename>

If the colon separator is omitted, the source deploy directory filename
is used as the destination filename.

The support for specifying the destination filename is used for
including Xen, which produces a machine-specific file in the image
deploy directory, and is written to the image partition with its
expected filename: xen.

Files that are to be included from the image deploy directory will
be produced by tasks that the do_image_rpi_sdimg[depends] must list,
so enable adding entries to that via a new variable:
RPI_SDIMG_EXTRA_DEPENDS.

These changes enable retiring a Xen-specific Raspberry Pi SD card
bbclass from meta-virtualization and have been tested on the
Raspberry Pi 4.

Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
2020-07-29 11:54:14 +01:00
Jakub Luzny
eaf4a5f17e docs/extra-build-config.md: Document CAN_OSCILLATOR variable
Add instructions how to use CAN_OSCILLATOR variable and declare support
for the Waveshare RS485 CAN HAT.

Signed-off-by: Jakub Luzny <jakub@luzny.cz>
2020-07-29 11:52:09 +01:00
Jakub Luzny
603f3891fe rpi-config: Add CAN_OSCILLATOR variable to set mcp2515 crystal frequency
Current configuration (16MHz) is made for the PiCAN2 board that uses 16MHz crystal. This setting allows for use of Waveshare RS485 CAN HAT that has 8MHz crystal soldered (although according to Waveshare there is also a 12MHz crystal version of the board).

Signed-off-by: Jakub Luzny <jakub@luzny.cz>
2020-07-29 11:52:09 +01:00
Fabio Berton
fc72c06141 u-boot: Move fw_env.config to u-boot append
The u-boot-env is provided by u-boot recipe and not by libubootenv, so
right recipe to append is the u-boot.

Adding the rpi-u-boot-scr in DEPENDS variable is wrong because it is
forcing rpi-u-boot-scr to be a dependency, but it'll fail if I have
another recipe that provides bootscript, once both recipes provide the
same file. The default value of u-boot-default-script is rpi-u-boot-scr,
so right way is to use u-boot-default-script and change the
PREFERRED_PROVIDER_u-boot-default-script if needed.

Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
2020-07-27 15:34:17 +01:00
colin
e2c1992955 docs: Added documentation for Pican2 Duo support
Added documentation for ENABLE_DUAL_CAN build configuration and support
for Pican2 Duo board.

Signed-off-by: Colin McAllister <colinmca242@gmail.com>
2020-07-23 13:03:23 +01:00
colin
85d3dd81c5 rpi-config_git: Added ENABLE_DUAL_CAN build configuration
Currently ENABLE_CAN adds mcp2525-can0 to the dtoverlay.

ENABLE_DUAL_CAN was added to also add mcp2515-can1 to the dtoverlay.
This will allow a user to enable dual CAN when using a hat like the
PiCAN 2 Duo board.

Signed-off-by: Colin McAllister <colinmca242@gmail.com>
2020-07-23 13:03:23 +01:00
colin
73c686a70a conf/machine/include/rpi-base.inc: Added can1 interface to bsp
The device tree only supports a single CAN interface.  This prevents
compatiblity with dual-CAN boards like the PiCAN2 Duo.

The mcp2515-can1 device tree blob for overlay was added to RPI_KERNEL_DEVICETREE_OVERLAYS in order to support dual-CAN hats.

Signed-off-by: Colin McAllister <colinmca242@gmail.com>
2020-07-23 13:03:23 +01:00
Christopher Clark
e28d6b83ea rpi-base: add SERIAL_CONSOLES_CHECK to default to SERIAL_CONSOLES
As per the example in the bsp-guide, and the qemu and other machine
configs. Assists when running virtualized, where serial console
device can differ.

Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
2020-07-17 01:03:27 +01:00
Khem Raj
497a90a220 userland: Update to 2020-06-24 top commit
Forward port patches

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-07-14 17:16:50 +01:00
Pierre-Jean Texier
372dc40ae3 raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-07-14 17:15:50 +01:00
Pierre-Jean Texier
32eb4bd8ad linux-raspberrypi: bump to Linux version 5.4.51
Fixes:

ERROR: linux-raspberrypi-1_5.4.50+gitAUTOINC+856e83151c-r0 do_fetch: Fetcher failure: Unable to find revision 856e83151cf3f802c495585ac176bb135a08030f in branch rpi-5.4.y even from upstream
ERROR: linux-raspberrypi-1_5.4.50+gitAUTOINC+856e83151c-r0 do_fetch: Fetcher failure for URL: 'git://github.com/raspberrypi/linux.git;branch=rpi-5.4.y'. Unable to fetch URL from any source.

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-07-14 17:15:50 +01:00
Christopher Clark
0d398a3b71 linux-raspberrypi: bump to 5.4.50 since upstream was force-pushed
Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
2020-07-08 14:09:28 +01:00
Leon Anavi
27d0016b6b libubootenv_%.bbappend: Add fw_env.config
Add fw_env.config that uses at run-time /boot/uboot.env generated
through the boot scripts (specifically boot.cmd.in) from recipe
rpi-u-boot-scr. This configuration file is required to
successfully run fw_printenv from the user space.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-07-03 20:49:32 +01:00
Leon Anavi
64bd47fe58 rpi-u-boot-scr: Create uboot.env via boot.cmd.in
Modify boot.cmd.in from recipe rpi-u-boot-scr to create uboot.env
in the /boot partition when using U-Boot. This change is required
to successfully run fw_printenv from the user space.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-07-03 20:49:32 +01:00
Leon Anavi
a6f1233d52 lirc: Rename bbappend to match only version 0.10.1
Rename LIRC bbappend file to match only version 0.10.1 because the
applied patch is not compatible with older LIRC versions.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-25 10:36:13 +01:00
Leon Anavi
260b89ecd1 docs/extra-build-config.md: Infrared
Add instructions how to use variable ENABLE_IR for infrared
support, for example with LIRC.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-24 17:01:17 +01:00
Leon Anavi
770a69f18d lirc_%.bbappend: Use lircd.service as in Raspbian
Use lircd systemd service similar to the one in Raspbian. Start
lircd with argument --nodaemon after lircd-setup.service.

Edit device in /etc/lirc/lirc_options.conf to switch between
receive and transmit modes (lircd must be restarted after such
change).

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-24 17:01:17 +01:00
Leon Anavi
cdee89b0a0 rpi-base.inc: Include modules if IR is enabled
Add kernel modules gpio-ir and gpio-ir-tx to variable
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS if ENABLE_IR is set to 1.
Variable ENABLE_IR enables infrared support (for LIRC). This
change affects images based on packagegroup-core-boot, including
the core-image-minimal image.

For other images (based on packagegroup-base) kernel modules
are provide through variable MACHINE_EXTRA_RRECOMMENDS.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-24 17:01:17 +01:00
Leon Anavi
c482e2cc7c rpi-config: Add ENABLE_IR variable for infrared
Users who want infrared device tree overlays gpio-ir and
gpio-ir-tx to be set in config.txt can now easily do it through
variable ENABLE_IR, for example in local.conf:

ENABLE_IR = "1"

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 (for example in local.conf).

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-24 17:01:17 +01:00
Leon Anavi
4499d60e60 lirc: Move to dynamic-layers
Move lirc to dynamic-layers/meta-python/recipes-connectivity/ to
avoid related issues while building rpi-basic-image.

Reported-by: Alan <engineer@iotexpert.com>
Suggested-by:  Khem Raj <raj.khem@gmail.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-24 17:01:17 +01:00
Jon Magnuson
aa47ab631d packagegroup-rpi-test: resolve wireless-regdb conflict
Replaces `wireless-regdb` with `wireless-regdb-static` provided by poky.

Fixes #639.

Signed-off-by: Jon Magnuson <jon.magnuson@gmail.com>
2020-06-24 14:15:27 +01:00
M. ter Woord
5576a22061 Update layer-contents.md to include pi4
Signed-off-by: Matthijs ter Woord <matthijsterwoord@gmail.com>
2020-06-21 19:29:47 +01:00
Khem Raj
5ac6f01333 linux-raspberrypi_5.4.bb: Upgrade to 5.4.47
Drop backported patches which are already in this release

Fixes Issue #658

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-06-21 10:45:14 +01:00
Leon Anavi
f927dcd8c6 lirc_%.bbappend: Fix for gpio-ir
Apply Raspberry Pi specific fix to use LIRC with gpio-ir kernel
module with which the signal from /dev/lircX is slightly different
from that of lirc_dev (which was used with older LIRC and kernel
versions). The patch has been published by neuralassembly and he
has shared more details in the Raspberry Pi community forum:
https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=235256

LIRC ticket #359 tracks the upstreaming of this issue:
https://sourceforge.net/p/lirc/tickets/359/

Co-authored-by: neuralassembly <neuralassembly@gmail.com>
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-17 14:50:02 +01:00
Khem Raj
39cf54c3cb linux-raspberrypi_5.4.bb: Move to 5.4.45
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-06-13 14:10:23 +01:00
Pierre-Jean Texier
e589e0f3fd linux-raspberrypi: bump to Linux version 4.19.126
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-06-05 13:13:07 +01:00
Pierre-Jean Texier
e4ed884688 raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-06-05 13:13:07 +01:00
Leon Anavi
dc8638c979 rpi-base.inc: Add infrared dtbo
Add device tree binary overlays gpio-ir-tx and gpio-ir-tx to
support peripherals for sending and receiving infrared signals.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-06-04 18:13:08 +01:00
Brandon Verkamp
4982da8d48 docs: Remove reference to xz-compressed sdimg 2020-05-22 15:42:12 +01:00
Brandon Verkamp
a50651ef74 docs: Correct Quick Start instructions to show the new .wic.bz2 extension
Corrects README.md to indicate that the new generated image extension is
.wic.bz2 rather than sdimg as previously stated.

Signed-off-by: Brandon Verkamp <jadelclemens@gmail.com>
2020-05-22 15:42:12 +01:00
Khem Raj
f9b9181521 linux-raspberrypi: Update to latest on 5.4 release
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-05-20 12:10:11 +01:00
Khem Raj
6f85d3f665 linux-raspberrypi_5.4.bb: Update to 5.4.35
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-05-09 12:17:54 +01:00
Pierre-Jean Texier
aba412e034 linux-raspberrypi: bump to Linux version 4.19.120
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-05-09 12:16:52 +01:00
Pierre-Jean Texier
3cda39cda2 raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-05-09 12:16:52 +01:00
Leon Anavi
45ee64377b rpi-base.inc: Include modules if I2C is enaled
Add kernel modules i2c-dev and i2c-bcm2708 to variable
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS if ENABLE_I2C is set to 1.
This affects images based on packagegroup-core-boot, including
the core-image-minimal image.

For other images (based on packagegroup-base) kernel modules
are provide through variable MACHINE_EXTRA_RRECOMMENDS.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-04-28 15:13:45 +01:00
Khem Raj
87a44aa75b linux-raspberrypi_5.4.bb: Update to latest
brings in some pinmux and dtoverlays

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-28 10:36:19 +01:00
Bartłomiej Burdukiewicz
6149445010 linux-raspberrypi_5.4.bb: Update to latest
Signed-off-by: Bartłomiej Burdukiewicz <bartlomiej.burdukiewicz@gmail.com>
2020-04-27 11:56:59 +01:00
Khem Raj
9dd58b1bf2 psplash: Do not define ALTERNATIVE_PRIORITY for non-existing provider
This simply causes build warnings about priority of two packages being
same, but infact this is redundant, therefore remove setting ALTERNATIVE_PRIORITY
for psplash-raspberrypi

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-20 11:07:49 +01:00
Khem Raj
8c4980db54 linux-firmware-rpidistro: Upgrade to 20190114-1+rpt6
Adjust PV to reflect the release and make it a bit meaningful

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-20 11:06:25 +01:00
Pierre-Jean Texier
9e67048f32 linux-raspberrypi: bump to Linux version 4.19.115
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-04-18 15:56:39 +01:00
Pierre-Jean Texier
7671f666b2 raspberrypi-firmware: update to current HEAD
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
2020-04-18 15:56:39 +01:00
Khem Raj
9816a45604 linux-raspberrypi_5.4.bb: Update to latest
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-16 12:45:04 +01:00
Leon Anavi
0917b60527 rpi-base.inc: Add kernel modules to all images
Add kernel modules, including i2c-dev and i2c-bcm2708, to variable
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS. This way kernel modules will
be present in all images based on packagegroup-core-boot,
including the core-image-minimal image.

Otherwise, if modules, are in variable MACHINE_EXTRA_RRECOMMENDS
they will be added only in images based on packagegroup-base,
which does not include the core-image-minimal or
core-image-full-cmdline images.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-04-15 11:46:58 +01:00
Drew Moseley
c7bc97c97e raspberrypi3: Switch to vc4-fkms-v3d.
This seems to be required to have a functional DSI display.

Signed-off-by: Drew Moseley <drew.moseley@northern.tech>
2020-04-15 11:45:48 +01:00
Khem Raj
3b2ded5ae7 linux-raspberrypi_5.4.bb: Backport the patch to use CHECK macro instead of RET_IF
Revert couple of regressions for selftest

Fixes

| /usr/src/debug/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/testing/selftests/bpf/test_select_reuseport.c:671: undefined reference to `RET_IF'

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-15 11:35:23 +01:00
Khem Raj
8d163dd844 linux-raspberrypi_5.4.bb: Enable powersave options in kconfig
Will let system hibernate and suspend, its initial setup, there is more
work needed to get it going fully without problems in userspace, which
will follow

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-08 22:31:24 +01:00
Khem Raj
9f47df580e linux-raspberrypi_5.4.bb: Update to latest and fix build with binutils 2.34
perf fails to build without bfd patch still, therefore apply it to 5.4
as well.

Update to latest on 5.4 branch

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-08 22:31:24 +01:00
Khem Raj
d50c60ee28 linux-raspberrypi: Add recipes for kernel 5.4
5.4 is slated to be next hop for linux-raspberrypi, here add the
recipes, default is still 4.19, we can switch that later

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-08 11:38:35 +01:00
Khem Raj
01b162388e 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: Khem Raj <raj.khem@gmail.com>
2020-04-08 11:38:35 +01:00
Khem Raj
025a2025ea userland: Fix build with gcc10
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-03 17:34:07 +01:00
Khem Raj
909a962fe1 userland: Update to 20200316 snapshot
- Refresh patches

- userland now needs to create symlinks for egl.pc,glesv2.pc and vg.pc
  when vc4 is not used

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-03 17:34:07 +01:00
Khem Raj
eaa1314259 qtbase: Drop xkb packageconfig
meta-qt5 master has dropped it too

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-04-03 17:34:07 +01:00
Fabio Berton
44d7dd0e4a rpi-u-boot-scr: Set u-boot-default-script as provider
Add u-boot-default-script to the PROVIDES variable to make easier to
replace boot script in another layer just by changing
PREFERRED_PROVIDER_u-boot-default-script variable. Set rpi-u-boot-scr as
the default provider for meta-raspberrypi.

Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
2020-04-03 17:32:19 +01:00
Leon Anavi
acca2a00eb docs/extra-build-config.md: Auto-load I2C modules
Add instructions how to auto-load I2C kernel modules with
KERNEL_MODULE_AUTOLOAD when I2C is enabled.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2020-04-03 14:02:29 +01:00
195 changed files with 3700 additions and 1247 deletions

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 unconditinally 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: [self-hosted, Linux]
steps:
- uses: styfle/cancel-workflow-action@0.9.1
with:
all_but_latest: true
workflow_id: ${{ github.event.workflow.id }}

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

@@ -0,0 +1,47 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: Compliance
on:
pull_request:
jobs:
dco:
name: DCO
runs-on: [self-hosted, Linux]
steps:
- name: Checkout the code
uses: actions/checkout@v2
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 -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: [self-hosted, Linux]
steps:
- name: Checkout the code
uses: actions/checkout@v2
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,21 @@
#!/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"
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,39 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
FROM ubuntu:20.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
RUN eatmydata apt-get install -qq -y \
gawk wget git diffstat unzip texinfo gcc build-essential chrpath \
socat cpio python3 python3-pip python3-pexpect xz-utils debianutils \
iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
pylint3 xterm python3-subunit mesa-common-dev zstd liblz4-tool
# 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
# 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,61 @@
#!/bin/sh
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
set -ex
# shellcheck disable=SC1091
. /utils.sh
META_RASPBERRYPI_PATH="/work"
[ -n "$BASE_REF" ] ||
error "Target branch is needed. Make sure that is set in BASE_REF."
[ -d "$META_RASPBERRYPI_PATH/.git" ] ||
error "Can't find a git checkout under $META_RASPBERRYPI_PATH ."
[ -n "$MACHINE" ] ||
error "Machine to be used for build not provided."
[ -n "$IMAGE" ] ||
error "Image to build not provided."
TEMP_DIR="$(mktemp -d)"
cd "$TEMP_DIR"
REPOS=" \
git://git.yoctoproject.org/poky.git \
"
for repo in $REPOS; do
log "Cloning $repo on branch $BASE_REF..."
git clone --depth 1 --branch "$BASE_REF" "$repo"
done
# shellcheck disable=SC1091,SC2240
. ./poky/oe-init-build-env build
# Build configuration
printf "\n# ------ ci ------\n" >> conf/local.conf
[ -z "$SSTATE_DIR" ] || echo SSTATE_DIR = \""$SSTATE_DIR"\" >> conf/local.conf
[ -z "$DL_DIR" ] || echo DL_DIR = \""$DL_DIR"\" >> conf/local.conf
[ -z "$DISTRO" ] || echo DISTRO = \""$DISTRO"\" >> conf/local.conf
cat <<EOCONF >>conf/local.conf
BB_NUMBER_THREADS = "6"
PARALLEL_MAKE = "-j 6"
DISTRO_FEATURES:append = " systemd"
VIRTUAL-RUNTIME_init_manager = "systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit"
VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"
EOCONF
# Add the BSP layer
bitbake-layers add-layer "$META_RASPBERRYPI_PATH"
# Log configs for debugging purposes
for f in 'conf/local.conf' 'conf/bblayers.conf'; do
printf "\n------ %s ------\n" "$f"
cat "$f"
done
# Fire!
MACHINE="$MACHINE" bitbake "$IMAGE"

View File

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

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

@@ -0,0 +1,22 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: Mirrors
on: [ push, delete, create ]
concurrency:
group: git-mirror-me
jobs:
yocto-mirror:
name: Yocto Git Mirror
runs-on: [self-hosted, Linux]
steps:
- uses: agherzan/git-mirror-me-action@v1.0.0
env:
SSH_PRIVATE_KEY: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_PRIVATE_KEY }}
SSH_KNOWN_HOSTS: ${{ secrets.YOCTO_META_RASPBERRYPI_SSH_KNOWN_HOSTS }}
with:
destination-repository: "git@push.yoctoproject.org:meta-raspberrypi"

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

@@ -0,0 +1,67 @@
# SPDX-FileCopyrightText: Andrei Gherzan <andrei.gherzan@huawei.com>
#
# SPDX-License-Identifier: MIT
name: Builds
on:
pull_request:
jobs:
build:
strategy:
fail-fast: true
matrix:
machine:
- raspberrypi
- raspberrypi0-2w-64
- raspberrypi0-2w
- raspberrypi0
- raspberrypi0-wifi
- raspberrypi2
- raspberrypi3-64
- raspberrypi3
- raspberrypi4-64
- raspberrypi4
- raspberrypi5
- raspberrypi-cm3
- raspberrypi-cm
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@v2
with:
fetch-depth: 0
- name: Build a temporary yocto-builder image
uses: ./.github/actions/docker-build
with:
docker_image: yocto-builder
id: ${{ github.event.number }}
- name: Build the image
run: |
docker run --rm \
-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" \
"yocto-builder-${{ github.event.number }}" \
/entrypoint-build.sh
- 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()

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

@@ -0,0 +1,37 @@
# 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@v2
with:
fetch-depth: 0
- name: Build a temporary yocto-builder image
uses: ./.github/actions/docker-build
with:
docker_image: yocto-builder
id: ${{ github.event.number }}
- name: Run yocto-check-layer
run: |
docker run --rm -v "$GITHUB_WORKSPACE:/work:ro" \
--env "BASE_REF=$GITHUB_BASE_REF" \
"yocto-builder-${{ github.event.number }}" \
/entrypoint-yocto-check-layer.sh
- 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()

2
.gitignore vendored
View File

@@ -5,3 +5,5 @@ build*
*.rej
*.log
docs/_build
/layers
*.pyc

11
.readthedocs.yaml Normal file
View File

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

View File

@@ -2,18 +2,18 @@
Yocto BSP layer for the Raspberry Pi boards - <http://www.raspberrypi.org/>.
[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi1/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi1)
[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi2/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi2)
[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi3/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi3)
[![Build Status](https://yocto-ci.resin.io/job/meta-raspberrypi4/badge/icon)](https://yocto-ci.resin.io/job/meta-raspberrypi4)
[![Documentation Status](https://readthedocs.org/projects/meta-raspberrypi/badge/?version=latest)](https://meta-raspberrypi.readthedocs.io/en/latest/?badge=latest)
[![Matrix](https://img.shields.io/matrix/meta-raspberrypi:cub.icu.svg?server_fqdn=matrix.cub.icu)](https://matrix.to/#/#meta-raspberrypi:cub.icu)
[![Matrix](https://img.shields.io/badge/chat-meta--raspberrypi-brightgreen)](https://matrix.to/#/#meta-raspberrypi:matrix.org)
| | |
|:-: | :-: |
| Build server sponsored by | [balena.io](https://www.balena.io/) |
## Quick links
* Git repository web frontend:
<https://github.com/agherzan/meta-raspberrypi>
* Mailing list (yocto mailing list): <yocto@yoctoproject.org>
* Mailing list (yocto mailing list): <yocto@lists.yoctoproject.org>
* Issues management (Github Issues):
<https://github.com/agherzan/meta-raspberrypi/issues>
* Documentation: <http://meta-raspberrypi.readthedocs.io/en/latest/>
@@ -28,7 +28,7 @@ The core BSP part of meta-raspberrypi should work with different
OpenEmbedded/Yocto distributions and layer stacks, such as:
* Distro-less (only with OE-Core).
* Angstrom.
* Yoe Disto (Video and Camera Products).
* Yocto/Poky (main focus of testing).
## Dependencies
@@ -39,26 +39,21 @@ 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
2. Add this layer to bblayers.conf and the dependencies above
3. Set MACHINE in local.conf to one of the supported boards
4. bitbake core-image-base
5. dd to a SD card the generated sdimg file (use xzcat if rpi-sdimg.xz is used)
6. Boot your RPI.
5. Use bmaptool to copy the generated .wic.bz2 file to the SD card
6. Boot your RPI
## Quick Start with kas
1. Install kas build tool from PyPi (sudo pip3 install kas)
2. kas build meta-raspberrypi/kas-poky-rpi.yml
3. dd to a SD card the generated sdimg file (use xzcat if rpi-sdimg.xz is used)
4. Boot your RPI.
3. Use bmaptool to copy the generated .wic.bz2 file to the SD card
4. Boot your RPI
To adjust the build configuration with specific options (I2C, SPI, ...), simply add
a section as follows:
@@ -73,8 +68,15 @@ local_conf_header:
To configure the machine, you have to update the `machine` variable.
And the same for the `distro`.
For further information, you can read more at <https://kas.readthedocs.io/en/1.0/index.html>
For further information, you can read more at <https://kas.readthedocs.io/en/latest/index.html>
## Contributing
You can send patches using the GitHub pull request process or/and through the
Yocto mailing list. Refer to the
[documentation](https://meta-raspberrypi.readthedocs.io/en/latest/contributing.html)
for more information.
## Maintainers
* Andrei Gherzan `<andrei at gherzan.ro>`
* Andrei Gherzan `<andrei at gherzan.com>`

View File

@@ -13,31 +13,30 @@ inherit image_types
# Default Free space = 1.3x
# Use IMAGE_OVERHEAD_FACTOR to add more space
# <--------->
# 4MiB 40MiB SDIMG_ROOTFS
# 4MiB 48MiB SDIMG_ROOTFS
# <-----------------------> <----------> <---------------------->
# ------------------------ ------------ ------------------------
# | IMAGE_ROOTFS_ALIGNMENT | BOOT_SPACE | ROOTFS_SIZE |
# ------------------------ ------------ ------------------------
# ^ ^ ^ ^
# | | | |
# 0 4MiB 4MiB + 40MiB 4MiB + 40Mib + SDIMG_ROOTFS
# 0 4MiB 4MiB + 48MiB 4MiB + 48Mib + SDIMG_ROOTFS
# This image depends on the rootfs image
IMAGE_TYPEDEP_rpi-sdimg = "${SDIMG_ROOTFS_TYPE}"
# Set kernel and boot loader
IMAGE_BOOTLOADER ?= "bcm2835-bootfiles"
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"
SDIMG_KERNELIMAGE:raspberrypi ?= "kernel.img"
SDIMG_KERNELIMAGE:raspberrypi2 ?= "kernel7.img"
SDIMG_KERNELIMAGE:raspberrypi3-64 ?= "kernel8.img"
# Boot partition volume id
BOOTDD_VOLUME_ID ?= "${MACHINE}"
# Shorten raspberrypi to just rpi to keep it under 11 characters
# now enforced by mkfs.vfat from dosfstools-4.2
BOOTDD_VOLUME_ID ?= "${@d.getVar('MACHINE').replace('raspberrypi', 'rpi')}"
# Boot partition size [in KiB] (will be rounded up to IMAGE_ROOTFS_ALIGNMENT)
BOOT_SPACE ?= "40960"
BOOT_SPACE ?= "49152"
# Set alignment to 4MB [in KiB]
IMAGE_ROOTFS_ALIGNMENT = "4096"
@@ -49,16 +48,18 @@ SDIMG_ROOTFS = "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${SDIMG_ROOTFS_TYPE}"
# For the names of kernel artifacts
inherit kernel-artifact-names
RPI_SDIMG_EXTRA_DEPENDS ?= ""
do_image_rpi_sdimg[depends] = " \
parted-native:do_populate_sysroot \
mtools-native:do_populate_sysroot \
dosfstools-native:do_populate_sysroot \
virtual/kernel:do_deploy \
${IMAGE_BOOTLOADER}:do_deploy \
rpi-config:do_deploy \
rpi-bootfiles:do_deploy \
${@bb.utils.contains('MACHINE_FEATURES', 'armstub', 'armstubs:do_deploy', '' ,d)} \
${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'u-boot:do_deploy', '',d)} \
${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'rpi-u-boot-scr:do_deploy', '',d)} \
${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'u-boot-default-script:do_deploy', '',d)} \
${RPI_SDIMG_EXTRA_DEPENDS} \
"
do_image_rpi_sdimg[recrdeps] = "do_build"
@@ -74,19 +75,7 @@ SDIMG_VFAT_DEPLOY ?= "${RPI_USE_U_BOOT}"
SDIMG_VFAT = "${IMAGE_NAME}.vfat"
SDIMG_LINK_VFAT = "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.vfat"
def split_overlays(d, out, ver=None):
dts = d.getVar("KERNEL_DEVICETREE")
# Device Tree Overlays are assumed to be suffixed by '-overlay.dtb' (4.1.x) or by '.dtbo' (4.4.9+) string and will be put in a dedicated folder
if out:
overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d)
overlays = oe.utils.str_filter_out('\S+\.dtbo$', overlays, d)
else:
overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d) + \
" " + oe.utils.str_filter('\S+\.dtbo$', dts, d)
return overlays
IMAGE_CMD_rpi-sdimg () {
IMAGE_CMD:rpi-sdimg () {
# Align partitions
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
@@ -96,7 +85,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}
@@ -114,22 +103,25 @@ IMAGE_CMD_rpi-sdimg () {
BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDIMG} unit b print | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 512 /2 }')
rm -f ${WORKDIR}/boot.img
mkfs.vfat -F32 -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/* ::/ || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/* into boot.img"
mcopy -v -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${BOOTFILES_DIR_NAME}/* ::/ || bbfatal "mcopy cannot copy ${DEPLOY_DIR_IMAGE}/${BOOTFILES_DIR_NAME}/* into boot.img"
if [ "${@bb.utils.contains("MACHINE_FEATURES", "armstub", "1", "0", d)}" = "1" ]; then
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
@@ -148,6 +140,22 @@ IMAGE_CMD_rpi-sdimg () {
fi
fi
# Add files (eg. hypervisor binaries) from the deploy dir
if [ -n "${DEPLOYPAYLOAD}" ] ; then
echo "Copying deploy file payload into VFAT"
for entry in ${DEPLOYPAYLOAD} ; do
# Split entry at optional ':' to enable file renaming for the destination
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 [ -n "${FATPAYLOAD}" ] ; then
echo "Copying payload into VFAT"
for entry in ${FATPAYLOAD} ; do

View File

@@ -9,7 +9,8 @@ BBFILE_COLLECTIONS += "raspberrypi"
BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
BBFILE_PRIORITY_raspberrypi = "9"
LAYERSERIES_COMPAT_raspberrypi = "sumo thud warrior zeus dunfell"
LAYERSERIES_COMPAT_raspberrypi = "kirkstone"
LAYERDEPENDS_raspberrypi = "core"
# Additional license directories.
LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
@@ -31,7 +32,9 @@ BBFILES_DYNAMIC += " \
networking-layer:${LAYERDIR}/dynamic-layers/networking-layer/*/*/*.bbappend \
qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bb \
qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bbappend \
multimedia-layer:${LAYERDIR}/dynamic-layers/multimedia-layer/*/*/*.bb \
multimedia-layer:${LAYERDIR}/dynamic-layers/multimedia-layer/*/*/*.bbappend \
"
DEFAULT_TEST_SUITES_remove_rpi = "parselogs"
DEFAULT_TEST_SUITES_append_rpi = " parselogs_rpi"
DEFAULT_TEST_SUITES:remove:rpi = "parselogs"
DEFAULT_TEST_SUITES:append:rpi = " parselogs_rpi"

View File

@@ -15,47 +15,78 @@ XSERVER = " \
"
RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
overlays/overlay_map.dtb \
overlays/at86rf233.dtbo \
overlays/disable-bt.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-dac.dtbo \
overlays/hifiberry-dacplus.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/iqaudio-dac.dtbo \
overlays/iqaudio-dacplus.dtbo \
overlays/miniuart-bt.dtbo \
overlays/mcp2515-can0.dtbo \
overlays/pi3-disable-bt.dtbo \
overlays/pi3-miniuart-bt.dtbo \
overlays/mcp2515-can1.dtbo \
overlays/mcp3008.dtbo \
overlays/miniuart-bt.dtbo \
overlays/pitft22.dtbo \
overlays/pitft28-resistive.dtbo \
overlays/pitft28-capacitive.dtbo \
overlays/pitft28-resistive.dtbo \
overlays/pitft35-resistive.dtbo \
overlays/pps-gpio.dtbo \
overlays/rpi-ft5406.dtbo \
overlays/rpi-poe.dtbo \
overlays/vc4-kms-v3d.dtbo \
overlays/vc4-fkms-v3d.dtbo \
overlays/w1-gpio-pullup.dtbo \
overlays/vc4-fkms-v3d-pi4.dtbo \
overlays/vc4-kms-v3d.dtbo \
overlays/vc4-kms-v3d-pi4.dtbo \
overlays/vc4-kms-dsi-7inch.dtbo \
overlays/w1-gpio.dtbo \
overlays/w1-gpio-pullup.dtbo \
overlays/wm8960-soundcard.dtbo \
"
RPI_KERNEL_DEVICETREE_OVERLAYS:append:raspberrypi5 = " \
overlays/vc4-kms-v3d-pi5.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 \
bcm2711-rpi-cm4s.dtb \
"
KERNEL_DEVICETREE ?= " \
KERNEL_DEVICETREE ??= " \
${RPI_KERNEL_DEVICETREE} \
${RPI_KERNEL_DEVICETREE_OVERLAYS} \
"
@@ -78,42 +109,51 @@ MACHINE_FEATURES += "apm usbhost keyboard vfat ext2 screen touchscreen alsa blue
# Raspberry Pi has no hardware clock
MACHINE_FEATURES_BACKFILL_CONSIDERED = "rtc"
MACHINE_EXTRA_RRECOMMENDS += " kernel-modules udev-rules-rpi"
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}"
# The name of the deploy directory for raspberry pi boot files.
# This variable is referred to by recipes fetching / generating the files.
BOOTFILES_DIR_NAME ?= "bootfiles"
# Set Raspberrypi splash image
SPLASH = "psplash-raspberrypi"
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')
def transform(dtb):
base = os.path.basename(dtb)
if dtb.endswith('dtb'):
# eg: whatever/bcm2708-rpi-b.dtb has:
# DEPLOYDIR file: bcm2708-rpi-b.dtb
# destination: bcm2708-rpi-b.dtb
return base
elif dtb.endswith('dtbo'):
if dtb.endswith('dtbo') or base == 'overlay_map.dtb':
# overlay dtb:
# eg: overlays/hifiberry-amp.dtbo has:
# DEPLOYDIR file: hifiberry-amp.dtbo
# destination: overlays/hifiberry-amp.dtbo
return '{};{}'.format(base, dtb)
elif dtb.endswith('dtb'):
# eg: whatever/bcm2708-rpi-b.dtb has:
# DEPLOYDIR file: bcm2708-rpi-b.dtb
# destination: bcm2708-rpi-b.dtb
return base
return ' '.join([transform(dtb) for dtb in alldtbs.split(' ') if dtb])
IMAGE_BOOT_FILES ?= "bcm2835-bootfiles/* \
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)} \
"
do_image_wic[depends] += " \
bcm2835-bootfiles:do_deploy \
virtual/kernel:do_deploy \
rpi-bootfiles:do_deploy \
${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'u-boot:do_deploy', '',d)} \
"
@@ -121,4 +161,4 @@ do_image_wic[recrdeps] = "do_build"
# The kernel image is installed into the FAT32 boot partition and does not need
# to also be installed into the rootfs.
RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""
RDEPENDS:${KERNEL_PACKAGE_NAME}-base = ""

View File

@@ -1,6 +1,6 @@
# RaspberryPi BSP default providers
PREFERRED_PROVIDER_virtual/kernel ?= "linux-raspberrypi"
PREFERRED_PROVIDER_virtual/kernel ??= "linux-raspberrypi"
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
PREFERRED_PROVIDER_virtual/egl ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "userland", d)}"
PREFERRED_PROVIDER_virtual/libgles2 ?= "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "mesa", "userland", d)}"
@@ -11,3 +11,5 @@ PREFERRED_PROVIDER_jpeg ?= "jpeg"
PREFERRED_PROVIDER_virtual/libomxil ?= "userland"
VIRTUAL-RUNTIME_libomxil = "userland"
PREFERRED_PROVIDER_u-boot-default-script ??= "rpi-u-boot-scr"

View File

@@ -1,3 +1,9 @@
# RaspberryPi BSP default settings
IMAGE_CLASSES += "sdcard_image-rpi"
# RPI kernel has errors of its own which should be filtered
# therefore use parselogs_rpi test instead of parselogs from oe-core
#
DEFAULT_TEST_SUITES:append:rpi = " parselogs_rpi"
DEFAULT_TEST_SUITES:remove:rpi = " parselogs"

View File

@@ -1,3 +1,3 @@
# RaspberryPi BSP default versions
PREFERRED_VERSION_linux-raspberrypi ??= "4.19.%"
PREFERRED_VERSION_linux-raspberrypi ??= "5.15.%"

View File

@@ -1,15 +1,17 @@
DEFAULTTUNE ?= "armv6"
DEFAULTTUNE ?= "arm1176jzfshf"
require conf/machine/include/arm/arch-armv6.inc
TUNEVALID[arm1176jzfs] = "Enable arm1176jzfs specific processor optimizations"
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "arm1176jzfs", "-mtune=arm1176jzf-s", "", d)}"
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "vfp", "-mfpu=vfp", "", d)}"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'arm1176jzfs', ' -mcpu=arm1176jzf-s', '', d)}"
MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'arm1176jzfs', 'armv6:', '', d)}"
AVAILTUNES += "arm1176jzfs arm1176jzfshf"
ARMPKGARCH_tune-arm1176jzfs = "arm1176jzfs"
ARMPKGARCH_tune-arm1176jzfshf = "arm1176jzfs"
TUNE_FEATURES_tune-arm1176jzfs = "${TUNE_FEATURES_tune-armv6} arm1176jzfs"
TUNE_FEATURES_tune-arm1176jzfshf = "${TUNE_FEATURES_tune-arm1176jzfs} callconvention-hard"
PACKAGE_EXTRA_ARCHS_tune-arm1176jzfs = "${PACKAGE_EXTRA_ARCHS_tune-armv6}"
PACKAGE_EXTRA_ARCHS_tune-arm1176jzfshf = "${PACKAGE_EXTRA_ARCHS_tune-armv6hf} arm1176jzfshf-vfp"
AVAILTUNES += "arm1176jzfs"
ARMPKGARCH:tune-arm1176jzfs = "arm1176jzfs"
TUNE_FEATURES:tune-arm1176jzfs = "arm thumb vfp arm1176jzfs"
PACKAGE_EXTRA_ARCHS:tune-arm1176jzfs = "${PACKAGE_EXTRA_ARCHS:tune-armv6} arm1176jzfs"
AVAILTUNES += "arm1176jzfshf"
ARMPKGARCH:tune-arm1176jzfshf = "${ARMPKGARCH:tune-arm1176jzfs}"
TUNE_FEATURES:tune-arm1176jzfshf = "${TUNE_FEATURES:tune-arm1176jzfs} callconvention-hard"
PACKAGE_EXTRA_ARCHS:tune-arm1176jzfshf = "${PACKAGE_EXTRA_ARCHS:tune-armv6thf} arm1176jzfshf-vfp"

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,17 @@
#@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 \
"
RPI_KERNEL_DEVICETREE = " \
bcm2710-rpi-zero-2.dtb \
"

View File

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

View File

@@ -4,7 +4,7 @@
DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/tune-cortexa7.inc
require conf/machine/include/arm/armv7a/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc
SERIAL_CONSOLES ?= "115200;ttyAMA0"

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,18 +11,19 @@ MACHINE_EXTRA_RRECOMMENDS += "\
bluez-firmware-rpidistro-bcm4345c0-hcd \
"
require conf/machine/include/tune-cortexa53.inc
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
include conf/machine/include/rpi-base.inc
RPI_KERNEL_DEVICETREE = " \
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_3_config"
UBOOT_MACHINE = "rpi_arm64_config"
# When u-boot is enabled we need to use the "Image" format and the "booti"
# command to load the kernel
@@ -31,4 +32,5 @@ KERNEL_IMAGETYPE_UBOOT ?= "Image"
KERNEL_IMAGETYPE_DIRECT ?= "Image"
KERNEL_BOOTCMD ?= "booti"
VC4DTBO ?= "vc4-fkms-v3d"
ARMSTUB ?= "armstub8.bin"

View File

@@ -3,7 +3,7 @@
#@DESCRIPTION: Machine configuration for the RaspberryPi 3 in 32 bits mode
DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/tune-cortexa7.inc
require conf/machine/include/arm/armv7a/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc
MACHINE_EXTRA_RRECOMMENDS += "\
@@ -17,4 +17,5 @@ SDIMG_KERNELIMAGE ?= "kernel7.img"
UBOOT_MACHINE = "rpi_3_32b_config"
SERIAL_CONSOLES ?= "115200;ttyS0"
VC4DTBO ?= "vc4-fkms-v3d"
ARMSTUB ?= "armstub7.bin"

View File

@@ -2,27 +2,33 @@
#@NAME: RaspberryPi 4 Development Board (64bit)
#@DESCRIPTION: Machine configuration for the RaspberryPi 4 in 64 bits mode
MACHINEOVERRIDES = "raspberrypi4:${MACHINE}"
MACHINEOVERRIDES =. "raspberrypi4:"
MACHINE_FEATURES += "pci"
MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-rpidistro-bcm43455 \
bluez-firmware-rpidistro-bcm4345c0-hcd \
linux-firmware-rpidistro-bcm43456 \
bluez-firmware-rpidistro-bcm4345c5-hcd \
"
require conf/machine/include/tune-cortexa72.inc
DEFAULTTUNE = "cortexa72"
require conf/machine/include/arm/armv8a/tune-cortexa72.inc
include conf/machine/include/rpi-base.inc
RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2711-rpi-4-b.dtb \
broadcom/bcm2711-rpi-400.dtb \
broadcom/bcm2711-rpi-cm4.dtb \
"
SDIMG_KERNELIMAGE ?= "kernel8.img"
SERIAL_CONSOLES ?= "115200;ttyS0"
UBOOT_MACHINE = "rpi_4_config"
UBOOT_MACHINE = "rpi_arm64_config"
VC4DTBO ?= "vc4-fkms-v3d"
VC4DTBO ?= "vc4-kms-v3d"
# When u-boot is enabled we need to use the "Image" format and the "booti"
# command to load the kernel
@@ -31,6 +37,4 @@ KERNEL_IMAGETYPE_UBOOT ?= "Image"
KERNEL_IMAGETYPE_DIRECT ?= "Image"
KERNEL_BOOTCMD ?= "booti"
RPI_EXTRA_CONFIG ?= "\n# Force arm in 64bit mode. See: https://github.com/raspberrypi/firmware/issues/1193.\narm_64bit=1"
ARMSTUB ?= "armstub8-gic.bin"

View File

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

View File

@@ -0,0 +1,32 @@
#@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
PREFERRED_VERSION_linux-raspberrypi = "6.1%"
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 \
"
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"

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
# Optional build configuration
There are a set of ways in which a user can influence different paramenters of
There are a set of ways in which a user can influence different parameters of
the build. We list here the ones that are closely related to this BSP or
specific to it. For the rest please check:
<http://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html>
@@ -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
@@ -37,7 +37,7 @@ By default, each machine uses `vc4` for graphics. This will in turn sets mesa as
## Add purchased license codecs
To add you own licenses use variables `KEY_DECODE_MPG2` and `KEY_DECODE_WVC1` in
To add your own licenses use variables `KEY_DECODE_MPG2` and `KEY_DECODE_WVC1` in
local.conf. Example:
KEY_DECODE_MPG2 = "12345678"
@@ -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
@@ -77,7 +77,7 @@ To remove (or adjust) this delay set these variables in local.conf:
## Set overclocking options
The Raspberry Pi can be overclocked. As of now overclocking up to the "Turbo
Mode" is officially supported by the raspbery and does not void warranty. Check
Mode" is officially supported by the Raspberry Pi and does not void warranty. Check
the config.txt for a detailed description of options and modes. The following
variables are supported in local.conf: `ARM_FREQ`, `GPU_FREQ`, `CORE_FREQ`,
`SDRAM_FREQ` and `OVER_VOLTAGE`.
@@ -89,7 +89,7 @@ Example official settings for Turbo Mode in Raspberry Pi 2:
SDRAM_FREQ = "500"
OVER_VOLTAGE = "6"
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md>
See: <https://www.raspberrypi.com/documentation/computers/config_txt.html#overclocking-options>
## HDMI and composite video options
@@ -99,14 +99,14 @@ selected according to the connected monitor's EDID information and the composite
mode is defaulted to NTSC using a 4:3 aspect ratio. Check the config.txt for a
detailed description of options and modes. The following variables are supported in
local.conf: `HDMI_FORCE_HOTPLUG`, `HDMI_DRIVE`, `HDMI_GROUP`, `HDMI_MODE`,
`CONFIG_HDMI_BOOST`, `SDTV_MODE`, `SDTV_ASPECT` and `DISPLAY_ROTATE`.
`HDMI_CVT`, `CONFIG_HDMI_BOOST`, `SDTV_MODE`, `SDTV_ASPECT` and `DISPLAY_ROTATE`.
Example to force HDMI output to 720p in CEA mode:
HDMI_GROUP = "1"
HDMI_MODE = "4"
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/video.md>
See: <https://www.raspberrypi.com/documentation/computers/configuration.html#hdmi-configuration>
## Video camera support with V4L2 drivers
@@ -159,7 +159,7 @@ command (eg. bootz) to be used.
To build an initramfs image:
* Set this 3 kernel variables (in kernel's do_configure_prepend in linux-raspberrypi.inc after the line kernel_configure_variable LOCALVERSION "\"\""
* Set this 3 kernel variables (in kernel's do_configure:prepend in linux-raspberrypi.inc after the line kernel_configure_variable LOCALVERSION "\"\""
)
- kernel_configure_variable BLK_DEV_INITRD y
- kernel_configure_variable INITRAMFS_SOURCE ""
@@ -172,6 +172,31 @@ To build an initramfs image:
- `INITRAMFS_MAXSIZE = "315400"`
- `IMAGE_FSTYPES_pn-${INITRAMFS_IMAGE} = "${INITRAMFS_FSTYPES}"`
## Including additional files in the SD card image boot partition
The SD card image class supports adding extra files into the boot
partition, where the files are copied from either the image root
partition or from the build image deploy directory.
To copy files that are present in the root partition into boot,
FATPAYLOAD is a simple space-separated list of files to be copied:
FATPAYLOAD = "/boot/example1 /boot/example2"
To copy files from the image deploy directory, the files should be
listed in the DEPLOYPAYLOAD as a space-separated list of entries.
Each entry lists a file to be copied, and an optional destination
filename can be specified by supplying it after a colon separator.
DEPLOYPAYLOAD = "example1-${MACHINE}:example1 example2"
Files that are to be included from the deploy directory will be produced
by tasks that image building task must depend upon, to ensure that the
files are available when they are needed, so these component deploy
tasks must be added to: RPI_SDIMG_EXTRA_DEPENDS.
RPI_SDIMG_EXTRA_DEPENDS:append = " example:do_deploy"
## Enable SPI bus
When using device tree kernels, set this variable to enable the SPI bus:
@@ -184,6 +209,10 @@ When using device tree kernels, set this variable to enable I2C:
ENABLE_I2C = "1"
Furthermore, to auto-load I2C kernel modules set:
KERNEL_MODULE_AUTOLOAD:rpi += "i2c-dev i2c-bcm2708"
## Enable PiTFT support
Basic support for using PiTFT screens can be enabled by adding below in
@@ -220,7 +249,7 @@ Screen LCD, HDMI interface (<http://www.waveshare.com/7inch-HDMI-LCD-C.htm>) Rev
RaspberryPi 0, 1, 2 and CM will have UART console enabled by default.
RaspberryPi 0 WiFi and 3 does not have the UART enabled by default because this
needs a fixed core frequency and enable_uart wil set it to the minimum. Certain
needs a fixed core frequency and enable_uart will set it to the minimum. Certain
operations - 60fps h264 decode, high quality deinterlace - which aren't
performed on the ARM may be affected, and we wouldn't want to do that to users
who don't want to use the serial port. Users who want serial console support on
@@ -240,6 +269,27 @@ local.conf:
ENABLE_DWC2_PERIPHERAL = "1"
## Enable USB host support
By default in case of the Compute Module 4 IO Board the standard USB driver
that usually supports host mode operations is disabled for power saving reasons.
Users who want to use the 2 USB built-in ports or the other ports provided via
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:
@@ -248,14 +298,64 @@ When using device tree kernels, set this variable to enable the 802.15.4 hat:
See: <https://openlabs.co/OSHW/Raspberry-Pi-802.15.4-radio>
## Enable CAN with Pican2
## Enable CAN
In order to use Pican2 CAN module, set the following variables:
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"
See: <http://skpang.co.uk/catalog/pican2-canbus-board-for-raspberry-pi-23-p-1475.html>
In case of dual CAN module (e.g. PiCAN2 Duo), set following variables instead:
ENABLE_SPI_BUS = "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>
## Enable infrared
Users who want to enable infrared support, for example for using LIRC (Linux
Infrared Remote Control), have to explicitly set in local.conf:
ENABLE_IR = "1"
This will add device tree overlays gpio-ir and gpio-ir-tx to config.txt.
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"
## Manual additions to config.txt
@@ -272,3 +372,58 @@ option:
# Raspberry Pi 7\" display/touch screen \n \
lcd_rotate=2 \n \
'
## Enable Raspberrypi Camera V2
RaspberryPi does not have the unicam device ( RaspberryPi 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.
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.
Ref.:
* <https://github.com/raspberrypi/documentation/blob/master/linux/software/libcamera/README.md>
* <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`.

View File

@@ -5,9 +5,12 @@
* raspberrypi
* raspberrypi0
* raspberrypi0-wifi
* raspberrypi0-2w-64
* raspberrypi2
* raspberrypi3
* raspberrypi3-64 (64 bit kernel & userspace)
* raspberrypi4
* raspberrypi4-64 (64 bit kernel & userspace)
* raspberrypi-cm (dummy alias for raspberrypi)
* raspberrypi-cm3
@@ -20,8 +23,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

1
docs/requirements.txt Normal file
View File

@@ -0,0 +1 @@
myst_parser

View File

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

View File

@@ -0,0 +1,11 @@
[Unit]
Description=LIRC Infrared Signal Decoder
Wants=lircd-setup.service
After=network.target lircd-setup.service
[Service]
Type=simple
ExecStart=/usr/sbin/lircd --nodaemon
[Install]
WantedBy=multi-user.target

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,33 @@
SUMMARY = "CircuitPython APIs for non-CircuitPython versions of Python such as CPython on Linux and MicroPython."
HOMEPAGE = "https://github.com/adafruit/Adafruit_Blinka"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=660e614bc7efb0697cc793d8a22a55c2"
SRC_URI = "git://github.com/adafruit/Adafruit_Blinka.git;branch=main;protocol=https"
SRCREV = "dc688f354fe779c9267c208b99f310af87e79272"
S = "${WORKDIR}/git"
inherit setuptools3
DEPENDS += "python3-setuptools-scm-native"
do_install:append() {
# it ships ./bcm283x/pulseio/libgpiod_pulsein which is a prebuilt
# 32bit binary therefore we should make this specific to 32bit rpi machines (based on bcm283x) only
if [ ${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '1', '0', d)} = "0" ]; then
rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/adafruit_blinka/microcontroller/bcm283x
fi
}
RDEPENDS:${PN} += " \
libgpiod \
python3-adafruit-platformdetect \
python3-adafruit-pureio \
python3-core \
"
RDEPENDS:${PN}:append:rpi = " rpi-gpio"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

@@ -0,0 +1,19 @@
SUMMARY = "CircuitPython bus device classes to manage bus sharing."
HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_BusDevice"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec69d6e9e6c85adfb7799d7f8cf044e"
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_BusDevice.git;branch=main;protocol=https"
SRCREV = "1bfe8005293205e2f7b2cc498ab5a946f1133b40"
S = "${WORKDIR}/git"
inherit setuptools3
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} += " \
python3-adafruit-blinka \
python3-core \
"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

@@ -0,0 +1,19 @@
SUMMARY = "CircuitPython helper library provides higher level objects to control motors and servos."
HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_Motor"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=b72678307cc7c10910b5ef460216af07"
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Motor.git;branch=main;protocol=https"
SRCREV = "2251bfc0501d0acfb96c0a43f4f2b4c6a10ca14e"
S = "${WORKDIR}/git"
inherit setuptools3
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} += " \
python3-adafruit-blinka \
python3-core \
"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

@@ -0,0 +1,23 @@
SUMMARY = "CircuitPython helper library for DC & Stepper Motor FeatherWing, Shield, and Pi Hat kits."
HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_MotorKit"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6ad4a8854b39ad474755ef1aea813bac"
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_MotorKit.git;branch=main;protocol=https"
SRCREV = "8c1462b4129b21f6db156d1517abb017bb74b982"
S = "${WORKDIR}/git"
inherit setuptools3
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} += " \
python3-adafruit-blinka \
python3-adafruit-circuitpython-busdevice \
python3-adafruit-circuitpython-motor \
python3-adafruit-circuitpython-pca9685 \
python3-adafruit-circuitpython-register \
python3-core \
"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

@@ -0,0 +1,21 @@
SUMMARY = "CircuitPython driver for motor, stepper, and servo based on PCA9685."
HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_PCA9685"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e7eb6b599fb0cfb06485c64cd4242f62"
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_PCA9685.git;branch=main;protocol=https"
SRCREV = "2780c4102f4c23fbab252aa1198b61ba7e2d1b2c"
S = "${WORKDIR}/git"
inherit setuptools3
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} += " \
python3-adafruit-blinka \
python3-adafruit-circuitpython-busdevice \
python3-adafruit-circuitpython-register \
python3-core \
"
COMPATIBLE_HOST:libc-musl:class-target = "null"

View File

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

BIN
img/balena.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@@ -11,7 +11,9 @@ repos:
poky:
url: https://git.yoctoproject.org/git/poky
refspec: master
path: layers/poky
branch: kirkstone
commit: b5aa03f336c121269551f9e7baed4c677c76bb39
layers:
meta:
meta-poky:
@@ -19,7 +21,9 @@ repos:
meta-openembedded:
url: http://git.openembedded.org/meta-openembedded
refspec: master
path: layers/meta-openembedded
branch: kirkstone
commit: de8681b4a2a101b99dd2c48d89a7de2ccd9a961f
layers:
meta-oe:
meta-python:
@@ -28,7 +32,9 @@ repos:
meta-qt5:
url: https://github.com/meta-qt5/meta-qt5/
refspec: master
path: layers/meta-qt5
branch: kirkstone
commit: 644ebf220245bdc06e7696ccc90acc97a0dd2566
bblayers_conf_header:
standard: |
@@ -39,10 +45,10 @@ local_conf_header:
reduce_diskspace: |
INHERIT += "rm_work_and_downloads"
standard: |
CONF_VERSION = "1"
CONF_VERSION = "2"
PACKAGE_CLASSES = "package_rpm"
SDKMACHINE = "x86_64"
USER_CLASSES = "buildstats image-mklibs image-prelink"
USER_CLASSES = "buildstats"
PATCHRESOLVE = "noop"
debug-tweaks: |
EXTRA_IMAGE_FEATURES = "debug-tweaks"
@@ -52,7 +58,7 @@ local_conf_header:
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K \
ABORT,/tmp,10M,1K"
HALT,${TMPDIR},100M,1K \
HALT,${DL_DIR},100M,1K \
HALT,${SSTATE_DIR},100M,1K \
HALT,/tmp,10M,1K"

View File

@@ -1,9 +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',
]
ignore_errors['raspberrypi4'] = rpi_errors + common_errors

View File

@@ -34,3 +34,5 @@ addtask deploy before do_build after do_install
do_deploy[dirs] += "${DEPLOYDIR}/${PN}"
PACKAGE_ARCH = "${MACHINE_ARCH}"
TOOLCHAIN = "gcc"

View File

@@ -1,4 +1,4 @@
DESCRIPTION = "Closed source binary files to help boot the ARM on the BCM2835."
DESCRIPTION = "Closed source binary files to help boot all raspberry pi devices."
LICENSE = "Broadcom-RPi"
LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=c403841ff2837657b2ed8e5bb474ac8d"
@@ -9,7 +9,7 @@ include recipes-bsp/common/raspberrypi-firmware.inc
INHIBIT_DEFAULT_DEPS = "1"
DEPENDS = "rpi-config"
DEPENDS = "rpi-config rpi-cmdline"
COMPATIBLE_MACHINE = "^rpi$"
@@ -18,26 +18,26 @@ S = "${RPIFW_S}/boot"
PR = "r3"
do_deploy() {
install -d ${DEPLOYDIR}/${PN}
install -d ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}
for i in ${S}/*.elf ; do
cp $i ${DEPLOYDIR}/${PN}
cp $i ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}
done
for i in ${S}/*.dat ; do
cp $i ${DEPLOYDIR}/${PN}
cp $i ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}
done
for i in ${S}/*.bin ; do
cp $i ${DEPLOYDIR}/${PN}
cp $i ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}
done
# Add stamp in deploy directory
touch ${DEPLOYDIR}/${PN}/${PN}-${PV}.stamp
touch ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/${PN}-${PV}.stamp
}
do_deploy[depends] += "rpi-config:do_deploy"
do_deploy[depends] += "rpi-config:do_deploy rpi-cmdline:do_deploy"
addtask deploy before do_build after do_install
do_deploy[dirs] += "${DEPLOYDIR}/${PN}"
do_deploy[dirs] += "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -0,0 +1,76 @@
SUMMARY = "cmdline.txt file used to boot the kernel on a Raspberry Pi device"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
COMPATIBLE_MACHINE = "^rpi$"
INHIBIT_DEFAULT_DEPS = "1"
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_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
CMDLINE_KGDB ?= '${@oe.utils.conditional("ENABLE_KGDB", "1", "kgdboc=serial0,115200", "", d)}'
# Disable rpi logo on boot
CMDLINE_LOGO ?= '${@oe.utils.conditional("DISABLE_RPI_BOOT_LOGO", "1", "logo.nologo", "", d)}'
# You can define CMDLINE_DEBUG as "debug" in your local.conf or distro.conf
# to enable kernel debugging.
CMDLINE_DEBUG ?= ""
# Add a request to isolate processors from the Linux scheduler. ISOLATED_CPUS
# may have the form of a comma separated list of processor numbers "0,1,3", a
# range "0-2", a combination of the two "0-1,3", or a single processor you may
# not specify ALL processors simultaneously
def setup_isolcpus(d):
string = ""
if d.getVar('ISOLATED_CPUS'):
string = 'isolcpus=' + d.getVar('ISOLATED_CPUS')
return string
CMDLINE_ISOL_CPUS ?= "${@setup_isolcpus(d)}"
# Add RNDIS capabilities (must be after rootwait)
# example:
# CMDLINE_RNDIS = "modules-load=dwc2,g_ether g_ether.host_addr=<some MAC
# address> g_ether.dev_addr=<some MAC address>"
# if the MAC addresses are omitted, random values will be used
CMDLINE_RNDIS ?= ""
CMDLINE = " \
${CMDLINE_ISOL_CPUS} \
${CMDLINE_DWC_OTG} \
${CMDLINE_SERIAL} \
${CMDLINE_ROOTFS} \
${CMDLINE_CMA} \
${CMDLINE_KGDB} \
${CMDLINE_LOGO} \
${CMDLINE_PITFT} \
${CMDLINE_DEBUG} \
${CMDLINE_RNDIS} \
"
do_compile() {
echo "${@' '.join(d.getVar('CMDLINE').split())}" > "${WORKDIR}/cmdline.txt"
}
do_deploy() {
install -d "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"
install -m 0644 "${WORKDIR}/cmdline.txt" "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"
}
addtask deploy before do_build after do_install
do_deploy[dirs] += "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
COMPATIBLE_MACHINE = "^rpi$"
SRCREV = "648ffc470824c43eb0d16c485f4c24816b32cd6f"
SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=git;branch=master \
SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=https;branch=master \
"
S = "${WORKDIR}/git"
@@ -25,200 +25,303 @@ PITFT35r="${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "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"
ENABLE_UART ??= ""
WM8960="${@bb.utils.contains("MACHINE_FEATURES", "wm8960", "1", "0", d)}"
GPIO_SHUTDOWN_PIN ??= ""
inherit deploy nopackages
do_deploy() {
install -d ${DEPLOYDIR}/bcm2835-bootfiles
install -d ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}
CONFIG=${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt
cp ${S}/config.txt ${DEPLOYDIR}/bcm2835-bootfiles/
cp ${S}/config.txt $CONFIG
if [ -n "${KEY_DECODE_MPG2}" ]; then
sed -i '/#decode_MPG2=/ c\decode_MPG2=${KEY_DECODE_MPG2}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#decode_MPG2=/ c\decode_MPG2=${KEY_DECODE_MPG2}' $CONFIG
fi
if [ -n "${KEY_DECODE_WVC1}" ]; then
sed -i '/#decode_WVC1=/ c\decode_WVC1=${KEY_DECODE_WVC1}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#decode_WVC1=/ c\decode_WVC1=${KEY_DECODE_WVC1}' $CONFIG
fi
if [ -n "${DISABLE_OVERSCAN}" ]; then
sed -i '/#disable_overscan=/ c\disable_overscan=${DISABLE_OVERSCAN}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#disable_overscan=/ c\disable_overscan=${DISABLE_OVERSCAN}' $CONFIG
fi
if [ "${DISABLE_SPLASH}" = "1" ]; then
sed -i '/#disable_splash=/ c\disable_splash=${DISABLE_SPLASH}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#disable_splash=/ c\disable_splash=${DISABLE_SPLASH}' $CONFIG
fi
# Set overclocking options
if [ -n "${ARM_FREQ}" ]; then
sed -i '/#arm_freq=/ c\arm_freq=${ARM_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#arm_freq=/ c\arm_freq=${ARM_FREQ}' $CONFIG
fi
if [ -n "${GPU_FREQ}" ]; then
sed -i '/#gpu_freq=/ c\gpu_freq=${GPU_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#gpu_freq=/ c\gpu_freq=${GPU_FREQ}' $CONFIG
fi
if [ -n "${CORE_FREQ}" ]; then
sed -i '/#core_freq=/ c\core_freq=${CORE_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#core_freq=/ c\core_freq=${CORE_FREQ}' $CONFIG
fi
if [ -n "${SDRAM_FREQ}" ]; then
sed -i '/#sdram_freq=/ c\sdram_freq=${SDRAM_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#sdram_freq=/ c\sdram_freq=${SDRAM_FREQ}' $CONFIG
fi
if [ -n "${OVER_VOLTAGE}" ]; then
sed -i '/#over_voltage=/ c\over_voltage=${OVER_VOLTAGE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#over_voltage=/ c\over_voltage=${OVER_VOLTAGE}' $CONFIG
fi
# GPU memory
if [ -n "${GPU_MEM}" ]; then
sed -i '/#gpu_mem=/ c\gpu_mem=${GPU_MEM}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#gpu_mem=/ c\gpu_mem=${GPU_MEM}' $CONFIG
fi
if [ -n "${GPU_MEM_256}" ]; then
sed -i '/#gpu_mem_256=/ c\gpu_mem_256=${GPU_MEM_256}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#gpu_mem_256=/ c\gpu_mem_256=${GPU_MEM_256}' $CONFIG
fi
if [ -n "${GPU_MEM_512}" ]; then
sed -i '/#gpu_mem_512=/ c\gpu_mem_512=${GPU_MEM_512}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#gpu_mem_512=/ c\gpu_mem_512=${GPU_MEM_512}' $CONFIG
fi
if [ -n "${GPU_MEM_1024}" ]; then
sed -i '/#gpu_mem_1024=/ c\gpu_mem_1024=${GPU_MEM_1024}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#gpu_mem_1024=/ c\gpu_mem_1024=${GPU_MEM_1024}' $CONFIG
fi
# Set boot delay
if [ -n "${BOOT_DELAY}" ]; then
sed -i '/#boot_delay=/ c\boot_delay=${BOOT_DELAY}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#boot_delay=/ c\boot_delay=${BOOT_DELAY}' $CONFIG
fi
if [ -n "${BOOT_DELAY_MS}" ]; then
sed -i '/#boot_delay_ms=/ c\boot_delay_ms=${BOOT_DELAY_MS}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#boot_delay_ms=/ c\boot_delay_ms=${BOOT_DELAY_MS}' $CONFIG
fi
# Set HDMI and composite video options
if [ -n "${HDMI_FORCE_HOTPLUG}" ]; then
sed -i '/#hdmi_force_hotplug=/ c\hdmi_force_hotplug=${HDMI_FORCE_HOTPLUG}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#hdmi_force_hotplug=/ c\hdmi_force_hotplug=${HDMI_FORCE_HOTPLUG}' $CONFIG
fi
if [ -n "${HDMI_DRIVE}" ]; then
sed -i '/#hdmi_drive=/ c\hdmi_drive=${HDMI_DRIVE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#hdmi_drive=/ c\hdmi_drive=${HDMI_DRIVE}' $CONFIG
fi
if [ -n "${HDMI_GROUP}" ]; then
sed -i '/#hdmi_group=/ c\hdmi_group=${HDMI_GROUP}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#hdmi_group=/ c\hdmi_group=${HDMI_GROUP}' $CONFIG
fi
if [ -n "${HDMI_MODE}" ]; then
sed -i '/#hdmi_mode=/ c\hdmi_mode=${HDMI_MODE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#hdmi_mode=/ c\hdmi_mode=${HDMI_MODE}' $CONFIG
fi
if [ -n "${HDMI_CVT}" ]; then
echo 'hdmi_cvt=${HDMI_CVT}' >> $CONFIG
fi
if [ -n "${CONFIG_HDMI_BOOST}" ]; then
sed -i '/#config_hdmi_boost=/ c\config_hdmi_boost=${CONFIG_HDMI_BOOST}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#config_hdmi_boost=/ c\config_hdmi_boost=${CONFIG_HDMI_BOOST}' $CONFIG
fi
if [ -n "${SDTV_MODE}" ]; then
sed -i '/#sdtv_mode=/ c\sdtv_mode=${SDTV_MODE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#sdtv_mode=/ c\sdtv_mode=${SDTV_MODE}' $CONFIG
fi
if [ -n "${SDTV_ASPECT}" ]; then
sed -i '/#sdtv_aspect=/ c\sdtv_aspect=${SDTV_ASPECT}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#sdtv_aspect=/ c\sdtv_aspect=${SDTV_ASPECT}' $CONFIG
fi
if [ -n "${DISPLAY_ROTATE}" ]; then
sed -i '/#display_rotate=/ c\display_rotate=${DISPLAY_ROTATE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
sed -i '/#display_rotate=/ c\display_rotate=${DISPLAY_ROTATE}' $CONFIG
fi
# Video camera support
if [ "${VIDEO_CAMERA}" = "1" ]; then
echo "# Enable video camera" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "start_x=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
# 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" has been set to replace the original occurrence in
# config.txt, which is at the middle of the file.
# The exact underlying cause is unknown. There are similar issues
# reported in the raspberrypi/firware repo and the conclusion reached
# was that there could be a file size limitation affecting certain
# variables. It was commented that this limitation could be 4k but
# not proved.
sed -i '/#start_x=/ c\start_x=1' $CONFIG
fi
# Offline compositing support
if [ "${DISPMANX_OFFLINE}" = "1" ]; then
echo "# Enable offline compositing" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dispmanx_offline=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable offline compositing" >>$CONFIG
echo "dispmanx_offline=1" >>$CONFIG
fi
# SPI bus support
if [ "${ENABLE_SPI_BUS}" = "1" ] || [ "${PITFT}" = "1" ]; then
echo "# Enable SPI bus" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtparam=spi=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable SPI bus" >>$CONFIG
echo "dtparam=spi=on" >>$CONFIG
fi
# I2C support
if [ "${ENABLE_I2C}" = "1" ] || [ "${PITFT}" = "1" ]; then
echo "# Enable I2C" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtparam=i2c1=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtparam=i2c_arm=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable I2C" >>$CONFIG
echo "dtparam=i2c1=on" >>$CONFIG
echo "dtparam=i2c_arm=on" >>$CONFIG
fi
# PiTFT22 display support
if [ "${PITFT22}" = "1" ]; then
echo "# Enable PITFT22 display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=pitft22,rotate=270,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable PITFT22 display" >>$CONFIG
echo "dtoverlay=pitft22,rotate=270,speed=32000000,txbuflen=32768" >>$CONFIG
fi
if [ "${PITFT28r}" = "1" ]; then
echo "# Enable PITFT28r display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=pitft28-resistive,rotate=90,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable PITFT28r display" >>$CONFIG
echo "dtoverlay=pitft28-resistive,rotate=90,speed=32000000,txbuflen=32768" >>$CONFIG
fi
if [ "${PITFT28c}" = "1" ]; then
echo "# Enable PITFT28c display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=pitft28-capacitive,rotate=90,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=pitft28-capacitive,touch-swapxy,touch-invx" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable PITFT28c display" >>$CONFIG
echo "dtoverlay=pitft28-capacitive,rotate=90,speed=32000000,txbuflen=32768" >>$CONFIG
echo "dtoverlay=pitft28-capacitive,touch-swapxy,touch-invx" >>$CONFIG
fi
if [ "${PITFT35r}" = "1" ]; then
echo "# Enable PITFT35r display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=pitft35-resistive,rotate=90,speed=42000000,fps=20" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable PITFT35r display" >>$CONFIG
echo "dtoverlay=pitft35-resistive,rotate=90,speed=42000000,fps=20" >>$CONFIG
fi
# UART support
if [ "${ENABLE_UART}" = "1" ]; then
echo "# Enable UART" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "enable_uart=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
if [ "${ENABLE_UART}" = "1" ] || [ "${ENABLE_UART}" = "0" ] ; then
echo "# Enable UART" >>$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
# Infrared support
if [ "${ENABLE_IR}" = "1" ]; then
echo "# Enable infrared" >>$CONFIG
echo "dtoverlay=gpio-ir,gpio_pin=${GPIO_IR}" >>$CONFIG
echo "dtoverlay=gpio-ir-tx,gpio_pin=${GPIO_IR_TX}" >>$CONFIG
fi
# VC4 Graphics support
if [ "${VC4GRAPHICS}" = "1" ]; then
echo "# Enable VC4 Graphics" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=${VC4DTBO}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable VC4 Graphics" >> $CONFIG
echo "dtoverlay=${VC4DTBO}" >> $CONFIG
fi
# Choose Camera Sensor to be used, default imx219 sensor
if [ "${RASPBERRYPI_CAMERA_V2}" = "1" ]; then
echo "# Enable Sony RaspberryPi Camera(imx219)" >> $CONFIG
echo "dtoverlay=imx219" >> $CONFIG
fi
# Choose Camera Sensor to be used, default imx477 sensor
#if [ "${RASPBERRYPI_HD_CAMERA}" = "1" ]; then
# echo "# Enable Sony RaspberryPi Camera(imx477)" >> $CONFIG
# echo "dtoverlay=imx477" >> $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" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "max_usb_current=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "hdmi_group=2" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "hdmi_mode=87" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "hdmi_cvt 1024 600 60 6 0 0 0" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "hdmi_drive=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Waveshare \"C\" 1024x600 7\" Rev2.1 IPS capacitive touch screen" >> $CONFIG
echo "max_usb_current=1" >> $CONFIG
echo "hdmi_group=2" >> $CONFIG
echo "hdmi_mode=87" >> $CONFIG
echo "hdmi_cvt 1024 600 60 6 0 0 0" >> $CONFIG
echo "hdmi_drive=1" >> $CONFIG
fi
# DWC2 USB peripheral support
if [ "${ENABLE_DWC2_PERIPHERAL}" = "1" ]; then
echo "# Enable USB peripheral mode" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=dwc2,dr_mode=peripheral" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
if ([ "${ENABLE_DWC2_PERIPHERAL}" = "1" ] && [ "${ENABLE_DWC2_OTG}" != "1" ]); then
echo "# Enable USB peripheral mode" >> $CONFIG
echo "dtoverlay=dwc2,dr_mode=peripheral" >> $CONFIG
fi
# DWC2 USB host mode support
if [ "${ENABLE_DWC2_HOST}" = "1" ]; then
echo "# Enable USB host mode" >> $CONFIG
echo "dtoverlay=dwc2,dr_mode=host" >> $CONFIG
fi
# DWC2 USB OTG support
if ([ "${ENABLE_DWC2_OTG}" = "1" ] && [ "${ENABLE_DWC2_PERIPHERAL}" != "1" ]); then
echo "# Enable USB OTG mode" >> $CONFIG
echo "dtoverlay=dwc2,dr_mode=otg" >> $CONFIG
fi
# AT86RF23X support
if [ "${ENABLE_AT86RF}" = "1" ]; then
echo "# Enable AT86RF23X" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=at86rf233,speed=3000000" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable AT86RF23X" >>$CONFIG
echo "dtoverlay=at86rf233,speed=3000000" >>$CONFIG
fi
# ENABLE DUAL CAN
if [ "${ENABLE_DUAL_CAN}" = "1" ]; then
echo "# Enable DUAL CAN" >>$CONFIG
echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=${CAN0_INTERRUPT_PIN}" >>$CONFIG
echo "dtoverlay=mcp2515-can1,oscillator=${CAN_OSCILLATOR},interrupt=${CAN1_INTERRUPT_PIN}" >>$CONFIG
# ENABLE CAN
if [ "${ENABLE_CAN}" = "1" ]; then
echo "# Enable CAN" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
elif [ "${ENABLE_CAN}" = "1" ]; then
echo "# Enable CAN" >>$CONFIG
echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=${CAN0_INTERRUPT_PIN}" >>$CONFIG
fi
if [ "${ENABLE_GPIO_SHUTDOWN}" = "1" ]; then
if ([ "${ENABLE_I2C}" = "1" ] || [ "${PITFT}" = "1" ]) && [ -z "${GPIO_SHUTDOWN_PIN}" ]; then
# By default GPIO shutdown uses the same pin as the (master) I2C SCL.
# 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
printf "${RPI_EXTRA_CONFIG}\n" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
printf "${RPI_EXTRA_CONFIG}\n" >> $CONFIG
# Handle setup with armstub file
if [ "${@bb.utils.contains("MACHINE_FEATURES", "armstub", "1", "0", d)}" = "1" ]; then
echo "\n# ARM stub configuration" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "armstub=${ARMSTUB}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "\n# ARM stub configuration" >> $CONFIG
echo "armstub=${ARMSTUB}" >> $CONFIG
case "${ARMSTUB}" in
*-gic.bin)
echo "enable_gic=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "enable_gic=1" >> $CONFIG
;;
esac
fi
# WM8960 support
if [ "${WM8960}" = "1" ]; then
echo "# Enable WM8960" >> $CONFIG
echo "dtoverlay=wm8960-soundcard" >> $CONFIG
fi
# W1-GPIO - One-Wire Interface
if [ "${ENABLE_W1}" = "1" ]; then
echo "# Enable One-Wire Interface" >> $CONFIG
echo "dtoverlay=w1-gpio" >> $CONFIG
fi
# Reduce config.txt file size to avoid corruption and
# to boot successfully Raspberry Pi 5. The issue has
# been reported to related projects:
# https://github.com/raspberrypi/firmware/issues/1848
# https://github.com/Evilpaul/RPi-config/issues/9
sed -i '/^##/d' $CONFIG
}
do_deploy_append_raspberrypi3-64() {
echo "# have a properly sized image" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "disable_overscan=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
do_deploy:append:raspberrypi3-64() {
echo "# have a properly sized image" >> $CONFIG
echo "disable_overscan=1" >> $CONFIG
echo "# Enable audio (loads snd_bcm2835)" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtparam=audio=on" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Enable audio (loads snd_bcm2835)" >> $CONFIG
echo "dtparam=audio=on" >> $CONFIG
}
do_deploy:append() {
if grep -q -E '^.{80}.$' ${DEPLOYDIR}/${BOOTFILES_DIR_NAME}/config.txt; then
bbwarn "config.txt contains lines longer than 80 characters, this is not supported"
fi
}
addtask deploy before do_build after do_install
do_deploy[dirs] += "${DEPLOYDIR}/bcm2835-bootfiles"
do_deploy[dirs] += "${DEPLOYDIR}/${BOOTFILES_DIR_NAME}"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -1,10 +1,9 @@
RPIFW_DATE ?= "20200326"
SRCREV ?= "5574077183389cd4c65077ba18b59144ed6ccd6d"
RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/${SRCREV}.tar.gz"
RPIFW_S ?= "${WORKDIR}/firmware-${SRCREV}"
RPIFW_DATE ?= "20220830"
RPIFW_SRC_URI ?= "https://archive.raspberrypi.com/debian/pool/main/r/raspberrypi-firmware/raspberrypi-firmware_1.${RPIFW_DATE}.orig.tar.xz"
RPIFW_S ?= "${WORKDIR}/raspberrypi-firmware-1.${RPIFW_DATE}"
SRC_URI = "${RPIFW_SRC_URI}"
SRC_URI[md5sum] = "1091837b8daed93b01dcc8980d936b40"
SRC_URI[sha256sum] = "0596505f529677906fed30e6c3c1d2387a5d287f668a719484e2f9d8a3059176"
SRC_URI[sha256sum] = "2b27e4b3c4d2664a0a1d0dd8602bd80ea41dd006eb0ad9c67d7b659c9c8bb4e5"
PV = "${RPIFW_DATE}"

View File

@@ -1,9 +1,11 @@
SRCREV ?= "b0c869bc929587a7e1d20a98e2dc828a24ca396a"
RPITOOLS_SRC_URI ?= "https://github.com/raspberrypi/tools/archive/${SRCREV}.tar.gz"
RPITOOLS_S ?= "${WORKDIR}/tools-${SRCREV}"
RPITOOLS_DATE ?= "20211101"
SRCREV ?= "13474ee775d0c5ec8a7da4fb0a9fa84187abfc87"
RPITOOLS_SRC_URI ?= "git://github.com/raspberrypi/tools;protocol=https;branch=master"
RPITOOLS_S ?= "${WORKDIR}/git"
SRC_URI = "${RPITOOLS_SRC_URI}"
SRC_URI[md5sum] = "fd999aad4424088b5e8746a9d946bb56"
SRC_URI[sha256sum] = "a0a8aff308d9302318442e6bcd2df14cbbb3b633f12ca6b9c43c4ab69bf45bb1"
PV = "0.0+git${SRCREV}"
PV = "${RPITOOLS_DATE}"
BB_GIT_SHALLOW = "1"

View File

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

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,31 @@
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 \
"
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 ${WORKDIR}/gpio-shutdown-keymap.sh ${D}${sysconfdir}/init.d/
install -m 0755 ${WORKDIR}/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

@@ -1,3 +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;
@@KERNEL_BOOTCMD@@ ${kernel_addr_r} - ${fdt_addr}

View File

@@ -13,10 +13,10 @@ do_compile() {
sed -e 's/@@KERNEL_IMAGETYPE@@/${KERNEL_IMAGETYPE}/' \
-e 's/@@KERNEL_BOOTCMD@@/${KERNEL_BOOTCMD}/' \
"${WORKDIR}/boot.cmd.in" > "${WORKDIR}/boot.cmd"
mkimage -A arm -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr
mkimage -A ${UBOOT_ARCH} -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr
}
inherit deploy nopackages
inherit kernel-arch deploy nopackages
do_deploy() {
install -d ${DEPLOYDIR}
@@ -24,3 +24,5 @@ do_deploy() {
}
addtask do_deploy after do_compile before do_build
PROVIDES += "u-boot-default-script"

View File

@@ -0,0 +1,50 @@
From: Mauro Salvini <m.salvini@koansoftware.com>
To: u-boot@lists.denx.de
Subject: [PATCH] rpi: always set fdt_addr with firmware-provided FDT address
Date: Wed, 12 May 2021 14:39:45 +0200 [thread overview]
Message-ID: <20210512123945.25649-1-m.salvini@koansoftware.com> (raw)
Raspberry firmware prepares the FDT blob in memory at an address
that depends on both the memory size and the blob size [1].
After commit ade243a211d6 ("rpi: passthrough of the firmware provided FDT
blob") this FDT is passed to kernel through fdt_addr environment variable,
handled in set_fdt_addr() function in board file.
When u-boot environment is persistently saved, if a change happens
in loaded FDT (e.g. for a new overlay applied), firmware produces a FDT
address different from the saved one, but u-boot still use the saved
one because set_fdt_addr() function does not overwrite the fdt_addr
variable. So, for example, if there is a script that uses fdt commands for
e.g. manipulate the bootargs, boot hangs with error
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Removing the fdt_addr variable in saved environment allows to boot.
With this patch set_fdt_addr() function always overwrite fdt_addr value.
[1] https://www.raspberrypi.org/forums//viewtopic.php?f=107&t=134018
Signed-off-by: Mauro Salvini <m.salvini@koansoftware.com>
Cc: C?dric Schieli <cschieli@gmail.com>
Cc: Matthias Brugger <mbrugger@suse.com>
---
board/raspberrypi/rpi/rpi.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
index df52a4689f..611013471e 100644
--- a/board/raspberrypi/rpi/rpi.c
+++ b/board/raspberrypi/rpi/rpi.c
@@ -318,9 +318,6 @@ static void set_fdtfile(void)
*/
static void set_fdt_addr(void)
{
- if (env_get("fdt_addr"))
- return;
-
if (fdt_magic(fw_dtb_pointer) != FDT_MAGIC)
return;
--
2.17.1

View File

@@ -0,0 +1 @@
/boot/uboot.env 0x0000 0x4000

View File

@@ -1 +1,17 @@
DEPENDS_append_rpi = " rpi-u-boot-scr"
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI:append:rpi = " \
file://fw_env.config \
"
SRC_URI:append:rpi = " file://0001-rpi-always-set-fdt_addr-with-firmware-provided-FDT-address.patch"
DEPENDS:append:rpi = " u-boot-default-script"
do_install:append:rpi () {
install -d ${D}${sysconfdir}
install -m 0644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
}
# Temporary avoid Raspberry Pi 5 because U-Boot has not been ported yet
COMPATIBLE_MACHINE:raspberrypi5 = "(-)"

View File

@@ -1,10 +1,10 @@
FILESEXTRAPATHS_prepend_rpi := "${THISDIR}/${PN}:"
FILESEXTRAPATHS:prepend:rpi := "${THISDIR}/${PN}:"
SRC_URI_append_rpi = "\
SRC_URI:append:rpi = "\
file://0001-bcm43xx-Add-bcm43xx-3wire-variant.patch \
file://0002-bcm43xx-The-UART-speed-must-be-reset-after-the-firmw.patch \
file://0003-Increase-firmware-load-timeout-to-30s.patch \
file://0004-Move-the-43xx-firmware-into-lib-firmware.patch \
"
RDEPENDS_${PN}_append_rpi = " pi-bluetooth"
RDEPENDS:${PN}:append:rpi = " pi-bluetooth"

View File

@@ -8,20 +8,33 @@ Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
---
usr/bin/bthelper | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
usr/bin/bthelper | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/usr/bin/bthelper b/usr/bin/bthelper
index af597e5..5de84f6 100755
index 2133fbc..1fc9245 100755
--- a/usr/bin/bthelper
+++ b/usr/bin/bthelper
@@ -10,7 +10,7 @@ fi
@@ -12,8 +12,8 @@ fi
dev=$1
dev="$1"
# Need to bring hci up before looking at MAC as it can be all zeros during init
-/bin/hciconfig "$dev" up
-/bin/hciconfig "$dev" | grep -qE "BD Address: (B8:27:EB|DC:A6:32):" || exit 0
+/usr/bin/hciconfig "$dev" up
+/usr/bin/hciconfig "$dev" | grep -qE "BD Address: (B8:27:EB|DC:A6:32):" || exit 0
/usr/bin/hcitool -i "$dev" cmd 0x3f 0x1c 0x01 0x02 0x00 0x01 0x01 > /dev/null
-/bin/hciconfig $dev up
-if ! /bin/hciconfig $dev | grep -q "Bus: UART"; then
+/usr/bin/hciconfig $dev up
+if ! /usr/bin/hciconfig $dev | grep -q "Bus: UART"; then
echo Not a UART-attached BT Modem
exit 0
fi
@@ -26,7 +26,7 @@ if ( /usr/bin/hcitool -i $dev dev | grep -q -E '\s43:4[35]:' ); then
BDADDR=`printf '0x%02x 0x%02x 0x%02x 0xeb 0x27 0xb8' $((0x$B3 ^ 0xaa)) $((0x$B2 ^ 0xaa)) $((0x$B1 ^ 0xaa))`
/usr/bin/hcitool -i $dev cmd 0x3f 0x001 $BDADDR
- /bin/hciconfig $dev reset
+ /usr/bin/hciconfig $dev reset
else
echo Raspberry Pi BDADDR already set
fi
--
2.31.1

View File

@@ -7,19 +7,21 @@ LIC_FILES_CHKSUM = "\
"
SRC_URI = "\
git://github.com/RPi-Distro/pi-bluetooth \
git://github.com/RPi-Distro/pi-bluetooth;branch=master;protocol=https \
file://0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch \
"
SRCREV = "cbdbcb66bcc5b9af05f1a9fffe2254c872bb0ace"
SRCREV = "fd4775bf90e037551532fc214a958074830bb80d"
S = "${WORKDIR}/git"
inherit ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'update-rc.d', d)}
# hciuart.service replaces what was brcm43438.service
inherit systemd
SYSTEMD_SERVICE_${PN} = "\
SYSTEMD_SERVICE:${PN} = "\
hciuart.service \
bthelper@.service \
"
INITSCRIPT_NAME = "btuart"
INITSCRIPT_PARAMS = "start 18 2 3 4 5 ."
do_install() {
install -d ${D}${sysconfdir}/udev/rules.d
@@ -33,15 +35,23 @@ do_install() {
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${S}/debian/pi-bluetooth.bthelper@.service ${D}${systemd_system_unitdir}/bthelper@.service
install -m 0644 ${S}/debian/pi-bluetooth.hciuart.service ${D}${systemd_system_unitdir}/hciuart.service
else
install -d ${D}${sysconfdir}/init.d/
cat > ${WORKDIR}/btuart.init << EOF
#!/bin/sh
/usr/bin/btuart
EOF
install -m 0755 ${WORKDIR}/btuart.init ${D}${sysconfdir}/init.d/btuart
sed -i -e 's:TAG+="systemd".*$:RUN+="/usr/bin/bthelper %k":' ${D}${sysconfdir}/udev/rules.d/90-pi-bluetooth.rules
fi
}
FILES_${PN} = "\
FILES:${PN} = "\
${bindir} \
${sysconfdir} \
${systemd_unitdir}/system \
"
RDEPENDS_${PN} += " \
RDEPENDS:${PN} += " \
udev-rules-rpi \
"

View File

@@ -1,15 +0,0 @@
# Base this image on core-image-minimal
include recipes-core/images/core-image-minimal.bb
# Include modules in rootfs
IMAGE_INSTALL += " \
kernel-modules \
"
SPLASH = "psplash-raspberrypi"
IMAGE_FEATURES += "ssh-server-dropbear splash"
do_image_prepend() {
bb.warn("The image 'rpi-basic-image' is deprecated, please use 'core-image-base' instead")
}

View File

@@ -1,11 +0,0 @@
# Base this image on core-image-minimal
include recipes-core/images/core-image-minimal.bb
# Include modules in rootfs
IMAGE_INSTALL += " \
kernel-modules \
"
do_image_prepend() {
bb.warn("The image 'rpi-hwup-image' is deprecated, please use 'core-image-base' instead")
}

View File

@@ -3,4 +3,4 @@ include recipes-core/images/core-image-base.bb
COMPATIBLE_MACHINE = "^rpi$"
IMAGE_INSTALL_append = " packagegroup-rpi-test"
IMAGE_INSTALL:append = " packagegroup-rpi-test"

View File

@@ -1,2 +1,2 @@
# mesa-demos needs gles1 and userland driver does not have it, works ok with vc4 graphics driver
X11GLTOOLS_remove_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'mesa-demos', d)}"
X11GLTOOLS:remove:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'mesa-demos', d)}"

View File

@@ -10,21 +10,24 @@ COMPATIBLE_MACHINE = "^rpi$"
OMXPLAYER = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'omxplayer', d)}"
RDEPENDS_${PN} = "\
RDEPENDS:${PN} = "\
${OMXPLAYER} \
bcm2835-tests \
raspi-gpio \
rpio \
rpi-gpio \
pi-blaster \
python3-adafruit-circuitpython-register \
python3-adafruit-platformdetect \
python3-adafruit-pureio \
python3-rtimu \
python3-sense-hat \
connman \
connman-client \
wireless-regdb \
wireless-regdb-static \
bluez5 \
"
RRECOMMENDS_${PN} = "\
RRECOMMENDS:${PN} = "\
${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-multimedia", "bigbuckbunny-1080p bigbuckbunny-480p bigbuckbunny-720p", "", d)} \
${MACHINE_EXTRA_RRECOMMENDS} \
"

View File

@@ -0,0 +1,4 @@
[Unit]
Requires=sys-devices-platform-gpu-graphics-fb0.device
After=sys-devices-platform-gpu-graphics-fb0.device

View File

@@ -1,3 +1,12 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SPLASH_IMAGES_append_rpi = " file://psplash-raspberrypi-img.h;outsuffix=raspberrypi"
ALTERNATIVE_PRIORITY_psplash-raspberrypi[psplash] = "200"
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SPLASH_IMAGES:rpi = "file://psplash-raspberrypi-img.h;outsuffix=raspberrypi"
SRC_URI:append:rpi = " file://framebuf.conf"
do_install:append:rpi() {
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
install -Dm 0644 ${WORKDIR}/framebuf.conf ${D}${systemd_system_unitdir}/psplash-start.service.d/framebuf.conf
fi
}
FILES:${PN}:append:rpi = " ${systemd_system_unitdir}/psplash-start.service.d"

View File

@@ -3,16 +3,17 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = " \
file://99-com.rules \
git://github.com/RPi-Distro/raspberrypi-sys-mods;protocol=https;branch=master \
file://can.rules \
"
SRCREV = "5ce3ef2b7f377c23fea440ca9df0e30f3f8447cf"
S = "${WORKDIR}"
S = "${WORKDIR}/git"
INHIBIT_DEFAULT_DEPS = "1"
do_install () {
install -d ${D}${sysconfdir}/udev/rules.d
install -m 0644 ${WORKDIR}/99-com.rules ${D}${sysconfdir}/udev/rules.d/
install -m 0644 ${S}/etc.armhf/udev/rules.d/99-com.rules ${D}${sysconfdir}/udev/rules.d/
install -m 0644 ${WORKDIR}/can.rules ${D}${sysconfdir}/udev/rules.d/
}

View File

@@ -1,21 +0,0 @@
KERNEL=="ttyAMA[01]", PROGRAM="/bin/sh -c '\
ALIASES=/proc/device-tree/aliases; \
if cmp -s $ALIASES/uart0 $ALIASES/serial0; then \
echo 0;\
elif cmp -s $ALIASES/uart0 $ALIASES/serial1; then \
echo 1; \
else \
exit 1; \
fi\
'", SYMLINK+="serial%c"
KERNEL=="ttyS0", PROGRAM="/bin/sh -c '\
ALIASES=/proc/device-tree/aliases; \
if cmp -s $ALIASES/uart1 $ALIASES/serial0; then \
echo 0; \
elif cmp -s $ALIASES/uart1 $ALIASES/serial1; then \
echo 1; \
else \
exit 1; \
fi \
'", SYMLINK+="serial%c"

View File

@@ -10,4 +10,4 @@ do_install () {
install -m 644 ${WORKDIR}/80-udisks-rpi.rules ${D}${base_libdir}/udev/rules.d
}
FILES_${PN} = "${base_libdir}/udev/rules.d"
FILES:${PN} = "${base_libdir}/udev/rules.d"

View File

@@ -1,42 +0,0 @@
DESCRIPTION = "Package that provides access to GPIO and other IO\
functions on the Broadcom BCM 2835 chip, allowing access to the\
GPIO pins on the 26 pin IDE plug on the RPi board"
SECTION = "base"
HOMEPAGE = "http://www.open.com.au/mikem/bcm2835"
AUTHOR = "Mike McCauley (mikem@open.com.au)"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
COMPATIBLE_MACHINE = "^rpi$"
SRC_URI = "http://www.airspayce.com/mikem/bcm2835/bcm2835-${PV}.tar.gz"
SRC_URI[md5sum] = "b5dc426b4ff258bb1397442f98e40236"
SRC_URI[sha256sum] = "b9fd10f7a80aadaed28a77168709b7c519568a63b6e98d0a50e9c5fe31bea6bb"
inherit autotools
do_compile_append() {
# Now compiling the examples provided by the package
mkdir -p ${B}/examples
for file in `ls ${S}/examples`; do
${CC} ${LDFLAGS} ${S}/examples/${file}/${file}.c -o ${B}/examples/${file} -Bstatic -L${B}/src -lbcm2835 -I${S}/src
done
}
do_install_append() {
install -d ${D}/${libdir}/${BPN}
for file in ${B}/examples/*
do
install -m 0755 ${file} ${D}/${libdir}/${BPN}
done
}
PACKAGES += "${PN}-tests"
RDEPENDS_${PN}-dev = ""
FILES_${PN} = ""
FILES_${PN}-tests = "${libdir}/${BPN}"
FILES_${PN}-dbg += "${libdir}/${BPN}/.debug"

View File

@@ -0,0 +1,50 @@
DESCRIPTION = "Package that provides access to GPIO and other IO\
functions on the Broadcom BCM 2835 chip, allowing access to the\
GPIO pins on the 26 pin IDE plug on the RPi board"
SECTION = "base"
HOMEPAGE = "http://www.open.com.au/mikem/bcm2835"
AUTHOR = "Mike McCauley (mikem@open.com.au)"
LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=e49f4652534af377a713df3d9dec60cb"
COMPATIBLE_MACHINE = "^rpi$"
SRC_URI = "http://www.airspayce.com/mikem/bcm2835/bcm2835-${PV}.tar.gz"
SRC_URI[md5sum] = "9bd2d39bf4b3a9e81dce799ca51c826a"
SRC_URI[sha256sum] = "564920d205977d7e2846e434947708455d468d3a952feca9faef643abd03a227"
inherit autotools
do_compile:append() {
# Now compiling the examples provided by the package
mkdir -p ${B}/examples/spiram
for file in `ls ${S}/examples`; do
example="$file"
if [ "$file" = "spiram" ]; then
# This includes a tiny library
EXAMPLE_LDFLAGS="-L${B}/examples/spiram -lspiram"
example="spiram_test"
${CC} ${CFLAGS} -c ${S}/examples/spiram/spiram.c -o ${B}/examples/spiram/libspiram.o -I${S}/src -I${S}/examples/spiram
rm -f ${B}/examples/spiram/libspiram.a && ${BUILD_AR} crD ${B}/examples/spiram/libspiram.a ${B}/examples/spiram/libspiram.o
fi
${CC} ${LDFLAGS} ${S}/examples/${file}/${example}.c -o ${B}/examples/${example} -Bstatic -L${B}/src -lbcm2835 ${EXAMPLE_LDFLAGS} -I${S}/src
done
}
do_install:append() {
install -d ${D}/${libdir}/${BPN}
for example in $(find ${B}/examples -type f -maxdepth 1)
do
install -m 0755 ${example} ${D}/${libdir}/${BPN}
done
}
PACKAGES += "${PN}-tests"
RDEPENDS:${PN}-dev = ""
FILES:${PN} = ""
FILES:${PN}-tests = "${libdir}/${BPN}"
FILES:${PN}-dbg += "${libdir}/${BPN}/.debug"

View File

@@ -2,21 +2,21 @@ DESCRIPTION = "This project enables PWM on the GPIO pins you request of a Raspbe
HOMEPAGE = "https://github.com/sarfata/pi-blaster/"
SECTION = "devel/libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://README.md;beginline=268;endline=292;md5=86d10e4bcf4b4014d306dde7c1d2a80d"
LIC_FILES_CHKSUM = "file://README.md;beginline=295;endline=319;md5=86d10e4bcf4b4014d306dde7c1d2a80d"
SRC_URI = "git://github.com/sarfata/pi-blaster \
SRC_URI = "git://github.com/sarfata/pi-blaster;branch=master;protocol=https \
file://remove-initscript-lsb-dependency.patch \
"
S = "${WORKDIR}/git"
SRCREV = "befd8ef36e5066e4d444ef47fe4020787e541248"
SRCREV = "fbba9a7dcef0f352a11f8a2a5f6cbc15b62c0829"
inherit update-rc.d autotools
INITSCRIPT_PACKAGES = "${PN}"
INITSCRIPT_NAME_${PN} = "${PN}.boot.sh"
INITSCRIPT_PARAMS_${PN} = "defaults 15 85"
INITSCRIPT_NAME:${PN} = "${PN}.boot.sh"
INITSCRIPT_PARAMS:${PN} = "defaults 15 85"
COMPATIBLE_MACHINE = "^rpi$"

View File

@@ -0,0 +1,15 @@
SUMMARY = "CircuitPython data descriptor classes to represent hardware registers on I2C and SPI devices."
HOMEPAGE = "https://github.com/adafruit/Adafruit_CircuitPython_Register"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec69d6e9e6c85adfb7799d7f8cf044e"
SRC_URI = "git://github.com/adafruit/Adafruit_CircuitPython_Register.git;branch=main;protocol=https"
S = "${WORKDIR}/git"
SRCREV = "49ab415d6b601c99979262f9e91c21dcb3a927a7"
DEPENDS += "python3-setuptools-scm-native"
inherit setuptools3
RDEPENDS:${PN} += "python3-core"

View File

@@ -0,0 +1,15 @@
SUMMARY = "Platform detection for use by libraries like Adafruit-Blinka."
HOMEPAGE = "https://github.com/adafruit/Adafruit_Python_PlatformDetect"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=fccd531dce4b989c05173925f0bbb76c"
SRC_URI = "git://github.com/adafruit/Adafruit_Python_PlatformDetect.git;branch=main;protocol=https"
SRCREV = "7af3af87037cf1e6697471a3a83c56a0f852b959"
S = "${WORKDIR}/git"
inherit setuptools3
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} += "python3-core"

View File

@@ -0,0 +1,19 @@
SUMMARY = "Pure python (i.e. no native extensions) access to Linux IO including I2C and SPI. Drop in replacement for smbus and spidev modules."
HOMEPAGE = "https://github.com/adafruit/Adafruit_Python_PureIO"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2a21fcca821a506d4c36f7bbecc0d009"
SRC_URI = "git://github.com/adafruit/Adafruit_Python_PureIO.git;branch=main;protocol=https"
SRCREV = "383b615ce9ff5bbefdf77652799f380016fda353"
S = "${WORKDIR}/git"
inherit setuptools3
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} += " \
python3-core \
python3-ctypes \
python3-fcntl \
"

View File

@@ -0,0 +1,29 @@
From f5ab30abd37ee884fb3ccaad0a8d21108ca2c812 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 28 Feb 2022 21:37:19 -0800
Subject: [PATCH] setup.py: Port to use setuptools
Needed to get it going with wheel, distutils is deprecated for long
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Linux/python/setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Linux/python/setup.py b/Linux/python/setup.py
index e429e6f..da96843 100644
--- a/Linux/python/setup.py
+++ b/Linux/python/setup.py
@@ -22,7 +22,7 @@
#// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
#// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-from distutils.core import setup, Extension
+from setuptools import setup, Extension
import os.path
RTIMU_sources = [
--
2.35.1

View File

@@ -5,11 +5,11 @@ SECTION = "devel/python"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://../../LICENSE;md5=96cdecb41125f498958e09b72faf318e"
SRC_URI = "git://github.com/RPi-Distro/RTIMULib.git;protocol=http;branch=master \
SRC_URI = "git://github.com/RPi-Distro/RTIMULib.git;protocol=http;branch=master;protocol=https \
file://0001-include-asm-ioctl.h-for-ioctl-define.patch;patchdir=../.. \
file://0001-setup.py-Port-to-use-setuptools.patch;patchdir=../.. \
"
SRCREV = "b949681af69b45f0f7f4bb53b6770037b5b02178"
S = "${WORKDIR}/git/Linux/python/"
S = "${WORKDIR}/git/Linux/python"
inherit setuptools3

View File

@@ -0,0 +1,28 @@
From df5657d772accb275a12c1b1690befa8d87305c8 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 5 Mar 2022 09:53:41 -0800
Subject: [PATCH] setup.py: Use setuptools instead of distutils
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 2b600ca..0fa0807 100644
--- a/setup.py
+++ b/setup.py
@@ -20,7 +20,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"""
-from distutils.core import setup, Extension
+from setuptools import setup, Extension
classifiers = ['Development Status :: 5 - Production/Stable',
'Operating System :: POSIX :: Linux',
--
2.35.1

View File

@@ -5,10 +5,16 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=9b95630a648966b142f1a0dcea001cb7"
PYPI_PACKAGE = "RPi.GPIO"
inherit pypi distutils3
SRC_URI += "file://0001-Remove-nested-functions.patch"
SRC_URI[md5sum] = "777617f9dea9a1680f9af43db0cf150e"
inherit pypi setuptools3
SRC_URI += "file://0001-Remove-nested-functions.patch \
file://0001-setup.py-Use-setuptools-instead-of-distutils.patch \
"
SRC_URI[sha256sum] = "7424bc6c205466764f30f666c18187a0824077daf20b295c42f08aea2cb87d3f"
COMPATIBLE_MACHINE = "^rpi$"
# ignore issues with -fno-common from gcc-10 until it's fixed in upstream:
# https://sourceforge.net/p/raspberry-gpio-python/tickets/187/
CFLAGS += "-fcommon"

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