The goal of this project is to serve as an installation script for personally configured Arch Linux systems to work out of the box.
It takes a rather different approach to many of the existing installers. The scripts are thin, readable and customizable. And a "pre-configure once", then "install automatically" approach is used. Setup config variables are assumed to be correctly configured for this to work, and this README attempts to make sure that will be the case.
Hardware configuration support:
Base | Alias | Headless (TUI) | Desktop (GUI) | Hardware |
---|---|---|---|---|
x86_64 | uefi | Full | Full | Any UEFI system* |
Arm | m1 | Full | Full | Mac Mini 2020 (M1) |
Arm | rpi4 | Full | Full | The Rasberry Pi 4 |
Docker | TBA | TBA | ||
Live USB | TBA | TBA |
*Partly because the chosen bootloader does not support legacy BIOS, and partly because newer Windows versions don't work on BIOS systems.
Check out ARCHITECTURE.md for a high level introduction to how it all works, and CONFIGURING.md for an explanation on how to configure evolve.env
.
- Other than those listed in the supported hardware and the
evolve.env
explanation sections, the following needs to be met:
- Root access on the preparation machine.
- Physical access and an Ethernet connection to the target machine.
- Installation medium with at least 8 GB. Any important data backed up as the contents will irrevocably be wiped from it. The installation medium is an SD-card on the RPI4 and normally a USB stick in the other cases.
- Special dependencies installed on current system:
curl
,parted
,sshpass
. And foruefi
:archiso
- Then download the necessary scripts:
curl --location https://github.com/gibbz00/evolve/archive/development.tar.gz \
| tar --verbose --extract --preserve-permissions --ungzip --file -
-
Configure
evolve.env
to your liking with your favorite text editor. It will be put into USB stick's /root during the preparation script. -
With the installation medium in hand, run:
sudo ./prepare.sh
-
Once complete, boot the target from the installation medium.
-
Still from the first computer, and still in
evolve-development/
./setup/ssh.sh
And that's it! System should now be fully set up and up and running.
- Carefully read up on the requirements and expectations at: Asahi Linux Feature Support and Alpha installer. Then begin the minimal arch installation process with:
curl https://alx.sh | sh
-
Log in with
root
pass=root
once installed. -
Curl the project:
# in /root
curl --location https://github.com/gibbz00/evolve/archive/development.tar.gz \
| tar --verbose --extract --preserve-permissions --ungzip --file -
-
Edit
evolve.env
to your liking but withHARDWARE='m1'
. -
And then finally:
./setup/tui.sh
-
If system time is overcorrected when booting Windows: Set the time to UTC on Arch 6. Why? Because 7
-
Automatic setup of a wireless internet connection when starting the target machine is currently not implemented.
-
Have not prioritized exposing a console keymap setting.
-
Not supporting proprietary Nvidia GPU drivers. Main reason being poor Wayland compatibility and extra hassle of getting them to work properly.
-
Swap solution hasn't been implemented yet. Partly because I'm not too keen on using a swap partition. It can't be resized, and dual boot hibernation is tricky as is. I don't want the partition them to become an unintended enabler for it. Going for another route adds a lot of extra complexity with parameters that can yield vastly different result depending on which hardware is used and for what. So yeah, swap is left on hold for now. Hopefully it's a non-issue for systems with a decent amount of RAM, and the base template emphasizes a program stack that doesn't excessively bloat memory usage.
TODO: add idle usage stats compared with Windows 10: memory, disk usage,