Jump to content

[Guide] 10.11 El Capitan On the Surface Pro 4


  • Please log in to reply
228 replies to this topic

#1
maj1es2tic

maj1es2tic

    InsanelyMac Protégé

  • Members
  • Pip
  • 29 posts

First off, thanks to everyone on the forums for their work in getting to this point. I used tricks and tips from a plethora of other posts here, so kudos! 

 

Here's a quick youtube video of me booting up:  https://www.youtube....h?v=plzlBvuybGg

 

Here's a 10 minute video of me installing OSX onto the SP4:  https://www.youtube....h?v=je2XGk3txjY

 

 

 

If anyone wants to join in the fun, or if you have issues, join me here on gitter and I'll try to help when I'm available.

 

*EDIT 1: The google download links should work now. I opened the folder to public.* 

 

*EDIT 2: If you want to get OSX working in a VM through Windows 10 on the SP4, follow this youtube howto. Everything works except for the cameras and bluetooth. Touch is pretty good. Just set resolution to 1/2 so you can see the screen properly. :-) 

 

*EDIT 3: Both Linux Mint and Ubuntu work natively with WIFI and Bluetooth. ;-) Neither work yet for the touchscreen.

 

 

 

What works:

 

Skylake CPUs - Not sure if the current Skylake hack from Pike is working fully or something else is going on, but it's sometimes choppy and hesitant. It could just be the graphics issue though.

Graphics - With really bad artifacts, but it does auto detect the Intel HD 520 chip.

SP4 Keyboard/Trackpad - it works, but maybe the touchpad could be tweaked a bit. I haven't tried the SP3 hacks for it yet.

USB 3.0 port -  Must boot off of USB, so if you want extra USB ports then plug in an adapter. Both 2.0 and 3.0 work for me.

Internal SSD - NVMe - I downloaded and tested the new NVMe driver from MacVidCards and it works! You can install directly to the SSD and boot from it.

Screensaver - Default OSX screensaver seems to work well. :-)

Audio - Used VoodooHDA.kext from SP3 files and added the 2 kext injections for that in the config.plist and it works. Screenshots at the end. The volume buttons on the keyboard are mapped automagically and work for mute/volume up and down. I haven't tried the rocker volume buttons on the side of the case yet. ***Look at the screenshots to see which output and input sources to use.***

 

 

What doesn't work or hasn't been tested:

 

Wifi - Marvell? Edimax? Either way, currently unsupported. I'm willing to help port code from a Linux driver if one exists.

Camera(s) - They are now i2c - There are 3 cameras. Front, Rear, and Hello IR Camera. Check out the IOReg I posted for more info.

Touchscreen - The GOOD news? It's not i2c anymore! The bad news, alex.daoud's driver he has been working on won't work. It's a PCI device and uses HID. Maybe there's a Linux driver that we can port?

Pen

Bluetooth

Sleep / Hibernate - The screen will go black after 3-5 minutes of non-user, and it WONT come back. It looks like it tries, but nothing happens. Reboot.

Power button - Holding it down for 10 seconds shuts it off. Touching it will turn off the screen. But it won't turn the screen back on. (sleep issue?)

Volume buttons - I don't know yet if they work because I didn't install the Audio driver yet.

Battery - It doesn't know when it's on power or battery. 

Power Management - Not sure if CPU stepping and such is working or not. Need to confirm that.

 

 

Odd things to note:

 

The Installer has absolutely NO artifacts. It's beautiful and clean. (Not odd, I found out that the installer does not boot graphics acceleration). 

OSX randomly kicks me back out to the login screen.

 

 

PRE OSX INSTALL:

 

Before you do anything, you have to turn off Secure boot on your SP! Before you do that MAKE SURE you either DO NOT have BitLocker disk encryption turned on, OR that you have the unlock key/code for it!!! It bit me hard when I turned it off. I had to restore windows from factory because my microsoft login was bad.

 

pre1) Turn off BitLocker or make sure you have your key/code available.

 

