Skip to content

MiSTerArch/PKGBUILDs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MiSTer + Arch Linux ARM

MisterArch Logo: A blue arch coming out of a cloud

I found out about MiSTer via LGR's MiSTer Multisystem video, since then I've been enjoying it very much.

One thing I've had difficulties with was the original OS. Despite it being designed to be an appliance, it seems very brittle to store an OS's worth of data (and precious saved games / hard drive images) on a exfat SD card. Also, any modifications you make to the OS might be lost come update time.

I want to be able to run Arch on my MiSTer! If you want to do the same this project is for you.

Installation Instructions

Screenshot of a terminal with archey3, pacman package list and systemctl status MiSTer

Community

Chat with other MiSTerArch users on:

Packages

This repository contains the PKGBUILDs for the arch linux arm packages required to run the MiSTer hardware. Including MiSTer's official uboot, kernel, binaries and support files (ex: .rbf files for cores). Ideally all updates will now be done through arch package managers, and there should be no need to run MiSTer's update scripts.

Binaries

Complete builds of these packages can be found in the binaries repo of this org. It's also served with gh-pages, which means it can be directly added as a repo in /etc/pacman.conf so your MiSTer knows where to get MiSTerArch packages automatically at update time. See installation instructions for how.

AUR

Some binary packages that are easy to "build" on a MiSTer (ex: mister-bin, mister-menu) are also mirrored on the AUR, in order to delegate the frequent repackaging to the each MiSTer device (similar to what the older update scripts used to do, but easier to manage). This might become handy once we get a couple PKGBUILDs that can automatically version themselves.

Guidelines

We follow the -bin and -git naming conventions of the rest of the Arch community. The only added exception: -bin suffix is not required for bitstreams (pretty much all of the cores), as running quartus to compile a new binary on an armv7 MiSTer CPU would be laughable.

/media/fat

The main MiSTer binary and quite a few MiSTer scripts are hardcoded to use /media/fat as a case-insensitive location for doing everything.

For now this path's contents is under the user's control. One can even mount an old style exfat partition using /etc/fstab. For now mister-bin's post-install hook has a suggestion on how to populate things in Mister by cloning Distribution_MiSTer.

There's a couple of other techniques that might be of interest here:

  • ciopfs - store files elsewhere and mount them in a case-insensitive fashion to /media/fat
  • mergerfs - combine with sshfs / cifs mounts to achieve a merged filesystem, where some of paths in /media/fat/ are not directly on the sd card, but others are
  • bind mounts

In the future it's possible we'll package up such content somewhere like /usr/share/mister, and use various mounts so MiSTer can see a view of it in /media/fat. Bonus: If packaged this way such packages could be installed on x86 Arch machines that could act like a sshfs or samba server for various MiSTers on a LAN.

What now?

Now that the MiSTer runs Arch, what more could it do?

  • sshfs mounting of remote filesystem, even with systemd automounting
  • btrfs and btrbk remote snapshot possiblities
  • USB/IP in case you don't have a carrier board yet and forgot to buy an usb otg cable, just ssh in and forward your usb device from another computer. This happened to me.
  • Repurpose the hardware for other FPGA shenanigans, maybe you want to develop your own FPGA stuff but still want to run arch on the resulting system, zangman style.
    • Maybe you want to write linux drivers for LiteX IP blocks.