-
Ubuntu 15.10
-
kvm and qemu packages installed
-
VM images and resources in
/vm/ -
This approach uses a USB drive with the OSX Installer and Clover passed through from the kvm host to guest
-
This approach also uses VNC to connect to the guest UI and no PCI passed through video card
- qemu documentation:
http://wiki.qemu.org/download/qemu-doc.html
- clover documentation:
http://clover-wiki.zetam.org/Configuration
-
NOTE: 2016-01-09 version linked from http://www.tianocore.org/ovmf/ is not current and shout not be used
-
On Linux kvm host, build OVMF, please see:
https://gist.github.com/gordonturner/85dcc321d2099d610e67
- On an Apple computer running OS X, SMC osk value.
- See:
http://www.osxbook.com/book/bonus/chapter7/tpmdrmmyth/
https://bbs.archlinux.org/viewtopic.php?id=162768
- NOTE: 2016-01-09 The value appears to be a constant string
-
On an Apple computer running OS X, create install USB drive.
-
Run Disk Utilty
-
Select the USB device (not a partition of the device) in the left pane
-
If on 10.11 or later:
- Click
Partitiontab, ensure there is a single partition - Set Name to
Untitled, Format toOS X Extended (Journaled) - Click
Applybutton - Confirm
Partition Mapis set toGUID Partition Map
- Click
-
If on 10.10 or earler, confirm
Partition Mapis set toGUID Partition Map- Click
Partitiontab - In
Partition Layout, select1 Partitionin the - Click
Optionsbutton, selectGUID Partition Table, click OK - Change Name to
Untitled - Change Format type to
Mac OS Extended (Journaled) - Click Apply, then Partition
- Click
-
Once partitioning is complete, click
Done -
Close Disk Utility
-
For El Capitan, default Application location:
sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia \
--volume /Volumes/Untitled \
--applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app \
--nointeraction
- For El Capitan, after Application moved and renamed:
sudo /Users/USERNAME/Documents/Disk\ Images/Apple\ OS\ X/10.11\ El\ Capitan/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia \
--volume /Volumes/Untitled \
--applicationpath /Users/USERNAME/Documents/Disk\ Images/Apple\ OS\ X/10.11\ El\ Capitan/Install\ OS\ X\ El\ Capitan.app \
--nointeraction
- On an Apple computer running OS X, download Clover from:
http://sourceforge.net/projects/cloverefiboot/files/?source=typ_redirect
-
NOTE: 2016-01-10 Current download was
Clover_v2.3k_r3330.pkg -
Run
Clover_v2.3k_r3330.pkg -
Click
ContinueuntilInstallation Typescreen -
On
Installation Typescreen, clickChange Install Location... -
On
Destination Selectscreen, select the Install USB drive as destination, clickContinue -
Back on
Installation Typescreen, clickCustomize -
On
Custom Install on "..."screen selectInstall for UEFI booting only- This should automatically select
Install Clover in the ESP - This should automatically unselect
Bootloader, Don't update MBR and PBR sectors - This should automatically unselect
CloverEFI, CloverEFI 64-bits SATA
- This should automatically select
-
On
Custom Install on "..."screen, selectThemes, BootCamp(or your theme of choice) -
On
Custom Install on "..."screen, clickInstall -
Install should take about 3 min on USB 3 device
-
When complete, click
Close -
Two volumes should be mounted when complete:
EFIInstall OS X El Capitan
-
Leave volumes mounted
- Download
q35-acpi-dsdt.amland copy to/CLOVER/ACPI/originon USB boot drive:
https://github.com/qemu/qemu/blob/master/pc-bios/q35-acpi-dsdt.aml
- Download
HFSPlus.efiand copy toEFI/CLOVER/drivers64UEFI/on USB boot drive:
https://github.com/JrCs/CloverGrowerPro/blob/master/Files/HFSPlus/X64/HFSPlus.efi?raw=true
- NOTE: No source, license is unclear, free to use
- Download:
http://mackie100projects.altervista.org/
-
NOTE: 2016-01-16 current version is 4.25.0
-
Run
Clover Configurator.appand edit:EFI/EFI/CLOVER/config.plist -
Clover Configurator, Acpi
-
See
Clover Configurator-1-Acpi.png -
Root/ACPI/DSDTDictionaryDebugBoolean YES (Debug)Drop OEM_DSMBoolean NO (Drop OEM_DSM)NameString q35-acpi-dsdt.aml (DSDT name)ReuseFFFFBoolean NO (ReuseFFFF)FixesDictionaryAddPNLF_1000000Boolean YES (New wayAddPNLF)DeleteUnused_400000Boolean YES (New wayDeleteUnused)FIX_ACST_4000000Boolean YES (New wayFIX_ACST)FIX_ADP1_800000Boolean YES (New wayFIX_ADP1)FIX_RTC_20000Boolean YES (New wayFIX_RTC)FIX_S3D_2000000Boolean YES (New wayFIX_S3D)FiX_TMR_40000Boolean YES (New wayFIX_TMR)FixRegions_10000000Boolean YES (New wayFixRegions)FixSBUS_0080Boolean YES (Unclear)NewWay_80000000Boolean YES (New wayNewWay)
-
Root/ACPI/DropTablesArray (Drop Tables)-
Item0Dictionary (Signature*, Type/key, String/Number)SignatureStringSSDT(SSDT, TableId, CpuPm)TableIdStringCpuPm
-
Item1Dictionary (Signature*, Type/key, String/Number)SignatureStringDMAR(DMAR, ,)
-
Item2Dictionary (Signature*, Type/key, String/Number)SignatureStringSSDT(SSDT, TableId, Cpu0Ist)TableIdStringCpu0Ist
-
-
Root/ACPI/SSDTDictionaryDropOemBoolean NO (Drop OEM)GenerateBoolean NO (UnclearGenerate PStates) Boolean NO (UnclearGenerate CSates)MaxMultiplierNumber 40 (Min Multiplier)MinMultiplierNumber 40 (Max Multiplier)
-
Clover Configurator, Boot
-
See
Clover Configurator-2-Boot.png -
Root/BootDictionaryTimeoutNumber 0 (Timeout)ArgumentsString `` (Custom Flags)DebugBoolean NO (Debug)DefaultLoaderStringboot.efi(Default Loader)BOOTX64.efi(NOTE: Should this be the value?)DefaultVolumeStringOSX(Default Boot Volume)LegacyStringPBR(Legacy)SecureBoolean NO (Secure)XMPDetectionString YES (XMPDetection)
-
NOTE: Uncheck
kext-dev-mode=1rootless=0 -
Clover Configurator, Cpu
-
See
Clover Configurator-3-Cpu.png -
Root/CpuDictionaryBusSpeedkHzNumber 1,000,000 (Bus Speed kHz)QEMUBoolean YES (QEMU)
-
Clover Configurator, Devices
-
See
Clover Configurator-4-Devices.png -
Root/DevicesDictionaryUSBDictionaryFixOwnershipBoolean NO (USB, Inject)InjectBoolean NO (USB, FixOwnership)
-
NOTE: Uncheck
ResetHDA, setAudioto empty, uncheckAdd ClockID -
Clover Configurator, Disabled Devices
-
See
Clover Configurator-5-Disabled Devices.png -
NOTE: All default values, nothing configured
-
Clover Configurator, Gui
-
See
Clover Configurator-6-Gui.png -
Root/GuiDictionaryMouseDictionaryDoubleClickNumber 500 (Double Click, default value)EnabledBoolean NO (Enabled, default value)MirrorBoolean NO (Mirror, default value)SpeedNumber 8 (Speed, default value)
ScanBoolean YES (Scan, default value)ScreenResolutionString1280x1024(Screen Resolution, default value)ThemeStringbootcamp(Theme, set from Clover install)
-
NOTE: All default values
-
Clover Configurator, Graphics
-
See
Clover Configurator-7-Graphics.png -
Root/GraphicsDictionaryInjectDictionaryATIBoolean NO (Inject ATI, default value)IntelBoolean NO (Inject Intel, default value)NVidiaBoolean NO (Inject NVidia, default value)
NVidiaSingleBoolean NO (Inject NVidiaSingle, default value)
-
NOTE: All default values
-
Clover Configurator, Kernel and Kext Patches
-
See
Clover Configurator-8-Kernel and Kext Patches.png -
Root/KernelAndKextPatchesDictionaryAppleRTCBoolean NO (Apple RTC)AsusAICPUPMBoolean NO (Asus AICPUPM, default value)DebugBoolean NO (Debug, default value)KernelCpuBoolean NO (Kernel CPU, default value)KernelHaswellEBoolean NO (Kernel HaswellE, default value)KernelLapicBoolean NO (Kernel LAPIC, default value)KernelPmBoolean NO (Kernel Pm, default value)
-
NOTE: All default values, except
Apple RTC, disableApple RTCmust be disabled -
Clover Configurator, Rt Variables
-
See
Clover Configurator-9-RtVariables.png -
Root/RtVariablesDictionaryBooterConfigString0x28(BooterConfig, default value)CsrActiveConfigString0x67(CsrActiveConfig, default value)MLBString `` (MLB, deleted value)ROMStringUseMacAddr0(ROM, default value)
-
NOTE: All default values, except
MLB, waschbenzin had value missing in config.plist -
Clover Configurator, SMBIOS
-
See
Clover Configurator-10-SMBIOS.png -
Root/SMBIOSDictionaryProductNameStringMacPro2,1(Product Name)FamilyStringMac Pro(Family)ManufacturerStringApple Inc.(Manufacturer, default value)BiosReleaseDateString07/02/07(Bios Release Date)BiosVendorStringApple Inc.(Bios Vendor)VersionString1.0(Version)ChassisManufacturerStringApple Inc.(Chassis Manufacturer)ChassisAssetTagStringPro-Enclosure(Chassis Asset Tag)ChassisTypeString06(Chassis Type)BoardTypeNumber11(BoardType)BoardManufacturerStringApple Inc.(Board Manufacturer)TrustBoolean NO (Trust, default value)
-
NOTE: MacPro2,1 corresponds to the original Mac Pro:
http://www.everymac.com/systems/apple/mac_pro/specs/mac-pro-eight-core-3.0-specs.html
-
Clover Configurator, System Parameters
-
See
Clover Configurator-11-System Parameters.png -
Root/SystemParametersDictionaryProductNameStringDetect(Inject Kexts, default value)InjectSystemIDBoolean YES (Inject System ID, default value)
-
NOTE: All default values
-
Save and exit Clover Configrator
-
Copy the USB disk to a raw disk image.
-
Find disk:
diskutil list
diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.3 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_CoreStorage Macintosh HD 499.4 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1 (internal, virtual):
#: TYPE NAME SIZE IDENTIFIER
0: Apple_HFS Macintosh HD +499.0 GB disk1
Logical Volume on disk0s2
653675B9-F842-47A2-A6FD-234EFB6B7648
Unencrypted
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *16.0 GB disk2
1: EFI EFI 209.7 MB disk2s1
2: Apple_HFS Install OS X El Capitan 15.7 GB disk2s2
- Run
dd:
sudo dd if=/dev/rdisk2 of=./clover-usb-disk.dd bs=1m
scp clover-usb-disk.dd USER@kvm2:/home/USER/Downloads
- On kvm host
sudo mv /home/USER/Downloads/clover-usb-disk.dd /vm/
- On Linux kvm host, create a disk image:
sudo qemu-img create -f qcow2 /vm/osx-disk0.qcow2 200G
- Ignore MSR readout on host by VM:
sudo su -
echo 1 > /sys/module/kvm/parameters/ignore_msrs
- On Linux kvm host, start qemu:
cd /vm/
sudo qemu-system-x86_64 \
-m 2048 \
-enable-kvm \
-cpu core2duo \
-M q35 \
-bios /vm/osx-ovmf-bios-src-build/bios.bin \
-device ahci,id=hdbus,bus=pcie.0 \
-device ide-drive,bus=hdbus.0,drive=Clover \
-drive id=Clover,if=none,file=/vm/clover-usb-disk.dd,format=raw \
-device ide-drive,bus=hdbus.1,drive=MacOSX \
-drive id=MacOSX,if=none,file=/vm/demo1-disk0.qcow2,format=raw \
-device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" \
-usb -device usb-kbd -device usb-mouse \
-serial stdio \
-vnc :1
- Connect a VNC client to Linux kvm host
- Tunnel 5901 over ssh:
ssh -L 5910:127.0.0.1:5901 KVM_HOST
-
Connect a VNC client to 127.0.0.1 5710
-
At Clover boot screen, choose
Boot OS X Install from OS X Install OS X El Capitan -
Error, black screen on VNC and this is printed out on the console:
Boot Failed. EFI Floppy
Boot Failed. EFI Floppy 1
KVM internal error. Suberror: 1
emulation failure
RAX=0000000000000000 RBX=000000007dd22018 RCX=0000000000000000 RDX=000000007e377e60
RSI=000000007e377e60 RDI=0000000000007297 RBP=000000007e3665b2 RSP=000000007ff5b7c8
R8 =000000007e37d4c0 R9 =0000000000000004 R10=000000007e336ffc R11=000000007ee4d2af
R12=000000007ee4a018 R13=000000007e36dff9 R14=000000007e33c98f R15=000000007e34d87b
RIP=00000000000b0000 RFL=00010246 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0030 0000000000000000 ffffffff 00c09300 DPL=0 DS [-WA]
CS =0038 0000000000000000 ffffffff 00a09b00 DPL=0 CS64 [-RA]
SS =0030 0000000000000000 ffffffff 00c09300 DPL=0 DS [-WA]
DS =0030 0000000000000000 ffffffff 00c09300 DPL=0 DS [-WA]
FS =0030 0000000000000000 ffffffff 00c09300 DPL=0 DS [-WA]
GS =0030 0000000000000000 ffffffff 00c09300 DPL=0 DS [-WA]
LDT=0000 0000000000000000 0000ffff 00008200 DPL=0 LDT
TR =0000 0000000000000000 0000ffff 00008b00 DPL=0 TSS64-busy
GDT= 000000007fed8f18 00000047
IDT= 000000007f7e6018 00000fff
CR0=80000033 CR2=0000000000000000 CR3=000000007fefa000 CR4=00000668
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000500
Code=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <ff> ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Please ensure you have at least EFI/CLOVER/drivers64UEFI/DataHubDxe-64.efi in your clover image
By adding this driver, the KVM internal error should dissapear