Jump to content

Insanely fast virtual Mac (QEMU, OVMF, Clover and native graphics)


514 posts in this topic

Recommended Posts

So after using the recommended qxl drivers (pls see below) I am still getting a reboot cycle.  

 

Specifically, after booting OVMF into Clover, selecting Boot OS X Install from OS X Install OS X El Capitan from the menu, the screen goes black and then OVMF boots again into Clover.

 

So I set the Clover config.plist `Boot` debug to true and here was the output:

 

https://gist.github.com/gordonturner/963d91383fd458f142e3

 

 

Question 1) If I understand @KillerKelvUK correctly, I should be able to use qxl driver with vnc.  The default Ubuntu kvm qemu appears to support SPICE.  There doesn't appear to be a native OS X SPICE client though.

 

Question 2) There are some interesting pieces in the Clover log, but I don't seem to see a 'smoking gun'.  The lines before the reboot seem to be:

 

38:363  0:001  DataHubProtocol is not found! Load the module DataHubDxe manually!
43:365  5:002  Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\Other
43:369  0:003  Preparing kexts injection for arch=x86_64 from EFI\CLOVER\kexts\10.10
43:371  0:001  Removed efi-boot-device-data variable: Not Found
43:373  0:001  Custom boot screen not used because entry has unset use graphics

Any suggestions?

 

 

 

qemu-system-x86_64 command:

sudo qemu-system-x86_64 \
-m 4096 \
-enable-kvm \
-cpu core2duo,vendor=GenuineIntel \
-rtc base=localtime \
-smbios type=2 \
-machine q35,accel=kvm,usb=off,vmport=off \
-bios /vm/osx-ovmf-bios-src-build/bios.bin \
-smp 4,sockets=1,cores=2,threads=2 \
-device isa-applesmc,osk="REDACTED" \
\
-device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1e \
-device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x1 \
-device ahci,id=sata0,bus=pci.2,addr=0x5 \
\
-drive file=/vm/clover-usb-disk.dd,if=none,id=drive-sata0-0-2,format=raw \
-device ide-hd,bus=ide.2,drive=drive-sata0-0-2,id=sata0-0-2,bootindex=1 \
-drive file=/vm/demo1-disk0.qcow2,if=none,media=disk,id=drive-sata0-0-0,format=qcow2 \
-device ide-hd,bus=sata0.0,drive=drive-sata0-0-0,id=sata0-0-0 \
\
-usb \
-device usb-mouse \
-device usb-kbd \
-serial stdio \
-device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=16 \
-vnc :1

 

Also as a side note, if anyone wants to mount the EFI partition from the USB disk image (without having to mount the USB drive, edit, dd every time) here are the steps.  

 

Works for Ubuntu 15.10.

 

 

EFI Disk Image Manipulation

 

- First, create a mount points, this step only has to happen once:
sudo mkdir /media/loop
sudo mkdir /media/efi
- Run fdisk to determine the offset of the efi partition:
parted /vm/clover-usb-disk.dd 
WARNING: You are not superuser.  Watch out for permissions.
GNU Parted 3.2
Using /vm/clover-usb-disk.dd
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit                                                             
Unit?  [compact]? B                                                       
(parted) print                                                            
Model:  (file)
Disk /vm/clover-usb-disk.dd: 16018046976B
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 


Number  Start       End           Size          File system  Name                  Flags
 1      20480B      209735679B    209715200B    fat32        EFI System Partition  boot, esp
 2      209735680B  15883808767B  15674073088B  hfs+         Untitled
- NOTE: The offset, in this case `20480` 
 
- Next, mount the `EFI System Partition`:
sudo mount -o rw,loop,offset=20480 /vm/clover-usb-disk.dd /media/loop
- Make changes, ie to edit `config.plist`, or read log file
 
- Unmount the partition:
sudo umount /media/loop
- Reference:
Link to comment
Share on other sites

