Skip to content

How to build the rusEFI firmware from the source files

First of all, maybe do not compile locally

As of 2024 we are pretty addicted to GitHub Actions. Just fork repo, enable GitHub actions and push, GH will leave you all the binaries already compiled in the actions artifacts.

Step-by-step guide to creating the build environment in windows 10+ using Windows Shell for Linux

The best way to build the rusEFI firmware is using a set of tools that run best under linux,

  1. Install WSL Run the following in an elevated powershell

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    
  2. Download linux
    Download the appx for linux 2004 from here: WSL Install Manual
    Or type the following into powershell:

    cd ubuntu/
    Invoke-WebRequest -Uri <https://aka.ms/wsl-ubuntu-2004> -OutFile Ubuntu.appx -UseBasicParsing
    

This command will download the file to the currently active directory.

  1. install linux

    PS C:\Windows\system32> cd c:/Ubuntu
    PS C:\Ubuntu> Add-AppxPackage Ubuntu_2004.2020.424.0_x64.appx
    

Open start menu and launch linux
Wait for it to complete install and ask for username and password

  1. check WSL default install In powershell type:

    wslconfig /l
    

Make sure the ubuntu 2004 is marked as default.

  1. get git

    sudo apt-get install git
    
  2. clone git

    git clone <https://github.com/YOUR-REPOSITORY/rusefi.git>
    
  3. Run setup script

    cd /home/owner/rusefi/firmware
    sh setup_linux_environment.sh
    
  4. install VScode in windows
    Download and install as normal, is should detect WSL and ask to install the extension for it, do this and close VScode

  5. Install VScode in linux

    cd /home/owner/rusefi
    code .
    
  6. Hit ctrl-b and run "build unit tests" Allow to run and complete, it may exit with "multiple targets" error, if so just run it a second time.

  7. exit both VScode and ubunu
    Click the x in VScode and type exit in ubuntu

  8. reboot ubuntu from the start menu and run make

    cd /home/owner/rusefi/firmware
    make -j$(nproc)
    

    This should build the firmware for the F407 Discovery board

  9. If successful then reopen VScode in ubuntu

    cd /home/owner/rusefi
    code .
    
  10. Run the built tool for the specific board in VScode
    Ctrl-Shift-B and select the chosen board, this should build the firmware.

  11. Note submodules are their own thing - the main repo just contains a pointer to where the submodule should be checked out

  12. Zach method:

install wsl (already have ubuntu 20.04 on wsl2)

sudo apt update
sudo apt install openjdk-8-jre-headless -y
curl -O <https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2>
tar -xf gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2

Without WSL

A less fancy toolchain without WSL works as well. There is a forum thread on building the firmware, but be aware that it contains some out-of-date information.