Jump to content

E6430 Audio/Sleep/Docking Station


colander144

Recommended Posts

Hi,

 

What i have seen, here are some really good Dell Latitude Gurus in this Forum. 

 

I am searching now for days for solutions an tried a lot of things... first i explain a bit what i have done:

 

I put my Specs and used Kexts in my sig....Ah yeah am using SMBios MBP9,1 i forgot to say in there...

If i forgot something please let me know.

As well i put into this thread my Original DSDT and my patched one my SSDT's and my config.plist. And sure my codec dump. My SSDT's are all untouched.

 

I installed my system in my own punk like method, i explain it very short just to get you a picture: 

 

prepare the stick

then this:

sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/Untitled --applicationpath /Applications/Install\ OS\ X\ Yosemite.app --nointeraction

 

installed clover on it

used a config.plist from my samsung laptop and modified it just for the installation to run.

 

Then i started to google and get device by device to work.

 

Yes, sure first i extracted the Original DSDT and SSDT's from Windows and the codec dump later from Ubuntu.

 

what works:

The Nvidia Card works quite nice with "all" video outputs (built in Display/VGA/HDMI)

Keyboard Backlight

USB 2.0 and 3.0

Wifi

BT

DVD-reading (with DSDT)

Ethernet

 

what partially works:

Battery indicator (when i plug out the cable, i get a Battery Logo with a X inside; when i boot just with the Battery it will indicate allright; system always says that the Battery is not loading but after a reboot it's fully loaded. It seems that it just sees the actual battery state just during the boot process, but not during the system run.

 

Keyboard FN Keys, but yeah for that and gestures on the Trackpad i found a very nice tutorial, but this will be the last thing i care about for now... :)

 

what doesn't work:

Sleep-- Yes i have read here in the forum that the Nvidia card is the cause for that, but my Bios version is A16 and i also read that i get artifacts with the HD4000 and no HDMI nor VGA.... so that's even worse... :(

 

Audio-- I really can't get audio work. I don't wanna use VoodooHDA and every patched AppleHDA or AppleHDAIDT IDT 76df or patch myself via script and dummyHDA doesn't work. The best i can get out of it is that AppleHDA recognizes my card and loads, but i have no input or output devices in system preferences.

 

Docking Station-- As soon as i plug in the Laptop the System freezes and when i boot while it is plugged in the system freezes during the boot process, but every boot at a different place, so it's hard for me to say when exactly.

I have two different types of docking stations... the older bigger (Model will follow when needed tomorrow) ones with just USB 2.0 and the smaller newer (Pro3.x) ones with USB 3.0 already, but it's the same with both.

 

SD-Cardreader--actually it's even after the FN Keys in my todo list and i found as well some solutions already within this Forum for it.

 

My main Problems are really Docking station, Sleep and Audio...

 

Do you know what i could do next.... am really out of ideas... :(

 

I would very appreciate every bit of help!!!

 

Thank you very much in advance!!!

 

...and sorry for my english...

 

Kind regards

Pack.zip

Link to comment
Share on other sites

  • Moderators

Your audio is not working is because you have layout-id = 03, should be 12 or 0C in hex. At least that's what I have for the patched kext I used. 

I still don't have sleep working for this particular system, but as far as I could remember, the port replicator should work.

Link to comment
Share on other sites

YEAH, Thank you very much!!! :))) Audio works now with your Kext! but just for the headphone plug or can it be that this model has no built in speakers?? I can't see the typical speaker holes...
How did you patch the Kext??
My Goal will be to inject it with clover so i don't have to think about it during updates...
 
What do you mean with port replication??

Link to comment
Share on other sites

ah forget it i know it now, you meant the docking station with the port replicator, do you?

 

Yes, there is one guy here who had it running. I sent him a message already too.... will see what happens...

 

The only difference i could find is that you used GenericUSBxhci or something called and i use the fake injector, but with the Generic i have no constant USB 3.0 somehow....:(

Link to comment
Share on other sites

  • Moderators

Add this to Clover, also added Trim and Boot Glitch fix

<dict>
<key>Comment</key>
<string>Enable TRIM for SSD</string>
<key>Find</key>
<data>
AEFQUExFIFNTRAA=
</data>
<key>Name</key>
<string>IOAHCIBlockStorage</string>
<key>Replace</key>
<data>
AAAAAAAAAAAAAAA=
</data>
</dict>
<dict>
<key>Comment</key>
<string>Boot graphics glitch, 10.10.2/10.10.3</string>
<key>Find</key>
<data>
QYjE6xE=
</data>
<key>Name</key>
<string>IOGraphicsFamily</string>
<key>Replace</key>
<data>
QYjE6zE=
</data>
</dict>
<dict>
<key>Comment</key>
<string>AppleHDA IDT 76DF #1</string>
<key>Find</key>
<data>
ixnUEQ==
</data>
<key>Name</key>
<string>AppleHDA</string>
<key>Replace</key>
<data>
33YdEQ==
</data>
</dict>
<dict>
<key>Comment</key>
<string>AppleHDA IDT 76DF #2</string>
<key>Find</key>
<data>
hBnUEQ==
</data>
<key>Name</key>
<string>AppleHDA</string>
<key>Replace</key>
<data>
AAAAAA==
</data>
</dict>

Internal speaker and headphone should work, just not external mic as far as I could tell. Try repairing your permission.

 

GenericUSBXHCI is known to not work well on Yosemite. If the injector works, then stick with that. I have not tested it but will when I have a chance.

Link to comment
Share on other sites

YEAH cool that works great!!! :) glitches at boot now gone too...:)))

 