Question 1) If I understand @KillerKelvUK correctly, I should be able to use qxl driver with vnc.  The default Ubuntu kvm qemu appears to support SPICE.  There doesn't appear to be a native OS X SPICE client though.

 

Question 2) There are some interesting pieces in the Clover log, but I don't seem to see a 'smoking gun'.  The lines before the reboot seem to be:

 

Q1) correct, if you want SPICE client in Ubuntu start off by installing the package virt-viewer...the binary it installs is remote-viewer this does both VNC and SPICE connections.  Ubuntu's default package is quite old but it works the basics and would sufficient for you to test.

 

Q2) Please can you provide a listing of the contents of /EFI/CLOVER/drivers64UEFI/ from your Clover install.

Link to comment
Share on other sites

Q1) Checking `dpkg -l | grep virt-viewer` I see that virt-viewer is installed on the Ubuntu server.  

 

Just to be clear, do I have to use a SPICE client to connect or can I use VNC client?

 

Specifically, in the past I have used an ssh port forward to connect the kvm host to forward the client vnc display so that I can connect to it over a local port, like from OS X run:

ssh -L 5910:127.0.0.1:5901 kvm2

And then on the OS X desktop, connect to 127.0.01:5910 using Chicken.

 

I have an Ubuntu Desktop on a laptop I can connect with SPICE client, I am happy to use that for now, to make progress.

 

 

Q2) I am going to guess I am missing the 'Mac OS Extended (Journaled)' driver?

 

(This just occurred to me.)

ls -alrt
total 61
-rwxr-xr-x  1 root root 26496 Dec  4 11:58 VBoxHfs-64.efi
-rwxr-xr-x  1 root root  2880 Dec  4 11:58 OsxFatBinaryDrv-64.efi
-rwxr-xr-x  1 root root 18880 Dec  4 11:58 FSInject-64.efi
-rwxr-xr-x  1 root root  7344 Jan 10 14:15 q35-acpi-dsdt.aml
drwxr-xr-x  2 root root  1024 Jan 31 06:58 .
-rwxr-xr-x  1 root root  4096 Jan 31 06:59 ._q35-acpi-dsdt.aml
drwxr-xr-x 12 root root  1024 Feb  2 16:14 ..

 

EDIT: Fixed ls output, got mangled for some reason.

 

Thanks again.

Link to comment
Share on other sites

@ThatGordo

 

Q1) What's your networking use case here...i.e. are you wanting to remotely connect to the OSX desktop over local network in home/office or across internet?

 

Q2) You're missing a mandatory Clover driver...file name 'DataHubDxe-64.efi'...part of the Clover install.

 

Also whilst your directory listing is difficult to read it looks like you have the dsdt file in the same directory as Q2 instead of the one called out in a prior post?

Link to comment
Share on other sites

Q1) What's your networking use case here...i.e. are you wanting to remotely connect to the OSX desktop over local network in home/office or across internet?

 

A1) Yes, that would be the eventual plan, use for a Jenkins / Xcode build server.

 

Q2) You're missing a mandatory Clover driver...file name 'DataHubDxe-64.efi'...part of the Clover install.

 

A2) Really?  Okay, will add the file, thanks for that.


Using Pacifist I extracted and added the Clover driver and copied it over:

total 65
-rwxr-xr-x  1 root root 26496 Dec  4 11:58 VBoxHfs-64.efi
-rwxr-xr-x  1 root root  2880 Dec  4 11:58 OsxFatBinaryDrv-64.efi
-rwxr-xr-x  1 root root 18880 Dec  4 11:58 FSInject-64.efi
-rwxr-xr-x  1 root root  7344 Jan 10 14:15 q35-acpi-dsdt.aml
-rwxr-xr-x  1 root root  4096 Jan 31 06:59 ._q35-acpi-dsdt.aml
drwxr-xr-x 12 root root  1024 Feb  2 16:14 ..
-rwxr-xr-x  1 root root  3136 Feb  3 09:15 DataHubDxe-64.efi
drwxr-xr-x  2 root root  1024 Feb  3 09:15 .