pre2) Shut down your SP4.

 

pre3) Boot up your SP4 into BIOS. To do this, Hold down the Volume up Rocker button and then Hit the power button. Keep holding the rocker until you see the initial boot screen and let go. It will then go into the bios.  If it doesn't work, do it a few times. It's all about timing...

 

pre4) Go to Security, Secure Boot, Change configuration.  Turn it off.

 

pre5) Toggle TPM off.

 

pre6) click on Exit and restart.

 

 

From now on when you boot, it will Show a big red banner above the Surface logo to annoy you and warn you that you're not secure. :-)

 

pre7) If you decided to leave bitLocker on, boot into windows and it will make you enter the key/code ... If you lost it, log into your Microsoft account and hopefully that will recover it. If not, you're screwed like I was and you have to restore windows from the restore partition, losing all of your windows data. I didn't care, because it's windows and I'm trying to get OSX installed! lol

 

 

pre8) If you plan on installing to the SSD you also need to shrink your SSD in windows and make a new partition (NTFS is fine) so that the installer will see it. I tried just shrinking the windows partition and not doing anything with the empty space, but the Installer wouldn't see any empty space for some reason and not let me do anything with it. YMMV.

 

 

OSX INSTALL:

 

 

Here's what I did to get it bootable... From here, hopefully others will chip in with some tweaks / drivers / etc. to make it run smoothly and stable. :-)

 

 

1.) Made sure my macbook was on 10.11.2 and then deleted El Capitan Installer from Applications and re-downloaded it from Apple Store.

 

2.) Ran the following command on a freshly formatted USB stick. (The USB should be labeled "Install", otherwise change the command below to suite your needs)

sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/Install --applicationpath "/Applications/Install OS X El Capitan.app" --nointeraction 

3.) Downloaded the latest Clover v3330 and installed it to the USB disk with default settings, UEFI... You can choose whatever install options you want, if in doubt, and just copy my EFI folder to your USB.

 

4.) Lots of tweaks to get it to boot. It took me a while to figure out why I was getting a black screen before Clover, and then after that, another black screen while trying to select the Installer. So much frustration, I almost gave up.

 

TL;DR, just use my config.plist file posted in the files section.

 

4a.) In EFI/drivers64UEFI, this is what I have:

 

   DataHubDxe-64.efi

   FSInject-64.efi

   OsxAptioFixDrv-64.efi

   OsxFatBinaryDrv-64.efi

   PartitionDxe-64.efi

   VBoxHfs-64.efi

 

4b.) In EFI/kexts/10.11, this is what I have (FakeSMC.kext came from #####, ACPI and PM came from SurfacePro3 install instructions, USBInject came from Skylake install instructions):

 

   ACPIBatteryManager.kext

   AppleIntelCPUPowerManagement.kext

   FakeSMC.kext

   GenericUSBXHCI.kext

   USBInjectAll.kext

   *VoodooHDA.kext (Updated 2015-12-16 to include this for audio fix)

   NVMeGeneric.kext

 

 

 

5.) Boot up, in Clover select to Install OSX.

 

6.) Either Partition the USB stick and then Install it to the new partition on the USB stick, OR, partition the NVMe SSD and install it there. Your choice.

 

7.) Reboot and see the pretty artifacts because of the Intel HD 520 graphics card. :-)

 

 

 

 

FILES:

 

IORegistryExplorer File   (So you can look at all of the hardware and maybe help get drivers up and working)

 

