Yocto Project

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Yocto Project
Initial release2010; 16 years ago (2010)
Stable release
5.2 (Walnascar) / April 2025; 1 year ago (2025-04)
Repositorygit.yoctoproject.org
Written inPrimarily Python, Shell
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Websiteyoctoproject.org

    The Yocto Project is a Linux Foundation collaborative open source project whose goal is to produce tools and processes that enable the creation of Linux distributions for embedded and IoT software that are independent of the host hardware architecture, supports customization and results in repeatable output. The toolset managed by the project, commonly called yocto, consists of interoperable tools, metadata, and processes. The project was announced by the Linux Foundation in 2010 and launched in March, 2011, in collaboration with 22 organizations, including OpenEmbedded.[1]

    The Yocto and OpenEmbedded projects share maintenance of BitBake (build engine) and OpenEmbedded-Core (core metadata). Yocto provides a reference implementation called Poky, which contains the OpenEmbedded build system plus a large set of recipes, arranged in hierarchical layers, that can be used as a template for a customize, embedded operating system.

    In addition to building a Linux system, yocto provides other, related features. It can generate a toolchain for cross compilation and a software development kit (SDK) tailored to a hardware environment. It supports package creation in a variety of formats including deb, rpm, or ipk. Within builds, there are options for various build-time sanity/regression tests, and also the option to boot and test certain images under QEMU to validate the build.

    The project encourages interaction with upstream projects and has contributed heavily to OpenEmbedded-Core and BitBake as well as to numerous upstream projects, including the Linux kernel.[2] The resulting images are typically useful in systems where embedded Linux would be used, these being single-use focused systems or systems without the usual screens/input devices associated with desktop Linux systems.

    There are several other sub-projects under the project umbrella which include CROPS, pseudo, the matchbox suite of applications, and many others. One of the central goals of the project is interoperability among these tools.

    In October 2018, Arm Holdings partnered with Intel in order to share code for embedded systems through the Yocto Project.[3]

    Governance

    [edit | edit source]

    The Yocto Project is one of many collaborative projects organized as a non-profit under the banner of the Linux Foundation.[4] The project's governance is divided loosely into technical and administrative arms, although many members participate in both camps.

    At a technical level, the project is overseen by the project architect Richard Purdie (a Linux Foundation Fellow[5]) who has a long history of involvement with many of the project's components and technologies.[6] The architect maintains a hierarchy of maintainers for the different components of the system, much as the Linux kernel is maintained.

    The administrative arm consists of an advisory board made up of representatives from the project's member organizations, including several major silicon vendors, commercial operating system vendors that use yocto as their upstream, corporate users, as well as representatives from groups such as software consultants and community members.[7] The member organizations of this board provide resources to the project. There are also several advisory board working groups that handle administrative functions for the project such as finance, infrastructure, advocacy and outreach, and community management.

    Branding program

    [edit | edit source]

    The Yocto Project Branding Program provides an opportunity to associate the use of the Yocto Project with an organization or product. An organization that uses yocto is a candidate to be branded as a Yocto Project Participant. A product (such as a BSP or any OE-compatible layer) is a candidate to be branded as Yocto Project Compatible.[8]

    Releases

    [edit | edit source]

    Major releases occur about every 6 months (April and October).[9] Version 3.1 was the first long-term support (LTS) release.[10] Since then, a new LTS release is added every two years. The 3.1 series and 4.0 were originally planned for two years but extended to four. The next LTS releases are planned for 4 years.[11] Since version 3.1, the release codenames are names of mountains or passes in the Cumbria county in Northern England.

    The project attempts to update documentation for each release, retaining all documents for current and archived releases on the website, as the documentation can change significantly with any release.[12]

    Release[13][14] Codename Date Support
    Latest version: 5.2 Walnascar 04/2025 11/2025
    Unsupported: 5.1 Styhead 10/2024 EOL
    Supported: 5.0 (LTS) Scarthgap 04/2024 04/2028
    Unsupported: 4.3 Nanbield 11/2023 EOL
    Unsupported: 4.2 Mickledore 05/2023 EOL
    Unsupported: 4.1 Langdale 10/2022 EOL
    Supported: 4.0 (LTS) Kirkstone 05/2022 04/2026
    Unsupported: 3.4 Honister 11/2021 EOL
    Unsupported: 3.3 Hardknott 04/2021 EOL
    Unsupported: 3.2 Gatesgarth 11/2020 EOL
    Unsupported: 3.1 (LTS) Dunfell 04/2020 04/2024
    Unsupported: 3.0 Zeus 10/2019 EOL
    Unsupported: 2.7 Warrior 04/2019 EOL
    Unsupported: 2.6 Thud 11/2018 EOL
    Unsupported: 2.5 Sumo 04/2018 EOL
    Unsupported: 2.4 Rocko 10/2017 EOL
    Unsupported: 2.3 Pyro 04/2017 EOL
    Unsupported: 2.2 Morty 10/2016 EOL
    Unsupported: 2.1 Krogoth 04/2016 EOL
    Unsupported: 2.0 Jethro 10/2015 EOL
    Unsupported: 1.8 Fido 04/2015 EOL
    Unsupported: 1.7 Dizzy 10/2014 EOL
    Unsupported: 1.6 Daisy 04/2014 EOL
    Unsupported: 1.5 Dora 10/2013 EOL
    Unsupported: 1.4 Dylan 04/2013 EOL
    Unsupported: 1.3 Danny 10/2012 EOL
    Unsupported: 1.2 Denzil 04/2012 EOL
    Unsupported: 1.1 Edison 10/2011 EOL
    Unsupported: 1.0 Bernard 2011 EOL
    Unsupported: 0.9 Laverne 2010 EOL
    Legend:
    Unsupported
    Supported
    Latest version
    Preview version
    Future version

    See also

    [edit | edit source]

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    13. ^ Yocto Project Release Activity
    14. ^ yoctoproject: Releases
    [edit | edit source]