# fiatlux ### Cloning ```bash git clone --recursive https://git.neulandlabor.de/j3d1/fiatlux.git ``` or after cloning normally ```bash git submodule update --init --recursive ``` ### Build Requirements - make - bash gawk perl - g++ gcc - libc6-dev - flex bison - automake autoconf - gperf - wget - git - bzip2 unzip zip unrar-free - help2man texinfo - libtool libtool-bin - ncurses-dev libexpat-dev - python3 python3-serial python-dev - pip install websocket-client (for otaflash.py, optional) ### Build Steps #### Workarounds for submodules ```bash sed -i 's/GNU bash, version (3\\\.\[1-9\]|4)/GNU bash, version (3.[1-9]|4|5)/g' modules/sdk/crosstool-NG/configure.ac mkdir -p modules/sdk/crosstool-NG/.build/tarballs wget https://github.com/libexpat/libexpat/releases/download/R_2_1_0/expat-2.1.0.tar.gz -O modules/sdk/crosstool-NG/.build/tarballs/expat-2.1.0.tar.gz ``` #### Build Toolchain ```bash make -C modules/sdk standalone=y -j$(nproc) export PATH=$(pwd)/modules/sdk/xtensa-lx106-elf/bin:$PATH ``` #### Compile Firmware ```bash make firmware -j$(nproc) ``` #### Flash ```bash make flash ``` ### Build Steps (using docker) install `docker` on your platform and buil with ```bash make firmware_docker -j$(nproc) ``` ### Build Steps (using nixos) In the project root run: ``` nix-shell --option sandbox false make firmware -j$(nproc) ```