Kvm mac os windows

Kvm mac os windows

Run macOS on QEMU/KVM. With OpenCore + Big Sur support now! Only commercial (paid) support is available.

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

This README.md documents the process of creating a Virtual Hackintosh system.

Note: All blobs and resources included in this repository are re-derivable (all instructions are included!).

💚 Looking for commercial support with this stuff? I am available over email for a chat for commercial support options only.

Working with Proxmox and macOS? See Nick’s blog for sure.

Yes, we support offline macOS installations now 🎉

This project can always use your help, time and attention. I am looking for help (pull-requests!) with the following work items:

Documentation around running macOS on popular cloud providers (Hetzner, GCP, AWS). See the Is This Legal? section and associated references.

Document (share) how you use this project to build + test open-source projects / get your stuff done.

Document how to use this project for XNU kernel debugging and development.

Document the process to create and reuse VM snapshots. Instantaneous macOS boots would be nice this way.

Document the process to launch a bunch of headless macOS VMs (build farm).

Document usage of munki to deploy software to such a build farm .

Enable VNC + SSH support out of the box or more easily.

Better support + docs for AMD Ryzen.

Robustness improvements are always welcome!

(Not so) crazy idea — automate the macOS installation via OpenCV.

A modern Linux distribution. E.g. Ubuntu 20.04 LTS 64-bit or later.

A CPU with Intel VT-x / AMD SVM support is required ( egrep ‘(vmx|svm)’ /proc/cpuinfo )

A CPU with SSE4.1 support is required for >= macOS Sierra

A CPU with AVX2 support is required for >= macOS Mojave

Note: Older AMD CPU(s) are known to be problematic. AMD FX-8350 works but Phenom II X3 720 does not. Ryzen processors work just fine.

KVM may need the following tweak on the host machine to work.

To make this change permanent, you may use the following command.

Install QEMU and other packages.

This step may need to be adapted for your Linux distribution.

Clone this repository on your QEMU system. Files from this repository are used in the following steps.

Fetch macOS installer.

ATTENTION: Installing Big Sur is NOT recommended at this time, unless you are a Hackintosh developer! Let the Big Sur setup sit at the Country Selection screen and other similar places for a while 😉

You can choose your desired macOS version here. After executing this step, you should have the BaseSystem.dmg file in the current folder.

Note: Modern NVIDIA GPUs are supported on HighSierra but not on later versions.

Convert the downloaded BaseSystem.dmg file into the BaseSystem.img file.

Create a virtual HDD image where macOS will be installed. If you change the name of the disk image from mac_hdd.img to something else, the boot scripts will need to be updated to point to the new image name.

NOTE: Create this HDD image file on a fast SSD/NVMe disk for best results.

Now you are ready to install macOS 🚀

CLI method (primary). Just run the OpenCore-Boot.sh script to start the installation process.

Note: This same script works for Big Sur, Catalina, Mojave, and High Sierra.

You are all set! 🙌

(OPTIONAL) Use this macOS VM disk with libvirt (virt-manager / virsh stuff).

Edit macOS-libvirt-Catalina.xml file and change the various file paths (search for CHANGEME strings in that file). The following command should do the trick usually.

Читайте также:  Windows default user registry settings

Create a VM by running the following command.

Launch virt-manager and start the macOS virtual machine.

Note: You may need to run sudo ip link delete tap0 command before virt-manager is able to start the macOS VM.

Setting Expectations Right

Nice job on setting up a Virtual Hackintosh system! Such a system can be used for a variety of purposes (e.g. software builds, testing, reversing work), and it may be all you need, along with some tweaks documented in this repository.

However, such a system lacks graphical acceleration, a reliable sound sub-system, USB (3) functionality and other similar things. To enable these things, take a look at our notes. We would like to resume our testing and documentation work around this area. Please reach out to us if you are able to fund this area of work.

It is possible to have ‘beyond-native-apple-hw’ performance but it does require work, patience, and a bit of luck (perhaps?).

See networking notes to setup guest networking.

I have the following commands present in /etc/rc.local .

This has been enough for me so far.

To passthrough GPUs and other devices, see these notes.

Need a different resolution? Check out the notes included in this repository.

To generate your own SMBIOS, use GenSMBIOS.