That's funny, there's no internal Speaker recognized at all, but my mic works perfectly fine. I repaired permissions and rebuild cache...

 

To enable trim i used just this command in Terminal:

 

sudo trimforce enable

 

 

It works an i read that we can use it since 10.10.4. 

 

System profiler shows yes at trim and my Sata tree says now "Intel ESB2 AHCI" ...don't know what that means...

 

With the FakePCIID.kext and the FakePCIID_XHCIMux.kext i used the following DSDT-Patches as well:

 

hmmm i just double checked and it seems i didn't use the dsdt patches... anyway i really tried a lot and reverted a lot... lol, but anyway here they are...

but i really think that usb started working right after these patches.....maybe i messed up my dsdt and the use with the port replicator with overpatching it???!!!

 

I try to start with the fresh original dsdt tomorrow...

#Maintained by: RehabMan for: Laptop Patches
#usb_USB_7-series.txt

# USB property injection for 7-series boards (originally HM76)

# Insert Apple USB properties into EHC1
into method label _DSM parent_adr 0x001D0000 remove_entry;
into device name_adr 0x001D0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "AAPL,clock-id", Buffer() { 0x01 },\n
        "built-in", Buffer() { 0x00 },\n
        "subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 },\n
        "subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 },\n
        "AAPL,current-available", 2100,\n
        "AAPL,current-extra", 2200,\n
        "AAPL,current-extra-in-sleep", 1600,\n
        "AAPL,device-internal", 0x02,\n
        "AAPL,max-port-current-in-sleep", 2100,\n
    })\n
}\n
end;

# Insert Apple USB properties into EHC2
into method label _DSM parent_adr 0x001A0000 remove_entry;
into device name_adr 0x001A0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "AAPL,clock-id", Buffer() { 0x01 },\n
        "built-in", Buffer() { 0x00 },\n
        "subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 },\n
        "subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 },\n
        "AAPL,current-available", 2100,\n
        "AAPL,current-extra", 2200,\n
        "AAPL,current-extra-in-sleep", 1600,\n
        "AAPL,device-internal", 0x02,\n
        "AAPL,max-port-current-in-sleep", 2100,\n
    })\n
}\n
end;

# Insert Apple USB properties into USB 3.0 XHC
into method label _DSM parent_adr 0x00140000 remove_entry;
into device name_adr 0x00140000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
    Return (Package()\n
    {\n
        "AAPL,clock-id", Buffer() { 0x02 },\n
        "built-in", Buffer() { 0x00 },\n
        "subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 },\n
        "subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 },\n
        "AAPL,current-available", 2100,\n
        "AAPL,current-extra", 2200,\n
        "AAPL,current-extra-in-sleep", 1600,\n
        "AAPL,device-internal", 0x02,\n
        "AAPL,max-port-current-in-sleep", 2100,\n
    })\n
}\n
end;

——————————————————————————————————————————————————————————————————————

#Maintained by: RehabMan for: Laptop Patches
#usb_7-series-multiplex.txt

# Originally Maintained by: PJALM for: PJALM Intel7 at: Thu Aug 15 09:07:46 UTC 2013
# Intel z77 USB2/USB3 Multiplexing Fix
# USB3 patches in thanks to SJ_Underwater and Mieze
# Code optimizations thanks to RehabMan and PikeRAlpha

# Further optimizations by RehabMan 2013-10-14

#
# Note: These patches are often not universal.  If your DSDT is substantially
# different, you may need to tweak them or refer to the various
# guides for XHC patching to implement it correctly for your
# board.
#

