Jump to content

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


514 posts in this topic

Recommended Posts

Does this only happen when you pass something through? Then it might be connected with the KVM halt_poll_ns parameter. In newer kernels this value has been above 400.000 which creates CPU load with different guests. In most recent kernels this is fixed (at least for windows guest) by setting it to 400.000, but my linux guest needs a value of 100.000.

Look at /sys/module/kvm/parameters/halt_poll_ns on your host and try to lower it to 400.000 or 100.000 and then set it permanently via an modprobe.d entry:

options kvm halt_poll_ns=100000

I've got another problem:

I've managed to boot and install El Capitan 10.11.5 with libvirtd/virt-manager and minimal xml edits, partially following this guide: https://gist.github.com/gordonturner/2a2e5ecde5e7860b52e2. But as soon as I try to pass through my GPU, after Clover tries to boot OSX, I can either see the pluses '++++++' on the GPU-connected display or the frozen white Apple Logo (when booting without the '-v'-Paramter), but nothing else. In case of the pluses (verbose mode) with most tests the display turns off / shows no signal after several seconds.

BUT I can connect via VNC to the guest.

 

What I tested:

  • GT 630 with DVI, HDMI(-DVI-Adapter), VGA-out / 750Ti with DVI-out
  • nv_disabled=1 / nv_disabled=1 & nvda_drv=1 / nvda_drv=1 (nvidia Web drivers installed without passed GPU from spice/vnc-connection)
  • with / without nvidia injection
  • my libvirtd xml / qemu commands that others have successfully used
  • different resolutions set in clover. After increasing it above 1280x1024, clover still grew up to 1920x1200, but within the VNC-connection I only have 1280x1024.
  • single <loader> line (necessary to boot at all)

interesting log entries: nvda::rmstart failed followed by multiple NVDA,Display-A: Not usable

 

I have no idea if this is a virtualization problem or clover/nvidia related.

I don't have any experience with newer nvidia cards, but I think any nvidia cards after 500 series (like 630 or 750ti) you have to:

- disable nvidia injection and then

- initially boot with "nv_disable=1" flag (with os x drivers)

- after that initial boot install nvidia drivers and remove that flag and reboot, hence you are now using nvidia drivers, which supports newer series cards.

Not in my case, using ubuntu16 1-3% cpu load in guest and host. What I also see is that the "memory usage" graphic in virt-manager is incorrect, showing always as full.

Apart from this, I got the same results in cinebench in the vm and  as a "native hackintosh" (i5 4590 and ATI 5750)

Could you please post this picture to imgur or something?

Link to comment
Share on other sites

To those who got a working OS X vm with or without GPU passthrough:

how much CPU is used on the host side when the OSX vm is idling?

 

My host uses 15-20% CPU when the OSX vm is idling (1-2% CPU usage in the guest), and I wonder if it's normal...

Be sure to compare the right values. Linux process CPU% can go beyond 100% with multiple cores. Idling in Mac OS X gives me 1-2% in OSX and on the Linux host, while the qemu process is at about 10% (4 core ... 8 with HyperThreading).

 

 

Regarding audio issues: My opinion is, that the virtualized Mac is not suitable for audio editing with low latency stuff. Spare yourself the trouble and use a USB audio adapter, if you can't get HDMI/on-board sound working. 

 

Regarding memory usage: AFAIK the VM will use the complete assigned memory when booting as soon as PCI Passthrough is used (at least that was the case when I started researching this - late 2014). 

Link to comment
Share on other sites

I don't have any experience with newer nvidia cards, but I think any nvidia cards after 500 series (like 630 or 750ti) you have to:

- disable nvidia injection and then

- initially boot with "nv_disable=1" flag (with os x drivers)

- after that initial boot install nvidia drivers and remove that flag and reboot, hence you are now using nvidia drivers, which supports newer series cards.

 

