BSP Tracker / Yocto Layer Compatibility
A Yocto release lands every six months, and the question that decides the quarter is whether the vendor layer you depend on supports it yet. Layers lag, skip releases, or follow the silicon vendor calendar instead. This table records what each layer declares in conf/layer.conf, which branches exist, and when each last saw a commit.
The compatibility string is machine-readable. Every layer declares the Yocto releases it supports through LAYERSERIES_COMPAT in conf/layer.conf. The value quoted here is taken from the repository.
Declaring a release is not the same as shipping one. Several vendor layers follow their own BSP calendar rather than the Yocto cadence, so a declared release may have no branch behind it. Pin to a branch that exists.
A quiet branch means little on its own. Some layers leave master stale while work continues on a release branch; equally, a release branch is supposed to fall silent once its release ships. The activity column therefore measures the newest commit across every branch we recorded, and names the branch the date came from — so a layer keeping normal cadence cannot be marked stale because you happened to look at the branch you build from.
| Codename | Version | Released | Support |
|---|---|---|---|
| Blacksail | 6.1 | Oct 2026 | 6 months (to Apr 2027) |
| Wrynose | 6.0 | Apr 2026 | LTS — to Apr 2030 |
| Whinlatter | 5.3 | Dec 2025 | EOL |
| Walnascar | 5.2 | May 2025 | EOL since Nov 2025 |
| Styhead | 5.1 | Oct 2024 | EOL |
| Scarthgap | 5.0 | Apr 2024 | LTS — to Apr 2028 |
| Kirkstone | 4.0 | May 2022 | EOL — was LTS |
| Dunfell | 3.1 | Apr 2020 | EOL |
| Layer | Declares compat | Newest branch | Activity | In practice |
|---|---|---|---|---|
| meta-intel vendor | wrynose | wrynose | Active last commit 2026-10-02 | Maintained by Intel inside the Yocto Project, so it tracks Yocto's cadence exactly: a branch per release, cut on schedule, fixes on master then the release branch within days. The wrynose branch took its first commit since early July on 2 October. |
| meta-raspberrypi community | wrynose | wrynose | Active last commit 2026-10-10 | Very disciplined: a branch for every Yocto release since dunfell, cut promptly. Master declares only the current release rather than accumulating a list. |
| meta-freescale community | whinlatter wrynose | wrynose | Active last commit 2026-10-08 | The COMMUNITY NXP layer. Follows Yocto's cadence, not NXP's — a branch per Yocto release, cut on time, with same-day backports. This is the one to use if you want i.MX support aligned to a Yocto release; meta-imx follows NXP's own calendar. One of the three most actively fed layers in this table. A blacksail branch (Yocto 6.1, not yet released) now exists too; wrynose remains the current LTS line. |
| meta-imx vendor | mickledore nanbield scarthgap styhead walnascar whinlatter wrynose | wrynose-6.18.37-2.1.0 | Slow last commit 2026-09-08 | NXP's official layer follows NXP's OWN BSP cadence, not Yocto's. There is NO master branch — branches are named codename-kernel-BSPrev (for example scarthgap-6.6.52-2.2.0, wrynose-6.18.37-2.1.0) and the default branch IS the newest BSP. The declared compat list is long, but in practice you must check out the exact branch NXP shipped for your SoC. wrynose-6.18.37-2.1.0 superseded wrynose-6.18.20-2.0.0 in September. |
| meta-ti vendor | whinlatter wrynose (meta-ti-bsp) | wrynose | Active last commit 2026-10-08 | TI does NOT cut a branch for every Yocto release: there is no styhead, walnascar or whinlatter branch — only dunfell, kirkstone, scarthgap (LTS) and wrynose. Each has -next and -wip siblings fed by TI's CI. The wrynose branch still carries am335x-evm.conf, so the ARM32 Sitara parts are not dropped from the current release. |
| meta-tegra community | blacksail (master already on the NEXT release) | wrynose | Active last commit 2026-10-08 | Community (OE4T), NOT NVIDIA. Branching is two-dimensional — per Yocto release AND per NVIDIA L4T/JetPack version (scarthgap-l4t-r35.x, master-l4t-r38.4.x) — because L4T is what really constrains what you can build. Highly active, and master is already declaring blacksail, a release that has not shipped yet. A real blacksail branch now exists too (Yocto 6.1, not yet released); wrynose remains the current LTS line. |
| meta-qcom vendor | wrynose | wrynose | Active last commit 2026-10-09 | Now in Qualcomm's own GitHub org and driven by Qualcomm engineers plus community maintainers (it began as a community layer, so treat “vendor” loosely). Skips releases: it keeps kirkstone, scarthgap, styhead, wrynose and master — no walnascar or whinlatter branch. Several backport/NNNN-to-wrynose topic branches exist; those are work in flight, not release branches. The wrynose branch now also lists lts-linux-firmware-mixin in LAYERDEPENDS alongside core. |
| meta-st-stm32mp vendor | wrynose (read on the release branch, not master) | wrynose_v26.02.18 | Slow last commit 2026-08-17 | Do NOT judge this layer by its master branch — master is a single 166-byte README with no conf directory at all, and its only commit is 'Add README' from February 2019. ST develops on per-release branches tied to its OpenSTLinux version (wrynose_v26.02.18), so it follows ST's OpenSTLinux calendar. No whinlatter branch — ST skipped it. No newer wrynose_vYY.MM.NN has appeared. |
| meta-xilinx vendor | wrynose (real branch since 2026-07-22); wrynose-next present; master STALE | wrynose | Active last commit 2026-09-16 | A real wrynose branch exists on github.com/Xilinx/meta-xilinx and the Yocto mirror: meta-xilinx-core/conf/layer.conf declares LAYERSERIES_COMPAT_xilinx = wrynose, pins v2026.1 on linux-xlnx 6.18, and ships zynqmp-generic.conf plus cg/dr/eg/ev variants. The LTS gap is closed. Master stays stale — it declares styhead walnascar and still pins XILINX_RELEASE_VERSION v2024.2 against the wrynose branch's v2026.1. AMD's tool cadence is rel-vYYYY.N. |
| meta-rockchip community | wrynose | wrynose | Stale last commit 2026-04-08 | Community layer effectively maintained by one person. It cuts a branch per Yocto release, but the commit rate is low — the wrynose branch has now not moved for six months, its head still the April 'wic: move wks files' commit, while master still sees occasional activity. Rockchip the company does not maintain this; its vendor BSPs live outside Yocto. |
| meta-sunxi community | wrynose (declared on master) | walnascar no branch for current LTS | Stale last commit 2025-10-22 | Purely community; no vendor involvement. DECLARES wrynose on master, but there is NO wrynose branch (and no whinlatter) — the newest release-named branch is walnascar, which is EOL and whose head has not moved since October 2025. Master is the only thing being maintained, so for the current LTS you build from rolling master and inherit whatever state it is in. The date shown is walnascar's head, which is the branch you would actually check out; master itself moved as recently as October 2026. |
BSP layers and software layers are different obligations. A BSP layer brings up the silicon — machine configuration, the kernel recipe, bootloader and firmware. There is one per SoC family and you do not get to opt out of having it; those are the table above. A software layer adds function that has nothing to do with which chip you chose — updates and rollback, containers, hardening, a UI toolkit, a second toolchain. You choose each one, and each one is a separate upgrade obligation. Those are the table below.
Your board layer is not usually what blocks the upgrade. A product pulls in eight to fifteen layers, and the move to a new LTS is gated by whichever one is furthest behind. The table above says the BSP layers have largely caught up; this one covers the software half.
What gets listed, so a row is a finding and not an opinion: a layer appears here when a product must add it to do something the BSP cannot — update and rollback, containers, hardening, firmware, toolchain — or when practically every build pulls it in. The functions are fixed; the layers are instances of them. Layers are added when they meet that test, not because they are popular.
This column measures a different thing from the one above, deliberately. The BSP table dates the newest commit across every branch it recorded, which is usually master. This one dates the release branch you would actually build from — normally wrynose. A layer can be busy on master and silent on the release branch; meta-rauc below is the clearest case. Each row names the branch its date came from, because not every layer branches on the Yocto release at all.
Every layer here declares the current LTS. That is the finding, not an omission: as of the date above, nothing in this set blocks a move to Wrynose on compatibility grounds. What varies is how actively each branch is being fed.
Not everything you depend on is a layer. ffmpeg is the common example: there is no meta-ffmpeg to track, because the recipe ships in oe-core itself (meta/recipes-multimedia/ffmpeg, version 8.0.1 on the wrynose branch), so every build already has it. gstreamer-1.0 is also in oe-core, while its plugins and the codec libraries around it — x265, dav1d, aom, libde265 — sit in meta-multimedia inside meta-openembedded. Checked the meta-multimedia recipe list on wrynose: 63 recipe directories, no ffmpeg among them.
Two more that catch people out. There is no meta-rust: Rust is in oe-core at meta/recipes-devtools/rust, cargo and libstd included. And there is no meta-rt: PREEMPT_RT is a core kernel recipe variant, meta/recipes-kernel/linux/linux-yocto-rt_6.18.bb on the wrynose branch. If you are hunting for a layer to add for either, there is not one to find.
| Layer | Activity on the LTS branch | Declares compat | In practice |
|---|---|---|---|
| meta-rauc Update and rollback | Stale last commit 2 June 2026 on wrynose · 38da0e58 | wrynose | The wrynose head is a CI configuration change - '.github/workflows/build: build against wrynose' - authored 25 January and committed 2 June. The branch was cut, pointed at the new release, and has taken nothing since. Master is a different story; this column is about the branch you would build from. One branch per release from dunfell forward, with no -next or -wip siblings anywhere. |
| meta-selinux Hardening | Stale last commit 6 June 2026 on wrynose · 1c3a699f | wrynose | SELinux policy and the refpolicy recipes, the companion to meta-security. Branches for essentially every Yocto release, LTS and non-LTS alike, with no -next or -wip siblings on the current one - the only -next branches in the repository are master-next and a dora-next from thirteen years ago. Its wrynose head is a refpolicy resync authored in April and committed in June, and nothing has landed since. Now the quietest half of the hardening story, since meta-security started moving again in September. |
| meta-clang Toolchain | Slow last commit 20 July 2026 on wrynose · ef0d22f2 | wrynose | Builds the distribution with Clang instead of GCC. Carries per-release-per-compiler-version branches (dunfell-clang14, kirkstone-clang18, scarthgap-clang20) alongside the plain release branches, so read the branch name carefully before pinning. Note that the pinned-compiler pattern STOPS at scarthgap: there is no whinlatter-clang or wrynose-clang variant, so on the current LTS the plain wrynose branch is the only option and the Clang version is whatever that branch carries. |
| meta-swupdate Update and rollback | Slow last commit 28 July 2026 on wrynose · c0658455 | whinlatter wrynose | A branch per Yocto release, cut on time, with no -next or -wip siblings - and unlike meta-mender it cuts one for non-LTS releases too. Twenty-six release branches back to daisy, which is the most complete release coverage of any layer in this table. |
| meta-security Hardening | Active last commit 14 September 2026 on wrynose · 2703974d | wrynose | Frozen from late May until 14 September, when a batch of roughly thirty commits was merged from wrynose-next - version updates for lynis, suricata, crowdsec, aide, clamav, tpm2-tools, sssd and the OpenSCAP content among them. wrynose and wrynose-next now point at the same commit. The branch is being tended again, but it moves in batches rather than steadily, so check its head before planning around it. |
| meta-openembedded General software | Active last commit 15 September 2026 on wrynose · 47d7dbd | whinlatter wrynose | One repository, not one layer: meta-oe, meta-python, meta-networking, meta-multimedia, meta-filesystems, meta-webserver, meta-perl, meta-gnome, meta-xfce and meta-initramfs all ride the same branch, and each declares its own LAYERSERIES_COMPAT. There is no top-level conf/layer.conf - the value quoted is meta-oe's, re-confirmed against the wrynose tree. Being fed steadily on the LTS branch, with no wrynose-next sibling. |
| meta-arm Firmware and TF-A | Active last commit 16 September 2026 on wrynose · 673e8d7c | wrynose | The boundary case in this table: architecture-level firmware rather than application software, but not a machine layer for any particular SoC either - you add it, so it is tracked here. Trusted Firmware-A, OP-TEE and the SystemReady reference bits. All three sublayers read and all three agree on wrynose alone: meta-arm, meta-arm-bsp and meta-arm-toolchain. meta-arm-bsp depends on core and meta-arm, and adds meta-python for the Corstone and Musca machines. Fifteen branches, still no -next or -wip on any of them. |
| meta-virtualization Containers and VMs | Active last commit 4 October 2026 on wrynose · 28075796 | wrynose | Declares only the current release rather than accumulating a list, and the wrynose branch is being fed - crun CVE backports for CVE-2026-47766 and CVE-2026-30892 on 1 September and CVE-2026-88264 on 4 October, and further commits since. That is the behaviour you want from an LTS branch and it is not universal in this table. Depends on meta-openembedded, meta-python, meta-networking and meta-filesystems, so it never arrives alone. |
| meta-mender Update and rollback | Active last commit 9 October 2026 on wrynose · 136c2da2 | wrynose | A commercial product with an open layer, but it does follow the Yocto codename branch model - the README states the release-named branch strategy outright. What it does not do is branch for every release: from dunfell forward only the LTS releases have branches - dunfell, kirkstone, scarthgap and wrynose exist, while whinlatter, walnascar, styhead, nanbield, mickledore, langdale, honister, hardknott and gatesgarth do not. Like meta-openembedded here, each of the five sublayers (core, demo, extended, qemu, commercial) carries its own single-word compat; there is no top-level conf/layer.conf. |
| meta-qt6 Qt 6 application framework | Active last commit 10 October 2026 on lts-6.8 · 1fe3c3aa | kirkstone langdale mickledore nanbield scarthgap styhead walnascar whinlatter wrynose | The exception to how every other row here works: meta-qt6 has NO Yocto-release branches at all. Every branch is a Qt version - 6.0 through 6.12, plus dev, lts-6.2, lts-6.5, lts-6.8 and esm-6.5 - so you pick a Qt release and read what it declares, rather than picking a Yocto release. The figures above are from lts-6.8, still the newest Qt long-term branch. Note also that it declares nine Yocto releases from kirkstone forward on one branch; a long accumulated list says the layer has not dropped support, not that every combination is tested. |
Checked 11 October 2026. Considered and deliberately not included, so the omission is on the record rather than silent: meta-flutter and meta-browser (a non-Qt HMI is a real function, but not one we have evidence our readers build); meta-ros (robotics, outside the kernel, driver and embedded-systems scope this site covers); meta-secure-core (overlaps meta-security and meta-selinux). The aim here is to be complete on functions, not on layers — the OpenEmbedded Layer Index is the directory, and every row on this page is a weekly re-checking commitment.
An email when a kernel series reaches end of life, a board row changes, or a layer picks up a release branch. Nothing else.
RSS