Matcha

From Bitpost wiki

Matcha runs macOS Monterey in a melange VM.

NOTE: Apple sucks my ass and wants to kill all macOS VM ability, then I will have to buy the shittiest Apple hardward I can find just to build my apps.

Setup

Outside macOS

  • VM noVNC kinda works ok; press the Windows key if you need to switch between windows of the same application by then hitting the backslash ` key.

macOS the way I like it...

Keyboard

  • Install Karabiner-Elements key mapping tool, oh yeah
  • Click predefined rules by community, search for 'PC-Style Shortcuts' pack, wowza

(ok that didn't handle Ctrl-Insert (copy) so I tried this one instead

  • Go through all the macOS permissions loosening to allow it access - you will NOT REGRET IT
  • I could NOT find Ctrl-Ins that worked, even tho karabiner-windows-mode has TWO (they say you can't enable more than one but i tried them each separately).
  • So, edit the file at ~/.config/karabiner/karabiner.json (Windows-Shift-. to show hidden files)
  • You can find the karabiner-windows-mode overrides by searching for
"key_code":"insert",
  • Strip the conditions from it, and it will start to work!

Software

  • Finder
rclick in whitespace > Show View Options >
[x] Always open in list view, sorted by name, hit Use as Defaults
  • Install XCode, EFI Agent, meld, SF Symbols, Karabiner-Elements.
  • Pay $3 and install IconKit, saves hours of work to build stupid icon packs

macOS upgrade

Important! BEFORE UPGRADING macOS, you should visit Nick's site and read up on it first.

Sequoia

Return to these notes if we learn of a working OpenCore release...

Bleh, after further digging, there are potentially quite a few issues to solve still.

Also, apparently Apple will stop supporting x86 entirely in a couple more OS releases, and I will HAVE to buy some bullshit Apple hardware, sigh.

Keep going...

  • I did the upgrade to see what would happen, and confirmed that Sequoia is crippled by its detection that it is running in a VM. It won't even let you run Xcode. Assholes.
  • I tried jamming the latest OpenCore 1.0.4 in, that just bricked it.
  • This post is a direct fix for the "vm detected" problem. I tried it. When I merely add the Kernal <dist> patches, changing nothing else, the VM sits at the Apple boot logo for a long time, then resets. Boo.

Thankfully, Nick has instructions on editing config.plist without restoring everything from backup (which I've done a couple times now, sigh). Go here and search for "Editing your OpenCore/EFI settings".

  • Next I guess I need to edit my own config.plist to set this:
kern.hv_vmm_present: 0

I'll try using OpenCore-Configurator.

Sonoma

Nick doesn't have a Sonoma-specific blog post, but in theory we just update OpenCore, then upgrade the OS.

diskutil list # and make note of the EFI disk
sudo mkdir /Volumes/EFI
sudo mount -t msdos /dev/disk0s1(or adjust...) /Volumes/EFI
brew install wget # that kicked off a big brew update --auto-update - fine
cd ~/development/OpenCore
wget https://github.com/thenickdude/KVM-Opencore/releases/download/v21/OpenCoreEFIFolder-v21.zip
unzip OpenCoreEFIFolder-v21.zip
mv EFI EFI-OCv21
cp -r /Volumes/EFI/EFI EFI-OCv19-installed

Now use the Meld app to merge SystemSerialNumber from OCv19-installed to OCv21 config.plist. DO NOT change anything else!

Now move v21 into EFI...

cd /Volumes/EFI
mv EFI EFI-v19
cp -r ~/development/OpenCore/EFI-OCv21 /Volumes/EFI/EFI

Now let's reboot! Looking good.

Now let's upgrade - find Sonoma in the App Store, and click Get. And away we go!

Ventura

Before starting, we need to upgrade to a new version of OpenCore.

Starting notes:

  • back up the VM! you will PROBABLY FUCK IT UP AND NEED TO RESTORE so DO IT.
  • Nick: If you had previously edited the serial number in config.plist, carry it over. < THIS
  • Nick: run ifconfig and verify you have an en0 adapter (not en1) (OK)

Update OpenCore:

  • Update Ventura with latest patches - looking good
  • "If you can boot macOS you can update from within it". That's what we will do.
diskutil list # and make note of the EFI disk
sudo mkdir /Volumes/EFI
sudo mount -t msdos /dev/disk0s1(or adjust...) /Volumes/EFI
brew install wget # that kicked off a big brew update --auto-update - fine
cd
mkdir -p development/OpenCore && cd development/OpenCore
wget https://github.com/thenickdude/KVM-Opencore/releases/download/v19/OpenCoreEFIFolder-v19.zip
unzip OpenCoreEFIFolder-v19.zip
mv EFI EFI-OCv19
cp -r /Volumes/EFI/EFI EFI-OC-older
  • scp both OC/config.plist files to cast and merge SystemSerialNumber from old to new (DO NOT MERGE old MLB ROM and SystemUUID! that bricked it!)
💉 m@cast  [~/development] scp matcha:development/OpenCore/EFI-OCv19/OC/config.plist config.plist.OCv19
💉 m@cast  [~/development] scp matcha:development/OpeenCore/EFI-OC-older/OC/config.plist config.plist.OC-older
  • merge them and scp it back into Volumes
  • actually I merged second time around using Meld within macOS, nice
  • REBOOT and pray... WOW it came back. Whew...
  • Back up matcha (actual backup had everything but the merged SN, be careful to remember that...)
  • Try that Ventura > Montery upgrade again... and it's just looping... but no error screen at least? maybe that's good?
  • Change proxmox VM from Penryn (WHY tf was that selected??) to Haswell, reboot
  • I got to the Main icon at least, as if it things it can boot... and now getting "computer restarted bc of problem"
  • OH CPU count is left at default of 100, change to recommended 1024 and reboot; seems to lock up faster now lolz
  • Try changing to 1 core; not much difference, just too longer to lock up, lolz; changed it back
  • Revisited the guide; my VM conf (111.conf) args were WAY OFF and customized; UPDATED following Nick's guide... ANT IT WORKED! OMG YAY. Here is the args that worked:
# old Montery Penryn-cpu: args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+fma,+fma4,+bmi1,+bmi2,+xsave,+xsaveopt,+rdrand,check                                                                                           
# nick's Ventura: args: -device isa-applesmc,osk="THE-OSK-YOU-EXTRACTED-GOES-HERE" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu host,vendor=GenuineIntel,+invtsc,+hypervisor,kvm=on,vmware-cpuid-freq=on                                                                                                                                                                                                                                               
# my adjusted Ventura; nick "replace “-cpu host” with “-cpu Haswell-noTSX” if installer reboots while loading (THAT IS ME)                                                                                                                                                  
args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu Haswell-noTSX,vendor=GenuineIntel,+invtsc,+hypervisor,kvm=on,vmware-cpuid-freq=on

VenturaSuccess.png

Bump drive to 120GB

All seems generally well. But I could not run Xcode as it was now "out of date". I had to bump the drive following Nick's instructions, from 100GB to 120GB. Then I could update Xcode. And away we go.

Montery

This was a clean upgrade from Big Sur.

Big Sur

Note that thenickdude's Monterey install wasn't working on July 3 2022, as it was pulling the wrong image from Apple. I used Big Sur and once running, immediately upgraded it to Monterey, which went flawlessly.

Installation

OpenCore VM

You can virtualize your old Mac hardware in a VM.  ;-)

You can follow thenickdude's latest guide with these secret sauce bits to get going. I'll add some notes since those might disappear...

  • Set up a OpenCore VM with an unclaimed serial using SMBIOS iMacPro1,1 to match up well enough with my AMD Ryzen 9 3900X 12-core processor.
  • This helped to mount and access the EFI boot drive.
  • I used a macOS release of my old fave Meld

See here for more info:

💉 m@cast  [~/apps/macOs-on-proxmox] 
# ^ see readme.txt and install.sh
matcha HOME / apps
EFI Agent > icon in toolbar > EFI drive > mount > browse to OC > config.plist

macOS installation

  • Set the hostname via Apple > System Preferences > Sharing (two places)
  • Get MAC address from Apple > System Preferences > Networking and update dnsmasq to give out a static IP; renew lease on mac
  • Allow SSH: Apple > System Preferences > Sharing > check Remote Login; then you can do the usual ssh config
  • Update /etc/ssh/sshd_config to disallow passwords, and restart sshd:
sudo launchctl stop com.openssh.sshd
sudo launchctl start com.openssh.sshd
  • set a banner in ~/.zshrc