The «secret» Apple OSK string is widely available on the Internet. It is also included in a public court document available here. I am not a lawyer but it seems that Apple’s attempt(s) to get the OSK string treated as a trade secret did not work out. Due to these reasons, the OSK string is freely included in this repository.

Gabriel Somlo also has some thoughts on the legal aspects involved in running macOS under QEMU/KVM.

My aim is to enable macOS based educational tasks, builds + testing, kernel debugging, reversing, and macOS security research in an easy, reproducible manner without getting ‘invested’ in Apple’s closed ecosystem (too heavily).

These Virtual Hackintosh systems are not intended to replace the genuine physical macOS systems.

Personally speaking, this repository has been a way for me to ‘exit’ the Apple ecosystem. It has helped me to test and compare the interoperability of Canon CanoScan LiDE 120 scanner, and Brother HL-2250DN laser printer. And these devices now work decently enough on modern versions of Ubuntu (Yay for free software). Also, a long time back, I had to completely wipe my (then) brand new MacBook Pro (Retina, 15-inch, Late 2013) and install Xubuntu on it — as the OS X kernel kept crashing on it!

Backstory: I was a (poor) student in Canada in a previous life and Apple made my work on cracking Apple Keychains a lot harder than it needed to be. This is how I got interested in Hackintosh systems.

About

Run macOS on QEMU/KVM. With OpenCore + Big Sur support now! Only commercial (paid) support is available.

Гид по установке Hackintosh-KVM High Sierra используя QEMU

Благодаря тяжелой работе сообщества QEMU/KVM в течении последних лет, стала реальностью возможность комфортного использования операционной системы Mac OS X на виртуальных машинах, работающих на KVM. В результате использование технологии GPU Passthrough(проброс графики в виртуальную машину) мы получили улучшенную производительность в работе пользовательского интерфейса.

В этой статье я покажу вам, как создать Hackintosh-KVM виртуальную машину использующую QEMU i440fx чипсет. Мы настроим эту виртуальную машину как систему «Hackintosh», без использования оригинального ключа OSK (SMC) Apple. Статья написана исключительно в ознакомительных целях, редакция не несет ответственности за то, как вы неправильно используете полученную информацию.

Основная причина, по которой данное руководство сосредоточено на чипсете i440fx, заключается в том, что на q35 чипсете все ещё есть некоторые проблемы с пробросом видеокарт 10 series Nvidia GPU, в то время как i440fx хорошо работает с ними, независимо от оборудования хост-системы. Если вы хотите найти руководства по использованию q35 чипсета, то мы добавим их после проведения тестирования связанного с пробросом видео, обновлением Mac OS X и стабильностью в целом. Мы призываем неравнодушных опытных пользователй присоединиться к нашему серверу Discord и помочь решить другие проблемы.

Читайте также:  Windows 10 system requirements ram

Синопсис

  • В этом руководстве предполагается, что в прошлом у вас уже была установлена виртуальная машина с пробросом GPU, и у вас есть опыт работы с QEMU и libvirt, в этом руководстве не будут указаны шаги по настройке QEMU / libvirt для проброса GPU, настройки сети, привязку ЦП и т. д. Если вам нужна помощь в настройке этих параметров, обратитесь к нашему англоязычному серверу Discord.
  • Это руководство было проверено только с процессорами Ryzen. При использовании процессоров Intel могут выявиться некоторые проблемы (хотя мы и не ожидаем каких-либо сложностей). Мы просим наших читателей помогать вносить свой вклад в работу с хостами Intel.
  • Автор также рекомендует, чтобы начальная настройка выполнялась с помощью сквозного проброса GPU(GPU pass-through) для упрощения установки, поскольку другие методы отображения могут не работать (QXL, vmwvga и т. д.).
  • В этом руководстве мы используем загрузчик Clover для тонкой настройки и не будем поддерживать Enoch или любой другой загрузчик.
  • Я рекомендую использовать OVMF файлы из репозитория Hackintosh-KVM. Так-же рекомендую использвать последнюю версию ядра Linux, libvirt, and QEMU. Работа с версиями более старыми, чем тестированные нами в момент написания статьи, не гарантирована.
  • Для более старых или патченных версий QEMU и других приложений рекомендую использоать руководство kholia на github.
  • Для достижения наилучшей производительности ввода-вывода мы рекомендуем использовать LVM или стандартный файл образа (.img). Использование, во время тестов, образа .qcow2 с эмулированным контроллером SATA QEMU, привело к крайне низкой производительности. Также можно использовать ZFS vdevs, хотя мы и не тестировали его для этого обзора, но считаем, что производительность ввода-вывода должна быть нормальной.
  • Автор также рекомендует включить ЦПУ в режим «performance» и/или использовать QEMU hook для достижения максимальной производительности виртуальной машины. Файл xml из репозитория Hackintosh-KVM содержит аргументы для PulseAudio и evdev pass-through.
  • С загрузчиком Clover мы будем использовать iMac18,3 SMBIOS, так как другие версии Macintosh включают прошивку Thunderbolt 3, которая после обновления повреждает nvram OVMF, тем самым делая виртуальную машину не загружаемой.