DSDT.aml (I modified this a little bit, adding DTGP funciton in "\" and also adding OSYS for Darwin )

 

My EFI Folder (if you're impatient and just want to get it running now.)

 

NVMe driver (They said you can't boot off of it, you can only use it for data storage... I haven't tested booting from it to verify.)

 

config.plist (Updated 2015-12-16 to include Audio fix)

 

 

SCREENSHOTS:

 

4k9t7t.png

 

 

i4lmpi.png

 

 

2url0cz.png

 

 

dy0fa8.png

 

 

cjk2g.png

 

 

25a251f.png

 

 

33ndf95.png

 

 

25jl.jpg

 

 

10fp15c.jpg

 

 

2ja1le.jpg

 

 

New Screenshots with NVMe driver detecting the internal SSD!

 

 

dnetra.png

 

 

zjurms.png

 

 

20ketc0.png

 

 

2eba441.png

 

 

AUDIO working using VoodooHDA.kext:

 

 

10htyyx.png

 

 

1zd9mo3.png



#2
macspike

macspike

    InsanelyMac Protégé

  • Members
  • PipPip
  • 74 posts
  • Gender:Male

Hey,

 

This is incredible news. I am also working to get the Surface pro 4 run OSX.

I really love the new Surface Pro 4, but it will take some time to get OSX run smooth and we all know that Wifi never will work.

 

I will be testing a little more and keep you updated.

 

Well done



#3
scubasteve04

scubasteve04

    InsanelyMac Protégé

  • Members
  • Pip
  • 43 posts
  • Gender:Male
  • Location:San Diego
Great work!

I'll try this on my i7 256gb 16gb ram SP4 when I get home and let you know how it goes. You've done a lot of the leg work which is great! And FAST! So thank you. I just sold my SP3 too get the 4, but I'm already missing the Win10/OSX dual boot.

Thanks again. Just know your work is appreciated!

#4
maj1es2tic

maj1es2tic

    InsanelyMac Protégé

  • Members
  • Pip
  • 29 posts

I have an Intel Iris GPU in my current 13" macbook, so I modified the DSDT to fake it, and it failed to boot. So, we might need to wait on 10.11.3 to get better graphics support. Unless someone else has a better hack. :-)  It might work if it were being faked as an older Intel HD? I don't know. :-)



#5
maj1es2tic

maj1es2tic

    InsanelyMac Protégé

  • Members
  • Pip
  • 29 posts

Just got sound working. I'll update the initial Post with specifics. It's basically the same hack as the SP3.



#6
scubasteve04

scubasteve04

    InsanelyMac Protégé

  • Members
  • Pip
  • 43 posts
  • Gender:Male
  • Location:San Diego

Mak1es2tic - 

 

     when trying too boot the OS X usb installer i get an error right away saying :

 

 

"this version of OS X is not supported on this platform!

 

Reason: MAC-65ce76090165799a

 

 

any thoughts?  i ran the tutorial correctly.  only difference is i have the i7 and you have the i5  any chance that could be it?

 

 

Nevermind - I figured it out.  I think its because I have 10.11...   I needed too update.  so I guess I didn't follow it correctly.  ill check back shortly


Edited by scubasteve04, 17 December 2015 - 12:19 AM.


#7
maj1es2tic

maj1es2tic

    InsanelyMac Protégé

  • Members
  • Pip
  • 29 posts

Did you use my patched DSDT.aml file? It could possibly be the FakeSMC.kext that Clover installs? Download the EFI folder I have in the link. And check the sizes. I think the Clover one was 122kb and the one I use from another source is 150kb. 

 

If all else fails, download my EFI folder from the link and copy it over the existing one on your USB drive. You'll probably have to find it now and moutn it. Plug in your USB and run "diskutil list" to find it. then  "diskutil mount /dev/diskXs1"  where X will be your disk number for your USB drive.  Make sure not to overwrite the files for your main hard drive. :-)

 

 

OH oh oh... Also, you'll have to turn off secure boot stuff in your bios! I forgot all about that part. It BIT me big! IF you have bitlocker installed, make sure you have a backup of your KEYS! Because if you go into the bios and make any changes at all, you'll be LOCKED OUT of your windows install!!! 

 

 

I updated the first post to include the steps to turn off Secure boot. 

 

I added a link to gitter chat if you run into any more issues. It's at the top post.



#8
scubasteve04

scubasteve04

    InsanelyMac Protégé

  • Members
  • Pip
  • 43 posts
  • Gender:Male
  • Location:San Diego

sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/Install --applicationpath "/Applications/Install OS X El Capitan.app" --nointeraction

 

you forgot a "\" after the first "El"   -- I only point it out in case someone gets stuck there.   you've done so much that I feel like a jerk pointing it out.  haha



#9
blankmac

blankmac

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 162 posts
  • Gender:Male

Your IOReg has some interesting items in it for sure.  I won't be able to experiment myself until after the holidays unfortunately.  Really awesome work tho!  The accelerator appears to be loading and even though you are attempting to inject 0x19160000 for an ig-platform-id, you can see that it is matching on 0x19120000 in the framebuffer by looking at the connector data.  Regardless of that, it may be possible to clean up artifacts by upping the cursor bytes.  Right now it's at 21mb, you might try 34mb to see if that helps by adding --

 

AppleIntelSKLGraphicsFramebuffer

Find - 0000121901030303000000040000200200005001

Replace - 0000121901030303000000040000200200002002

 

or if you prefer

 

AppleIntelSKLGraphicsFramebuffer

Find -    AAASGQEDAwMAAAAEAAAgAgAAUAE=

Replace -  AAASGQEDAwMAAAAEAAAgAgAAIAI=

 

 

Edit** Also, the MacVidCard site is referring to not being able to boot a real Mac via their NVMe driver, it very well may work on a Hack because of Clover.



#10
maj1es2tic

maj1es2tic

    InsanelyMac Protégé

  • Members
  • Pip
  • 29 posts

Thanks, scubasteve04. I fixed the command. :-)


Thanks, but that didn't seem to do anything noticable. :-(

 

Your IOReg has some interesting items in it for sure.  I won't be able to experiment myself until after the holidays unfortunately.  Really awesome work tho!  The accelerator appears to be loading and even though you are attempting to inject 0x19160000 for an ig-platform-id, you can see that it is matching on 0x19120000 in the framebuffer by looking at the connector data.  Regardless of that, it may be possible to clean up artifacts by upping the cursor bytes.  Right now it's at 21mb, you might try 34mb to see if that helps by adding --

 

AppleIntelSKLGraphicsFramebuffer

Find - 0000121901030303000000040000200200005001

Replace - 0000121901030303000000040000200200002002

 

or if you prefer

 

AppleIntelSKLGraphicsFramebuffer

Find -    AAASGQEDAwMAAAAEAAAgAgAAUAE=

Replace -  AAASGQEDAwMAAAAEAAAgAgAAIAI=


Yeah, I saw a few posts from people who said it was bootable for them. It makes sense, if the bios is already booting off of an NVMe device, there's no reason that OSX wouldn't be able to. As long as you inject the driver early enough, I would suppose, and clover will do that with ForceKextToLoad or some such variable. 

 

 

 

Edit** Also, the MacVidCard site is referring to not being able to boot a real Mac via their NVMe driver, it very well may work on a Hack because of Clover.



#11
blankmac

blankmac

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 162 posts
  • Gender:Male

 

Thanks, but that didn't seem to do anything noticable. :-(

 

 

Ok, may be something else then.  You might try patching IOKit for a higher pixel clock, or possibly upping the DVMT prealloc to 96mb or 128mb in the framebuffer.  And, of course, it may just be that the framebuffer is still not completed given that there aren't any mac using these IGPUs yet, lol.



#12
maj1es2tic

maj1es2tic

    InsanelyMac Protégé

  • Members
  • Pip
  • 29 posts

I just installed OSX onto the NVMe SSD and it boots fine from there. So much faster than booting off of the USB stick. ;-)

 

