Windows Guide

Setting Up Infrastructure

You are not logged in.

Please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.

How to Setup MSYS2 For 6.205

Installing MSYS2

There are two easy ways to install MSYS2 on Windows:

  1. Get the installer from this page on their website under Installation.
  2. Get the installer using Winget from PowerShell using the command winget install -i MSYS2.MSYS2.

In the installer window, while you can change the options if you would like, it works just fine to keep the default settings.

MSYS2 itself has a bunch of different environments, which are explained here for those who are curious, but the most modern and standard one is the UCRT64 environment, so we'll use that.

MSYS2, similar to Git Bash for those with familiarity, does include a minimal terminal emulator with the installation, but I generally prefer to use Windows Terminal, whose setup I will go over in the next section.

(Recommended) Installing Windows Terminal

To use Windows Terminal for MSYS2, one must (1) install Windows Terminal, and (2) add the MSYS2 UCRT64 profile to Windows Terminal.

Installing Windows Terminal is can be done through the Windows Store1 like any other Windows Store app. Link is provided here.

Once Windows terminal is installed, you'll need to point it to UCRT64, which is done by modifying the profiles list. In an open Windows Terminal window, using the dropdown next to the new tab button, go to Settings > Open JSON File, which will open the settings.json file. There is a list field under profiles in the JSON that has all of the shells that Windows Terminal is setup to use. In this list add the following entry2:

{
    "guid": "{17da3cac-b318-431e-8a3e-7fcdefe6d114}",
    "name": "UCRT64 / MSYS2",
    "commandline": "C:/msys64/msys2_shell.cmd -defterm -here -no-start -ucrt64",
    "startingDirectory": "C:/msys64/home/%USERNAME%",
    "icon": "C:/msys64/ucrt64.ico"
}

Once you save the settings.json file, a new option in the dropdown should appear titled UCRT64 / MSYS2 with the MSYS2 logo. If so, you're all set!

Installing Course Tools

Open a UCRT64 environment in the terminal emulator of your choice (e.g. Windows Terminal if you did the optional step). MSYS2 uses pacman3, so it generally has access to fairly up-to-date packages. When installing packages, one must specify which environment's version of the package to install, so make sure to honor that.

First, install Python with pacman -S mingw-w64-ucrt-x86_64-python, which will install the python3 and (at the time of writing) python3.11 executables. There is also a separate package for python3.12 available, so the default python3 version may be bumped to that soon.

Next, we will install the EDA tools for the course, namely openFPGALoader, iverilog, and gtkwave. They can each be installed individually with the following commands:

pacman -S mingw-w64-ucrt-x86_64-openFPGALoader
pacman -S mingw-w64-ucrt-x86_64-iverilog
pacman -S mingw-w64-ucrt-x86_64-gtkwave

If you don't mind a little extra bloat, they can also be installed using the eda package group, with pacman -S mingw-w64-ucrt-x86_64-eda.


 
Footnotes

1is it a Microsoft product after all (click to return to text)

2courtesy of the MSYS2 fellows (click to return to text)

3so we are kinda using Arch, btw? (click to return to text)