Конфигурация автора

  • AMD Ryzen 5 1600 CPU под управлением Gentoo. Видеокарта Nvidia GTX1070 FE GPU для проброса (pass-through). Так же данное руководство было тестировано на AMD Ryzen 7 2700X и EVGA GTX1050 Ti FTW.
  • Работоспособность тестировалась с QEMU 2.12 используя патченный OVMF созданный автором, который вы можете найти в Hackintosh-KVM репозитории, и с Linux kernel 4.17 (4.16 тоже проходил тестирование и тоже работает).

ВНИМАНИЕ: работоспособность возможна только с процессорами с SSE4.1 и при использовании macOS High Sierra/Mojave. Intel VT-x / AMD SVM так же обязательны.

Подготовка к установке

  • Скачайте macOS High Sierra installer из Apple App Store. Скачайте скрипт create_highsierra_iso.sh из Hackintosh-KVM репозитория для создания ISO образа.
  • Запустите скрипт create_iso_highsierra.sh на вашей действующей Macintosh машине. После отработки скрипта образ High Sierra ISO будет находиться на рабочем столе.
  • Если вы не хотите использовать скрипт Hackintosh-KVM для создания ISO образа, вы можете перейти по ссылке, где вы узнаете как конвертировать dmg в ISO.
  • Перенесите созданный ISO образ с рабочего стола на машину с установленным QEMU/KVM используя Samba/NFS или с помощью USB накопителя.

Подготовка Hackintosh-KVM

  • Для начала клонируйте репозиторий Hackintosh-KVM
  • Файлы содержащиеся в нём необходимы для создания виртуальной машины и будут необходимы во время установки загрузчика Clover в папку EFI вашего Хакинтоша.
  • Прежде чем приступить к следующему шагу выполните из папки с клоном репозитория от root следующую команду:
  • Далее для добавления GPU, дисков и других устройств воспользуйтесь Virtual Machine Manager. После чего, непосредственно в витуальной машине, откройте для редактирования xml файл и укажите мнстоположение ваших OVMF файлов, CPU pinning, и evdev pass-through. Это всё так же можно сделать используя команду virsh edit osx_i440fx. Если вы не собираетесь использовать PulseAudio или evdev pass-through, удалите соответствующие строки.
  • В xml прописан адаптер virtio-net на сетевом интерфейсе bridge, вы можете поменять это, в случае не соответствия вашей топологии сети.
  • Для включения pass-through нашего хоста CPU, мы будем подделывать идентификатор поставщика ЦП с помощью аргумента QEMU, показанного ниже. Обратите внимание, что это изменит сделанные ранее настройки в меню CPU в Virtual Machine Manager.

  • Не рекомендуем устанавливать многопоточность процессора в этом меню, из-за ошибки Clover, так Mac OS X QUEMU не может работать в многопоточном режиме. Гораздо лучше в тестах себя показала конфигурация состоящая из 2-8 ядер и 1 потока.
  • Создайте виртуальный HDD куда будете устанавливать macOS. Это можно сделать с помощью утилиты Storage которая находится в Edit >Connection Details >Storage >Add-Pool.
  • Создайте загрузочный диск Clover , для этого действия необходим пакет libguestfs .
  • Для начала вам нужно отредактировать $HOME/YourFolderHere/config.plist и установить желаемое разрешение экрана (по умолчанию OVMF — 1024 × 768). Обратите внимание, что неверно выставленные значения могут повредить ваш дисплей с высоким разрешением.
  • Затем вам нужно добавить необходимые kext на ваш новый загрузочный диск Clover. Необходимые файлы kexts также находятся в репозитории Hackintosh-KVM. Файлы kext в этом репозитории используются для датчиков GPU, проброса PulseAudio и сетевого устройства Virtio-Net. WhateverGreen.kext также необходим, если вы используете графический процессор AMD, однако он не был протестирован. Далее нам потребуется загрузка модуля ядра NBD:
  • Отключите и отмонтируйте clover.qcow2 образ:
  • Для облегчения вам задачи, вместо создания собственного загрузочного диска Clover вы можете использовать образ диска clover.qcow2 из репозитория Hackintosh-KVM, он содержит все необходимые файлы kext и предлагает разрешение экрана 1920 × 1080 пикселей. Кроме того, образ clover.qcow2 может быть полезен как резервный загрузчик EFI, если вы испортите загрузчик во время обновления Clover.
  • Прежде чем впервые запустить Clover на вашей новой виртуальной машине, следует убедиться, что разрешение OVMF установлено равным разрешению, установленному в вашем файле clover.qcow2. Значение по умолчанию OVMF равно 1024 × 768, а образ clover.qcow2, который вы будете использовать, установлен на 1920 × 1080, что неверно и в самом негативном развитии событий может привести к повреждению дисплея и возможным сбоям при загрузке. Разрешение можно установить через меню загрузки OVMF, которое вызывается нажатием ESC во время демонстрации логотипа OVMF, до появления экрана загрузки Clover.
