Jump to content
KNNSpeed

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

354 posts in this topic

Recommended Posts

First off the trackpad gestures options are limited and not ideal to use for how sycl adjusted voodoops2. I don't believe it works, haven't been able to figure out pinch to zoom in any capacity.

 

I had a hard time grasping it at first as well. I'll try my best to explain our trackpad situation.

So the 4 finger swipe up, shows desktop. F11 is also show desktop. The trackpad gesture is actually just inputting F11 or in our case FN+F11. Not the actual gesture. Another example is 3 finger swipe left and right is back and forth but it's actually just inputting cmd+[ and cmd+].

 

Now your thinking well what the hell are all these trackpad gestures linked to. If you go to the keyboard shortcuts and then Mission board, on one of the items like Mission Control, click the area to change one of the shortcuts to bring the text box that captures your keyboard strokes. Now instead of pressing any keys use the trackpad and whatever gesture. Viola, it'll show you the matching keystrokes.

 

In your example, not sure what you want done but in the keyboard shortcuts just select show notification center and swipe from the right side into the trackpad and it'll show ^+cmd+9. Viola now that trackpad gesture is linked to that action.

I think what you explained is what I did! It is working good enough now. Thank you and KNNSpeed!

Share this post


Link to post
Share on other sites
Advertisement

Use this in EFI/Clover/kexts/Other.

 

