Jump to content

Dell XPS 15 9560: 4K Touch, 1TB SSD, 32GB RAM, 100% AdobeRGB​

* * * * * 3 votes

  • Please log in to reply
171 replies to this topic

#1
KNNSpeed

KNNSpeed

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 109 posts

Dell XPS 15 9560: 4K Touch, 1TB SSD, 32GB RAM, 100% AdobeRGB​

 

Current OS: Sierra 10.12.5



laptop-xps-15-pdp-polaris-01-usca.jpg
Image Source: Dell


CPU:

Intel Core i7-7700HQ (2.8-3.8 GHz)​

GPU:

Intel HD Graphics 630 (GTX 1050 disabled)​

RAM:

Crucial 32GB DDR4 2400MHz

Storage:

1TB NVMe Toshiba XG4 THNSN51T02DUK​

Display:

4K Touch, 100% AdobeRGB​

Audio:

Realtek ALC298 (ALC3266 according to Dell)​

Wireless:

Dell Wireless 1830 (DW1830)*​

Battery:

97Wh (8.2Ah @ 12V)​

Thunderbolt 3:

Intel JHL6240​

laptop-xps-15-pdp-polaris-12.jpg
Image Source: Dell



The laptop I’ve always wished Apple would make
(…and one which totally consumed my life for the past 3 weeks)

Warning:
This setup is not supported on drives that don’t support 4k sector sizes (e.g. Samsungs), which Mac OS uses natively. Do not blame me for data loss/corruption. This install is also not for the faint of heart, since setup requires booting to command-line UEFI tools.

