Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anpep/minos
A poor man's Linux AArch64 prototyping environment
https://github.com/anpep/minos
Last synced: 19 days ago
JSON representation
A poor man's Linux AArch64 prototyping environment
- Host: GitHub
- URL: https://github.com/anpep/minos
- Owner: anpep
- Created: 2022-07-25T13:39:18.000Z (over 2 years ago)
- Default Branch: trunk
- Last Pushed: 2023-12-01T11:29:59.000Z (about 1 year ago)
- Last Synced: 2024-06-11T14:14:54.614Z (6 months ago)
- Language: Python
- Size: 22.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# minos
> A poor man's Linux AArch64 prototyping environment## Requirements
### Python
Use `pip3 install -r requirements.txt` to install Python dependencies.### System
- `pv`
- `mtools` (`mcopy` et al.), `dosfstools` (`mkfs.vfat`), for manipulating the FAT ESP
- `binutils-multiarch` if using systemd-stub boot mechanism on a cross-architecture scenario## Getting started
Rename `.env.example` to `.env` and fill in the variables inside for QEMU to work. You can edit `mincraft.yaml` for changing the selection of packages and other properties of the target OS.Running `./mincraft.py` will execute the following steps:
1. Download the `base` image supplied to `mincraft.yaml`
2. Extract the `base` image
3. Download all .deb files specified in `mincraft.yaml`
4. Extract all files from all packages in `mincraft.yaml`
5. Copy all files from the directories specified in the `overlays` entry in `mincraft.yaml` onto the `.cache/rootfs` directory
6. Compress `.cache/rootfs` onto the initramfs located at `.cache/initrd.gz`Depending on the `boot mechanism` specified in the YAML file (currently only `grub` and `systemd-stub` are supported, and the latter is not functional yet), it will perform the following tasks:
### For `grub`
(The `grub-efi-{amd64,arm64}-signed` package must be installed on the initramfs)
- Copy the signed GRUB EFI binary, the kernel image and the initrd file onto the EFI system partition directory located at `.cache/esp`.
- Generate a `grub.cfg` file and place it onto the ESP### For `systemd-stub`
(The `systemd` package must be installed on the initramfs)
- Decompress the kernel
- Modify the systemd EFI stub PE binary adding the following sections:
- `.linux` with the decompressed kernel binary
- `.cmdline` with the configured command line
- `.osrel` with the contents of `/etc/os-release`
- `.dtb` with the virt DTB from QEMU
- `.initrd` with the compressed initramfs image
- Place the unsigned EFI binary on the target EFI system partitionCurrently, booting with the systemd-stub mechanism crashes on EDK II.