Sosumi

Download and install macOS in a VM / macOS on Linux in one command.

Installation

Clean install of macOS will take 30.6 GiB of disk space.

sudo snap install sosumi

Run initial setup and install macOS.

sosumi

Usage

After installation you can just run the command of the snap module to start the macOS environment.

sosumi

Initial installation

Initial installation Initial installation Initial installation Initial installation Initial installation Initial installation

Edit resolution

From Apple Terminal inside macOS.

diskutil list

Edit resolution 1

sudo diskutil mount <EFI-PARTITION>

Edit resolution 2

Edit RAM CPU

nano ~/snap/sosumi/common/launch

Example configuration.

#!/bin/bash

OSK="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"

"$SNAP"/usr/bin/qemu-system-x86_64 \
    -enable-kvm \
    -m 8G \
    -machine q35,accel=kvm \
    -smp 4,cores=4 \
    -cpu Penryn,vendor=GenuineIntel,kvm=on,+sse3,+sse4.2,+aes,+xsave,+avx,+xsaveopt,+xsavec,+xgetbv1,+avx2,+bmi2,+smep,+bmi1,+fma,+movbe,+invtsc \
    -device isa-applesmc,osk="$OSK" \
    -smbios type=2 \
    -object rng-random,id=rng0,filename=/dev/urandom -device virtio-rng-pci,rng=rng0 \
    -serial mon:stdio \
    -drive if=pflash,format=raw,readonly,file="$SNAP"/firmware/OVMF_CODE.fd \
    -drive if=pflash,format=raw,file="$SNAP_USER_COMMON"/firmware/OVMF_VARS-1024x768.fd \
    -device virtio-vga,virgl=on \
    -display sdl,gl=on \
    -L "$SNAP"/usr/share/seabios/ \
    -L "$SNAP"/usr/lib/ipxe/qemu/ \
    -audiodev pa,id=pa,server="/run/user/$(id -u)/pulse/native" \
    -device ich9-intel-hda -device hda-output,audiodev=pa \
    -usb -device usb-kbd -device usb-mouse \
    -netdev user,id=net0 \
    -device vmxnet3,netdev=net0,id=net0 \
    -drive id=ESP,if=virtio,format=qcow2,file="$SNAP_USER_COMMON"/ESP.qcow2 \
    -drive id=InstallMedia,format=raw,if=virtio,file="$SNAP_USER_COMMON"/BaseSystem/BaseSystem.img \
    -drive id=SystemDisk,if=virtio,file="$SNAP_USER_COMMON"/macos.qcow2 \

USB passthrough

Check if permissions are present for raw-usb

$ snap interfaces sosumi
Slot                     Plug
:audio-playback          sosumi
:desktop                 sosumi
:home                    sosumi
:kvm                     sosumi
:network                 sosumi
:network-bind            sosumi
:opengl                  sosumi
:screen-inhibit-control  sosumi
:unity7                  sosumi
:wayland                 sosumi
:x11                     sosumi
-                        sosumi:audio-record
-                        sosumi:network-control
-                        sosumi:raw-usb

Give permissions for raw-usb

sudo snap connect sosumi:raw-usb
$ snap interfaces sosumi          
Slot                     Plug
:audio-playback          sosumi
:desktop                 sosumi
:home                    sosumi
:kvm                     sosumi
:network                 sosumi
:network-bind            sosumi
:opengl                  sosumi
:raw-usb                 sosumi
:screen-inhibit-control  sosumi
:unity7                  sosumi
:wayland                 sosumi
:x11                     sosumi
-                        sosumi:audio-record
-                        sosumi:network-control

URL list