{"id":42139158,"url":"https://github.com/dbhi/containers","last_synced_at":"2026-01-26T16:34:46.707Z","repository":{"id":97900282,"uuid":"179459150","full_name":"dbhi/containers","owner":"dbhi","description":"Containerized open and free development tools for Dynamic Binary Hardware Injection (DBHI)","archived":false,"fork":false,"pushed_at":"2023-01-24T21:40:13.000Z","size":126,"stargazers_count":8,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-09-11T10:43:59.631Z","etag":null,"topics":["arm","docker","dynamorio","ghdl","gtkwave","multiarch","octave","podman","pynq","vunit","zynq"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/aptman/dbhi","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dbhi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-04-04T08:50:16.000Z","updated_at":"2025-01-02T13:57:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"4a527bfc-8f34-4c26-bf93-85b038c4a1b6","html_url":"https://github.com/dbhi/containers","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dbhi/containers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbhi%2Fcontainers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbhi%2Fcontainers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbhi%2Fcontainers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbhi%2Fcontainers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dbhi","download_url":"https://codeload.github.com/dbhi/containers/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbhi%2Fcontainers/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28782167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T13:55:28.044Z","status":"ssl_error","status_checked_at":"2026-01-26T13:55:26.068Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["arm","docker","dynamorio","ghdl","gtkwave","multiarch","octave","podman","pynq","vunit","zynq"],"created_at":"2026-01-26T16:34:45.695Z","updated_at":"2026-01-26T16:34:46.702Z","avatar_url":"https://github.com/dbhi.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./logo/light.png\" width=\"550\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca title=\"'push' workflow Status\" href=\"https://github.com/dbhi/containers/actions/workflows/push.yml\"\u003e\u003cimg alt=\"'docker' workflow Status\" src=\"https://img.shields.io/github/actions/workflow/status/dbhi/containers/push.yml?branch=main\u0026longCache=true\u0026style=flat-square\u0026logo=github\u0026label=push\"\u003e\u003c/a\u003e\u003c!--\n  --\u003e\n  \u003ca title=\"Docker Hub\" href=\"https://hub.docker.com/r/aptman/dbhi/\"\u003e\u003cimg src=\"https://img.shields.io/docker/pulls/aptman/dbhi.svg?longCache=true\u0026style=flat-square\u0026logo=docker\u0026logoColor=fff\u0026label=aptman%2Fdbhi\"\u003e\u003c/a\u003e\u003c!--\n  --\u003e\n\u003c/p\u003e\n\nThis repository contains containerized open and free development tools for Dynamic Binary Hardware Injection (DBHI).\nAll the images are available at [docker.io/aptman/dbhi](https://hub.docker.com/r/aptman/dbhi/).\nImages provided by [docker-library/official-images](https://github.com/docker-library/official-images#architectures-other-than-amd64)\nare used as a base, and three host platforms are supported: `amd64`, `arm64v8` and `arm32v7`.\nManifests are also available, in order to allow platform-agnostic development.\n\n- Any host:\n  - `aptman/dbhi:bionic*`: [GHDL](https://github.com/ghdl/ghdl) (with LLVM backend and `--default-pic`), and\n    [VUnit](https://github.com/VUnit/vunit) (Python 3).\n    This is the *base* image.\n  - `aptman/dbhi:bionic-dr*`: [DynamoRIO](https://github.com/DynamoRIO/dynamorio), based on *base* image.\n  - `aptman/dbhi:bionic-cosim*`: *base* image plus [GTKWave](http://gtkwave.sourceforge.net/),\n    [Flask](https://flask.palletsprojects.com/en/1.1.x/), [Pillow](https://pillow.readthedocs.io/en/stable/) and\n    [numpy](https://numpy.org/).\n  - `aptman/dbhi:bionic-octave*`: *base* image plus [Octave](https://www.gnu.org/software/octave/).\n\n- `arm`|`arm64` only:\n  - `aptman/dbhi:bionic-mambo-*`: [MAMBO](https://github.com/beehive-lab/mambo), based on *base* image.\n\n- `amd64` only:\n  - `aptman/dbhi:buster-gRPC-amd64`: [protoc](https://github.com/protocolbuffers/protobuf/),\n    [grpc-go](https://github.com/grpc/grpc-go) and [protoc-gen-go](https://github.com/golang/protobuf/).\n  - `aptman/dbhi:bionic-spinalhdl*`: [SpinalHDL](https://github.com/SpinalHDL/SpinalHDL) and\n    [RISCV dev tools](https://static.dev.sifive.com/dev-tools/).\n\n\n\u003e NOTE: binaries/artifacts built in `aptman/dbhi:bionic*` images can be executed on v2.3, v2.4 or v2.5 SDCard images\n\u003e provided at [Xilinx/PYNQ](https://github.com/Xilinx/PYNQ/releases), since those are based on `Ubuntu 18.04 (bionic)`.\n\u003e Releases are available for PYNQ, ZCU104 and ZCU111 boards.\n\n## Usage\n\nSome images include tools, such as GTKWave or Octave, that provide GUI interfaces.\nThese interfaces require an X server, which is expected to be executed outside of the container.\nHowever, docker does not provide built-in options to automatically share the display from the host.\nFurthermore, non-linux environments do not provide an X server by default.\nFortunately, [x11docker](https://github.com/mviereck/x11docker) and [runx](https://github.com/mviereck/runx) allow to\neasily set up custom X servers on either GNU/Linux or Windows.\n\nOn GNU/Linux:\n\n```sh\nx11docker --hostdisplay -i aptman/dbhi:bionic-cosim bash\n```\n\nOn Windows, with MSYS2 and VcxSrv:\n\n```sh\nx11docker --runx --no-auth -i aptman/dbhi:bionic-cosim bash\n```\n\nOn Windows, with WSL or Cygwin, and Cygwin/X:\n\n```sh\nx11docker -i aptman/dbhi:bionic-cosim bash\n```\n\nApart from these basic options, x11docker provides many [features](https://github.com/mviereck/x11docker#features)\nfocused on security; and remote access is supported.\nSee [JOSS 10.21105/joss.01349](https://joss.theoj.org/papers/10.21105/joss.01349).\n\n## Continuous integration\n\nImages for the three target platforms are built in a GitHub Actions workflow. [dbhi/qus](https://github.com/dbhi/qus) is\nused to enable execution of images for foreign architectures (`arm64v8`|`arm32v7` on `amd64`).\nSee [push.yml](./.github/workflows/push.yml) and [run.sh](./run.sh) for further details.\n\n## Building docker images for/on ARM targets\n\n- SiFive does not provide prebuilt packages for ARM hosts: [sifive.com/boards](https://www.sifive.com/boards/).\n  That's why `spinalhdl` images for Arm platforms are not provided, although SpinalHDL can be successfully executed.\n\n- Building image *dr* hangs the system on RPi3B. We should investigate why.\n  However, DynamoRIO can be succesfully built natively.\n\n- Building DynamoRIO on an arm32v7 container on a 64 bit host requires to set\n  `-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_PROCESSOR=armv7`, as explained at DynamoRIO/dynamorio#3381.\n\n\u003e TODO Update either the Dockerfile or the build script according to\n\u003e [DynamoRIO/dynamorio#3381](https://github.com/DynamoRIO/dynamorio/issues/3381#issuecomment-468541604).\n\u003e Setting `CMAKE_SYSTEM_NAME` and `CMAKE_SYSTEM_PROCESSOR` seems not to be required if the ARM docker containers are\n\u003e executed on `x86_64` through `qemu-user-static` binaries (either `arm` or `AArch64`).\n\n---\n\nCompilation of either [GHDL](https://github.com/ghdl/ghdl/) or [DynamoRIO](https://github.com/DynamoRIO/dynamorio) fails\non `AArch64` with `kata-runtime` (see [katacontainers.io](https://katacontainers.io/)).\nMultiple errors such as the following are shown:\n\n- `Clock skew detected.  Your build may be incomplete.`\n- `Warning: File \u003cfile\u003e has modification time 0.008 s in the future`\n- `cc1: out of memory allocating 65537 bytes after a total of 1466368 bytes`\n\nThis has been reported at [kata-containers/runtime#1293](https://github.com/kata-containers/runtime/issues/1293).\n\nWe tried to work around some of these issues with [`--cpuset-cpus`](https://docs.docker.com/v17.09/engine/admin/resource_constraints/#cpu),\nso that make was executed on a single core.\nHowever, DynamoRIO requires more than 3GB of RAM, and runtime option `-m` would fail with `kata-runtime` (see\n[kata-containers/runtime#1245](https://github.com/kata-containers/runtime/issues/1245)).\n\nThe solution was to set `runc` as the default runtime. This was done through `/etc/systemd/system/docker.service.d/kata-containers.conf`\nand/or `/etc/docker/daemon.json`.\nSee [Install Docker for Kata Containers on Ubuntu](https://github.com/kata-containers/documentation/blob/master/install/docker/ubuntu-docker-install.md#install-docker-for-kata-containers-on-ubuntu).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbhi%2Fcontainers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbhi%2Fcontainers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbhi%2Fcontainers/lists"}