And... Success!

 

Well sort of, progress :-)

 

Now I have the ++++++ in the console and a white tearing of the text, but I think this is a result of a miss match of image dimensions between Clover and a Clover boot setting?

 

tKKnQy1.png

 

Yay!

Link to comment
Share on other sites

 

Q1) What's your networking use case here...i.e. are you wanting to remotely connect to the OSX desktop over local network in home/office or across internet?

 

A1) Yes, that would be the eventual plan, use for a Jenkins / Xcode build server.

 

 

So if you qemu config creates a spice server then you need the virt-viewer package for a client that can connect to spice servers...alternatively if your qemu config creats a vnc server you can use something like Remmina that comes installed with Ubuntu.

 

For connecting to it, if you have a local network say with a 192.168.1.0 network and both your host and remote client OS are within the same subnet you should be able to just to point the remote-viewer or Remmina connection to the IP address of the host...no need to port redirect using SSH.  You can configure the VNC or SPICE port the qemu server creates as I notice you SSH command translated from one to the other.

 

Now I have the ++++++ in the console and a white tearing of the text, but I think this is a result of a miss match of image dimensions between Clover and a Clover boot setting?

 

Yeah, you need to drop the Clover resolution to 800x600 to fix the tearing and as you aren't using passthrough this will now be a fixed resolution for OSX unless you build OVMF with the modifications I call out in an earlier post which increases its resolution to 1920x1080.

Link to comment
Share on other sites

