A unix-like environment with Python 3 installed. So far this has been tested on Fedora and Debian. Further testing is required for macOS and WSL.
A unix-like environment with the following base packages installed:
- Python 3
- `pip`
- `wget`
- devicetree compiler
- CMake
- `dfu-util`
- Various build essentials, e.g. gcc, automake, autoconf
### Debian/Ubuntu
On Debian and Ubuntu, this can be accomplished with:
```bash
apt-get install -y \
autoconf \
automake \
build-essential \
ccache \
device-tree-compiler \
dfu-util \
g++ \
gcc \
gcc-multilib \
libtool \
make \
cmake \
ninja-build \
python3-dev \
python3-pip \
python3-setuptools \
xz-utils
```
### Fedora
TODO
### macOS
TODO
### WSL
TODO
## Setup
## Setup
@ -15,7 +60,7 @@ A unix-like environment with Python 3 installed. So far this has been tested on
`west` is the [Zephyr™ meta-tool](https://docs.zephyrproject.org/latest/guides/west/index.html) used to configure and build Zephyr™ applications. It can be installed by using the `pip` python package manager:
`west` is the [Zephyr™ meta-tool](https://docs.zephyrproject.org/latest/guides/west/index.html) used to configure and build Zephyr™ applications. It can be installed by using the `pip` python package manager:
The installation will prompt with several questions about installation location, and creating a default `~/.zephyrrc` for you with various variables. The defaults shouldn normally work as expected.
### Source Code
### Source Code
Next, you'll need to clone the ZMK source repository if you haven't already:
Next, you'll need to clone the ZMK source repository if you haven't already:
@ -68,7 +115,8 @@ west zephyr-export
## Build
## Build
To build for your particular keyboard, the behaviour varies slightly depending on if you are building for a keyboard with
Actually building the ZMK firmware occurs within the `app/` subdirectory
of the ZMK repository. To build for your particular keyboard, the behaviour varies slightly depending on if you are building for a keyboard with
an onboard MCU, or one that uses a MCU board addon.
an onboard MCU, or one that uses a MCU board addon.