For some reason the VoodooHDA driver won't load now though. Not sure what that's about.



#13
scubasteve04

scubasteve04

    InsanelyMac Protégé

  • Members
  • Pip
  • 43 posts
  • Gender:Male
  • Location:San Diego
ok so I got this working as about as well as you have. Here are a couple more things I found

1. I have 16gb of memory. Only 8gb showing
2. Video card is showing iris 550. I have a version 540

#14
maj1es2tic

maj1es2tic

    InsanelyMac Protégé

  • Members
  • Pip
  • 29 posts

ok so I got this working as about as well as you have. Here are a couple more things I found

1. I have 16gb of memory. Only 8gb showing
2. Video card is showing iris 550. I have a version 540

 

EDIT: Also, I'm super jealous of your i7 / 16gb... I kind of wish I spent the extra money on it now. :-) The i5/8gb is actually the same specs as my current Macbook pro 13" (except for the newer skylake processor, of course)

 

For the memory, open up your config.plist and take a look near the bottom in the SMBIOS. you'll likely need to modify this section in some way. If you look at the screenshot of mine, I had to tell it there are 4 slots or else the 2nd chip won't show up at all. But there really aren't 4 slots in there:

 

 

EDIT 2: Also note, in my config.plist, I have it set to 2133 mhz, and DDR4. That is incorrect for my model. Not sure how it worked at all, but I have since changed it to back to DDR3 and 1867 which is what mine is. Yours might be better. You can take out this whole section and boot up once, and it 'should' detect the proper memory specs, although if it's like mine, it will only detect one chip.  From there, you can add it back and try changing the channels or slots until your memory shows up.  Also note that I have my memory in slot 0 and slot 2. Might be different for yours. :-)  All good things to note and document for others! :-)

		<key>Memory</key>
		<dict>
			<key>Channels</key>
			<integer>2</integer>
			<key>SlotCount</key>
			<integer>4</integer>
			<key>Modules</key>
			<array>
				<dict>
					<key>Frequency</key>
					<integer>1867</integer>
					<key>Part</key>
					<string>CT2C8G4DFD8213</string>
					<key>Serial</key>
					<string>0200020B000C020C</string>
					<key>Size</key>
					<string>4096</string>
					<key>Slot</key>
					<integer>2</integer>
					<key>Type</key>
					<string>DDR3</string>
					<key>Vendor</key>
					<string>Samsung</string>
				</dict>
				<dict>
					<key>Frequency</key>
					<integer>1867</integer>
					<key>Part</key>
					<string>CT2C8G4DFD8213</string>
					<key>Serial</key>
					<string>0200020B000C020B</string>
					<key>Size</key>
					<string>4096</string>
					<key>Slot</key>
					<integer>0</integer>
					<key>Type</key>
					<string>DDR3</string>
					<key>Vendor</key>
					<string>Samsung</string>
				</dict>
			</array>
		</dict>