Updated Clover config.plist to 800x600 (for now this is okay, didn't want to edit OVMF right now) and success!

 

Using vnc no problem so far (except for the obnoxious mouse mapping, but whatever).

 

7AtoE68.png

Going to polish up my notes and documentation, then will try and run them through from scratch.

 

Thanks @KillerKelvUK and everyone else!

  • Like 1
Link to comment
Share on other sites

I finally decided tonight was the night I would get off VoodooHD. I Was able to get my sound working by doing the following:

 

1. Removing all VoodooHDA kexts

2. Restoring AppleHDA from installer iso

3. Downloading IORegistryExplorer and verifying that HDEF@X exists.

4. Grabbing a copy of Toleda's cloverALC-110 script

5. Almost all clover/HDA scripts look for HDEF@0 by default. I changed this to HDEF@X. 

6. Rebooted.

7. Success!

 

I also managed to passthrough a USB hub. I basically had to passthrough the USB port iommu group, but since my setup is an all in one solution, this is of little concern to me. I am thinking about going with this setup full-time as Windows10 is flawless. Things left to do:

 

1. Grab a bluetooth adapter to get handoff working

2. Grab a webcam for higher quality FaceTime calls

3. Work on virtio NIC

4. Work on virtio balloon driver (even with my OpenBSD VM however, I still see it allocating max memory)

5. Nightly recompiles of OVMF/qemu userspace tools

 

I am very happy with this setup as I've had a PCI Express SSD that was bitten by this bug:

 

https://bugzilla.kernel.org/show_bug.cgi?id=42679

 

Am happy to be finally be using this!

Link to comment
Share on other sites

Updated Clover config.plist to 800x600 (for now this is okay, didn't want to edit OVMF right now) and success!

 

Using vnc no problem so far (except for the obnoxious mouse mapping, but whatever).

 

7AtoE68.png

Going to polish up my notes and documentation, then will try and run them through from scratch.

 

Thanks @KillerKelvUK and everyone else!

Is this QEMU running on a OS X host? If so, how did you build it or where did you get the package and dependancies?

Link to comment
Share on other sites

This method can be used on Linux (with all the goodies like KVM and PCI Passthrough) or on Mac OSX (but its slow due to the missing KVM). To get QEMU on Mac OSX I would recommend to use homebrew ( see http://brew.sh/... then its probably just brew install qemu to install qemu)

So the OS X version don't support any kind of PCI* passthrough?

Link to comment
Share on other sites

So the OS X version don't support any kind of PCI* passthrough?

I do not believe so. You would need IOMMU support in your kernel, not simply Virtualization tech. If you can somehow verify that IOMMU is enabled for OS X (VT-D processor spec). I wouldn't count on it however.

Link to comment
Share on other sites

I do not believe so. You would need IOMMU support in your kernel, not simply Virtualization tech. If you can somehow verify that IOMMU is enabled for OS X (VT-D processor spec). I wouldn't count on it however.

I am sure, that OS X or better the kernel supports it, hence the kernel flag "dart=0" disables that feature...

 

 

Edit:

Here is a snippet from the book 'OS X and iOS kernel programming':

"Mac OS X will take advantage of the IOMMU where present. An IOMMU would be represented by a subclass of the IOMapper class, so you can search that in IORegistryExplorer to determine if you system has one."

 

Edit 2:

`ioreg -l | grep IOMapper` shows me a bunch of PCI devices on my Retina MacBook Pro, so the remaining issue is the virtualization software...

Link to comment
Share on other sites

Hi it's awesome that you were able to make virtualization work. I have problem with this, because I don't know where to find bios image and clover image. Could you please send me link to some guide? Thank you very much.

 

My hw:

 

Core i7 3770 with VT-D support

r9 290x for windows

GTX 950 for os x

intel hd 4000 for ubuntu

Link to comment
Share on other sites

Hi it's awesome that you were able to make virtualization work. I have problem with this, because I don't know where to find bios image and clover image. Could you please send me link to some guide? Thank you very much.

 

My hw:

 

Core i7 3770 with VT-D support

r9 290x for windows

GTX 950 for os x

intel hd 4000 for ubuntu

 

Hi frees11, have you managed to get passthrough working with your R9 and Windows yet?  If not I'd recommend you start there first and I'd start by reading the Ubuntu forums e.g. http://ubuntuforums.org/showthread.php?t=2266916

Link to comment
Share on other sites

 

 

I looked back on the thread and I think he is running Qemu on ubuntu and using his mac to VNC in.

 

Sorry guys, yes, I was using stock Ubuntu 15.10 server, installed the qemu packages (again, stock) and downloaded and installed.

 

My original notes are here:

 

https://gist.github.com/gordonturner/2a2e5ecde5e7860b52e2

 

Please note, I am in the process of updating them, there are some gaps.

Link to comment
Share on other sites

@KillerKelvUK​: yes, windows is not a problem, it was actually piece of cake, according to this guide: https://www.reddit.com/r/pcmasterrace/comments/3lno0t/gpu_passthrough_revisited_an_updated_guide_on_how/I already played CS: GO on it :D My host is Arch Linux, windows client is windows 10.

 

But I have problem with osx, because I don't know where to find clover image and bios. Should I create it somehow? Or is it somewhere available to download?

Link to comment
Share on other sites

@frees11, okay so you need to research some of the fundamentals but Clover is a UEFI boot environment...you install Clover using their Installation App which needs OSX to run itself.  See https://sourceforge.net/projects/cloverefiboot/.

 

Once you have Clover installed e.g. I started by installing it onto a USB drive so I could test, you then pass it through to a guest to load...now here your guest will need to use OVMF (did you use this for your windows guest passthrough using the R9?) which should then be configured to load Clover off your USB drive...this will give you the Clover boot menu/environment.  This should get you started, the rest is then configuring Clover as well as getting your installation media ready.

Link to comment
Share on other sites

@KillerKelvUK, yeah fundamentals are not problem with me I already installed many hackintoshes with OS X 10.6 10.7 109 10.10 and 10.11(10.6 - 10.9 were with chameleon, the rest with clover.)

 

I am trying to run this with GTX 950, it's the only graphic card which is sent to VM.

 

I already came up with something, which I basically harness from this board and ThatGordo github. I am able to run clover, I am booting with params -v nv_disable=1 rootless=0, but every time boot stops on line with many + symbols. Could you please check this if there are some problems, or copy here your config.plist and your qemu script? Thanks.

 

Here is my qemu script:

#!/bin/bash


sudo qemu-system-x86_64 \
-m 8192 \
-enable-kvm \
-cpu core2duo,vendor=GenuineIntel \
-rtc base=localtime \
-smbios type=2 \
-machine q35,accel=kvm,usb=off,vmport=off \
-bios /usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd \
-smp 8,sockets=1,cores=4,threads=2 \
-device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" \
-usb -usbdevice host:2516:0002  -usbdevice host:046d:c245 \
-device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1e \
-device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x1 \
-device ahci,id=sata0,bus=pci.2,addr=0x5 \
\
-drive file=/home/frees/Documents/clover.dd,if=none,id=drive-sata0-0-2,format=raw \
-device ide-hd,bus=ide.2,drive=drive-sata0-0-2,id=sata0-0-2,bootindex=1 \
-drive file=/home/frees/Documents/mac.img,if=none,media=disk,id=drive-sata0-0-0,format=qcow2 \
-device ide-hd,bus=sata0.0,drive=drive-sata0-0-0,id=sata0-0-0 \
-device vfio-pci,host=02:00.0,multifunction=on \
-device vfio-pci,host=02:00.1 \


#-device e1000-82545em,netdev=Mac,mac=52:54:00:00:00:02 -netdev tap,id=Mac \

and here is my clover.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>Debug</key>
			<false/>
			<key>DropOEM_DSM</key>
			<false/>
			<key>Fixes</key>
			<dict>
				<key>AddPNLF_1000000</key>
				<true/>
				<key>DeleteUnused_400000</key>
				<true/>
				<key>FIX_ACST_4000000</key>
				<true/>
				<key>FIX_ADP1_800000</key>
				<true/>
				<key>FIX_RTC_20000</key>
				<true/>
				<key>FIX_S3D_2000000</key>
				<true/>
				<key>FiX_TMR_40000</key>
				<true/>
				<key>FixRegions_10000000</key>
				<true/>
				<key>FixSBUS_0080</key>
				<true/>
			</dict>
			<key>Name</key>
			<string>q35-acpi-dsdt.aml</string>
			<key>ReuseFFFF</key>
			<false/>
		</dict>
		<key>SSDT</key>
		<dict>
			<key>DropOem</key>
			<false/>
			<key>Generate</key>
			<false/>
		</dict>
	</dict>
	<key>Boot</key>
	<dict>
		<key>Debug</key>
		<false/>
		<key>DefaultLoader</key>
		<string>boot.efi</string>
		<key>DefaultVolume</key>
		<string>OSX</string>
		<key>Legacy</key>
		<string>PBR</string>
		<key>Secure</key>
		<false/>
		<key>Timeout</key>
		<integer>5</integer>
		<key>XMPDetection</key>
		<false/>
	</dict>
	<key>CPU</key>
	<dict>
		<key>QEMU</key>
		<true/>
	</dict>
	<key>Devices</key>
	<dict>
		<key>USB</key>
		<dict>
			<key>FixOwnership</key>
			<false/>
			<key>Inject</key>
			<false/>
		</dict>
	</dict>
	<key>GUI</key>
	<dict>
		<key>Mouse</key>
		<dict>
			<key>DoubleClick</key>
			<integer>500</integer>
			<key>Enabled</key>
			<false/>
			<key>Mirror</key>
			<false/>
			<key>Speed</key>
			<integer>8</integer>
		</dict>
		<key>Scan</key>
		<true/>
		<key>ScreenResolution</key>
		<string>800x600</string>
		<key>Theme</key>
		<string>bootcamp</string>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<false/>
			<key>Intel</key>
			<false/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>NvidiaSingle</key>
		<false/>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>AppleRTC</key>
		<false/>
		<key>AsusAICPUPM</key>
		<false/>
		<key>Debug</key>
		<false/>
		<key>KernelCpu</key>
		<false/>
		<key>KernelHaswellE</key>
		<false/>
		<key>KernelLapic</key>
		<false/>
		<key>KernelPm</key>
		<false/>
	</dict>
	<key>RtVariables</key>
	<dict>
		<key>BooterConfig</key>
		<string>0x28</string>
		<key>CsrActiveConfig</key>
		<string>0x67</string>
		<key>ROM</key>
		<string>UseMacAddr0</string>
	</dict>
	<key>SMBIOS</key>
	<dict>
		<key>BiosReleaseDate</key>
		<string>09/03/2013</string>
		<key>BiosVendor</key>
		<string>Apple Inc.</string>
		<key>BiosVersion</key>
		<string>IM141.88Z.0118.B00.1309031248</string>
		<key>Board-ID</key>
		<string>Mac-031B6874CF7F642A</string>
		<key>BoardManufacturer</key>
		<string>Apple Inc.</string>
		<key>BoardType</key>
		<integer>10</integer>
		<key>ChassisAssetTag</key>
		<string>iMac-Aluminum</string>
		<key>ChassisManufacturer</key>
		<string>Apple Inc.</string>
		<key>ChassisType</key>
		<string>13</string>
		<key>Family</key>
		<string>iMac</string>
		<key>Manufacturer</key>
		<string>Apple Inc.</string>
		<key>Mobile</key>
		<false/>
		<key>ProductName</key>
		<string>iMac14,1</string>
		<key>SerialNumber</key>
		<string>C02LXB47F8J2</string>
		<key>Trust</key>
		<false/>
		<key>Version</key>
		<string>1.0</string>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>InjectKexts</key>
		<string>Detect</string>
		<key>InjectSystemID</key>
		<true/>
	</dict>
</dict>
</plist>
Link to comment
Share on other sites

 

@KillerKelvUK, yeah fundamentals are not problem with me I already installed many hackintoshes with OS X 10.6 10.7 109 10.10 and 10.11(10.6 - 10.9 were with chameleon, the rest with clover.)

 

I am trying to run this with GTX 950, it's the only graphic card which is sent to VM.

 

I already came up with something, which I basically harness from this board and ThatGordo github. I am able to run clover, I am booting with params -v nv_disable=1 rootless=0, but every time boot stops on line with many + symbols. Could you please check this if there are some problems, or copy here your config.plist and your qemu script? Thanks.

 

Here is my qemu script:

#!/bin/bash


sudo qemu-system-x86_64 \
-m 8192 \
-enable-kvm \
-cpu core2duo,vendor=GenuineIntel \
-rtc base=localtime \
-smbios type=2 \
-machine q35,accel=kvm,usb=off,vmport=off \
-bios /usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd \
-smp 8,sockets=1,cores=4,threads=2 \
-device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" \
-usb -usbdevice host:2516:0002  -usbdevice host:046d:c245 \
-device i82801b11-bridge,id=pci.1,bus=pcie.0,addr=0x1e \
-device pci-bridge,chassis_nr=2,id=pci.2,bus=pci.1,addr=0x1 \
-device ahci,id=sata0,bus=pci.2,addr=0x5 \
\
-drive file=/home/frees/Documents/clover.dd,if=none,id=drive-sata0-0-2,format=raw \
-device ide-hd,bus=ide.2,drive=drive-sata0-0-2,id=sata0-0-2,bootindex=1 \
-drive file=/home/frees/Documents/mac.img,if=none,media=disk,id=drive-sata0-0-0,format=qcow2 \
-device ide-hd,bus=sata0.0,drive=drive-sata0-0-0,id=sata0-0-0 \
-device vfio-pci,host=02:00.0,multifunction=on \
-device vfio-pci,host=02:00.1 \


#-device e1000-82545em,netdev=Mac,mac=52:54:00:00:00:02 -netdev tap,id=Mac \

and here is my clover.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>ACPI</key>
	<dict>
		<key>DSDT</key>
		<dict>
			<key>Debug</key>
			<false/>
			<key>DropOEM_DSM</key>
			<false/>
			<key>Fixes</key>
			<dict>
				<key>AddPNLF_1000000</key>
				<true/>
				<key>DeleteUnused_400000</key>
				<true/>
				<key>FIX_ACST_4000000</key>
				<true/>
				<key>FIX_ADP1_800000</key>
				<true/>
				<key>FIX_RTC_20000</key>
				<true/>
				<key>FIX_S3D_2000000</key>
				<true/>
				<key>FiX_TMR_40000</key>
				<true/>
				<key>FixRegions_10000000</key>
				<true/>
				<key>FixSBUS_0080</key>
				<true/>
			</dict>
			<key>Name</key>
			<string>q35-acpi-dsdt.aml</string>
			<key>ReuseFFFF</key>
			<false/>
		</dict>
		<key>SSDT</key>
		<dict>
			<key>DropOem</key>
			<false/>
			<key>Generate</key>
			<false/>
		</dict>
	</dict>
	<key>Boot</key>
	<dict>
		<key>Debug</key>
		<false/>
		<key>DefaultLoader</key>
		<string>boot.efi</string>
		<key>DefaultVolume</key>
		<string>OSX</string>
		<key>Legacy</key>
		<string>PBR</string>
		<key>Secure</key>
		<false/>
		<key>Timeout</key>
		<integer>5</integer>
		<key>XMPDetection</key>
		<false/>
	</dict>
	<key>CPU</key>
	<dict>
		<key>QEMU</key>
		<true/>
	</dict>
	<key>Devices</key>
	<dict>
		<key>USB</key>
		<dict>
			<key>FixOwnership</key>
			<false/>
			<key>Inject</key>
			<false/>
		</dict>
	</dict>
	<key>GUI</key>
	<dict>
		<key>Mouse</key>
		<dict>
			<key>DoubleClick</key>
			<integer>500</integer>
			<key>Enabled</key>
			<false/>
			<key>Mirror</key>
			<false/>
			<key>Speed</key>
			<integer>8</integer>
		</dict>
		<key>Scan</key>
		<true/>
		<key>ScreenResolution</key>
		<string>800x600</string>
		<key>Theme</key>
		<string>bootcamp</string>
	</dict>
	<key>Graphics</key>
	<dict>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<false/>
			<key>Intel</key>
			<false/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>NvidiaSingle</key>
		<false/>
	</dict>
	<key>KernelAndKextPatches</key>
	<dict>
		<key>AppleRTC</key>
		<false/>
		<key>AsusAICPUPM</key>
		<false/>
		<key>Debug</key>
		<false/>
		<key>KernelCpu</key>
		<false/>
		<key>KernelHaswellE</key>
		<false/>
		<key>KernelLapic</key>
		<false/>
		<key>KernelPm</key>
		<false/>
	</dict>
	<key>RtVariables</key>
	<dict>
		<key>BooterConfig</key>
		<string>0x28</string>
		<key>CsrActiveConfig</key>
		<string>0x67</string>
		<key>ROM</key>
		<string>UseMacAddr0</string>
	</dict>
	<key>SMBIOS</key>
	<dict>
		<key>BiosReleaseDate</key>
		<string>09/03/2013</string>
		<key>BiosVendor</key>
		<string>Apple Inc.</string>
		<key>BiosVersion</key>
		<string>IM141.88Z.0118.B00.1309031248</string>
		<key>Board-ID</key>
		<string>Mac-031B6874CF7F642A</string>
		<key>BoardManufacturer</key>
		<string>Apple Inc.</string>
		<key>BoardType</key>
		<integer>10</integer>
		<key>ChassisAssetTag</key>
		<string>iMac-Aluminum</string>
		<key>ChassisManufacturer</key>
		<string>Apple Inc.</string>
		<key>ChassisType</key>
		<string>13</string>
		<key>Family</key>
		<string>iMac</string>
		<key>Manufacturer</key>
		<string>Apple Inc.</string>
		<key>Mobile</key>
		<false/>
		<key>ProductName</key>
		<string>iMac14,1</string>
		<key>SerialNumber</key>
		<string>C02LXB47F8J2</string>
		<key>Trust</key>
		<false/>
		<key>Version</key>
		<string>1.0</string>
	</dict>
	<key>SystemParameters</key>
	<dict>
		<key>InjectKexts</key>
		<string>Detect</string>
		<key>InjectSystemID</key>
		<true/>
	</dict>
</dict>
</plist>

 

Okay, what error messages do you receive from the above config & test?

Link to comment
Share on other sites

@KillerKelvUK HA, I was finally able to make this work. 

 

I used everything from waschbenzin's post   and created osx installation in virtualbox from first waschbenzin post. Then I converted final vdi from virtualbox to qcow2 via this command
 

qemu-img convert -f vdi -O qcow2 vm.vdi vm.qcow2

it booted in resolution 800x600 and then I installed nvidia web drivers, changed smbios to imac14,1 and turned it off. Then I modified waschbenzin start-kvm, script added nvidia pass through and booted it again and finally I were able to boot os x on primary 4k monitor which is connected via DP to GTX950. It works very good, I don't see any difference between this and real hackintosh I have on second hdd in terms of performance. Now I need to solve network bridges, so my router gives ip address to both VM(osx and windows). Could you please help me with this? When everything will be ready I will post complete guide, how to have all 3 OS (OSX, Windows and Arch Linux) working at the same time.


@smolderas I don't think there is any difference between vm and real hackintosh in this matter. I already connected my VM to icloud, enabled Find my mac, I can find him from icloud.com, so I think everything is fine and everybody thinks it's real mac computer. We are as close to real mac hw with waschbenzin guide as possible.

Link to comment
Share on other sites

@KillerKelvUK HA, I was finally able to make this work. 

 

I used everything from waschbenzin's post   and created osx installation in virtualbox from first waschbenzin post. Then I converted final vdi from virtualbox to qcow2 via this command

 

qemu-img convert -f vdi -O qcow2 vm.vdi vm.qcow2

it booted in resolution 800x600 and then I installed nvidia web drivers, changed smbios to imac14,1 and turned it off. Then I modified waschbenzin start-kvm, script added nvidia pass through and booted it again and finally I were able to boot os x on primary 4k monitor which is connected via DP to GTX950. It works very good, I don't see any difference between this and real hackintosh I have on second hdd in terms of performance. Now I need to solve network bridges, so my router gives ip address to both VM(osx and windows). Could you please help me with this? When everything will be ready I will post complete guide, how to have all 3 OS (OSX, Windows and Arch Linux) working at the same time.

@smolderas I don't think there is any difference between vm and real hackintosh in this matter. I already connected my VM to icloud, enabled Find my mac, I can find him from icloud.com, so I think everything is fine and everybody thinks it's real mac computer. We are as close to real mac hw with waschbenzin guide as possible.

Thanks for the reply. It is perfect news.

So is the GPU passthrough working?

Shame I don't have a VT-d supporting CPU to test that.

Link to comment
Share on other sites

Yes it's incredible, passthrough is working very well.

 

Now I have turned on Arch Linux which is host computer using Intel HD4000 and two VM, one with Windows which use R9 290X(gaming rig) and second one which use GTX950 - OSX machine. 

 

Whole computer is using something around 30 GB ram. I allocated 20GB to os x - my workstation and 8GB to windows, the rest is for web server and host linux.

 

I really recommends this setup, Windows with all games is almost like OSX app, I can switch to it and from it as I want and let all windows in OSX opened. Not to mention that whole process of switching is as fast, as your monitor can change inputs.

Link to comment
Share on other sites

 Share

×
×
  • Create New...