*Wi-Fi on the stock Killer 1535 does not work, even though Bluetooth does. I installed a DW1830 card on eBay and bought an extra antenna for it (https://www.amazon.c...onymacx86com-20). Proper installation of the antenna is required to get 1.3Gbps Wi-Fi—there is room next to the existing antennas, but you will need to perform a little surgery on the antenna cover to get it to fit. Dell’s Service Manual is necessary for the procedure, which does involve removing the display (http://topics-cdn.de...Guide_en-us.pdf). The prerequisites are mandatory.

Alternatively, the DW1560 is a 2-antenna card like the Killer (max 5GHz wireless-AC speed is 867Mbps). It will need an extra patch. I think you need FakePCIID_Broadcom_WiFi.kext in Clover/Kexts/Other (from https://github.com/R...S-X-Fake-PCI-ID) and this patch in the Clover/config.plist "KextsToPatch" section:

<dict>
    <key>Comment</key>
    <string>AirPortBrcm4360 - fcvo</string>
    <key>Disabled</key>
    <false/>
    <key>Find</key>
    <data>gflSqgAAdSk=</data>
    <key>Name</key>
    <string>AirPortBrcm4360</string>
    <key>Replace</key>
    <data>gflSqgAAZpA=</data>
</dict>

(Credit to feartech in the thread "[solved] BCM94352Z card help" at tonymacx86.com for spelling it out.)

Highlights:

  • Idle power consumption is ~1.6W
    • Battery life’s >6 hrs with "office use" (web/docs)
    • It might actually be more; it feels more like >8 hrs
  • All SSDT DSLs are commented with descriptions of what's going on
  • All 8 EC temp sensors show up in HWMonitor
    • FakeSMC ACPISensors doesn't work the way it's supposed to, so I had to make the EC’s temperature sensors show up as fans. All that really means is the unit is shown as "RPM" instead of "C", but in your head just read it as "C"
  • The USB part of the Type-C port is perfect
    • Bear in mind there is a natural delay between unplugging/plugging in the device (it's a hardware thing; the controller's a bit slow). Just wait 2 seconds between plugs and all should be fine. Alternatively, watch RP15 in IORegistryExplorer to see what's going on in the background when something gets unplugged.
  • Thunderbolt works reliably if plugged in pre-boot and left plugged in until shutdown.
  • All kexts are loaded through Clover, and SIP is enabled
    • Recovery HD works fine as far as I can tell
  • Brightness is saved between reboots
  • Lid wake works properly
    • I haven't had the "Disk not ejected properly" error in many sleeps now
  • Power Nap works
  • Combo Jack has full in/out/headset support
  • 32GB RAM, a touchscreen, and 100% AdobeRGB

Things that don't work:

1. Hibernate

a. I’m not even going to try with the amount of trial and error it would take, but if you want to take a stab at it, go for it.

b. Contrary to what I’ve stated in the past, sleepimage is actually not all zeroes. I really don’t know what’s wrong at this point.​

 

2. GTX 1050

a. This laptop uses Optimus switching, which doesn’t work on Macs.

b. Support for Optimus would require emulating the GMUX, sort of like how FakeSMC emulates the SMC (not something I can do)​

 

3. Fingerprint sensor

a. It is, however, seen by the OS as a USB device.

b. Touch ID is handled by a proprietary chip similar to GMUX/SMC called ASOC in ACPI. I think this chip is actually connected over UART on Macs, but I’m not 100% sure.​

 

4. SD Card

a. This just needs a driver actually finished for it, and then it will work.

b. Vendor/Device ID: 10EC 525A (Realtek RTS525A)

 

5. Proper Thunderbolt hot plug (USB-C is fine)

a. I’m trying to get this to work. It sometimes works after a long sleep (don’t try it: device removal will hard-lock and crash, guaranteed).

b. It’s not easy, and I could sure use some help. SSDT-TYPC.dsl has my most successful attempt in it.​

 

Things that work:

1. Pretty much everything else! It’s like a MacBook Pro with a touchscreen.​

 

Notes:
Of all the things that don’t work, 4 & 5 have the highest chance of being made to work. 4 just needs this (https://github.com/s...3/Dell-XPS-9550) or this (http://www.insanelym...c-card-readers/) to be finished/to add support for the card reader. It would be super awesome if someone who knows C++ & how to code kexts could help those guys...

Useful keys to know: On boot, pressing F2 goes to BIOS setup, while F12 brings up the boot device menu (which also has an option to enter BIOS setup).

The attached Clover folder includes text documents that briefly describe what each kext and SSDT does to the best of my understanding. It also has some snippets like how to convert hex to base64 by hand and what that mysterious “booterconfig” Clover option does (Tip: it’s actually a bitmask).



laptop-xps-15-pdp-polaris-02.jpg
Image Source: Dell



Before you install:
People have been reporting trouble booting with the included config.plist--that makes sense, the serial number, board serial number, and smUUID are obviously junk. You need to provide a proper set for a MacBook Pro (13,3).

Install:

1. Update SSD firmware

a. In Windows, the SSD MUST be updated to the latest firmware. This is EXTREMELY important, otherwise it might disappear from the system on step 4 (4k sector patch) due to a nasty bug that is fixed in the latest firmware.

b. Gotten here, in the “Serial ATA” section: http://www.dell.com/...-laptop/drivers

 

2. Update BIOS to v1.3.4

a. These SSDTs will work on BIOS v1.3.3, but 1.3.4 fixes a very serious Kaby Lake Hyperthreading bug.

b. Gotten from the same link as step 1, but from the “BIOS” section.​

 

3. BIOS Settings (only relevant settings listed):

a. General

i. System Information

1. Check that Video Memory is already 64MB (scroll down to the bottom)​

ii. Advanced Boot Options (all off, UEFI Network Stack might be fine either way)​

b. System Configuration

i. SATA Operation (AHCI)

1. Will break Windows boot​

ii. Drives (all on)

iii. SMART Reporting (on)

iv. USB Configuration (all on)

v. Dell Type-C Dock Configuration (on)

vi. Thunderbolt Adapter Configuration (all on, no security)

vii. USB PowerShare (on)

viii. Audio (all on)

ix. Keyboard Illumination (whatever; this gets overridden by the F10 key)

x. Touchscreen (on)

xi. Miscellaneous Devices (all on except SD Card Read-Only Mode)​

c. Security

i. CPU XD (on)​

d. Secure Boot

i. Secure Boot Enable (disabled)​

e. Intel Software Guard Extensions

i. Intel SGX Enable (Software-Controlled)​

f. Performance

i. (Everything on/enabled)​

g. Power Management

i. USB Wake Support

1. (USB Wake Support = off)

2. (Wake on Dell USB-C Dock = on)​

ii. Wake on WLAN (off)

iii. Block Sleep (off)​

h. Virtualization Support

i. (Everything on)​

i. The rest is personal preference.​

 

4. Apply 4k sector patch

a. Non-Samsungs only!

i. I can only verify the Toshiba XG4.​

b. In order for native NVMe drivers to work, the drive must be set to use 4k/“Advanced Format” sector sizes instead of legacy 512-byte sectors.

c. wmchris made a nice tutorial for this: https://github.com/w...er/4k_sector.md

i. It doesn’t have to be pure Ubuntu; I used Linux Mint.​

 

5. Enable Intel SpeedShift (setup_var 0x4BC 0x1)

a. To enable Kaby Lake hardware P-states, which Dell has decided it wouldn’t add an option to do in the GUI (http://en.community....3518/t/20007733), requires a command-line setting. It’s a setting just like any other, so resetting BIOS to default settings will clear this bit and it would then need to be reapplied.

b. Rockstar75 made a nice tutorial: http://forum.noteboo...4#post-10454342

i. Don’t re-enable Secure Boot, obviously.​

 

6. Clover USB setup

a. Follow RehabMan’s guide, "Booting the OS X installer on LAPTOPS with Clover," at tonymacx86.com to get OS X onto a USB drive.

i. Start at "Installing Clover to USB," and follow "Option 2."

ii. Stop at “Preparing essential kexts,” and skip to "Building the OS X installer."

iii. Follow "createinstallmedia method," and stop at "BaseBinaries clone method."

iv. No other install method is supported.​

 

7. Copy attached Clover folder to the USB drive’s EFI partition

a. “diskutil mount EFI” in Terminal should mount it.

b. Delete the default “Clover” folder and just use the attached one instead; it already contains all kexts, SSDTs, and config.plist options needed. That’s basically the whole point of this.​

 

8. Copy the Clover installer package to “Install OS X” partition

a. Remember: no Wi-Fi without a card swap!

b. This is the only way to install Clover onto the main system if wireless doesn’t work, and it will only work for the DW1830 with the attached folder.​

 

9. Reboot and boot from the USB drive

a. Until post-install is finished, adding “-v” to the boot arguments is highly recommended. It’s how I keep track of whether I’m booting from USB or the main drive.​

 

10. Use Disk Utility to format the drive so that the installer can see it

a. Recommended filesystem: Mac OS Extended, Journaled—NOT case-sensitive.

i. The case-sensitive one tends to cause a lot of problems with programs. It’s not worth it.​

b. The partition style of the overall disk should be GPT (GUID Partition Map).​

 

11. Install normally and, on reboot, boot from the USB drive

a. From the USB drive’s Clover menu, boot to the SSD.​

 

Post Install:

1. Install Clover to ESP

a. From RehabMan’s install guide, just this part matters (my edits in bold):

b.

Installing to the HDD/SSD after installation is very similar to installing to the USB. Refer back to this section when you get to that stage.

Notes on SSD install:
- you might want "EmuVariableUefi-64.efi", but it would depend on whether native NVRAM works for you (most Skylake hardware has non-functional native NVRAM with OS X/macOS)
- select "Install RC scripts on target volume" and/or "Install all RC scripts on all other boot volumes", but not for USB
- selecting "Install Clover Preference Pane" is optional
- there are also some "Optional RC Scripts" you might want to read about
- if you're installing Clover legacy, check "Install Clover in the ESP"

After making your selections you can continue to "Install" the Clover bootloader to your SSD. Make sure the install location is the Mac partition, so that Clover can properly auto-install to the EFI System Partition (ESP) and put its RC scripts on the Mac partition.

i. Original install guide by RehabMan, "Booting the OS X installer on LAPTOPS with Clover," at tonymacx86.com

 

2. Copy Clover folder from USB EFI partition to system ESP

a. “diskutil mount EFI” will mount the USB drive’s EFI partition instead of the system partition. “diskutil mount disk0s1” will always mount the EFI partition for disk 0 (as reported by “diskutil list”) on a GPT disk.​

 

3. Unplug the USB drive and reboot to make sure the SSD is bootable

a. If not, start over from “Install” section, step 11.

b. If the obviously junk serial numbers cause a problem, see step 6 below and then come back here.​

 

4. Run install.sh from within the AudioFix folder

a. Use Terminal to “cd” into the folder, first!

b. This enables audio to persist after sleeping in the few instances where it stops working. More details are included in the “AudioFix” folder.​

 

4. Use this for audio, and just delete the AudioFix folder: http://www.insanelym...rgb​/?p=2458025

 

5. Run disablehibernate.sh

a. Hibernation doesn’t work, so it must be disabled. Skip this step if you want to try and get hibernation working.​

 

6. Serial numbers are obviously bunk

a. Get yer own!​

 

7. [Optional] Flip Alt and CMD in keyboard preferences

a. System Preferences → Keyboard → Modifier Keys → swap Option and Command keys for the keyboard to make more sense.

i. This does break some of the predefined shortcut mappings in VoodooPS2Controller.

ii. It also messes with muscle memory a bit…​

 

8. [Optional] Customize shortcuts in System Preferences -> Keyboard

a. VoodooPS2Controller (this is syscl’s version) maps these swipes to keyboard combos:

i. 4-finger up/left/right/down

ii. 3-finger up/left/right/down/tap

iii. 2-finger left/right (I recommend remapping these since they tend to cause extraneous 0s and 9s to be pressed if left unmapped)​

 

9. [Recommended, but optional] Install HWMonitor

a. I managed to get all the Embedded Controller-reported sensors to work… As long as they show up as fans. It required modding ACPISensors, as documented in “Kext Descriptions.txt” in the attached archive. Just imagine that “rpm” is actually “C” and not “rpm.” I haven’t been able to figure out what temperature B0D4 actually measures, though… :/​

 

10. Reboot for good measure

a. If it worked, remove “-v” from config.plist.

 

11. Kick back, finish reading this post, and then read included text docs and DSL sources to know what's going on behind the scenes. That's It!​

 

A Few Important Notes:

1. DO NOT HOT PLUG A THUNDERBOLT DEVICE. Though Thunderbolt hot plug sometimes works after a long sleep, removal of the device WILL crash the system. I want this fixed so badly… USB-C, however, works flawlessly.

 

2. Note that there is a ~2 second delay between when you unplug one USB-C device and when you can plug in another. I usually open IORegistryExplorer and watch RP15 to know when everything’s all clear/if the plug-in messed up. This behavior is normal, even under Windows (it’s because the laptop turns off the type-C controller when not in use, which Apple’s current laptops don’t do—the older ones did, e.g. the Late 2013 MBP).

 

3. Ignore the "Card" icon in the menubar. You won't want to get rid of it in the event that the SD reader or reliable Thunderbolt hot plug can be made working. Without any experimental driver installed, it can also be used to turn off the SD reader from the OS (with an experimental driver it tends to hard-lock and crash the system—which is the same behavior Thunderbolt unplug causes, by the way).​

 

Known bugs:

1. Audio sometimes disappears after sleep. Sleep again or plug/unplug something into the headphone jack and it'll come back.

a. This just means ALCPlugFix "missed" its patch on wake. Though, ever since I switched to the new audio layout 28 I haven’t run into it. Might just be good luck. Or maybe it’s fixed… O_o

1. seems to be fixed with http://www.insanelym...rgb​/?p=2458025 

 

2. Thunderbolt device removal causes a hard-lock and crash​

 

Miscellaneous Information:

  • Sleeping the laptop will stop powering USB devices.
    • BUT, if you were to, for example, plug a phone in while the laptop is already asleep, the phone will charge. (Enabling Power Nap will interrupt and disconnect the charge, however.)
  • To save brightness between reboots, "Automatically adjust brightness" in System Preferences → Displays MUST be checked (there is no light sensor, so it won't actually automatically change)

For more in-depth details of what was done, see the included text documents. Also, FakeSMC and ACPISensors (one of the FakeSMC modules) were modded for this, and blindly overwriting them might break things.



laptop-xps-15-pdp-polaris-10.jpg
Image Source: Dell


Credits and Special Thanks:

  • Dell for making this laptop
  • Apple for Mac OS
  • RehabMan for so many detailed posts, enormous collection of SSDT files, kext development, and being overall incredibly helpful throughout this whole process
  • Pike R. Alpha for his in-depth blog and the 0xE2 patch (among being the source of many other developments and patches)
  • The Clover team for the Clover bootloader
  • netkas, kozlek, and Slice for FakeSMC
  • wmchris for his initial XPS 9550 write-up
  • Jonny4911 for posting his 9560 setup and his version of the AudioFix folder
  • syscl for a lot of work into the XPS 9360 and his build of VoodooPS2Controller
  • darkhandz for his XPS 9550 repo
  • toleda and goodwin_c for audio, ALCPlugFix
  • goodwin_c for HWP
  • dpassmor for the Thunderbolt/USB-C ExpressCard trick
  • vit9696 for Lilu and AppleALC
  • PMHeart for CoreDisplayFixup
  • lvs1974 for NvidiaGraphicsFixup
  • darkvoid for Wi-Fi patches
  • filequit for the 5GHz global channel bonding patch
  • denskop for the “Boot Graphics Glitch” patch
  • netkas, kid2010, and syscl for the Thunderbolt 3 blacklist bypass patch

Those whose work I used or modified are mentioned on the specific patches in config.plist, in the corresponding SSDT, or are linked to in “Kext Descriptions.txt.” This build would not have been possible without the efforts of every person listed.

Images taken from the Dell XPS 15 9560 product page: http://www.dell.com/...-15-9560-laptop

(Release.7z was compressed with Keka for Mac. Unfortunately the .zip file was just barely too big.)

Edited to better conform to InsanelyMac's rules.

Attached Files



#2
Rekoil

Rekoil

    InsanelyMac Protégé

  • Members
  • Pip
  • 26 posts

I have installed a Samsung 960 Pro in mine, so I'll be doing some testing with that disk using pre-boot Opal 2.0 self-encryption. Great write-up, looking forward to setting this up on mine!



#3
J-J

J-J

    InsanelyMac Protégé

  • Members
  • Pip
  • 30 posts
  • Gender:Male
  • Location:Belgium

Thank you for this guide.
I'm expecting my Dell XPS 15 9569 next week.
As I was already reading the guide to prepare myself, I had a question about step 8:

 

 

8. Copy the Clover installer package to “Install OS X” partition

a. Remember: no Wi-Fi without a card swap!

b. This is the only way to install Clover onto the main system if wireless doesn’t work, and it will only work for the DW1830 with the attached folder.​

 

 
It says your file only works for the DW1830. As I purchased a DW1560, which file(s) do I need to add/remove/edit?
 
As you linked to the post below on the "other" forum:
 
 

from the faq:
 
BCM94352 requirements:
- FakePCIID.kext and FakePCIID_Broadcom_WiFi.kext (was FakePCIID_BCM94352Z_as_BCM94360CS2.kext): https://github.com/R...S-X-Fake-PCI-ID. Install with Kext Wizard to /S/L/E.
- BrcmPatchRAM: https://github.com/R...-X-BrcmPatchRAM. Install with Kext Wizard to /S/L/E. Make sure you read the README as the kexts you install depend on OS X version and installation location.
- 5Ghz patch for WiFi documented here: "link removed" (Note: 10.12.x requires the 'fcvo' patch and NOT the 5ghz patch, but the fcvo patch is incorrectly referred to as a 5ghz patch at toleda's guide). The fcvo patch is clearly documented here: "link removed" "link removed"
- handoff patch for bluetooth documented here: "link removed" "link removed"
 
---------------------------------------------------------------------------------------
 
so, make sure to download these files:
FakePCIID.kext and FakePCIID_Broadcom_WiFi.kext and BrcmPatchRAM2.kext and BrcmFirmwareRepo.kext
 
and use kext wizard to install them to System/Library/Extensions
 
then you need to edit your config.plist and to add in:

<dict>
    <key>Comment</key>
    <string>AirPortBrcm4360 - fcvo</string>
    <key>Disabled</key>
    <false/>
    <key>Find</key>
    <data>gflSqgAAdSk=</data>
    <key>Name</key>
    <string>AirPortBrcm4360</string>
    <key>Replace</key>
    <data>gflSqgAAZpA=</data>
</dict>

 

Do I just add these files to clover and the edit the config.plist as above?

 

 

Thanks for your help.

 

J-J



#4
KNNSpeed

KNNSpeed

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 109 posts

You'd need to add only FakePCIID_Broadcom_WiFi to Clover/Kexts/Other (FakePCIID is already there).

 

The patch would go in the "KextsToPatch" section. I think that should be everything for that card, but I don't know for sure.



#5
KNNSpeed

KNNSpeed

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 109 posts


I have installed a Samsung 960 Pro in mine, so I'll be doing some testing with that disk using pre-boot Opal 2.0 self-encryption. Great write-up, looking forward to setting this up on mine!

Just a note: I'm actually intentionally leaving out non-4k sector drives since this is meant to be as native as possible. I really don't want to deal with the inherent data loss risks that come with storage hacks, and as of right now all Samsung NVMe drives are 512-byte sectors. Hopefully that changes in the future, though, especially since I really need a 2TB NVMe SSD...



#6
wmchris

wmchris

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 239 posts

you forgot some steps. Basically the Dell 9550 and the 9560 need the same steps for installation using clover for hotpatching SSDTs.

  1. Disable SD-Card reader in EFI increases battery life
  2. do not enable every emulation option in the EFI. VT-d should be disabled whenever possible
  3. you should think of using prepatched appleHDA - just much more stable
  4. you should add valid serials to your config file. can result in a KP on people who just forgot to edit them or didnt do it properly.
  5. you have multiple kexts which are not necessary in your system
  6. same for the SSDT. some of them are obsolete or simply non required


#7
KNNSpeed

KNNSpeed

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 109 posts

 

you forgot some steps. Basically the Dell 9550 and the 9560 need the same steps for installation using clover for hotpatching SSDTs.

  1. Disable SD-Card reader in EFI increases battery life
  2. do not enable every emulation option in the EFI. VT-d should be disabled whenever possible
  3. you should think of using prepatched appleHDA - just much more stable
  4. you should add valid serials to your config file. can result in a KP on people who just forgot to edit them or didnt do it properly.
  5. you have multiple kexts which are not necessary in your system
  6. same for the SSDT. some of them are obsolete or simply non required

 

No, sorry. I didn't miss those: they simply don't apply.

 

1. SD card reader can be turned off with the "Card icon" within the operating system (this is what it's for). This has the added benefit of not disabling the card reader in Windows, which a BIOS setting would do.

2. dart=0 overrides VT-d in the BIOS, and allows emulation to still be used on Windows

3. I'm intentionally not touching /System/Library/Extensions, and AppleALC + Codeccommander in Clover/Kexts with ALCPlugFix has been otherwise excellent thus far.

4. No.

5. Which ones?

6. Care to also state which ones?

 

If you look at the description files in the included zip, I explained the inclusion of every one.

 

 


List of files that should be in CLOVER/drivers64UEFI:
 
*************************************************************************
 
AppleImageCodec-64.efi - FileVault 2
 
AppleKeyAggregator-64.efi - FileVault 2
 
AppleUITheme-64.efi - FileVault 2
 
DataHubDxe-64.efi - Needed to implement DataHub protocol support required by Mac OS.
 
EmuVariableUefi-64.efi - Enables nvram.plist to be used instead of incompatible native system NVRAM.
 
FSInject-64.efi - Enables Clover to inject kexts.
 
FirmwareVolume-64.efi - FileVault 2
 
HFSPlus.efi - HFS filesystem driver for Clover.
 
OsxAptioFix2Drv-64.efi - Enables Mac OS booting on American Megatrends, Inc. (AMI) UEFI.
 
OsxFatBinaryDrv-64.efi - Enables FAT filesystem support for Clover.
 
SMCHelper-64.efi - FileVault 2
 
*************************************************************************
 
For an explanation on what some of them do:
 
For some more explanations:
 
For an explanation of the FileVault 2 drivers:

 

 


DELL BIOS 1.3.3 REQUIRED.
 
DSLs are the source code of the corresponding AMLs. Look at each specific SSDT for much more specific details as to what they do, as well as where the requisite information to make and use them was found.
 
*************************************************************************
SYSTEM:
*************************************************************************
 
SSDT-DMAC - Exposes the DMA Controller to the system.
 
SSDT-LPC - Correctly identifies the LPC bus to the system.
 
SSDT-MCHC - Exposes the memory controller to the system.
 
SSDT-SMBUS - Correctly identifies the SMBus to the system.
 
*************************************************************************
GRAPHICS:
*************************************************************************
 
SSDT-ALS0 - Adds a fake Ambient Light Sensor to save backlight info between reboots.
 
SSDT-BRT6 - Maps the keyboard’s ACPI-managed brightness keys to PS2 codes for VoodooPS2Controller.kext.
 
SSDT-IGPU - Adds properties to the Integrated Graphics device, which enables HDMI audio as well as proper display.
 
SSDT-PNLF - Configuration for AppleBacklightInjector.kext.
 
SSDT-RMDGPU - Power off the discrete GPU on boot, since Mac OS can’t use it.
 
*************************************************************************
AUDIO:
*************************************************************************
 
SSDT-HDEF - Add properties to the High Definition Audio Controller for audio and HDMI audio.
 
*************************************************************************
MISCELLANEOUS:
*************************************************************************
 
SSDT-Config - Provides configuration information for SSDT-HDEF, SSDT-IGPU, SSDT-PNLF, and SSDT-PTSWAK.
 
SSDT-DeepIdle - Enable Deep Idle support for power savings.
 
SSDT-HWP - Informs Mac OS that hardware P-states are supported.
 
SSDT-FANS - Provides sensor information to HWMonitor via FakeSMC ACPISensors.
 
SSDT-MEM2 - Defines a fixed memory region that gets used for something (hardly any information on it, but PNP0C01 is “System Board” in Windows so it has to do with motherboard resource allocation). Presumably, it’s related to the Integrated Graphics, as that’s the section in which Apple defines the MEM2 device.
 
SSDT-PMCR - Complements the PPMC (Platform Power Management Controller) with the seemingly useless PMCR device that exists in Mac DSDTs. It doesn’t hurt anything to have this, and it can really only help, so it’s here.
 
SSDT-PTSWAK - Powers on the discrete GPU before sleep and powers it off after wake to ensure the system can keep track of it.
 
SSDT-TYPC - Enables Type-C support. USB-C works completely, Thunderbolt hot-plug should be avoided (it WILL crash the system in its current state).
 
SSDT-UIAC - Defines the active USB ports for USBInjectAll.kext.
 
SSDT-UPRW - Ensures that USB and LAN devices won’t instantly awaken the laptop when put to sleep.
 
SSDT-USBX - Provides current delivery limits for USB devices. WARNING: Setting these too high could damage the USB subsystem.
 
SSDT-XOSI - Informs the rest of the ACPI Tables to expose as much hardware as it would to the laptop’s primary operating system (Windows 10).
 
SSDT-YTBT - Fixes a DSDT recursion issue that prevents Type-C hot-plug from working.

 

 


Description of each kext used.
 
*************************************************************************
SYSTEM:
*************************************************************************
 
ACPIBatteryManager.kext - RehabMan’s battery status indicator, provides ACPI battery information to OS X. (https://github.com/R...-Battery-Driver)
 
**ACPISensors.kext (FakeSMC) - Modified to work with SSDT-FANS and HWMonitor, otherwise it would add extraneous fan entries. Specifically removed FANx entries, where x >=6, in the Info.plist.
 
CPUSensors.kext (FakeSMC) - Provides HWMonitor with CPU sensors.
 
**FakeSMC.kext - Provides a Mac-compatible System Management Controller to the system. Modifications include addition of RMde, MSLD, ALV0, ALRV, and AIL0 keys, set FNum to CA== (8) from AA== (0) to enable “fan sensor spoof” for HWMonitor, changed “compatible” to “smc-huronriver”, and changed REV, RVBF, and RVBF from the default MacPro3,1 value (ATAPAAAD = 01 30 0f 00 00 03) to MacBookPro13,3 value (AjgPAAAH = 02 38 0f 00 00 07).
 
GPUSensors.kext (FakeSMC) - Provides HWMonitor with GPU sensors.
 
LPCSensors.kext (FakeSMC) - Provides HWMonitor with LPC sensors.
 
(All FakeSMC stuff from: http://www.hwsensors.com/releases)
 
*************************************************************************
GRAPHICS:
*************************************************************************
 
AppleBacklightInjector.kext - Provides proper panel brightness levels to AppleBacklight for native backlighting, the system platform of which is determined by SSDT-PNLF. (https://www.tonymacx...or-kext.218222/)
 
CoreDisplayFixup.kext - Enables the Intel graphics to boot with UHD display. Bypasses the artificial pixel clock limit. (https://github.com/P...oreDisplayFixup)
 
NvidiaGraphicsFixup.kext - Enables video out on the HDMI port by causing the board-id check in AppleGraphicsDevicePolicy to fail and default to the “none” ConfigMap. (https://sourceforge....agraphicsfixup/)
 
FakePCIID_Intel_HD_Graphics.kext (FakePCIID) - Enables Intel HD Graphics 630 with SSDT-IGPU.
 
*************************************************************************
AUDIO:
*************************************************************************
 
AppleALC.kext - Enables audio output for Realtek ALC298. (https://github.com/vit9696/AppleALC)
 
CodecCommander.kext - Fixes noise/distortion on the headphone jack. (https://github.com/R...Codec-Commander)
 
FakePCIID_Intel_HDMI_Audio.kext (FakePCIID) - Enables Intel HDMI audio on the HDMI port with SSDT-HDEF.
 
*************************************************************************
NETWORKING:
*************************************************************************
 
BrcmFirmwareData.kext - The reliable version of the Bluetooth firmware data store, used to provide firmware to Broadcom Bluetooth devices such as the chip in the DW1830 (model BCM20703A1).
 
BrcmPatchRAM2.kext - The firmware uploader required to apply the firmware from BrcmFirmwareData.kext to the Bluetooth card.
 
(All Bluetooth stuff from: https://github.com/R...X-BrcmPatchRAM)
 
*************************************************************************
MISCELLANEOUS:
*************************************************************************
 
FakePCIID.kext - Enables the other FakePCIID kexts to actually load.
 
(All FakePCIID stuff from: https://github.com/R...-X-Fake-PCI-ID)
 
Lilu.kext - Needed to load NvidiaGraphicsFixup.kext, CoreDisplayFixup.kext, and AppleALC.kext. (https://github.com/vit9696/Lilu)
 
SATA-100-series-unsupported.kext - Enables proper identification of the Intel 10-series SATA controller. (https://www.tonymacx...-clover.148093/)
 
USBInjectAll.kext - Enables the USB ports defined in SSDT-UIAC. (https://github.com/R...-USB-Inject-All)
 
VoodooPS2Controller.kext - Enables Trackpad/Keyboard support, edited by Syscl to better match the regions on the XPS trackpad. (https://github.com/s...-PS2-Controller)
 
**Denotes manually modded.

Here are some bitmasks for darkwake, CsrActiveConfig, and booterconfig:

 

(Directly from opensource.apple.com)

 

Here's what darkwake bitmasks:

// gDarkWakeFlags
enum {
   kDarkWakeFlagHIDTickleEarly      = 0x01, // hid tickle before gfx suppression
    kDarkWakeFlagHIDTickleLate       = 0x02, // hid tickle after gfx suppression
    kDarkWakeFlagHIDTickleNone       = 0x03, // hid tickle is not posted
    kDarkWakeFlagHIDTickleMask       = 0x03,
   kDarkWakeFlagAlarmIsDark         = 0x0100,
   kDarkWakeFlagGraphicsPowerState1 = 0x0200,
   kDarkWakeFlagAudioNotSuppressed  = 0x0400
};
 
Here's what CsrActiveConfig bitmasks:

/* Rootless configuration flags */
#define CSR_ALLOW_UNTRUSTED_KEXTS        (1 << 0)
#define CSR_ALLOW_UNRESTRICTED_FS        (1 << 1)
#define CSR_ALLOW_TASK_FOR_PID            (1 << 2)
#define CSR_ALLOW_KERNEL_DEBUGGER        (1 << 3)
#define CSR_ALLOW_APPLE_INTERNAL        (1 << 4)
#define CSR_ALLOW_DESTRUCTIVE_DTRACE    (1 << 5) /* name deprecated */
#define CSR_ALLOW_UNRESTRICTED_DTRACE    (1 << 5)
#define CSR_ALLOW_UNRESTRICTED_NVRAM    (1 << 6)
#define CSR_ALLOW_DEVICE_CONFIGURATION    (1 << 7)
#define CSR_ALLOW_ANY_RECOVERY_OS    (1 << 8)
 
Here's what booterconfig bitmasks:

/* Bitfields for boot_args->flags */
#define kBootArgsFlagRebootOnPanic    (1 << 0)
#define kBootArgsFlagHiDPI        (1 << 1)
#define kBootArgsFlagBlack        (1 << 2)
#define kBootArgsFlagCSRActiveConfig    (1 << 3)
#define kBootArgsFlagCSRConfigMode    (1 << 4)
#define kBootArgsFlagCSRBoot        (1 << 5)
#define kBootArgsFlagBlackBg        (1 << 6)
#define kBootArgsFlagLoginUI        (1 << 7)
#define kBootArgsFlagInstallUI        (1 << 8)

Edited by KNNSpeed, 11 June 2017 - 09:49 PM.


#8
Rekoil

Rekoil

    InsanelyMac Protégé

  • Members
  • Pip
  • 26 posts

Just a note: I'm actually intentionally leaving out non-4k sector drives since this is meant to be as native as possible. I really don't want to deal with the inherent data loss risks that come with storage hacks, and as of right now all Samsung NVMe drives are 512-byte sectors. Hopefully that changes in the future, though, especially since I really need a 2TB NVMe SSD...

Yes I am aware of this. I was disappointed when I realised they couldn't be switched to 4k like the Intel and Toshiba NVMe disks.



#9
Jonny4911

Jonny4911

    InsanelyMac Protégé

  • Members
  • Pip
  • 45 posts
  • Gender:Male
  • Location:London, UK

Brilliant, will test soon and probably make a couple tweaks (purely for my eGPU and WiFi card probably)  :thumbsup_anim:



#10
KNNSpeed

KNNSpeed

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 109 posts

Brilliant, will test soon and probably make a couple tweaks (purely for my eGPU and WiFi card probably)  :thumbsup_anim:

Haha, I'm sorry it took what felt like forever. It just took literally that long to actually do everything. The write-up alone took more than a full day, and then fighting with forum text editors to make it presentable was also no fun.... But it's up now.  :D

 

Out of curiosity, what enclosure are you using?

Also have you noticed any huge performance dips from the XPS's only having 2 TB3 PCI-e lanes instead of 4?



#11
Jonny4911

Jonny4911

    InsanelyMac Protégé

  • Members
  • Pip
  • 45 posts
  • Gender:Male
  • Location:London, UK

Haha, I'm sorry it took what felt like forever. It just took literally that long to actually do everything. The write-up alone took more than a full day, and then fighting with forum text editors to make it presentable was also no fun.... But it's up now.  :D

 

Out of curiosity, what enclosure are you using?

Also have you noticed any huge performance dips from the XPS's only having 2 TB3 PCI-e lanes instead of 4?

No need for apologies, I had a working build anyway so I wasn't in any rush!

 

Using what I used with my old 2013 MacBook Pro so akitio node 2 (with a 220w Dell power supply rigged to power it and the 1060) and the thunderbolt 2-3 adaptor.

Haven't noticed any huge performance dips. The performance loss is probably negligible, especially on a 1060 coupled with the fact I'm only using thunderbolt 2 anyway.

 

 

Haven't been able to get your build to boot strangely. Almost 1am now, so I'll investigate further tomorrow/soon.

Attached Files



#12
KNNSpeed

KNNSpeed

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 109 posts

If it just sits there and hangs (with no errors thrown, as it looks in your image), that's an IGPU problem. CoreDisplayFixup is supposed to fix that. It's possible ig-platform-id may need to be set to an invalid value on first boot in config.plist (try an invalid ig-platform-id as a last resort). Check that your BIOS "video memory" is in fact 64MB. Also, sometimes just trying again works. If this is just the IGPU hang and trying again works, you shouldn't run into this problem after that.

 

Other things to keep in mind:

Make sure /S/L/E is vanilla

/L/E is vaniila

You're on BIOS 1.3.3

The config.plist is the one I provided

You have no other patches or fixes besides the ones in the included zip

That you have valid serial numbers (I've never actually tried booting with just "AAAAAAAA").

 

Other things to try:

In config.plist, booterconfig set to 0x28 and csractiveconfig set to 0x67 (they only work together).



#13
Rekoil

Rekoil

    InsanelyMac Protégé

  • Members
  • Pip
  • 26 posts

That you have valid serial numbers (I've never actually tried booting with just "AAAAAAAA").

I can confirm that booting with your included clover configuration doesn't work without some modifications, probably has to do with the serial numbers. It booted fine when I set some generated data there.



#14
wmchris

wmchris

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 239 posts

as i said. ;-). The problem is, that most good serial calculators are for mac osx, so supplying a bootable setup should be highest priority.

 

I can confirm that booting with your included clover configuration doesn't work without some modifications, probably has to do with the serial numbers. It booted fine when I set some generated data there.


you should add valid serials to your config file. can result in a KP on people who just forgot to edit them or didnt do it properly

 

 

sorry at the moment i'm a lil bit short on time, so i cant work thru your whole dataset, but  i know some of your SSDT are known as non functional or obsolete. In my opinion such files should be placed seperately, because of the possible side effects.

 

Of course you can disable VT-D as boot parameter, but its not the "clean" solution.

If you really have >1W minimum power consumption, then your power management is not set up correctly. My NB runs with 0,5-0,7. I would guess that the USB card reader - albeit disabled in gui - still drains power. with enabled cardreader i've >1.5W in idle.

 

You supplied files for FileVault2 - as far as i know this is marked as non functional with osxaptio1/2. did you get it to run?



#15
sangandi1

sangandi1

    InsanelyMac Protégé

  • Members
  • Pip
  • 4 posts

Hello,

 

I have the serial number adapted and get the following error.

I have the same hardware as KNNSpeed.

What am I doing wrong?

Attached Files



#16
utfrf

utfrf

    InsanelyMac Protégé

  • Members
  • Pip
  • 22 posts
  • Gender:Male

Hello !

 

I would like to know if someone succeed to get VoodooPS2 (Mouse) working correctly ?

 

Mine is very slow (Even if I change the settings) and not accurate and the scroll is just... Horrible lol not smooth

 

I would like to know if someone know how to improve this and if someone try to install the latest OS Firmware if there are change to do or not ?

 

Thanks in advance

 

Cheers !



#17
freejack

freejack

    InsanelyMac Protégé

  • Members
  • Pip
  • 29 posts

Just a note: I'm actually intentionally leaving out non-4k sector drives since this is meant to be as native as possible. I really don't want to deal with the inherent data loss risks that come with storage hacks, and as of right now all Samsung NVMe drives are 512-byte sectors. Hopefully that changes in the future, though, especially since I really need a 2TB NVMe SSD...

Could be just me but I've had two unrecoverable partition corruptions using my EVO 960 and the class code spoof over the last few months.  Required a full reformat and install.  Will swap it out for a 4k sector SSD if it happens again.



#18
KNNSpeed

KNNSpeed

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 109 posts

as i said. ;-). The problem is, that most good serial calculators are for mac osx, so supplying a bootable setup should be highest priority.

 

Me too:

 

 

6. Serial numbers are obviously bunk

a. Get yer own!​

 

I sure hope people read the whole thing before trying. This was not an easy build. That stated, I can put a note at the top about having valid serial numbers.

 

 

sorry at the moment i'm a lil bit short on time, so i cant work thru your whole dataset, but  i know some of your SSDT are known as non functional or obsolete. In my opinion such files should be placed seperately, because of the possible side effects.

 

Of course you can disable VT-D as boot parameter, but its not the "clean" solution.

If you really have >1W minimum power consumption, then your power management is not set up correctly. My NB runs with 0,5-0,7. I would guess that the USB card reader - albeit disabled in gui - still drains power. with enabled cardreader i've >1.5W in idle.

 

You supplied files for FileVault2 - as far as i know this is marked as non functional with osxaptio1/2. did you get it to run?

Couple notes, since apparently we ideologically disagree on some things:

 

Some of the SSDTs are custom-made. Maybe they have the same names as some of what you are familiar with, but with few exceptions (that I've specifically mentioned in the text docs I posted above) they all do something noticeable or solve some specific problem. I really need  you to be more specific when you have an opportunity to, otherwise I won't know which ones you mean (or why them in particular).

 

Your definition of "clean" is not the same as my definition of "as close to fully functional for multiple operating systems" as possible. My goal with this was to basically make a Mac that has nothing hidden from any other OS. You may disagree or not run any other OS, which is entirely your prerogative and you have your own build for that. Full disclosure: I actually started this because I didn't like how much stuff your build hid from me as a user, and it didn't actually work 100% (e.g. backlight, brightness saving, and USB-C didn't work with the latest BIOS to name some things off the top of my head).

 

Honestly, the docs for Clover are particularly terrible; for the settings in config.plist I literally had to read the Clover source code (good thing I like C!). I haven't tried to use FileVault 2. I did find that CoreStorage was surprise enabled after install, though, for what that's worth.

 

I'm also waiting for proper native Kaby Lake support--I believe it should be idling at 0.8 GHz, too, but it's idling at 1.3GHz. Also, the CPU  cores themselves are only using <0.25W, it's the CPU package DRAM that uses up 1.35W idle. 0.25W + 1.35W = 1.6W (Intel Power Gadget).

 

Hello !

 

I would like to know if someone succeed to get VoodooPS2 (Mouse) working correctly ?

 

Mine is very slow (Even if I change the settings) and not accurate and the scroll is just... Horrible lol not smooth

 

I would like to know if someone know how to improve this and if someone try to install the latest OS Firmware if there are change to do or not ?

 

Thanks in advance

 

Cheers !

Use System preferences --> mouse, not system preferences -> trackpad.

 

 

Could be just me but I've had two unrecoverable partition corruptions using my EVO 960 and the class code spoof over the last few months.  Required a full reformat and install.  Will swap it out for a 4k sector SSD if it happens again.

It's not just you, on many builds of Dell XPS laptops this seems to be a common theme with non-4k drives.


Hello,

 

I have the serial number adapted and get the following error.

I have the same hardware as KNNSpeed.

What am I doing wrong?

Does it just sit there and hang? Did you also use a correct BoardSerialNumber and smUUID? (Don't post them here)



#19
sangandi1

sangandi1

    InsanelyMac Protégé

  • Members
  • Pip
  • 4 posts

Sorry for my bad english, i come from germany  :)

 

I have your files in the EFI folder packed, and the serial number with my changed.

If I boot now, this error message comes from above. (My first post)

What did I do wrong? Or did I forget something?



#20
KNNSpeed

KNNSpeed

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 109 posts

Please answer these questions:

Does it just sit there and hang? Did you also use a correct BoardSerialNumber and smUUID? (Don't post them here)

 

Your error is indicative of an SMBios issue.







5 user(s) are reading this topic

1 members, 4 guests, 0 anonymous users


© 2016 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy