# Smart Home This repository contains the description of a number of smart home devices as well as the source code for the corresponding firmware. # Compiling Compiling the display firmware requires a rust toolchain for ARMv6m: rustup target add thumbv6m-none-eabi Compiling the base station software depends on the targeted board. The following steps can be used to cross-compile the software for an ARMv7 target running Armbian from a Fedora host: 1. Install the toolchain: sudo dnf copr enable lantw44/arm-linux-gnueabi-toolchain sudo dnf install arm-linux-gnueabi-gcc.x86_64 rustup target add arm-unknown-linux-gnueabi 2. Configure Rust to use the ARM GCC: cat > ~/.cargo/config <<_EOF [target.arm-unknown-linux-gnueabi] linker = "arm-linux-gnueabi-gcc" rustflags = ["-Clink-args=-Wl,--dynamic-linker=/lib/ld-linux-armhf.so.3"] _EOF 3. Compile the software using the newly installed toolchain: cargo build --target=arm-unknown-linux-gnueabi For an Ubuntu host, the following steps can be used: 1. Install the toolchain: sudo apt-get install gcc-arm-linux-gnueabihf rustup target add arm-unknown-linux-gnueabihf 2. Configure Rust to use the ARM GCC: cat > ~/.cargo/config <<_EOF [target.arm-unknown-linux-gnueabihf] linker = "arm-linux-gnueabihf-gcc" _EOF 3. Compile the software using the newly installed toolchain: cargo build --target=arm-unknown-linux-gnueabihf # License The hardware contained in this repository is licensed under the [CERN Open Hardware Licence Version 2 - Weakly Reciprocal](cern_ohl_w_v2.txt), and the software is licensed under the [GNU General Public License v3](gpl-3.0.md).