# Fix method _OSC
into method label _OSC parent_label PCI0 remove_entry;
into device label PCI0 parent_label _SB insert
begin
Method (_OSC, 4, Serialized)\n
{\n
	Store (Arg3, Local0)\n
	CreateDWordField (Local0, Zero, CDW1)\n
	CreateDWordField (Local0, 0x04, CDW2)\n
	CreateDWordField (Local0, 0x08, CDW3)\n
    //was: Store (CDW2, SUPP)\n
    Store (CDW3, Local3) //was: Store (CDW3, CTRL))\n
    If (LAnd (LEqual (Arg0, GUID), NEXP))\n
    {\n
        If (Not (And (CDW1, One)))\n
        {\n
            If (And (Local3, 0x02)) //was: And (CTRL, 0x02)\n
            {\n
                NHPG ()\n
            }\n
            If (And (Local3, 0x04)) //was: And (CTRL, 0x04)\n
            {\n
                NPME ()\n
            }\n
        }\n
        If (LNotEqual (Arg1, One))\n
        {\n
            Or (CDW1, 0x08, CDW1)\n
        }\n
        If (LNotEqual (CDW3, Local3)) //was: LNotEqual (CDW3, CTRL)\n
        {\n
            Or (CDW1, 0x10, CDW1)\n
        }\n
        Store (Local3, CDW3) //was: Store(CTRL, CDW3)\n
        Store (Local3, OSCC) //was: Store(CTRL, OSCC)\n
    }\n
    Else\n
    {\n
        Or (CDW1, 0x04, CDW1)\n
    }\n
    Return (Local0)\n
}\n
end;

# Fix EHC1
into device label PR11 code_regex Name\s\(MUXS[^)]+\) remove_matched;
into device label PR11 parent_label PR01 insert begin Name (MUXS, "XHCA") end;
into device label PR12 code_regex Name\s\(MUXS[^)]+\) remove_matched;
into device label PR12 parent_label PR01 insert begin Name (MUXS, "XHCB") end;
into device label PR13 code_regex Name\s\(MUXS[^)]+\) remove_matched;
into device label PR13 parent_label PR01 insert begin Name (MUXS, "XHCC") end;
into device label PR18 code_regex Name\s\(MUXS[^)]+\) remove_matched;
into device label PR18 parent_label PR01 insert begin Name (MUXS, "XHCD") end;

into method label XHCA parent_label EHC1 remove_entry;
into method label XHCB parent_label EHC1 remove_entry;
into method label XHCC parent_label EHC1 remove_entry;
into method label XHCD parent_label EHC1 remove_entry;
into method label EHCA parent_label EHC1 remove_entry;
into method label EHCB parent_label EHC1 remove_entry;
into method label EHCC parent_label EHC1 remove_entry;
into method label EHCD parent_label EHC1 remove_entry;
into method label XHCN parent_label EHC1 remove_entry;
into device label EHC1 code_regex Name\s\(XHCN,\sOne\) remove_matched;

into device label EHC1 insert begin
Name (XHCN, One)\n
Method (XHCA, 0, NotSerialized) { Store (1, ^^XHC1.PAHC) }\n
Method (XHCB, 0, NotSerialized) { Store (1, ^^XHC1.PBHC) }\n
Method (XHCC, 0, NotSerialized) { Store (1, ^^XHC1.PCHC) }\n
Method (XHCD, 0, NotSerialized) { Store (1, ^^XHC1.PDHC) }\n
Method (EHCA, 0, NotSerialized) { Store (0, ^^XHC1.PAHC) }\n
Method (EHCB, 0, NotSerialized) { Store (0, ^^XHC1.PBHC) }\n
Method (EHCC, 0, NotSerialized) { Store (0, ^^XHC1.PCHC) }\n
Method (EHCD, 0, NotSerialized) { Store (0, ^^XHC1.PDHC) }\n
end;

# Fix EHC2
into method label XHCN parent_label EHC2 remove_entry;
into device label EHC2 code_regex Name\s\(XHCN,\sOne\) remove_matched;
into device label EHC2 insert begin Name (XHCN, One)\n end;

# Fix XHC1
into device label XHC set_label begin XHC1 end;
into_all all code_regex XHC(?=\W) replaceall_matched begin XHC1 end;
into method label _WAK code_regex \_SB.PCI0.XHC1.XWAK replace_matched begin _SB.PCI0.XHC1._INI end;