For the processor, did you copy my DSDT in to /EFI/ACPI/patched/? If so, you'll need to modify it to fit your model I would assume.  Also, in config.plist, locate this and change it:

<key>ig-platform-id</key>
<string>0x19160000</string>
Here's a list of options from Pike that it 'could' be. I'm not sure which model is yours. Trial and error?  If you could boot up and run IORegistryEditor, and also perform the Clover steps (i think it's F2 or something easy like that) to save your own DSDT. Save them somewhere and I'll help take a look. That should show you your Real device IDs and vendor IDs to put in for this value.
 
[ 1] : 0x191e0000 – Skylake ULX GT2
[ 2] : 0x19160000 – Skylake ULT GT2  <--- SP4 HD 520
[ 3] : 0x19260000 – Skylake ULT GT3
[ 4] : 0x191b0000 – Skylake HALO GT2
[ 5] : 0x19120000 – Skylake Desktop GT2
[ 6] : 0x19020001 – Skylake Desktop GT1
[ 7] : 0x19170001 – Skylake Desktop GT1.5
[ 8] : 0x19120001 – Skylake Desktop GT2
[ 9] : 0x19320001 – Skylake Desktop GT4
[10] : 0x19160002 – Skylake ULT GT2
[11] : 0x19260002 – Skylake ULT GT3
[12] : 0x191e0003 – Skylake ULX GT2


#15
scubasteve04

scubasteve04

    InsanelyMac Protégé

  • Members
  • Pip
  • 43 posts
  • Gender:Male
  • Location:San Diego

maj1es2tic

 

with a little research I found that my RAM (16gb) is 2 8gb chips on channels 0 and 2.  also its LPDDR3 at 1867MHz - that's fixed, now shows 16gb or ram instead of 8gb and you can tell that it picked up the other 8gb because its much faster now - THANK YOU

 

iris 540 from 550 is where I'm stuck.  I'm going too give editing the dsdt a try but I'm sending you a link too my DSDT if youd like too help me fix that (would be very appreciative)

 

from what I found I have the Skylake U GT3e if that helps

 

also, I'm not sure but it appears only 3 of the 4 processors are running.  is that happening with yours?

 

 

Thank you again for all your help. 

 

p.s.  hows it looking with the sleep function?... its tough reading and trying too learn when you only have 3-5 minutes before it goes too sleep and you have too restart.  I turned sleep off but still... :)  also, any luck with the weird graphics issue? 

 

