{"id":18929179,"url":"https://github.com/jwillikers/gnu-arm-embedded-image","last_synced_at":"2025-04-15T15:30:50.753Z","repository":{"id":104838663,"uuid":"377964847","full_name":"jwillikers/gnu-arm-embedded-image","owner":"jwillikers","description":"A container image for running the bare metal ARM GCC toolchain for C and C++, built on Fedora ","archived":true,"fork":false,"pushed_at":"2021-08-12T16:25:27.000Z","size":55,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T21:52:13.038Z","etag":null,"topics":["buildah","c","cpp","fedora","gnu-arm-embedded-toolchain","oci-image"],"latest_commit_sha":null,"homepage":"https://quay.io/repository/jwillikers/gnu-arm-embedded","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jwillikers.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.adoc","code_of_conduct":"CODE_OF_CONDUCT.adoc","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-17T21:29:14.000Z","updated_at":"2024-10-12T14:49:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"6c0cc888-9197-45e9-adf0-d6a14896ea65","html_url":"https://github.com/jwillikers/gnu-arm-embedded-image","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwillikers%2Fgnu-arm-embedded-image","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwillikers%2Fgnu-arm-embedded-image/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwillikers%2Fgnu-arm-embedded-image/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwillikers%2Fgnu-arm-embedded-image/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jwillikers","download_url":"https://codeload.github.com/jwillikers/gnu-arm-embedded-image/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249097788,"owners_count":21212352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["buildah","c","cpp","fedora","gnu-arm-embedded-toolchain","oci-image"],"created_at":"2024-11-08T11:30:57.148Z","updated_at":"2025-04-15T15:30:50.741Z","avatar_url":"https://github.com/jwillikers.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"= GNU Arm Embedded Image\nJordan Williams \u003cjordan@jwillikers.com\u003e\n:experimental:\n:icons: font\nifdef::env-github[]\n:tip-caption: :bulb:\n:note-caption: :information_source:\n:important-caption: :heavy_exclamation_mark:\n:caution-caption: :fire:\n:warning-caption: :warning:\nendif::[]\n:Asciidoctor: https://asciidoctor.org/[Asciidoctor]\n:Black-Magic-Probe: https://github.com/blacksphere/blackmagic/wiki[Black-Magic-Probe]\n:Buildah: https://buildah.io/[Buildah]\n:CLion: https://www.jetbrains.com/clion/[CLion]\n:Fedora: https://getfedora.org/[Fedora]\n:Fedora-Silverblue: https://silverblue.fedoraproject.org/[Fedora Silverblue]\n:fish: https://fishshell.com/[fish]\n:GCC: https://gcc.gnu.org/[GCC]\n:Git: https://git-scm.com/[Git]\n:GNU-Arm-Embedded-Toolchain: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads[GNU Arm Embedded Toolchain]\n:Linux: https://www.linuxfoundation.org/[Linux]\n:OpenSSH: https://www.openssh.com/[OpenSSH]\n:Podman: https://podman.io/[Podman]\n:pre-commit: https://pre-commit.com/[pre-commit]\n:Python: https://www.python.org/[Python]\n:Rouge: https://rouge.jneen.net/[Rouge]\n:Ruby: https://www.ruby-lang.org/en/[Ruby]\n:Visual-Studio-Code: https://code.visualstudio.com/[Visual Studio Code]\n\nimage:https://img.shields.io/github/workflow/status/jwillikers/gnu-arm-embedded-image/CI/main[GitHub Workflow Status]\nimage:https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white[pre-commit, link=https://github.com/pre-commit/pre-commit]\n\nA container image for running the {GNU-Arm-Embedded-Toolchain} for C and {cpp}, built on {Fedora}.\nComes complete with Black, CMake, Conan, Ninja, and Clang tools.\n\n== Synopsis\n\nImage:: https://quay.io/repository/jwillikers/gnu-arm-embedded[quay.io/jwillikers/gnu-arm-embedded]\n\nTags::\n* `latest`\n\nSupported architectures::\n* `amd64` _(x86_64)_\n* `arm` _(armhfp)_\n* `arm64` _(aarch64)_\n\nUser:: The default user inside the container is named `user`.\n\nWorking directory:: By default, the working directory is the default user's home directory: `/home/user/project`.\n\nLabels::\n`io.containers.autoupdate=registry`::: Enables automatic updates when using Podman and the _fully-qualified_ image name.\n\n== Quick Start\n\nFirst, ensure your user is in the `dialout` group allowing access to serial devices.\n\n[source,sh]\n----\nsudo usermod -aG $USER dialout\n----\n\nNOTE: You'll have to log out and back in for the changes to take effect\n\nUse the following command to run the container via {Podman} and access the GNU Arm Embedded Toolchain.\nThe example enters the container, mounting the current working directory, Conan's configuration directory, and Git's configuration directory.\nAdditionally, it mounts the serial device `/dev/ttyBmpGdb`, the hosted GDB server on a {Black-Magic-Probe} which allows flashing firmware to a target board.\n\n[source,sh]\n----\npodman run \\\n    --rm \\\n    --userns keep-id \\\n    --group-add keep-groups \\\n    --device /dev/ttyBmpGdb:/dev/ttyBmpGdb \\\n    --security-opt label=disable \\\n    --volume \"$PWD\":/home/user/project \\\n    --volume \"$HOME/.conan\":/home/user/.conan \\\n    --volume \"$HOME/.config/git\":/home/user/.config/git \\\n    --name gnu-arm-embedded \\\n    -it \\\n    quay.io/jwillikers/gnu-arm-embedded:latest\n----\n\n== Build\n\nThis project uses {Buildah} and {Podman} for building and testing the image.\nA set of {pre-commit} checks are readily available to ensure your code is up-to-spec at the time it is committed.\nInstructions for setting up a development environment, building the image, and testing the image follow.\nThese instructions are intended for users of {Fedora-Silverblue}, where the packages `buildah`, `git`, and `podman` are already available.\nMoreover, I use the {fish} shell.\n\n. Install the {fish} shell.\n+\n[source,sh]\n----\nsudo rpm-ostree install fish\n----\n\n. Reboot to finish the installation.\n+\n[source,sh]\n----\nsystemctl reboot\n----\n\n. Clone this repository.\n+\n[source,sh]\n----\ngit -C ~/Projects clone git@github.com:jwillikers/gnu-arm-embedded-image.git\n----\n\n. Install {pre-commit}.\n+\n[source,sh]\n----\npip install pre-commit\n----\n\n. Change into the project directory.\n+\n[source,sh]\n----\ncd ~/Projects/gnu-arm-embedded-image\n----\n\n. Install pre-commit's Git hooks.\n+\n[source,sh]\n----\npre-commit install\n----\n\n. Run the `build.fish` shell script using `buildah unshare` to create the image.\n+\n[source,sh]\n----\nbuildah unshare ~/Projects/gnu-arm-embedded-image/build.fish\n----\n\n. Verify the image with works correctly by running the `test.fish` shell script.\n+\n[source,sh]\n----\n~/Projects/gnu-arm-embedded-image/test.fish\n----\n\n== Contributing\n\nContributions in the form of issues, feedback, and even pull requests are welcome.\nMake sure to adhere to the project's link:CODE_OF_CONDUCT.adoc[Code of Conduct].\n\n== Open Source Software\n\nThis project is built on the hard work of countless open source contributors.\nSeveral of these projects are enumerated below.\n\n* {Asciidoctor}\n* {Buildah}\n* {Fedora}\n* {Fedora-Silverblue}\n* {GCC}\n* {Git}\n* {Linux}\n* {OpenSSH}\n* {Podman}\n* {pre-commit}\n* {Python}\n* {Rouge}\n* {Ruby}\n\n== Code of Conduct\n\nRefer to the project's link:CODE_OF_CONDUCT.adoc[Code of Conduct] for details.\n\n== License\n\nThis repository is licensed under the https://www.gnu.org/licenses/gpl-3.0.html[GPLv3], a copy of which is provided in the link:LICENSE.adoc[license file].\n\n© 2021 Jordan Williams\n\n== Authors\n\nmailto:{email}[{author}]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwillikers%2Fgnu-arm-embedded-image","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjwillikers%2Fgnu-arm-embedded-image","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwillikers%2Fgnu-arm-embedded-image/lists"}