GUIX on Mac

Back to GUIX Tutorials

Prerequisites

Install Homebrew

Setup

Install QEMU view Homebrew

brew install qemu

Create a VM Directory

mkdir ~/guix_vm/
cd ~/guix_vm/

Download the ISO

Download `GUIX_on_ARM.iso`

Create GUIX Disk Image

qemu-img create -f qcow2 guix-aarch64.qcow2 60G

Start the VM with the GUIX ISO

  qemu-system-aarch64                                                     \
      -cpu host                                                           \
      -M virt,highmem=on                                                  \
      -accel hvf                                                          \
      -m 4G                                                               \
      -bios "$(brew --prefix qemu)/share/qemu/edk2-aarch64-code.fd"       \
      -serial telnet::4444,server,nowait                                  \
      -drive if=none,file=guix-aarch64.qcow2,format=qcow2,id=hd0          \
      -device virtio-blk-device,drive=hd0,serial="dummyserial"            \
      -device virtio-net-device,netdev=net0                               \
      -netdev user,id=net0                                                \
      -vga none -device ramfb                                             \
      -cdrom guix-aarch64.iso                                             \
      -device usb-ehci -device usb-kbd -device usb-mouse -usb             \
      -monitor stdio

Run the GUI Installer

Be sure to be connected to a stable internet connection! This will take a while (1-2 hrs) and then will reboot.

Running GUIX after Reboot

  qemu-system-aarch64                                                                  \
      -cpu host                                                                        \
      -M virt,highmem=on                                                               \
      -accel hvf                                                                       \
      -m 4G                                                                            \
      -bios "$(brew --prefix qemu)/share/qemu/edk2-aarch64-code.fd"                    \
      -serial telnet::4444,server,nowait                                               \
      -drive if=none,file=guix-aarch64.qcow2,format=qcow2,id=hd0                       \
      -device virtio-blk-device,drive=hd0,serial="dummyserial"                         \
      -device virtio-net-device,netdev=net0                                            \
      -netdev user,id=net0                                                             \
      -vga none -device ramfb                                                          \
      -device usb-ehci -device usb-kbd -device usb-mouse -usb                          \
      -monitor stdio                                                                   \
      -chardev socket,path=/tmp/port1,server=on,wait=off,id=port1-char                 \
      -net user,hostfwd=tcp::2222-:22                                                 \
      -net nic