# Rewrite XHC/XHC1 device
into device label XHC1 replace_content 
begin
Name (_ADR, 0x00140000)\n
Name (_S3D, 0x02)\n
Name (_S4D, 0x02)\n
Name (XRST, Zero)\n
\n
OperationRegion (XPRT, PCI_Config, 0x74, 0x10)\n
Field (XPRT, DWordAcc, NoLock, Preserve)\n
{\n
	Offset (0x01),\n
	PMEE,   1,\n
		,   6,\n
	PMES,   1\n
}\n
\n
OperationRegion (XH1C, PCI_Config, 0xD0, 0x10)\n
Field (XH1C, ByteAcc, NoLock, Preserve)\n
{\n
	PAHC,   1,\n
	PBHC,   1,\n
	PCHC,   1,\n
	PDHC,   1,\n
	Offset (0x08),\n
	PASS,   1,\n
	PBSS,   1,\n
	PCSS,   1,\n
	PDSS,   1\n
}\n
\n
OperationRegion (XHC2, PCI_Config, 0x44, 0x04)\n
Field (XHC2, ByteAcc, NoLock, Preserve)\n
{\n
	Offset (0x01),\n
	MIAI,   2\n
}\n
\n
Method (_INI, 0, NotSerialized)\n
{\n
    Store (Zero, MIAI)\n
}\n
\n
Device (RHUB)\n
{\n
	Name (_ADR, Zero)\n
    Name (UPCP, Package() { 0xFF, 0x03, Zero, Zero })\n
	Device (PRT1)\n
	{\n
		Name (_ADR, One)\n
		Alias (UPCP, _UPC)\n
		Name (_PLD, Package()\n
        {\n
            Buffer()\n
            {\n
                0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                0x69, 0x0C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00\n
            }\n
        })\n
		Name (MUXS, "EHCA")\n
	}\n
	Device (PRT2)\n
	{\n
		Name (_ADR, 0x02)\n
		Alias (UPCP, _UPC)\n
        Name (_PLD, Package()\n
        {\n
            Buffer()\n
            {\n
                0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                0x69, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00\n
            }\n
        })\n
		Name (MUXS, "EHCB")\n
	}\n
	Device (PRT3)\n
	{\n
		Name (_ADR, 0x03)\n
		Alias (UPCP, _UPC)\n
        Name (_PLD, Package()\n
        {\n
            Buffer()\n
            {\n
                0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                0x69, 0x0C, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00\n
            }\n
        })\n
		Name (MUXS, "EHCC")\n
	}\n
	Device (PRT4)\n
	{\n
		Name (_ADR, 0x04)\n
		Alias (UPCP, _UPC)\n
        Name (_PLD, Package()\n
        {\n
            Buffer()\n
            {\n
                0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n
                0x69, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00\n
            }\n
        })\n
		Name (MUXS, "EHCD")\n
	}\n
}\n
\n
Method (_DSM, 4, NotSerialized)\n
{\n
    If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n
	Return (Package()\n
    {\n
        "AAPL,clock-id", Buffer() { 0x02 },\n
        "built-in", Buffer() { 0x00 },\n
        "subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 },\n
        "subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 },\n
        "AAPL,current-available", 2100,\n
        "AAPL,current-extra", 2200,\n
        "AAPL,current-extra-in-sleep", 1600,\n
        "AAPL,device-internal", 0x02,\n
        "AAPL,max-port-current-in-sleep", 2100,\n
    })\n
}\n
\n
Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0D, 0x04)) }\n
// alternate for above\n
//Method (_PRW, 0, NotSerialized) { Return (Package() { 0x0D, 0x04 }) }\n
Method (XHCA, 0, NotSerialized) { Store (One, PAHC) }\n
Method (XHCB, 0, NotSerialized) { Store (One, PBHC) }\n
Method (XHCC, 0, NotSerialized) { Store (One, PCHC) }\n
Method (XHCD, 0, NotSerialized) { Store (One, PDHC) }\n
Method (EHCA, 0, NotSerialized) { Store (Zero, PAHC) }\n
Method (EHCB, 0, NotSerialized) { Store (Zero, PBHC) }\n
Method (EHCC, 0, NotSerialized) { Store (Zero, PCHC) }\n
Method (EHCD, 0, NotSerialized) { Store (Zero, PDHC) }\n
end;

I need to sleep now...have to get up early in the morning...

I report back tomorrow...

 

Thank you for you help Jake Lo!!!

Link to comment
Share on other sites

Lol, Yes the port replicator works ootb, with the origin DSDT, but now i can't get USB to work stable... :DDD ... and FakePCIID.kext doesn't even load...

 

Shit, i really don't know how i got USB3.0 to work and USB2 stable??

 

I'm really bad in DSDT editing and i didn't sleep from friday to sunday last weekend...damn i really don't remember what i've done so far... :(

 

Now i can't get the Dock to work with one DSDT or USB with the other...

 

Can you help out please???

 

DSDT.aml is the DSDT with working dock but no USB 3.0.

DSDTUSB3.aml is the one with working USB3.0 but no dock.

 

Thank you very much in advance!!!

DSDT.aml.zip

DSDTUSB3.aml.zip

Link to comment
Share on other sites

Did you ever get sleep or USB to work properly with the port replicator?

I have the E6430 that I use with the port replicator under Chameleon.  Everything works fine except for the audio jack on the port replicator (so I use the jack on the laptop itself).

However, I want to use Clover so that I can use iMessage.  But if I boot with Clover, the USB on the port replicator no longer works and the laptop will not sleep (wakes immediately).

Are you using the GenericUSBXHCI kext?

Link to comment
Share on other sites

×
×
  • Create New...