summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2025-03-23 18:08:44 +0100
committerxengineering <me@xengineering.eu>2025-03-26 21:18:23 +0100
commit5040ad1492f37b5c7efc06cc1f558bdad6a600fa (patch)
tree9a28140bc589a9bc14d38a471a5c2da93f9ea0ed
parentb073db4017008ceb638a9c23c8cc93e60a3a7fdb (diff)
downloadiot-contact-5040ad1492f37b5c7efc06cc1f558bdad6a600fa.tar
iot-contact-5040ad1492f37b5c7efc06cc1f558bdad6a600fa.tar.zst
iot-contact-5040ad1492f37b5c7efc06cc1f558bdad6a600fa.zip
Provide default key path in CMake files
This makes calling cmake for this device repository easier.
-rw-r--r--CMakeLists.txt4
-rw-r--r--README.md11
2 files changed, 11 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a21c5d0..e539037 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,6 +2,10 @@ cmake_minimum_required(VERSION 3.10)
project(iot-contact LANGUAGES NONE)
+set(KEY_DEFAULT "$ENV{HOME}/mcuboot/key.pem")
+set(KEY ${KEY_DEFAULT} CACHE STRING "Firmware signing key path")
+message(STATUS "Firmware signing key path: ${KEY}")
+
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
add_subdirectory(fw)
diff --git a/README.md b/README.md
index 6fd7c0f..8b39597 100644
--- a/README.md
+++ b/README.md
@@ -10,11 +10,11 @@ Currently two boards are supported:
## Usage
-To build the firmware a firmware signing key is required. It is generated with
-the `imgtool.py`.
+To build the device repository a firmware signing key is required. It is
+generated with the `imgtool.py`.
```
-mkdir -p ~/mcuboot
+mkdir ~/mcuboot
./imgtool.py keygen --key ~/mcuboot/key.pem --type ed25519
```
@@ -26,10 +26,13 @@ The bootloader is built for `nucleo_f767zi` since the simulation board is
currently not supported.
```
-cmake -Bbuild -GNinja -DKEY=~/mcuboot/key.pem
+cmake -Bbuild -GNinja
ninja -C build
```
+A custom key location can be set by providing `-DKEY=/path/to/key` to the CMake
+call.
+
To run the simulated firmware a virtual network interface `zeth` and a router
advertisement daemon have to be provided with an embedded script. Root rights
are required for that (prefix e.g. with `sudo`).