In the info.plist inside this kext, add the identifier of the kext you need to enable wifi in OSBundleLibraries, and change the version numbers of the other entries (that aren't Mac OS system entries) to match the version numbers of the kexts you have in that same folder. It might be the case that kexts that need to load early just aren't.

Details: https://github.com/PMheart/LiluFriend

 

If that doesn't work, boot in verbose mode and see if you can spot any errors. 

OK, made all the changes. Let's see what happens now... Keep you posted.

Share this post


Link to post
Share on other sites

NEW!

 

After several weeks of toiling (it's July already?!), here's a new audio solution for perfect working audio. I basically ported the linux driver and created a GUI popup menu to configure the combo jack (see screenshot).

 

Features:

  • Fully working Combo Jack! (Heaphones, headset, AND line-in!)
  • New verb sending kext (no more need for CodecCommander on systems without EAPD troubles; VerbStub is simply a direct port of hda-verb for Linux)
  • Launchdaemon with Windows-like pop-up menu monitors the jack for insertion
  • Automatic OMTP (Nokia)/CTIA (iPhone) detection for headsets!
  • Fully commented sources

Notes:

  • Line-in mode disables audio output. I haven't been able to re-enable the speakers when the jack is purely an input, but that's the only "issue"
  • Zero "no audio after sleep" issues so far
  • Make sure to turn off "Use ambient noise reduction" when using an input that isn't the internal Mic (unless you find that it helps)

How does it work?

 

Simple! Due to the way the Realtek codec is set up on this machine, the ComboJack program watches the jack and switches the codec selector (node 0x22) to the correct input after applying all the requisite processing coefficients and pin widgets. This means that Mac OS only sees a built-in mic, but behind the scenes it actually is connecting to the headset and line-in ports. This works because all input paths lead through selector node  0x22 and into capture node 0x09, and the OS only acknowledges the capture node.

 

How to install (uses modded AppleALC):

  1. Disable SIP (I use 0x67 for CSRActiveConfig and 0xEE for booterconfig)
  2. Remove ALCPlugFix from /usr/bin (may need to kill with Activity Monitor first)
  3. Remove good.win.ALCPlugFix.plist from /Library/LaunchAgents (may need to launchctl unload first)
  4. Remove CodecCommander from Clover/kexts/Other (unless you need it, but it looks like the 9560 doesn't)
  5. Copy VerbStub.kext to EFI/Clover/kexts/Other
  6. Copy AppleALC to EFI/Clover/kexts/Other
  7. Change layout-id to 72 (in SSDT-Config -- 0x48 is hex)
  8. Run install.sh and read what it says
  9. Reboot (and enable SIP if you want)!

Download "ComboJack Installer.zip" and "AppleALC.kext.zip" for everything. The other zips are sources.

(Also included in "ComboJack Installer" is a folder containing the platform, layout, and pinconfigs used.)

 

 

Hello KNNSpeed.

 

I have a XPS15-9550 with same Realtek-ALC3266(298) and i used to use alcplugfix to solve the EAPD bug.

 

Today i test your new way and it is awesome but have 2 suggestions.

 

1.The Combojack notification is always pop up when i boot into the osx when i always plugin the external speaker.It is a little bother.Can we set only hotplug the combojack will pop up the combojack notification and others dont pop up espeically when i first boot into the osx,or can set a default value when first boot into osx.

 

post-1140626-0-49080800-1499512191_thumb.png

This pop up is always show when i boot into osx.

 

 

2.When i plugin my Earpods and choose the headset and the external mic works well but the controlpanel always shows internal mic.Does this is the bug or node problem?When i use alcplugfix this can changed between internal mic and external mic when i plugin or plugoff my earpods.So i want to solve this dontrol panel display bug.

post-1140626-0-91855400-1499512192_thumb.png

 

Thanks for your good tools and have a good day.

 

Hope for a more perfect way to solve this combojack eapd problem.

 

And forgive for my poor english.

Share this post


Link to post
Share on other sites

@gujiangjiang

1. If you plug something in during sleep the menu should also come back up. This behavior is by design and it's because we need to basically reset the jack whenever Apple changes anything behind our backs. There is no "default" setting since one person might need it to be a headphone jack and another might need it to be a headset. In other words, having a default setting (besides "unplugged") would be specific to your use case, and what if some day you decide to switch to a headset? Then the headset's mic won't work anymore. Doing it the way it currently works allows users to switch devices while the machine is asleep or turned off.

 

Also remember, ALCPlugFix only works with headphones and no input devices, so there's no reason for ALCPlugFix to prompt you. The laptop has no way of telling the difference between an input device and an output device without your telling it, and IOMux, which is Apple's way of doing it (they provide a manual switch in SysPrefs), was giving me all kinds of problems. The internal mic would stop working no matter how much I did to try and bring it back, for example, and I was never able to get speakers + line-in to work. I really wish I could've gotten IOMux to work (it would have also addressed #2 to some extent), but it's just very broken the way Apple implemented it. 

 

2. I tried very, very hard to fix this--in fact I spent more than an entire week day-in day-out trying to make that work--and the only way I can get it to behave consistently and reliably is to do it this way. Ideally, the input device menu would switch to line-in when a line-in device is plugged in, and "microphone port" when a headset is plugged in. Unfortunately, nobody seems to know how the "microphone port" actually works (ExtMic in layout.xml) or at least nobody who knows wants to answer me when I ask about it and having the input device menu display "Line-In" actually causes the OS to set some properties that would override what I just set, thereby breaking everything. So it's actually not just a cosmetic issue, since settings get changed and reset in the background that we don't want.

 

I kept running into an issue, for example, where switching the menu to state "line-in" would break the internal mic when unplugged, and no matter how many processing coefficients, verbs, or resets I'd send, it just would not come back online without a reboot. I don't know about you, but I'd much rather have something that works every time without fail than a cosmetic thing that causes the desired behavior to break.

 

Ultimately, the codec in this laptop is unsupported and uses a very different set of connections in hardware than any of Apple's actual computers. As I mentioned, this is basically a whole new driver, and I created it in such a way that it could be very easily adapted to port other Linux drivers over and have perfect functionality. The way it is set now is by far the most stable configuration I could make, and if cosmetics are really that important, well, that's pretty much all that real Macs are good for these days. :/

 

EDIT: Another tradeoff I had to make: I personally prefer the look of the NSAlert-style menu over the CFUserNotification-style menu, especially since the NSAlert style allows for more than 3 buttons (and thus has room for a proper cancel button). Unfortunately, NSAlert-style menus cannot be used at the level at which my program needs to operate (NSAlert is for apps, not system services), so we're stuck with CFUserNotification menus. (Also, apps are user account-specific, and system services work system-wide.) That stated, CFUserNotification menus do get the job done well enough, I think. :)

Share this post


Link to post
Share on other sites

@gujiangjiang

1. If you plug something in during sleep the menu should also come back up. This behavior is by design and it's because we need to basically reset the jack whenever Apple changes anything behind our backs. There is no "default" setting since one person might need it to be a headphone jack and another might need it to be a headset. In other words, having a default setting (besides "unplugged") would be specific to your use case, and what if some day you decide to switch to a headset? Then the headset's mic won't work anymore. Doing it the way it currently works allows users to switch devices while the machine is asleep or turned off.

 

Also remember, ALCPlugFix only works with headphones and no input devices, so there's no reason for ALCPlugFix to prompt you. The laptop has no way of telling the difference between an input device and an output device without your telling it, and IOMux, which is Apple's way of doing it (they provide a manual switch in SysPrefs), was giving me all kinds of problems. The internal mic would stop working no matter how much I did to try and bring it back, for example, and I was never able to get speakers + line-in to work. I really wish I could've gotten IOMux to work (it would have also addressed #2 to some extent), but it's just very broken the way Apple implemented it. 

 

2. I tried very, very hard to fix this--in fact I spent more than an entire week day-in day-out trying to make that work--and the only way I can get it to behave consistently and reliably is to do it this way. Ideally, the input device menu would switch to line-in when a line-in device is plugged in, and "microphone port" when a headset is plugged in. Unfortunately, nobody seems to know how the "microphone port" actually works (ExtMic in layout.xml) or at least nobody who knows wants to answer me when I ask about it and having the input device menu display "Line-In" actually causes the OS to set some properties that would override what I just set, thereby breaking everything. So it's actually not just a cosmetic issue, since settings get changed and reset in the background that we don't want.

 

I kept running into an issue, for example, where switching the menu to state "line-in" would break the internal mic when unplugged, and no matter how many processing coefficients, verbs, or resets I'd send, it just would not come back online without a reboot. I don't know about you, but I'd much rather have something that works every time without fail than a cosmetic thing that causes the desired behavior to break.

 

Ultimately, the codec in this laptop is unsupported and uses a very different set of connections in hardware than any of Apple's actual computers. As I mentioned, this is basically a whole new driver, and I created it in such a way that it could be very easily adapted to port other Linux drivers over and have perfect functionality. The way it is set now is by far the most stable configuration I could make, and if cosmetics are really that important, well, that's pretty much all that real Macs are good for these days. :/

 

EDIT: Another tradeoff I had to make: I personally prefer the look of the NSAlert-style menu over the CFUserNotification-style menu, especially since the NSAlert style allows for more than 3 buttons (and thus has room for a proper cancel button). Unfortunately, NSAlert-style menus cannot be used at the level at which my program needs to operate (NSAlert is for apps, not system services), so we're stuck with CFUserNotification menus. (Also, apps are user account-specific, and system services work system-wide.) That stated, CFUserNotification menus do get the job done well enough, I think. :)

 

 

You can test my alcplugfix with vanilla AppleALC with layoutid=13 and with CodecCommander.kext and you will find it is perfect.

 

With my modfiled alcplugfix it can be automatically detect headphone and headset and can show correct sound control panel with no more distort and you can try it.

 

If 9560 has a same ALC3266 with 9550 you can test my file and you will find it is perfect.

ALCPlugFix-Install.zip

AppleALC_1.1.3.RELEASE.zip

Lilu_1.1.5.RELEASE.zip

RehabMan-CodecCommander-2017-0501.zip

Share this post


Link to post
Share on other sites

OK, made all the changes. Let's see what happens now... Keep you posted.

OK, after 2 days it seems the bluetooth/wiffi issue is still there, but less often. Sometime after waking up bluetooth and wifi are available, sometimes not.

Another issue is that the speaker volume drops after some time.

 

Do you think a fresh install is recommended?

If so, do I then only delete partition disk0s1, disk0s2 and disk0s3? Or do I keep de EFI partition?

 

/dev/disk0 (internal):

   #:                       TYPE NAME                    SIZE       IDENTIFIER

   0:      GUID_partition_scheme                         512.1 GB   disk0

   1:                        EFI EFI                     314.6 MB   disk0s1

   2:          Apple_CoreStorage MacOS                   299.5 GB   disk0s2

   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

   4:         Microsoft Reserved                         16.8 MB    disk0s4

   5:       Microsoft Basic Data                         191.2 GB   disk0s5

   6:           Windows Recovery                         942.7 MB   disk0s6

   7:                 Linux Swap                         2.0 GB     disk0s7

   8:           Linux Filesystem                         17.5 GB    disk0s8

Share this post


Link to post
Share on other sites

Do you think a fresh install is recommended?

If so, do I then only delete partition disk0s1, disk0s2 and disk0s3? Or do I keep de EFI partition?

Keep the EFI partition (use a fresh CLOVER folder if you want a "clean" install)

You could also probably reinstall from the Recovery HD if you wish.

 

I've been using sleep today and haven't come across any BT/WiFi issues

Share this post


Link to post
Share on other sites

You can test my alcplugfix with vanilla AppleALC with layoutid=13 and with CodecCommander.kext and you will find it is perfect.

 

With my modfiled alcplugfix it can be automatically detect headphone and headset and can show correct sound control panel with no more distort and you can try it.

 

If 9560 has a same ALC3266 with 9550 you can test my file and you will find it is perfect.

Got source code? Pretty sure ALCPlugFix can't do pure stereo line-in, and can't handle mixed microphone configurations. But I need to see the source to be able to do much of anything. 

Share this post


Link to post
Share on other sites

Got source code? Pretty sure ALCPlugFix can't do pure stereo line-in, and can't handle mixed microphone configurations. But I need to see the source to be able to do much of anything. 

 

I am using headphone and headset using combojack and it can reconigze these two type device when i plugin headphone it only show external speaker and still using internal mic,but when i plugin headset it can show external speaker and external mic and have no more distort.

 

goodwin_c sourcecode have no problem but the hda-verb wrong is wrong.

 

I am look into codec and using VoodooHDA to find all the node and finally find the 2 hda-verb command to solve this.

 

hda-verb 0x18 SET_PIN_WIDGET_CONTROL 0x24  //To solve the distort

hda-verb 0x21 SET_UNSOLICITED_ENABLE 0x82  //To solve the external mic check

 

Only this 2 hda-verb command can solve all the problem throughout the alcplugfix and you can try the binary i post.

 

Here are my sourcecode.

https://github.com/gujiangjiang/Hacintosh/tree/DELL-XPS-15-9550/Others/Sound/ALCPlugFix/ALCPlugFix-Source

 

I hope we can solve this problem by only using some kext not touch system folder.

 

PS:I found this eapd fix kext and can fix distort when boot up but cant fix distort when wake up and cant solve external mic,you can look into this kext and test more.

http://forum.osxlatitude.com/index.php?/topic/3084-eapdjack-sense-fix-no-sound-and-jack-sense-issue-after-sleep/

 

Thanks.

Share this post


Link to post
Share on other sites

Keep the EFI partition (use a fresh CLOVER folder if you want a "clean" install)

You could also probably reinstall from the Recovery HD if you wish.

 

I've been using sleep today and haven't come across any BT/WiFi issues

OK, I deleted the clover folder and put back the one from the first post, adding my own config.plist, FakePCIID_Broadcom_WiFi.kext for DW1560 and the did the ComboJack Installer part.

I also deleted /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist to be sure and rebooted.

Let's see if that changes anything.

Share this post


Link to post
Share on other sites

Looks like a new bios is out. http://www.dell.com/support/home/us/en/19/drivers/driversdetails?c=us&l=en&s=gen&driverid=XK2Y9

 

Fixes & Enhancements
1. Fixed a potential security issue with Bootguard code integrity chaining enforcement".
2. Fixed a potential security issue with the Support Assist PreBoot feature
3. Updated processor microcode
4. Update Computrace 957
5. Update PD firmware
 
Is it safe to upgrade or no?

Share this post


Link to post
Share on other sites

@wiregen

Scroll up to post #123.

 

Haven't had any time to work on this machine lately. I will try to investigate the Line-In stuff when I can (if it's as simple as updating the unsolicited response bits and maybe a minor layout/platform change then that what would be great, otherwise I'm not going to look too far into it). Looking at the timeframe ahead I will probably also not be able to post much about HS and beyond, so as far as my involvement is concerned I'll try to tackle 10.12.6 and maybe post something brief when HS comes, but otherwise that'll be all I think I might ever have time to get to for a while. Couldn't get HibernationFixup to work, would've loved to hit Thunderbolt hotplug (not really; it's a pain without a spec), and I wanted to try to finish iSergio's SD card driver (I really, really, really need this--at the very least a read-only thing with proper power management), but time's not on my side here.....

Share this post


Link to post
Share on other sites

@wiregen

Scroll up to post #123.

 

Haven't had any time to work on this machine lately. I will try to investigate the Line-In stuff when I can (if it's as simple as updating the unsolicited response bits and maybe a minor layout/platform change then that what would be great, otherwise I'm not going to look too far into it). Looking at the timeframe ahead I will probably also not be able to post much about HS and beyond, so as far as my involvement is concerned I'll try to tackle 10.12.6 and maybe post something brief when HS comes, but otherwise that'll be all I think I might ever have time to get to for a while. Couldn't get HibernationFixup to work, would've loved to hit Thunderbolt hotplug (not really; it's a pain without a spec), and I wanted to try to finish iSergio's SD card driver (I really, really, really need this--at the very least a read-only thing with proper power management), but time's not on my side here.....

You don't owe us anything, keep doing your thing when you have time man, we all appreciate your work.

 

In other news, 10.12.6 is now released. We know 10.13 adds Kaby Lake and native NVMe support for more than just 4k disks. I've been assuming the NVMe additions were for some hardware that needed it, so it would make sense for 10.12.6 to consolidate hardware support and add the same NVMe support that 10.13 does, am I being too presumptive here?

Share this post


Link to post
Share on other sites

Took the plunge to 10.12.6 just now. Do yourself a favor don't change anything in your SMBIOS or config,plist until after you finish the update b/c when it reboots for the update you won't have support yet, lol. I had my install USB so no big deal here. Also sign out of all iCloud, iMessage accounts before changing SMBIOS, so it doesn't get all jacked up. 

 

You can now safely remove all the faking of Skylake CPU and GPU from clover config, no need to inject anything either. Under Devices section you no longer need the IntelGFX Fake ID, Graphics section can be completely empty, and remove FakeCPUID entry in Kernel and Kext Patches. All while using the new clover configurator generated MBP 14,3 SMBIOS. 

 

You will still need the kexts FakePCIID_Intel_HD_Graphics and FakePCIID_Intel_HDMI_Audio.

 

Took another few Geekbench of CPU and no improvements, all within 1% of each other.

Unfortunately I did not bench the graphics before this update so that is a lost on my part.

 

Faking Skylake    post-1364638-0-54433300-1500591322_thumb.png Native Kaby Lake post-1364638-0-16461100-1500592241_thumb.png

 

My config.plist config.zip as with all config.plist, don't be stupid and get your own serial.

Share this post


Link to post
Share on other sites

Took the plunge to 10.12.6 just now. Do yourself a favor don't change anything in your SMBIOS or config,plist until after you finish the update b/c when it reboots for the update you won't have support yet, lol. I had my install USB so no big deal here. Also sign out of all iCloud, iMessage accounts before changing SMBIOS, so it doesn't get all jacked up. 

 

You can now safely remove all the faking of Skylake CPU and GPU from clover config, no need to inject anything either. Under Devices section you no longer need the IntelGFX Fake ID, Graphics section can be completely empty, and remove FakeCPUID entry in Kernel and Kext Patches. All while using the new clover configurator generated MBP 14,3 SMBIOS. 

 

You will still need the kexts FakePCIID_Intel_HD_Graphics and FakePCIID_Intel_HDMI_Audio.

 

Took another few Geekbench of CPU and no improvements, all within 1% of each other.

Unfortunately I did not bench the graphics before this update so that is a lost on my part.

 

Faking Skylake    attachicon.gifskylake.png Native Kaby Lake attachicon.gifkaby lake.png

 

My config.plist attachicon.gifconfig.zip as with all config.plist, don't be stupid and get your own serial.

What about NVMe? Do you still need the HackrNVMe patch?

Share this post


Link to post
Share on other sites

What about NVMe? Do you still need the HackrNVMe patch?

 

I did not test, as my understanding that support was not coming until High Sierra, I may create a separate USB to test tomorrow. I would think if it was supported, it'd be in other guides that use nvme that have updated like the 9550 and 9360 but I didn't see any when went through their threads with the upgrade.

Share this post


Link to post
Share on other sites

Sweet! I'll be upgrading hopefully soon.

 

Just so you know, that battery indicator sticks to 100% until the "real" charge gets to 95%, then it starts going down (a few pages back Jonny4911 and I were trying to figure out what's going on). That stated, you probably only lost 2-3% worst-case because this laptop is actually awesome.

Share this post


Link to post
Share on other sites

... that battery indicator sticks to 100% until the "real" charge gets to 95%, then it starts going down ...

 

Interesting, b/c the last sleep test I did was 24 hours, went down 3%, it showed 97% on the indicator. Does that mean it was really 92%? In BIOS my battery is set to adaptive, noticed Jonny4911 had his custom setting to 95%. Now this has me wondering what's best setting for me... Either way you're right, this laptop is awesome.

Share this post


Link to post
Share on other sites

Is anybody is ready to try to implement Touch id with the fingerprint reader ?

Theres a Github project with the goal of reverse engineering a Linux driver for it. Looking at it though, it appears the 9560 is using the 138a:0091 device which the project mentions behaves differently than the 138a:0090 device which is seeing the most progress.

 

https://github.com/nmikhailov/Validity90

 

EDIT: Checked out the project gitter, seems like the :0091 device doesn't encrypt the protocol communication like the other similar devices do.

Share this post


Link to post
Share on other sites

Just want to report I updated to 10.12.6 with no issues

 

I do however have this weird quirk with thunderbolt 3.

 

I have a Lacie Thunderbolt 2 drive I use with the Apple Thunderbolt 3 to 2 adapter.

 

It seems to work randomly whenever it feels like. Fully shutting down the computer and booting it would appear maybe 1/20 times.

 

System information shows that in the thunderbolt tab it states no drivers are loaded.

 

Any tips guys?

Share this post


Link to post
Share on other sites

Just want to report I updated to 10.12.6 with no issues

 

I do however have this weird quirk with thunderbolt 3.

 

I have a Lacie Thunderbolt 2 drive I use with the Apple Thunderbolt 3 to 2 adapter.

 

It seems to work randomly whenever it feels like. Fully shutting down the computer and booting it would appear maybe 1/20 times.

 

System information shows that in the thunderbolt tab it states no drivers are loaded.

 

Any tips guys?

I'm having issues with Thunderbolt 3 on mine as well, I have a Dell TB16 docking station, and I've never been able to get it to be detected in macOS, in system information it just says no Thunderbolt devices connected or something to that effect.

 

Had this issue both on 10.12.5 and 10.12.6. Both when emulating a Skylake MacBook Pro, and a Kaby Lake one.

Share this post


Link to post
Share on other sites

Just want to report I updated to 10.12.6 with no issues

 

I do however have this weird quirk with thunderbolt 3.

 

I have a Lacie Thunderbolt 2 drive I use with the Apple Thunderbolt 3 to 2 adapter.

 

It seems to work randomly whenever it feels like. Fully shutting down the computer and booting it would appear maybe 1/20 times.

 

System information shows that in the thunderbolt tab it states no drivers are loaded.

 

Any tips guys?

If it's anything like my TB2 eGPU, simply adding a 5-10 second timeout in clover at boot will allow macOS to load it 95+% of the time. (My thunderbolt tab says no drivers loaded regardless of whether it's operating or not.)

I've got it set at 8 seconds for me, used to be 5 but that wasn't enough after switching to KNNSpeed's build. This does rely on macOS being the default selection in Clover. I'm not sure it works otherwise, feel free to experiment.

So there is no way for samsung drives to install hackintosh?

I am now using SM951 NVMe

You can but you'll need additional kexts/patches, and you'll have to be careful about sleep/hibernation.

Read other/older 9550 & 9560 threads to figure out exactly what's needed.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×