Skip to content

santikid/dotnix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

229 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WE SO BACK

Installing on macOS

  1. Install Xcode CLI Tools

xcode-select --install

  1. Install Nix using the Lix installer

curl -sSf -L https://install.lix.systems/lix | sh -s -- install

  1. Clone to ~/.nix and install

git clone https://github.com/santikid/dotnix.git ~/.nix

nix run nix-darwin --extra-experimental-features "nix-command flakes" -- switch --flake ~/.nix#<host>

Installing NixOS

Boot up nixos-minimal installer ISO

Optionally load different keymap (e.g. loadkeys de)

Format and mount disk to /mnt:

# using parted
parted /dev/sda -- mklabel gpt
parted /dev/sda -- mkpart primary 1MiB 512MiB
parted /dev/sda -- mkpart primary 512MiB 100%
parted /dev/sda -- name 1 EFI
parted /dev/sda -- name 2 root
parted /dev/sda -- set 1 boot on

# using f/gdisk
# TODO

mkfs.fat -F 32 /dev/sda1
mkfs.ext4 /dev/sda2

mount /dev/disk/by-partlabel/root /mnt
mkdir /mnt/boot
mount /dev/disk/by-partlabel/EFI /mnt/boot

(optional for new host) Let NixOS generate hardware config to add as a new host later; skip if using existing machines

nixos-generate-config --root /mnt

Clone this repository to /mnt/.nix:

git clone https://github.com/santikid/dotnix /mnt/.nix

Install Flake

nixos-install --flake /mnt/.nix#<machine>

REBOOT

Installing Asahi NixOS

Installing an Asahi system is similar to regular NixOS, but the formatting has to be done as explained in tpwrules/apple-silicon-support.

# Create root partition
sgdisk /dev/nvme0n1 -n 0:0 -s

# Get number of root partition (code 8300), usually 5
sgdisk /dev/nvme0n1 -p

# Format root partition
mkfs.ext4 -L nixos-root /dev/nvme0n1p5

# Mount partitions
mount /dev/disk/by-label/nixos /mnt
mkdir -p /mnt/boot
mount /dev/disk/by-partuuid/`cat /proc/device-tree/chosen/asahi,efi-system-partition` /mnt/boot

The EFI partition can be renamed with fatlabel /dev/nvme0n1pX EFI so it can be mounted through /dev/disk/by-label/EFI (both during install and in hardware-configuration.nix).

fatlabel /dev/disk/by-partuuid/`cat /proc/device-tree/chosen/asahi,efi-system-partition` EFI

Both nixos-install and nixos-rebuild have to be ran with the --impure flag since vendor firmware from /boot/asahi has to be accessed. Using a folder inside the repo is not possible without git-adding the firmware so impure builds seem to be the most elegant solution.

When installing, setting TMPDIR to a subdirectory in /mnt is recommended to not run out of disk space.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors