Giter Club home page Giter Club logo

mister-docker-build's Introduction

MiSTer-docker-build

Docker image and utility shell scripts for compiling FPGA cores and C binaries for the MiSTer FPGA project.

The goal of this repo is to be a turn-key solution for building MiSTer cores and MiSTer C/C++ binaries. The scripts have been developed and tested on MacOS. It should be possible to use the Docker image on Windows or Linux, but this has not been tested. The convenience scripts mister_quartus_compile.sh and mister_arm_compile.sh are written in BASH and assume a Unix environment.

Software Requirements

  • git command line
  • docker command line

Docker Hardware Allocation Requirements

  • Docker Images require around 24GB of Docker allocated storage
  • Compiling RBF core files uses as much as 7GB of Docker allocated memory

Command line git and Docker must be installed and properly configured.

MacOS users

Using homebrew to install git and Docker is recommended but not required.

Installation

Clone the repo

git clone https://github.com/hunson-abadeer/MiSTer-docker-build

Locally create and install mister-quartus Docker image

please note: creation and install of Docker Quartus image will take some time.

cd MiSTer-docker-build
docker build -t mister-quartus .

Usage

This repo contains two scripts mister_quartus_compile.sh and mister_arm_compile.sh

  • mister_quartus_compile.sh for compiling FPGA cores
  • mister_arm_compile.sh for compiling ARM compatible C binaries

Compiling ARM compatible binary

git clone https://github.com/MiSTer-devel/Main_MiSTer
cd Main_MiSTer
../MiSTer-docker-build/mister_arm_compile.sh make clean
../MiSTer-docker-build/mister_arm_compile.sh make

If compile was successful there will be a new file MiSTer in the Main_MiSTer directory.

Compile FPGA core using Quartus Lite 17.0.2

cd ..
git clone https://github.com/MiSTer-devel/MegaCD_MiSTer
cd MegaCD_MiSTer
../MiSTer-docker-build/mister_quartus_compile.sh MegaCD

If compile was successful there will be a new file MegaCD.rbf in the MegaCD_MiSTer/output directory.

Notes

The first time mister_arm_compile.sh is run Docker will download and install the Linux ARM Docker environment. This can take considerable time depending on the network bandwidth available. This is a one time cost and subsequent runs will not need to perform this step.

Compiling the RBF core files can take considerable time and memory. Compiling the MegaCD core took around 7GB of memory and 30 minutes. The MegaCD.flow.rpt file written to the MegaCD_MiSTer/output directory reports build time and memory usage.

Acknowledgements

This repo is based upon https://github.com/chriz2600/quartus-lite.

Thank you to all the developers who have contributed to the amazing MiSTer project!

mister-docker-build's People

Contributors

hunson-abadeer avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.