Contribute
Register

Dell XPS 13 9333 (Haswell) - Clover install/DSDT 'guide'

Status
Not open for further replies.

vbo

Joined
Jul 13, 2014
Messages
284
Update 10/29: Complete Yosemite guide posted here: http://www.tonymacx86.com/yosemite-laptop-support/146758-guide-dell-xps-13-9333-a.html

Just installed 10.9.4 on my new dell XPS 13 9333. It's not 100% yet, but it's perfectly functional with QE/CI @ 1080p, native audio, etc..

I won't do a full guide since you can pretty much follow the vanilla desktop guide from tonymac (http://www.tonymacx86.com/mavericks...-how-install-os-x-mavericks-using-clover.html) and or the dell inspiron 7000 one (http://www.tonymacx86.com/mavericks...iron-3x37-5x37-7x37-clover-install-guide.html). If you get stuck, ask away.

For DSDT patching, I setup a github modeled after (and containing mostly) RehabMan's laptop specific DSDT patches. It's at https://github.com/vbourachot/Dell-XPS13-9333-DSDT-Patch. It is still a work in progress but it will give you a functional system with power management, backlight control, battery indication etc. Once it's finished up, complete dsdt patching is as simple as a couple rules in a Makefile, from raw table to installed dsdt/ssdt. Awesome idea RehabMan.

As far as kexts, again RehabMan's github has all you need, namely:
ACPIBacklight.kext
ACPIBatteryManager.kext
FakeSMC.kext
VoodooPS2Controller.kext
CodecCommander.kext

Speaking of CodecCommander, this laptop has an ALC668 chipset, which is not really supported from what I could read online. I currently use a modified 10.9.1 AppleHDA from insanelymac, which, with the right layout-id in DSDT and nodes in CodecCommander, works in 10.9.4. I'll need to read up on AppleHDA patching to figure out how to patch my own instead of rolling back old kexts, but at least native audio works for now.

To end this long post:
Working:
- 10.9.4 w/ QE/CI @ native 1080p
- Power management
- Backlight control
- Battery indications
- Native audio

In progress:
- Finish up DSDT (keyboard brightness keys, check sleep and such)

Not working / unknown:
- Internal wifi (Intel 7260AC) - need to replace but new M2/NGFF design means virtually no replacements available yet. Currently only 1 broadcom on ebay for 75 bucks from china, so usb wifi it is for now.
- Sleep and hibernate and such: since I'm using USB wifi for now, I'm not gonna try to fix sleep. I disabled hibernate and upped the sleep timer to 'forever' to not have to worry about it. This thing boots to desktop in seconds anyway.
- External monitor (mini DP) - not tested
- Probably other things that I haven't tried yet

I'll update as I go along. Thanks to this great community and everyone who has contributed so much awesome software.
 
Nice work...

Nice to see someone picking up on my repo and using the same technique without prodding...

As far as AppleHDA, are you using Clover?
 
Yes I'm using clover - I'm loving all the injection features it offers!

I was looking at the patch_hda script from your repo; seems like just what I need. I can tell from the 10.9.1 kext that Platforms.xml.zlib and layout1.xml.zlib were modified. I also saw the relevant edits in the AppleHDAHardwareConfigDriver info.plist:
Code:
            <key>HDAConfigDefault</key>
            <array>
                <dict>
                     ..snip..
                </dict>
                <dict>
                    <key>AFGLowPowerState</key>
                    <data>
                    AwAAAA==
                    </data>
                    <key>CodecID</key>
                    <integer>283903592</integer>
                    <key>ConfigData</key>
                    <data>
                    ASccEAEnHQABJx6gAScfkAFHHCABRx0AAUce
                    EwFHH5ABVxwwAVcdEAFXHiEBVx8AAUcMAgFX
                    DAI=
                    </data>
                    <key>FuncGroup</key>
                    <integer>1</integer>
                    <key>LayoutID</key>
                    <integer>1</integer>
                </dict>

My limited understanding of how this all works tells me that the ConfigData contains the magic sauce, CodecID matches ALC668 (0x10ec0668), and LayoutID is set to 1 which matches the modified layout/platforms xml files and my DSDT patches.

