Browse Source
Simple blog post outlining the work done for the Zephyr 2.5 upgrade, and steps needed to make the most of it. Co-authored-by: innovaker <66737976+innovaker@users.noreply.github.com>xmkb
Peter Johanson
3 years ago
committed by
Pete Johanson
1 changed files with 75 additions and 0 deletions
@ -0,0 +1,75 @@ |
|||||||
|
--- |
||||||
|
title: "Zephyr 2.5 Update" |
||||||
|
author: Pete Johanson |
||||||
|
author_title: Project Creator |
||||||
|
author_url: https://gitlab.com/petejohanson |
||||||
|
author_image_url: https://www.gravatar.com/avatar/2001ceff7e9dc753cf96fcb2e6f41110 |
||||||
|
tags: [firmware, zephyr, core] |
||||||
|
--- |
||||||
|
|
||||||
|
I'm happy to announce that we have completed the [work](https://github.com/zmkfirmware/zmk/pull/736/) to upgrade ZMK to [Zephyr 2.5](https://docs.zephyrproject.org/2.5.0/releases/release-notes-2.5.html)! |
||||||
|
|
||||||
|
A big part of this work was some _major_ refactors and improvements by [innovaker] to our [zmk-docker](https://github.com/zmkfirmware/zmk-docker/) Docker image and GH Actions automation. |
||||||
|
|
||||||
|
- Faster build times with improved caching. |
||||||
|
- Integration tests which automatically verify new images. |
||||||
|
- PRs to the repo now build properly and run the tests as well. |
||||||
|
- Build images for multiple target architectures, e.g. `zmk-build-riscv64`, all in parallel. |
||||||
|
- Nightly builds to be sure we're pulling in the latest OS/package updates, to ensure we keep our images up to date, address any reported vulnerabilities, etc. |
||||||
|
- Faster upgrade paths for future Zephyr SDK and Zephyr versions. |
||||||
|
|
||||||
|
In addition, [petejohanson] did the upgrade work to adjust ZMK for the Zephyr changes. |
||||||
|
|
||||||
|
- Updated to newer devicetree/driver Zephyr API |
||||||
|
- Adjustment for Zephyr pinmux changes |
||||||
|
- Fixes for power management, LVGL, and formatter changes |
||||||
|
|
||||||
|
## Getting The Changes |
||||||
|
|
||||||
|
Use the following steps to update to the latest tooling in order to properly use the new ZMK changes: |
||||||
|
|
||||||
|
### User Config Repositories Using GitHub Actions |
||||||
|
|
||||||
|
Existing user config repositories using Github Actions to build will pull down Zephyr 2.5 automatically, |
||||||
|
and should work, fine as is. However, to upgrade to the newer Docker image, you should: |
||||||
|
|
||||||
|
- Open `.github/workflows/build.yml` in your editor/IDE |
||||||
|
- Change `zmkfirmware/zmk-build-arm:2.4` to `zmkfirmware/zmk-build-arm:2.5` wherever it is found |
||||||
|
|
||||||
|
:::note |
||||||
|
|
||||||
|
If you created your user config repository a while ago, you may find that your `build.yml` file instead references |
||||||
|
a `zephyr-west-action-arm` custom GitHub Action instead. In this case, the upgrade is not as direct. We suggest that |
||||||
|
instead you [re-create your config repository](/docs/user-setup) to get an updated setup using the new automation |
||||||
|
approach. |
||||||
|
|
||||||
|
::: |
||||||
|
|
||||||
|
### VS Code & Docker (Dev Container) |
||||||
|
|
||||||
|
If you build locally using VS Code & Docker then: |
||||||
|
|
||||||
|
- pull the latest ZMK `main` with `git pull` for your ZMK checkout |
||||||
|
- reload the project |
||||||
|
- if you are prompted to rebuild the remote container, click `Rebuild` |
||||||
|
- otherwise, press `F1` and run `Remote Containers: Rebuild Container` |
||||||
|
- Once the container has rebuilt and reloaded, run `west update` to pull the updated Zephyr version and its dependencies. |
||||||
|
|
||||||
|
Once the container has rebuilt, VS Code will be running the 2.5 Docker image. |
||||||
|
|
||||||
|
### Local Host Development |
||||||
|
|
||||||
|
The following steps will get you building ZMK locally against Zephyr 2.5: |
||||||
|
|
||||||
|
- Run the updated [toolchain installation](/docs/development/setup#toolchain-installation) steps, and once completed, remove the previously installed SDK version (optional, existing SDK should still work) |
||||||
|
- pull the latest ZMK `main` with `git pull` for your ZMK checkout |
||||||
|
- run `west update` to pull the updated Zephyr version and its dependencies |
||||||
|
|
||||||
|
From there, you should be ready to build as normal! |
||||||
|
|
||||||
|
## Thanks! |
||||||
|
|
||||||
|
Thanks again to [innovaker] for all the hard work, and to all the testers who have helped verify ZMK functionality on the newer Zephyr version. |
||||||
|
|
||||||
|
[petejohanson]: https://github.com/petejohanson |
||||||
|
[innovaker]: https://github.com/innovaker |
Loading…
Reference in new issue