A container image for running the GNU Arm Embedded Toolchain for C and C++, built on Fedora. Comes complete with Black, CMake, Conan, Ninja, and Clang tools.
- Image
- Tags
-
-
latest
-
- Supported architectures
-
-
amd64
(x86_64) -
arm
(armhfp) -
arm64
(aarch64)
-
- User
-
The default user inside the container is named
user
. - Working directory
-
By default, the working directory is the default user’s home directory:
/home/user/project
. - Labels
-
io.containers.autoupdate=registry
-
Enables automatic updates when using Podman and the fully-qualified image name.
First, ensure your user is in the dialout
group allowing access to serial devices.
sudo usermod -aG $USER dialout
ℹ️
|
You’ll have to log out and back in for the changes to take effect |
Use the following command to run the container via Podman and access the GNU Arm Embedded Toolchain.
The example enters the container, mounting the current working directory, Conan’s configuration directory, and Git’s configuration directory.
Additionally, it mounts the serial device /dev/ttyBmpGdb
, the hosted GDB server on a Black-Magic-Probe which allows flashing firmware to a target board.
podman run \
--rm \
--userns keep-id \
--group-add keep-groups \
--device /dev/ttyBmpGdb:/dev/ttyBmpGdb \
--security-opt label=disable \
--volume "$PWD":/home/user/project \
--volume "$HOME/.conan":/home/user/.conan \
--volume "$HOME/.config/git":/home/user/.config/git \
--name gnu-arm-embedded \
-it \
quay.io/jwillikers/gnu-arm-embedded:latest
This project uses Buildah and Podman for building and testing the image.
A set of pre-commit checks are readily available to ensure your code is up-to-spec at the time it is committed.
Instructions for setting up a development environment, building the image, and testing the image follow.
These instructions are intended for users of Fedora Silverblue, where the packages buildah
, git
, and podman
are already available.
Moreover, I use the fish shell.
-
Install the fish shell.
sudo rpm-ostree install fish
-
Reboot to finish the installation.
systemctl reboot
-
Clone this repository.
git -C ~/Projects clone git@github.com:jwillikers/gnu-arm-embedded-image.git
-
Install pre-commit.
pip install pre-commit
-
Change into the project directory.
cd ~/Projects/gnu-arm-embedded-image
-
Install pre-commit’s Git hooks.
pre-commit install
-
Run the
build.fish
shell script usingbuildah unshare
to create the image.buildah unshare ~/Projects/gnu-arm-embedded-image/build.fish
-
Verify the image with works correctly by running the
test.fish
shell script.~/Projects/gnu-arm-embedded-image/test.fish
Contributions in the form of issues, feedback, and even pull requests are welcome. Make sure to adhere to the project’s Code of Conduct.
Refer to the project’s Code of Conduct for details.
This repository is licensed under the GPLv3, a copy of which is provided in the license file.
© 2021 Jordan Williams