This repository has been archived on 2024-06-02. You can view files and clone it, but cannot push or open issues or pull requests.
upsilon-docker/README.md

56 lines
1.6 KiB
Markdown
Raw Normal View History

2023-06-02 16:25:01 -04:00
Upsilon docker development environment setup.
2023-05-26 15:00:46 -04:00
Written by Peter McGoron.
2023-06-02 16:25:01 -04:00
# Setup steps
2023-05-26 15:00:46 -04:00
2023-05-29 14:39:02 -04:00
## Rebinding Caps Lock to Escape
2023-05-26 15:00:46 -04:00
gsettings set org.gnome.desktop.input-sources xkb-options "['caps:swapescape']"
2023-05-29 14:39:02 -04:00
## Installing OpenFPGALoader
2023-05-26 15:00:46 -04:00
Then install [openFPGALoader][1]. This utility entered the Ubuntu repositories
in 23.04. Install and compile it if you do not have it. Install the udev rule
so that admin access is not required to load FPGA bitstreams.
[1]: https://trabucayre.github.io/openFPGALoader/index.html
2023-05-29 14:39:02 -04:00
## Setup Rootless Docker
2023-05-26 15:00:46 -04:00
Docker allows you to run programs in containers, which are isolated
environments. Upsilon development (at the Maglab) uses Docker for
reproducibility: the environment can be set up automatically, and re-setup
whenever needed.
If you have issues with docker, try adding to `~/.config/docker/daemon.json`
{
"storage-driver": "fuse-overlayfs"
}
2023-05-29 14:39:02 -04:00
## Download and Install Python3
2023-05-26 15:00:46 -04:00
Install `python3-venv` (or `python3-virtualenv`) and `python3-pip`.
2023-06-02 16:25:01 -04:00
## Clone External Repositories
Run `make clone`. You may need to download the upsilon repositories
and put them in the same folder as the Makefile.
## Setup Images
Run `make images` to create all docker images.
## Setup and Run Containers
There are three containers: `hardware`, `buildroot`, and `opensbi`. For
each of these:
1. Run `make $NAME-container` to build the container.
2. Run `make $NAME-container-copy` to copy Upsilon's code into the container.
3. Run `make $NAME-container-execute` to build the data.
4. Run `make $NAME-container-get` to retrieve the build artefacts.
5. (Optionally) run `make $NAME-container-clean` to delete the container.
2023-05-26 15:00:46 -04:00