So if i just plug this section of the plist into the patch script and copy the modified zlib files, I should get a nice AppleHDA_ALC668 injector kext to drop into clover? Did I miss am I miss anything?
 
Yes I'm using clover - I'm loving all the injection features it offers!

I was looking at the patch_hda script from your repo; seems like just what I need. I can tell from the 10.9.1 kext that Platforms.xml.zlib and layout1.xml.zlib were modified. I also saw the relevant edits in the AppleHDAHardwareConfigDriver info.plist:
Code:
            <key>HDAConfigDefault</key>
            <array>
                <dict>
                     ..snip..
                </dict>
                <dict>
                    <key>AFGLowPowerState</key>
                    <data>
                    AwAAAA==
                    </data>
                    <key>CodecID</key>
                    <integer>283903592</integer>
                    <key>ConfigData</key>
                    <data>
                    ASccEAEnHQABJx6gAScfkAFHHCABRx0AAUce
                    EwFHH5ABVxwwAVcdEAFXHiEBVx8AAUcMAgFX
                    DAI=
                    </data>
                    <key>FuncGroup</key>
                    <integer>1</integer>
                    <key>LayoutID</key>
                    <integer>1</integer>
                </dict>

My limited understanding of how this all works tells me that the ConfigData contains the magic sauce, CodecID matches ALC668 (0x10ec0668), and LayoutID is set to 1 which matches the modified layout/platforms xml files and my DSDT patches.

So if i just plug this section of the plist into the patch script and copy the modified zlib files, I should get a nice AppleHDA_ALC668 injector kext to drop into clover? Did I miss am I miss anything?

You also need the binary patch data for AppleHDA binary. It is output by bcc9's latest patch-hda.pl script.
 
You also need the binary patch data for AppleHDA binary. It is output by bcc9's latest patch-hda.pl script.

Thanks! One thing I'm not clear about: ALC 668 is not in the list of supported codecs in the script, so should I patch it to ADI 1984 or ALC 885? Anyway to find out or just trial and error?
 
Thanks! One thing I'm not clear about: ALC 668 is not in the list of supported codecs in the script, so should I patch it to ADI 1984 or ALC 885? Anyway to find out or just trial and error?

It could vary. Ideally, you would know what your existing kext is patched with... Sometimes you can use the others as a guide, but...
Code:
    'Realtek ALC662' => 'ALC 885',	#per hda wizard
    'Realtek ALC663' => 'ADI 1984',	#per Mirone
    'Realtek ALC670' => 'ADI 1984',	#per Alex Auditore (rehabman)


Since it is unknown, you have to try each one and see which one works. Fortunately, there are only three possibilities:

Code:
#Codecs we patch to (codecs found in AppleHDA)
    'ADI 1984', 0x11d41984,
    'ADI 1984B', 0x11d4198b,
    'ALC 885', 0x10ec0885,
 
ADI 1984 it is! Didn't manage to get the injector kext working tonight (couldn't get it loaded for some reason), but after patching the 10.9.4 AppleHDA with ADI 1984 and manually replacing my layout/platform and info.plist, it is working.

I don't know how to submit back to bcc9 but the 'patch' to the codecs list is attached.

Note to self: when swapping audio kext back and forth and what used to work doesn't work anymore, don't trust reboots. Shutdown power back on and save 2 1/2 hours of own life!
 

Attachments

  • patch-hda-codecs.pl_ALC668.patch.txt
    791 bytes · Views: 327
ADI 1984 it is! Didn't manage to get the injector kext working tonight (couldn't get it loaded for some reason), but after patching the 10.9.4 AppleHDA with ADI 1984 and manually replacing my layout/platform and info.plist, it is working.

I don't know how to submit back to bcc9 but the 'patch' to the codecs list is attached.

Note to self: when swapping audio kext back and forth and what used to work doesn't work anymore, don't trust reboots. Shutdown power back on and save 2 1/2 hours of own life!

Keep in mind:
- AppleHDA injector must be installed to SLE
- it will generally not work after the first reboot. Reboot, rebuild cache, reboot is required.
- config.plist patches must be in place...
- your note about failed attempts and cold reboot are true. It is very easy to get the HDA chip in a bad state requiring power down.
 
Status
Not open for further replies.
Back
Top