Читайте также:  From update using windows

Установка

  • После загрузки увидите меню выбора языка. Выберите нужный язык, затем выберите «Дисковая утилита» и сотрите целевой диск. Вы можете использовать HFS + или APFS, так как образ clover.qcow2, который мы используем, уже имеет драйвера EFI для любой файловой системы. Если вы выбираете APFS, убедитесь, что вы поместили файл apfs.efi в папку EFI при установке Clover на ваш загрузочный диск.
  • High Sierra’s ( Показать все устройства, затем выйдите из дисковой утилиты и запустите её вновь.
  • В некоторых редких случаях целевой диск может не отображаться в Disk Utility, для этого вам нужно будет использовать приложение Terminal в установщике и подготовить жесткий диск для установки вручную, используя приведенные ниже команды.
  • После выполнения команды закройте Terminal.
  • Далее продолжите установку в нормальном режиме.
  • По окончании установки виртуальная машина перезагрузится автоматически. Поздравляем вы стали обладателем Hackintosh-KVM виртуальной машины. Остался, последний шаг — выполнить некоторые шаги после установки и поместить загрузчик Clover на диск, на который вы только что установили macOS. Это нужно для того, чтобы вы могли добавить дополнительные файлы kext в будущем, для улучшения работы виртуальной машины.

Пост установка

  • Во-первых, необходимо установить Clover на основной диск, где установлена система macOS High Sierra. Далее поместить файл i440fx-acpi-dsdt.aml из репозитория Hackintosh-KVM в папку EFI/CLOVER/ACPI/, и не забудьте необходжимые вам файлы kext в папку EFI/CLOVER/Kexts/Other.
  • Вам необходимо убедиться, что эти параметры включены в разделе «Kernel and Kext Patches» утилиты Clover Configurator

Так же вы можете удалить +hypervisor из аргументов QEMU и выставить настройки в секции CPU в Clover Configurator как можно ближе по параметрам вашей системы.

Для подключения PS/2 мыши и клавиатуры в Mac OS X QUEMU необходим VoodooPS2.kext , для проброса ICH6 или ICH9 PulseAudio звука нужен VoodooHDA.kext. Автор обнаружил, что с использованием эмулируемых USB-драйверов мыши и клавиатуры периодически возникает проблема с залипании при длительном нажатии. В вашей конфигурации это может и не повториться. Для эмуляции USB мыши и клавиатуры никаких дополнительных kext’ов не требуется.

Для монтирования других файловых систем (NTFS,EXT, и т.д.) пройдите по ссылке: https://github.com/macOSfuse/macOSfuse

Репозиторий с обновлениями kext’ов Hackintosh kexts

Статья является переводом с английского статьи Daniel Hanson: Hackintosh-KVM Guide: High Sierra+ Using QEMU’s i440fx Chipset

Если кому-то вдруг потребуется iso образ Mac OS X High Sierra или Mojave, пишите в комментариях, подготовлю и пришлю.

Оцените статью