Thanks for this info how it should work. Unfortunatly, as soon as the nvidia card is passed through I've got no more output after these pluses. Even with the nv_disable=1 flag. I've also tried waschbenzins clover-debug-test.dd image to boot, same behaviour. The verbose output that isn't displayed on the monitor (but sent via serial console) is:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Longterm timer threshold: 1000 ms
version_variant = 0
...
initialize_screen: b=00000000, w=00000000, h=00000000, r=00000000, d=00000001
initialize_screen: No video - forcing serial mode
Darwin Kernel Version 15.5.0: Tue Apr 19 18:36:36 PDT 2016; root:xnu-3248.50.21~8/RELEASE_X86_64
...

edit: later in the log

...
DSMOS has arrived
[IOBluetoothFamily][start] -- completed
ACPI_SMC_PlatformPlugin::start - waitForService(resourceMatching(AppleIntelCPUPowerManagement) timed out
ACPI_SMC_PlatformPlugin::start - waitForService(resourceMatching(AppleIntelCPUPowerManagement) timed out
kPEDisableScreen -1
display: Not usable
AppleKeyStore::handleUserClientCommandGated: asking for specific bag 501 (eff -501)

AppleKeyStore::handleUserClientCommandGated: set handle 1 as special bag -501
...

I can't find any information why my card is rejected as output so early in the booting process. Its EFI gop showed no problems elsewhere.

 

EDIT 2: Problem found: latest ovmf compiled from git (arch AUR), using ovmf_code_x64.bin. Older, downloaded OVMF-pure-efi.fd works. Have to try different other versions.

Link to comment
Share on other sites

@KillerKelvUK

So i tried using virsh to make the network

 

I used the virsh net-define command and made the following

<network>
  <name>default</name>
  <uuid>SomeUUID</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='SomeMAC'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

The i attached it to the VM like so:

    <interface type='bridge'>
      <mac address='SomeMac'/>
      <source bridge='virbr0'/>
      <model type='e1000-82545em'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </interface>

The i try to start the network, with

 

virsh net-start default

error: Failed to start network default
error: error creating bridge interface virbr0: Operation not permitted
sudo !! (run previous command as root)
Network default started
 
After this i try to start the VM
 
Error starting domain: internal error: /usr/lib/qemu/qemu-bridge-helper --br=virbr0 --fd=24: failed to communicate with bridge helper: Transport endpoint is not connected
stderr=failed to parse default acl file `/etc/qemu/bridge.conf'
 
Note: I am on WIFI, using NetworkManager and gnome3
 
Link to comment
Share on other sites

Not in my case, using ubuntu16 1-3% cpu load in guest and host. What I also see is that the "memory usage" graphic in virt-manager is incorrect, showing always as full.

Could you please share the details of your setup? (qemu/libvirt config, bootloader used, etc...)

 

Does this only happen when you pass something through? Then it might be connected with the KVM halt_poll_ns parameter. In newer kernels this value has been above 400.000 which creates CPU load with different guests. In most recent kernels this is fixed (at least for windows guest) by setting it to 400.000, but my linux guest needs a value of 100.000.

Yes it also happens without GPU passthrough.

 

Be sure to compare the right values. Linux process CPU% can go beyond 100% with multiple cores. Idling in Mac OS X gives me 1-2% in OSX and on the Linux host, while the qemu process is at about 10% (4 core ... 8 with HyperThreading).

The power draw increases by at least 15W and never go below when my osx vm is running. Any other vm (Linux or Windows) does not increase the power draw when idle.

Link to comment
Share on other sites

@Maclarentosh.

 

Little confused by your last post bud, your original post was to connect your vm to a network bridge (also called a Routed Mode by Libvirt) however your last post xml shows you aren't bridging but instead using Network Address Translation (NAT).  (http://wiki.libvirt.org/page/VirtualNetworking)

 

Do you want your vm's to be allocated an IP address in the same subnet as your physical devices on the same LAN or something different?

 

If you are using virsh for the network and virt-manager for the guest config and start/stop etc I'd suggest you simplify this and just use virt-manager for everything i.e. create the networks using virt-manager instead of virsh.  The only complication here I can see is that you are using a wifi adapter, was it you who posted here a while back struggling to get bridging working with a wifi adapter?  The wifi element may mean you have to manually configured a routed bridge (if that's what you want) using either systemd or the /etc/network/interface script...not something I've done with wifi sorry but will do a little digging if this is what you are trying to get working?

Link to comment
Share on other sites

Would this work with the host chipset being a hd 4000 and passthough as well?

 

Sent from my SM-G928F using Tapatalk

Well I'm using the on chip video from my Intel cpu for host video only. If you want to passthrough your hosts primary gfx to a guest then this comes with no end of tech challenges. Suggest you solve these with a Linux or Windows guest first before tackling that with OS X virtualisation.

 

 

 

Sent from my iPhone using Tapatalk

  • Like 1
Link to comment
Share on other sites

I have one PCI-E nVIDIA GPU and one onboard VGA. Is it possible to share the nVIDIA GPU between two or more guests: OS X El Capitan 10.11.x and Ubuntu, Windows?

 

I'm thinking of running 16.04 Desktop / Server as the host with KVM/qemu or Xen and then virtualize:

 

1) OS X for Adobe apps, CAD, software development, potential light gaming (League of Legends, Starcraft) so latency would be an issue and

2) Ubuntu for machine learning (GPU), software development, compiling and

3) Windows for certain apps that only work on Windows.

Link to comment
Share on other sites

I have one PCI-E nVIDIA GPU and one onboard VGA. Is it possible to share the nVIDIA GPU between two or more guests: OS X El Capitan 10.11.x and Ubuntu, Windows?

 

I'm thinking of running 16.04 Desktop / Server as the host with KVM/qemu or Xen and then virtualize:

 

1) OS X for Adobe apps, CAD, software development, potential light gaming (League of Legends, Starcraft) so latency would be an issue and

2) Ubuntu for machine learning (GPU), software development, compiling and

3) Windows for certain apps that only work on Windows.

Yes but unless your GFX is a Quattro or similar then you can only pass the gfx card to one guest at a time.

 

I have 2 guests (virtual machines) configured, one OS X and one Windows and they both have my GTX passed thru however I can't run both guests at the same time. The Quattro cards and similar have the ability to share their resources across multiple guests at the same time so you could run all your guests at one using a card like this. Or you could purchase more GFX cards and dedicate a card per guest but obviously that's got its own downsides.

 

 

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

I finally figured out where the high host CPU load was coming from:

the emulated USB controller.

Removing all USB controllers and devices from the qemu parameters reduced the host load to 1-3% when the guest is idle.

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

I have been watching this thread since its begining and decided this weekend to plunge and try it myself. Surprisingly that was worked on the first try! So thanks to all who participated in this thread!

 

Well, it's not completely working. I cannot get sound out of my Nvidia gpu HDMI output. I'm  on Yosemite.

 

I searched and found audio_cloverHDMI (https://github.com/toleda/audio_CloverHDMI) but could not make it work because I could not find the right HDMI audio ssdt (https://github.com/toleda/audio_hdmi_amd-nvidia) for the

IOReg display device name I have.

Do any of you had better luck with this option or another?

 

Thanks

Link to comment
Share on other sites

Well, it's not completely working. I cannot get sound out of my Nvidia gpu HDMI output. I'm on Yosemite.

 

I searched and found audio_cloverHDMI (https://github.com/toleda/audio_CloverHDMI) but could not make it work because I could not find the right HDMI audio ssdt (https://github.com/toleda/audio_hdmi_amd-nvidia) for the

IOReg display device name I have.

Do any of you had better luck with this option or another?

 

Thanks

Hey, I have working HDMI audio from my nVidia GTX 970 using a clover injected kext.

 

It's ages since I found the actual source, the top Google link now is to a site/forum that's frowned upon here due to their open policies or lack there off so I won't provide a direct link. So I offer you 2 options...1) the kext that needs to be injected by clover at boot is named 'hdmiaudio-1.0.dmg', a google on that alone should get you running. Option 2), Google search for "Clover HDMI audio for NVIDIA & AMD cards. Easy way." and choose the top hit :)

 

 

 

Sent from my iPhone using Tapatalk

Link to comment
Share on other sites

the kext that needs to be injected by clover at boot is named 'hdmiaudio-1.0.dmg'. Google search for "Clover HDMI audio for NVIDIA & AMD cards. Easy way."

 

Indeed, so easy! Thanks KillerKelvUK!

 

-----

 

I have another issue and -- from my point of view -- a big one. The whole point of this Mac vm was for me to do photo editing with Lightroom, but I just noticed that I'm not able to passtrough my photo camera.

 

I was able to passthrough usb devices of my mouse, keyboard and even bluetooth dongle, but not the photo camera. I'm puzzled. I start the vm with the camera powered on.

 

Any clue?

Thanks again.

 

P.S. Passing through the whole usb controller is not really an option as it seems all my system usb ports are on the same controller.

Link to comment
Share on other sites

I have another issue and -- from my point of view -- a big one. The whole point of this Mac vm was for me to do photo editing with Lightroom, but I just noticed that I'm not able to passtrough my photo camera.

 

I was able to passthrough usb devices of my mouse, keyboard and even bluetooth dongle, but not the photo camera. I'm puzzled. I start the vm with the camera powered on.

 

Any clue?

Thanks again.

 

P.S. Passing through the whole usb controller is not really an option as it seems all my system usb ports are on the same controller.

 

How are you managing the guest...qemu command line or libvirt?  Looking for log files that may help narrow this down...typically if you have usb passthrough working on some devices and not others I'd say maybe you have a permissions conflict on the /dev/xxx node meaning qemu can't get access.  If this is the case there usually some semi helpful log entries which for me would be in /var/libvirt/qemu/name_of_guest.

Link to comment
Share on other sites

Hi I am restoring my problem with jumpy cursor in OS X. My previous thread was deleted because of insanelymac db problems. 

 

The problem is that, when passing separated usb devices to OSX my mouse cursor is erratic and jumps all over the screen under high cpu load. I tried to pass through whole usb controller, but I am not able to do it. I am not using virsh just qemu command. Could someone post guide how to passthrough whole usb controller to VM? Thanks. Also is there any way how to find out which usb devices uses which controller? Here is lspci -nn | grep USB command result

 

00:14.0 USB controller [0c03]: Intel Corporation C610/X99 series chipset USB xHCI Host Controller [8086:8d31] (rev 05)
00:1a.0 USB controller [0c03]: Intel Corporation C610/X99 series chipset USB Enhanced Host Controller #2 [8086:8d2d] (rev 05)
00:1d.0 USB controller [0c03]: Intel Corporation C610/X99 series chipset USB Enhanced Host Controller #1 [8086:8d26] (rev 05)

and here is lsusb command result

Bus 002 Device 002: ID 8087:8002 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:800a Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 003: ID 2109:8110 VIA Labs, Inc. Hub
Bus 004 Device 002: ID 045b:0210 Hitachi, Ltd 
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 021: ID 045e:028f Microsoft Corp. Xbox360 Wireless Controller
Bus 003 Device 008: ID 2109:2811 VIA Labs, Inc. Hub
Bus 003 Device 016: ID 045e:0719 Microsoft Corp. Xbox 360 Wireless Adapter
Bus 003 Device 007: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 003 Device 003: ID 045b:0209 Hitachi, Ltd 
Bus 003 Device 005: ID 0a81:0101 Chesen Electronics Corp. Keyboard
Bus 003 Device 029: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 003 Device 006: ID 05ac:0250 Apple, Inc. Aluminium Keyboard (ISO)
Bus 003 Device 019: ID 046d:c245 Logitech, Inc. G400 Optical Mouse
Bus 003 Device 002: ID 05ac:1006 Apple, Inc. Hub in Aluminum Keyboard
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

and here is my qemu command

sudo echo 1 > /sys/module/kvm/parameters/ignore_msrs

sudo taskset -c 5,6,7,8,9,10 chrt -r 1 qemu-system-x86_64 -curses \
-m 32768 \
-enable-kvm \
-cpu core2duo \
-smp cores=2,threads=2 \
-M q35 \
-bios /home/frees/media/kingstonssd/home/frees/OVMF-pure-efi-win.fd \
-device e1000-82545em,netdev=net1,mac=52:54:00:12:34:01 -netdev type=tap,id=net$
-device ahci,id=hdbus,bus=pcie.0 \
-device ide-hd,bus=ide.2,drive=drive-sata0-0-0,id=sata0-0-0 \
-drive file=/home/frees/media/kingstonssd/home/frees/Documents/mac.qcow2,if=non$
-device ide-drive,bus=hdbus.0,drive=Clover \
-drive id=Clover,if=none,file=/home/frees/media/kingstonssd/home/frees/clover-d$
-device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)Apple$
-device vfio-pci,host=06:00.0,multifunction=on \
-device vfio-pci,host=06:00.1 \
-vga none \
-usb -usbdevice host:05ac:0250 -usbdevice host:046d:c245 \
Link to comment
Share on other sites

Here is my usb qemu command:

# unbind usb controller devices
echo "8086 8cb1" > /sys/bus/pci/drivers/vfio-pci/new_id 
echo 0000:00:14.0 > /sys/bus/pci/devices/0000\:00\:14.0/driver/unbind 
echo 0000:00:14.0 > /sys/bus/pci/drivers/vfio-pci/bind 

echo "8086 8cad" > /sys/bus/pci/drivers/vfio-pci/new_id 
echo 0000:00:1a.0 > /sys/bus/pci/devices/0000\:00\:1a.0/driver/unbind 
echo 0000:00:1a.0 > /sys/bus/pci/drivers/vfio-pci/bind 

echo "8086 8ca6" > /sys/bus/pci/drivers/vfio-pci/new_id 
echo 0000:00:1d.0 > /sys/bus/pci/devices/0000\:00\:1d.0/driver/unbind 
echo 0000:00:1d.0 > /sys/bus/pci/drivers/vfio-pci/bind

# unbind nvidia gpu
echo "10de 1184" > /sys/bus/pci/drivers/vfio-pci/new_id 
echo 0000:01:00.0 > /sys/bus/pci/devices/0000\:01\:00.0/driver/unbind 
echo 0000:01:00.0 > /sys/bus/pci/drivers/vfio-pci/bind

echo "10de 0e0a" > /sys/bus/pci/drivers/vfio-pci/new_id 
echo 0000:01:00.1 > /sys/bus/pci/devices/0000\:01\:00.1/driver/unbind 
echo 0000:01:00.1 > /sys/bus/pci/drivers/vfio-pci/bind

echo 1 > /sys/module/kvm/parameters/ignore_msrs

nice -n -10 qemu-system-x86_64 \
-enable-kvm \
-m 16384 \
-cpu core2duo,kvm=off,vendor=GenuineIntel \
-smp 6,sockets=1,cores=3,threads=2 \
-M q35 \
-vga none \
-bios OVMF-pure-efi.fd \
-realtime mlock=on \
-smbios type=2 \
-balloon none \
-device ahci,id=hdbus,bus=pcie.0 \
-device ide-drive,bus=hdbus.1,drive=Clover \
-drive id=Clover,if=none,file=clover-image.dd,format=raw  \
-device ide-drive,bus=ide.3,drive=MacOSX \
-drive id=MacOSX,if=none,file=/dev/mapper/mac,format=raw  \
-netdev user,id=usr0,net=192.168.76.0/24,dhcpstart=192.168.76.9 \
-device e1000-82545em,netdev=usr0,id=vnet0,bus=pcie.0,addr=5,mac=01:02:03:04:05:06 \
-device isa-applesmc,osk="youshouldknowwhattoputhere" \
-device vfio-pci,host=01:00.0,bus=pcie.0,multifunction=on \
-device vfio-pci,host=01:00.1,bus=pcie.0 \
-device vfio-pci,host=00:14.0,bus=pcie.0 \
-device vfio-pci,host=00:1a.0,bus=pcie.0 \
-device vfio-pci,host=00:1d.0,bus=pcie.0 \
-serial stdio 

# bin usb controller to linux
echo 0000:00:14.0 > /sys/bus/pci/devices/0000\:00\:14.0/driver/unbind 
echo 0000:00:14.0 > /sys/bus/pci/drivers/xhci_hcd/bind 

echo 0000:00:1a.0 > /sys/bus/pci/devices/0000\:00\:1a.0/driver/unbind 
echo 0000:00:1a.0 > /sys/bus/pci/drivers/ehci-pci/bind 

echo 0000:00:1d.0 > /sys/bus/pci/devices/0000\:00\:1d.0/driver/unbind 
echo 0000:00:1d.0 > /sys/bus/pci/drivers/ehci-pci/bind

While this is my usb configuration:

Bus 002 Device 002: ID 8087:8001 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8009 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 004: ID 2109:0812 VIA Labs, Inc. VL812 Hub
Bus 004 Device 003: ID 045b:0210 Hitachi, Ltd 
Bus 004 Device 002: ID 05e3:0732 Genesys Logic, Inc. All-in-One Cardreader
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 007: ID 1e7d:3232 ROCCAT 
Bus 003 Device 006: ID 1e7d:2dbe ROCCAT 
Bus 003 Device 003: ID 1e7d:2ee1 ROCCAT 
Bus 003 Device 005: ID 06f8:c000 Guillemot Corp. Hercules Muse Pocket
Bus 003 Device 004: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 003 Device 002: ID 045b:0209 Hitachi, Ltd 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Hope that helps. You will lose the ability to control linux with your usb devices until you power down the vm! I use a PS2 keyboard for emergencies. You also cannot use any usb devices connected to that controller in any other vm. You might want to try a secondary add-in usb controller for this (but my luck with that was rather limited - due to hardware incompatibilities).

 

Off-Topic: Anyone who want to expand their qemu experience with another operation system: Try Remix OS to get Android on your PC. Works fine in qemu for me (32-bit version without uefi and without gpu passthrough). I used the installer to create a usb installer. Dumped it using dd and now I'm running off that image. You can use a virtual audio device ( -soundhw es1370 ... thanks to reddit for that)

 

 

Edit:

lspci -nn | grep USB

00:14.0 USB controller [0c03]: Intel Corporation 9 Series Chipset Family USB xHCI Controller [8086:8cb1]
00:1a.0 USB controller [0c03]: Intel Corporation 9 Series Chipset Family USB EHCI Controller #2 [8086:8cad]
00:1d.0 USB controller [0c03]: Intel Corporation 9 Series Chipset Family USB EHCI Controller #1 [8086:8ca6]
Link to comment
Share on other sites

Thanks,

 

but I found very interesting thing. This erratic mouse movemenet, only occurs with my Logitech G400 mouse. Yesterday I tried magic mouse via passthroughed bluetooth dongle and it worked like a charm. But the real problem is, that Logitech mouse is working fine in other hackintoshes (which runs on bare metal, not in qemu)

Link to comment
Share on other sites

Thanks,

 

but I found very interesting thing. This erratic mouse movemenet, only occurs with my Logitech G400 mouse. Yesterday I tried magic mouse via passthroughed bluetooth dongle and it worked like a charm. But the real problem is, that Logitech mouse is working fine in other hackintoshes (which runs on bare metal, not in qemu)

 

Shot in the dark ---#> Possible that your G400 is using an interrupt that's operating on a unsympathetic CPU core to that which you have pinned to your guest and the USB bt dongle isn't, take a look at the mapping in /proc/interrupts.  Like I said shot in the dark.

Link to comment
Share on other sites

Has anyone here got a newer CPU working? I'm on the i7-4790.

 

-cpu host gets stuck with a bunch of + signs. I've tried: FSB of 100 MHz, 200 MHz (clover detected), 1 GHz, 1.2 GHz. Tried combinations of KernelPm, AsusWhateverPM, Haswell-E Kernel and NullCPUPM.

 

-cpu core2duo works OOTB, but doesn't detect the correct FSB. It detects 1.2 GHz. Works fine, but I'm not really happy with it, because Sierra.

 

-cpu Penryn is slow (by about 5x I think), both with a manual FSB of 100 MHz and 1200 MHz.

 

-cpu IvyBridge has the same results as host.

 

Another problem I'm having is that the e1000-82545em only reports a speed of 10 Mbps when booting, not sure if that is cosmetic at this point.

 

Here's my command so far:

sudo qemu-system-x86_64 \
\
-rtc clock=vm,base=2016-01-01T16:01:21 \
\
-name KVM-OSX \
-m 4096 \
-enable-kvm \
-cpu host,kvm=off,vendor=GenuineIntel \
-rtc base=localtime \
-smbios type=2 \
-machine q35,accel=kvm,usb=off,vmport=off \
-bios OVMF.fd \
-smp 4,sockets=1,cores=2,threads=2 \
-device isa-applesmc,osk="PotatoesAreAwesome" \
\
-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 \
\
-netdev tap,id=net0 \
-device e1000-82545em,netdev=net0,mac=DE:AD:BE:EF:61:18 \
\
-drive file=/media/hameer/Storage/Hackintosh/KVM/kvm-clover-efi.dd,if=none,id=drive-sata0-0-1,format=raw \
-device ide-hd,bus=sata0.1,drive=drive-sata0-0-1,id=sata0-0-1,bootindex=1 \
\
-drive file=/media/hameer/Storage/Hackintosh/KVM/MainDisk.dd,if=none,media=disk,id=drive-sata0-0-0,format=raw \
-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

Edit: Don't know if this is relevant but I get this when I "Exit Clover" on every single CPU, including core2duo, but shutting down/restarting works fine as long as OS X boots.

!!!! X64 Exception Type - 0D(#GP - General Protection)  CPU Apic ID - 00000000 !!!!
RIP  - 000000007FF906D0, CS  - 0000000000000038, RFLAGS - 0000000000010202
ExceptionData - 0000000000000000
RAX  - 007200700020006E, RCX - 000000007E00B690, RDX - 000000007F49DBD8
RBX  - 000000007FF14018, RSP - 000000007FF87A20, RBP - 000000007FF87AF0
RSI  - 000000007FF87AA0, RDI - 000000007F49DBD8
R8   - 000000007FF87AA0, R9  - 000000007FFA240F, R10 - 000000007EC3C2A0
R11  - 0000000000000006, R12 - 0000000000000000, R13 - 0000000000000000
R14  - 0000000000000000, R15 - 0000000000000000
DS   - 0000000000000030, ES  - 0000000000000030, FS  - 0000000000000030
GS   - 0000000000000030, SS  - 0000000000000030
CR0  - 0000000080000033, CR2 - 0000000000000000, CR3 - 000000007FF26000
CR4  - 0000000000000668, CR8 - 0000000000000000
DR0  - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000
DR3  - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400
GDTR - 000000007FF04F18 0000000000000047, LDTR - 0000000000000000
IDTR - 000000007F8CC018 0000000000000FFF,   TR - 0000000000000000
FXSAVE_STATE - 000000007FF87680
!!!! Find PE image /build/edk2-HT_Kx2/edk2-0~20160408.ffea0a2c/Build/OvmfX64/RELEASE_GCC49/X64/MdeModulePkg/Core/Dxe/DxeMain/DEBUG/DxeCore.dll (ImageBase=000000007FF88000, EntryPoint=000000007FF88240) !!!!

Edit 2: The 10 Mbps thing seems cosmetic. Copied something over samba and it seemed to go as fast as the HDD would allow.

Link to comment
Share on other sites

 Share

×
×
  • Create New...