Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Installation

  1. Install docker

  2. Create a Docker account and sign in locally

  3. If . For Mac and Windows, you must install docker desktop instead.

  4. If using Windows follow two more steps because Docker for Windows runs on WSL (Windows Subsystem for Linux):

    1. Update WSL by running wsl --update

    2. Set the default WSL version to 2 by running wsl --set-default-version 2

    3. Install the Ubuntu WSL distro by running wsl --installIf you want to install a different distribution, I think you can set flags but Ubuntu is easier imo

    4. Running exit will get you out of WSL if you are in the distro

Usage

MacOS

  1. Make sure Docker Desktop is started

  2. Pull down the Docker container you are using by running docker pull <CONTAINER_NAME> where CONTAINER_NAME can be nwdepatie/ner-gcc-arm for microcontroller development

  3. Start the container by running docker run --rm -it --privileged -v "$PWD:/home/app" <CONTAINER_NAME>:latest bash using the same container you just pulled.

    1. Make sure you are running it in whatever directory you want to operate on

  4. Any flashing hardware should be mounted to container automatically

...

  1. Make sure Docker Desktop is started and wsl ubuntu is installed (see above setup)

  2. Pull down the Docker container you are using by running docker pull <CONTAINER_NAME> where CONTAINER_NAME can be nwdepatie/ner-gcc-arm for microcontroller developmentcompose pull.

  3. Start the container by running docker compose run --rm ner-it --privileged -v "$(PWD):/home/app" <CONTAINER_NAME>:latest bash using the same container you just pulledgcc-arm.

    1. Make sure you are running it in whatever directory you want to operate onIf the above command doesn’t work, try docker run --rm -it --privileged -v "%cd%:/home/app" <CONTAINER_NAME>:latest bashthe root directory of the project (Ex. Cerberus, Shepherd, Iroh, Proteus, etc.)

  4. To mount any flashing hardware (this may be condensed into a script in the future):

    1. Open a Windows terminal with admin privileges and run winget install usbipd

    2. Open a WSL terminal (wsl) and run the following commands to enable mounting Windows USB devices in the Docker container

      1. sudo apt update

      2. sudo apt install linux-tools-virtual hwdata

      3. sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20

    3. (If interacting with hardware) Mount the Raspberry Pi probe by finding the device in another Windows terminal with usbipd wsl list and mount the device in a Windows terminal window (with admin privileges the first time you do this) with usbipd bind --busid=<BUSID>

      1. You’re looking for the CMSIS-DAP v2 Interface device

    4. Run usbipd attach --wsl=ubuntu --busid <BUSID>

Tools / Utils

...