Giter Site home page Giter Site logo

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.

misterarch's Projects

alarm-ansible icon alarm-ansible

Arch Linux ARM Ansible Scripts to generate prebuilt SD card

binaries icon binaries

Pacman repo and prebuilt sd card images stored here

linux icon linux

Fresher linux kernel for MiSTer

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.