also, my USB wifi and Bluetooth worked with no issues.  we are getting closer :) :)



#16
maj1es2tic

maj1es2tic

    InsanelyMac Protégé

  • Members
  • Pip
  • 29 posts

scubasteve04,

 

What is your processor model? I thought it was the i7 6650U ?



#17
scubasteve04

scubasteve04

    InsanelyMac Protégé

  • Members
  • Pip
  • 43 posts
  • Gender:Male
  • Location:San Diego
Yeah that's correct. i7 6650u

#18
maj1es2tic

maj1es2tic

    InsanelyMac Protégé

  • Members
  • Pip
  • 29 posts

Then you have the Intel Iris Pro 540 GPU, not the 550.

 

 

Intel's Site explaining the CPU

 

 

And it's Device ID is :  0x1926

 

So you should edit your config.plist to this, but i don't expect any change in artifacts :-(  I also have weird CPU issues, where it seems like it's not running on all cylinders as you say. I'll have to look at the resources when I boot it up again and check it out.

<key>ig-platform-id</key>
<string>0x19260000</string>

I just booted up into LinuxMint, live cd. my keyboard/mouse doesn't work, but WIFI appears to work. It popped up and told me networks were available. That means there's a linux driver in there that 'could' be ported to OSX. ;-) If I were a better programmer... 



#19
sam352

sam352

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts

Thanks for this guide, i'll have my SP4 on the 25th :(

Your work is awesome, i guess you will update it !

I'm waiting, at least, for fixing artifacts, we can use it as "today computer" with it i think !



#20
maj1es2tic

maj1es2tic

    InsanelyMac Protégé

  • Members
  • Pip
  • 29 posts

How do you get those numbers? I would like to try different settings ( 48mb, 64mb, 96mb, 128mb, etc) , but am pretty much useless when it comes to Hex and binary things. :-) 

 

Your IOReg has some interesting items in it for sure.  I won't be able to experiment myself until after the holidays unfortunately.  Really awesome work tho!  The accelerator appears to be loading and even though you are attempting to inject 0x19160000 for an ig-platform-id, you can see that it is matching on 0x19120000 in the framebuffer by looking at the connector data.  Regardless of that, it may be possible to clean up artifacts by upping the cursor bytes.  Right now it's at 21mb, you might try 34mb to see if that helps by adding --

 

AppleIntelSKLGraphicsFramebuffer

Find - 0000121901030303000000040000200200005001

Replace - 0000121901030303000000040000200200002002

 

or if you prefer

 

AppleIntelSKLGraphicsFramebuffer

Find -    AAASGQEDAwMAAAAEAAAgAgAAUAE=

Replace -  AAASGQEDAwMAAAAEAAAgAgAAIAI=

 

 

Edit** Also, the MacVidCard site is referring to not being able to boot a real Mac via their NVMe driver, it very well may work on a Hack because of Clover.







0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2017 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy