Jump to content

Dell Latitude E6430 full solution


96 posts in this topic

Recommended Posts

I successfully installed macOS 10.11.6 and Windows 7 Pro SP1 in UEFI mode on the laptop.
I know, there are detailed guides here and on osxlatitude.com but I was not agree with them and carefully check and test every step to tune my Mac.
Intel® Core� i5-3320M CPU @ 2.60GHz, speedstep works with Clover default settings
Chipset Intel 7 series, no patches needed
Video: IntelHD4000 or NVS5200M switchable in BIOS, work in both cases
LAN; Intel 82579LM, works with IntelMausiEthernet.kext v2.2.1
Audio: IDT 92HD93BXX, works with VoodooHDA 2.9.0.
SDHC reader O2Micro; works with native AppleSDHC.kext with Clover Arbitrary properties.

USB3.0 works natively if not disabled in DSDT
PS2 keyboard and touchpad works with VoodooPS2.
WiFi: Dell Intel WiFi was replaced by Dell DW1520, Broadcom BCM943224HMS. DeviceID=4353
LCD Screen 1366x768

BIOS A12. Initially was A02. Then I flashed A23 and found it is quite bad. The screen is full of artefacts. Flash A12 and all is OK. Not tested other versions.

For some reason BIOS can switched from Intel to Nvidia by itself so I have to do my solution working independent on this state.



It is not working OOB although it has DeviceID known to Apple. The reason is WhiteList in the driver.

I set MacModel as MacBookPro10,1 while the WiFi will work on MacBookAir. I make a patch in Clover.

As well a patch for channels.

I deleted a kext Brcm4331 because it has the same DeviceID. Let kext Brcm4360 to work alone.



In Bios we can set Optimus = Enable/Disable

If Enable then we have two videocards Intel first and Nvidia second. In this case additional SSDT-3.aml will switch off Nvidia.

If Disable then we have only Nvidia card. It will work if Board-ID taken from iMac13,2.

But here there is contradiction with WiFi with required Board-ID from MacBookAir.

So I take MacModel as MacBookPro10,1 which is most close by CPU IvyBridge.

Set BoardID like iMac13,2 to make Nvidia working.

Patch BoardID in Brcm4360 to make WiFi working.

Now I have




and SSDT-3.aml in ACPI\patched folder. This SSDT will switch off Nvidia if Intel card ON.

For Intel graphics there is a patch against 8 apples at start.

This Nvidia 5200 is Fermi and works in ElCapitan.



No special kexts.

The brightness controlled by keys F1,F2 and slider in Control Panel in both case Intel or Nvidia. Details here  #72 



This is very long story and finally I have working sleep in both cases Intel or Nvidia.



I use my HWSensors3 with FakeSMC 3.5.2.

I got monitoring:

CPU temperature

GPU temperature

GPU main frequency

GPU shader frequency

Battery state % full, time to charged or time to empty.

Battery voltage dinamically.

Battery amperage dynamically. I can see it changes on heavy games.

HDD temperature.




I like VoodooHDA and have no problems with it.

The sound is clear, loud, and switchable between internal speaker and headphone.

Mic is working.



Just tested with BTFirmwareUpdate.kext and it works in 10.11.6. I not needed it so switched off by wireless switch at right side.

For 10.13.6 there is other kext BRCMInjector.


Keyboard, Touchpad and Touchstick

Post #14

I made my fork of the VoodooPS2 driver, take here sources and release version



My config, ACPI files and kexts are in attachment.





Better DSDT in the post #6.

Sleep working even when AC inserted.


EDITED 06.12.2018

Now I have HighSierra and this is my EFI folder. Note, HighSierra is possible only with Intel graphics (Optimus is enabled in BIOS)


Снимок экрана 2018-12-06 в 11.00.50.png



Welcome to discussion!




Latest EFI for Mojave here

  • Like 10
Link to comment
Share on other sites

Hi I recently got my E6430 with i7-3740QM and osxlatitude helped a lot with dsdt and ssdt for sleep. It still is not going past 3.50Ghz in geekbench I saw another thread here that says it is impossible for all 4 cores to be working with such (3740QM) I tried turning off All-Cores in BIOS and yes it jumped to 3.7GHz finally but geekbench was so bad (6384) that it was not worth it, so I understand if that is not something you can help with. 


I do want to know if you have hdmi out working with the video I am wanting to do some work with group and projector but I am seeing that my hdmi and vga both do not work with the mac os x. They work of course with Windows if I boot with that hard drive but not with OS X. Did you get that working? 


Will your EFI folder work with mine if I swap and test or is there something I should change for it to work? I am still trying to learn the dsdt and ssdt meaning (what they each do) and what or how we edit them for custom application to each machine. 

Link to comment
Share on other sites



I think you can test your laptop with my EFI. Be sure you can get back.

I also can not make HDMI working. It works in Windows but macOS.


About CPU I have a strange issue. I think it is DSDT bug.

Test with AC inserted.


Low frequency = 800

High = 2400


Test the same application but AC off. Only battery.


Low frequency = 1200

High = 3300


Should be vice versa?!

Link to comment
Share on other sites

For the TurboBoost to work correct I had to turn off TurboBoost in BIOS no one else said anything affirming this at osxlatitude but I read someone on another forum with a different situation and hardware approach this way, so I try because I was so frustrated to try anything and it worked! 


Here is that post from OsXLatitude


I have no idea why that would be such but I ran many tests once I got Jake Lo's dsdt and ssdt files he made for my 3740QM since when I first put them in swapping ACPI folder and config the PowerGadget did not go past 2.4 or 3 GHz , and had strange issues similar to yours but not identical. Mine were Jake Lo's ACPI/config swap had 3 or more different GHz-Ceilings, depending on what stage of sleep and how entered sleep, such like


Stage 1: Laptop first on from boot, 1.5GHz 

Stage 2: Laptop sleep from Energy Pane I chose 1 minute, then after wake, 3 GHz ceiling on PowerGadget

Stage 3: Laptop sleep from Lid, then wake from lifting lid and pressing power button, then 1.6 GHz

Stage 4: Laptop sleep from selecting sleep from Apple Menu, then wake, PowerGadget shows ceiling back at 3 GHz


I am forgetting some details here when I did however turn off in first test, both SpeedStep and TurboBoost in BIOS, Laptop booted up in full? 3.5 GHz and showed no different ceilings in PowerGadget wether Lid or Powerbutton or other sleep-method. Maybe this might affect the results on your Laptop to try BIOS Turbo/Speed to off and see?

Link to comment
Share on other sites

For the TurboBoost to work correct I had to turn off TurboBoost in BIOS 

Maybe this might affect the results on your Laptop to try BIOS Turbo/Speed to off and see?


No, in my case TurboBoost works as expected.

If ON then speed up to 3100.

If OFF then speed up to 2400. 

No side effect.


I want to share my better DSDT. I corrected:

1. Wake with Intel graphics as main (Optimus=Enable)

2. Sleep/Wake with AC adapter inserted.

3. Corrected switch off Optimus.




And I understand the problem with SpeedStep.

It depends on Board-ID which I set as iMac to make Nvidia works.

But speedstep of iMac is not good for MacBook.

Link to comment
Share on other sites

I have no good Trackpad driver. Only VoodooPS2Mouse or VoodooPS2Trackpad by rehabman which works exactly the same. They have no scroll function.

Two finger scrolling (and other features) are available with compatible Synaptics hardware.

You probably don't have Synaptics.

Search for PS2 kexts appropriate for your trackpad hardware.

Link to comment
Share on other sites

Use this one for Alps touchpad

That one is closed-source, violating the APSL.


There is also some ALPS versions of my version of VoodooPS2Controller.kext floating around (I don't track it, no ALPS hardware here).

Assuming one prefers open source, that is...

Link to comment
Share on other sites

Sorry, not sure if that has the latest changes by Dr.Hurt.

This here is the last update posted

Thanks for the update information.

Hope he will commit sources to github because osxl don't allow download to guests.


This driver is really best!

Link to comment
Share on other sites

Sorry, not sure if that has the latest changes by Dr.Hurt.

This here is the last update posted

I found no differencies with github sources. He seems already commit them

My changes more


-Great thanks to Dense for helping with activating vanilla trackpad prefpane 

It was me who first investigate it.


ADBKeys I know

diff -Nurpb /Users/sergey/Desktop/oldAlps/VoodooPS2Keyboard/ApplePS2ToADBMap.h /Users/sergey/Desktop/newAlps/VoodooPS2Keyboard/ApplePS2ToADBMap.h
--- /Users/sergey/Desktop/oldAlps/VoodooPS2Keyboard/ApplePS2ToADBMap.h	2016-11-04 03:10:14.000000000 +0300
+++ /Users/sergey/Desktop/newAlps/VoodooPS2Keyboard/ApplePS2ToADBMap.h	2017-10-11 07:36:59.000000000 +0300
@@ -119,22 +119,22 @@ static const UInt8 PS2ToADBMapStock[ADB_
     0x55,   // 51  Keypad 3 PageDn
     0x52,   // 52  Keypad 0 Insert
     0x41,   // 53  Keypad . Delete
-    0x44,   // 54  SysReq
+    0x44,   // 54  SysReq / Custom Calc
     0x46,   // 55
-    0x0a,   // 56  Europe 2(ISO)
+    0x0a,   // 56  Europe 2(ISO) º\ª (Spanish)
     0x67,   // 57  F11
     0x6f,   // 58  F12
     0x51,   // 59  Keypad =
-    DEADKEY,// 5a
-    DEADKEY,// 5b
+    0x4f,  // 5a Custom WWW
+    0x50,  // 5b Custom My Documents
     0x5f,   // 5c  Keyboard Int'l 6 (PC9800 Keypad , )
     DEADKEY,// 5d
     DEADKEY,// 5e
     DEADKEY,// 5f
-    DEADKEY,// 60
-    DEADKEY,// 61
-    DEADKEY,// 62
-    DEADKEY,// 63
+    0x3e,  // 60  Right Ctrl
+    0x3d,  // 61  Right Alt
+    0x4c,  // 62  Keypad Enter
+    0x4b,  // 63  Keypad / //??
     0x69,   // 64  F13
     0x6b,   // 65  F14
     0x71,   // 66  F15
@@ -143,26 +143,26 @@ static const UInt8 PS2ToADBMapStock[ADB_
     0x4f,   // 69  F18
     0x50,   // 6a  F19
     0x5a,   // 6b  F20
-    DEADKEY,// 6c  F21
-    DEADKEY,// 6d  F22
-    DEADKEY,// 6e  F23
-    DEADKEY,// 6f
-    0x68,   // 70  Keyboard Intl'2 (Japanese Katakana/Hiragana)
-    DEADKEY,// 71
-    DEADKEY,// 72
-    0x5e,   // 73  Keyboard Int'l 1 (Japanese Ro)
+    0x73,  // 6c  Home
+    0x77,  // 6d  End
+    0x69,  // 6e  Print Scrn
+    0x71,  // 6f  Pause
+    0x37,  // 70  Left Window
+    0x36,  // 71  Right Window
+    0x6e,  // 72  Applications
+    0x34,  // 73 Custom Play/Pause
     DEADKEY,// 74
     DEADKEY,// 75
-    DEADKEY,// 76  F24 , Keyboard Lang 5 (Japanese Zenkaku/Hankaku)
-    0x68,   // 77  Keyboard Lang 4 (Japanese Hiragana)
-    0x68,   // 78  Keyboard Lang 3 (Japanese Katakana)
+    0x3f,  // 76 Custom Stop
+    0x40,  // 77 Custom Prev Track
+    0x42,  // 78 Custom Next Track
     0x68,   // 79  Keyboard Int'l 4 (Japanese Henkan)
-    DEADKEY,// 7a
+    0x4d,  // 7a VidMirror
     0x66,   // 7b  Keyboard Int'l 5 (Japanese Muhenkan)
-    DEADKEY,// 7c
-    0x5d,   // 7d  Keyboard Int'l 3 (Japanese Yen)
-    0x5f,   // 7e  Keypad , (Brazilian Keypad .)
-    DEADKEY,// 7f 
+    0x7f,  // 7c
+    0x48,  // 7d Volume Up
+    0x49,  // 7e Volume Down
+    0x4a,  // 7f Volume Mute
     DEADKEY,// 80 
     DEADKEY,// 81 
     DEADKEY,// 82 

3. URL to sources

 	<key>Source Code</key>
-	<string>https://github.com/RehabMan/OS-X-Voodoo-PS2-Controller</string>
+	<string>https://github.com/DrHurt/OS-X-ALPS-DRIVER</string>

4. Test keyboard echo

diff -Nurpb /Users/sergey/Desktop/oldAlps/VoodooPS2Keyboard/VoodooPS2Keyboard.cpp /Users/sergey/Desktop/newAlps/VoodooPS2Keyboard/VoodooPS2Keyboard.cpp
--- /Users/sergey/Desktop/oldAlps/VoodooPS2Keyboard/VoodooPS2Keyboard.cpp	2016-12-25 10:20:06.000000000 +0300
+++ /Users/sergey/Desktop/newAlps/VoodooPS2Keyboard/VoodooPS2Keyboard.cpp	2017-10-11 07:37:45.000000000 +0300
@@ -92,7 +92,8 @@ void* _org_rehabman_dontstrip_[] =
 // get some keyboard id information from IOHIDFamily/IOHIDKeyboard.h and Gestalt.h
 //#define APPLEPS2KEYBOARD_DEVICE_TYPE	205 // Generic ISO keyboard
-#define APPLEPS2KEYBOARD_DEVICE_TYPE	3   // Unknown ANSI keyboard
+//#define APPLEPS2KEYBOARD_DEVICE_TYPE	3   // Unknown ANSI keyboard
 OSDefineMetaClassAndStructors(ApplePS2Keyboard, IOHIKeyboard);
@@ -411,8 +412,11 @@ ApplePS2Keyboard* ApplePS2Keyboard::prob
     TPS2Request<2> request;
     request.commands[0].command = kPS2C_WriteDataPort;
     request.commands[0].inOrOut = kDP_TestKeyboardEcho;
-    request.commands[1].command = kPS2C_ReadDataPort;
-    request.commands[1].inOrOut = 0x00;
+//    request.commands[1].command = kPS2C_ReadDataPort;
+//    request.commands[1].inOrOut = 0x00;
+  request.commands[1].command = kPS2C_ReadDataPortAndCompare;
+  request.commands[1].inOrOut = kDP_TestKeyboardEcho; //Slice 0xEE
     request.commandsCount = 2;
     assert(request.commandsCount <= countof(request.commands));

5. Special multimedia keys

@@ -1681,6 +1685,18 @@ bool ApplePS2Keyboard::dispatchKeyboardE
                 keyCode = 0;
+		  case 0x130: keyCode = 0x7d; break;		   // E030 = volume up
+		  case 0x12e: keyCode = 0x7e; break;		   // E02E = volume down
+		  case 0x120: keyCode = 0x7f; break;		   // E020 = volume mute
+		  case 0x119: keyCode = 0x78; break;		//E019 = next track
+		  case 0x110: keyCode = 0x77; break;		//E010 = prev track
+		  case 0x124: keyCode = 0x76; break;		//E024 = stop
+		  case 0x122: keyCode = 0x73; break;		//E022 = play/pause
+			  //	  case 0x21: keyCode = 0x54; break;		//E021 = calculator
+			  //	  case 0x16: keyCode = 0x55; break;		//E016 = logout
+		  case 0x10b: keyCode = 0x7a; break;		//E04d = VideoMirror
         case 0x0153:    // delete

I don't know if the existing driver do this other way.


6. ALPS new ID

diff -Nurpb /Users/sergey/Desktop/oldAlps/VoodooPS2Trackpad/alps.cpp /Users/sergey/Desktop/newAlps/VoodooPS2Trackpad/alps.cpp
--- /Users/sergey/Desktop/oldAlps/VoodooPS2Trackpad/alps.cpp	2017-02-11 19:47:38.000000000 +0300
+++ /Users/sergey/Desktop/newAlps/VoodooPS2Trackpad/alps.cpp	2017-10-10 22:44:44.000000000 +0300
@@ -140,6 +140,7 @@ static const struct alps_model_info alps
     { { 0x62, 0x02, 0x14 }, 0x00, ALPS_PROTO_V2, 0xcf, 0xcf,
     { { 0x73, 0x02, 0x50 }, 0x00, ALPS_PROTO_V2, 0xcf, 0xcf, ALPS_FOUR_BUTTONS },
+    { { 0x73, 0x03, 0x64 }, 0x00, ALPS_PROTO_V2, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED },
     /* Dell Vostro 1400 */
     { { 0x52, 0x01, 0x14 }, 0x00, ALPS_PROTO_V2, 0xff, 0xff,

7. Change boot to void as these procedures will not return a value

diff -Nurpb /Users/sergey/Desktop/oldAlps/VoodooPS2Trackpad/alps.cpp /Users/sergey/Desktop/newAlps/VoodooPS2Trackpad/alps.cpp
--- /Users/sergey/Desktop/oldAlps/VoodooPS2Trackpad/alps.cpp	2017-02-11 19:47:38.000000000 +0300
+++ /Users/sergey/Desktop/newAlps/VoodooPS2Trackpad/alps.cpp	2017-10-10 22:44:44.000000000 +0300
@@ -2410,7 +2411,7 @@ bool ALPS::alps_hw_init_ss4_v2()
-bool ALPS::ps2_command(unsigned char value, UInt8 command)
+void ALPS::ps2_command(unsigned char value, UInt8 command)
     TPS2Request<2> request;
     int cmdCount = 0;
@@ -2424,12 +2425,12 @@ bool ALPS::ps2_command(unsigned char val
     if (request.commandsCount != 2) {
-        return false;
+        return;
     //return request.commandsCount = cmdCount;
-bool ALPS::ps2_command_short(UInt8 command)
+void ALPS::ps2_command_short(UInt8 command)
     TPS2Request<1> request;
     int cmdCount = 0;
@@ -2441,7 +2442,7 @@ bool ALPS::ps2_command_short(UInt8 comma
     if (request.commandsCount != 1) {
-        return false;
+        return;
     //return request.commandsCount = cmdCount;
diff -Nurpb /Users/sergey/Desktop/oldAlps/VoodooPS2Trackpad/alps.h /Users/sergey/Desktop/newAlps/VoodooPS2Trackpad/alps.h
--- /Users/sergey/Desktop/oldAlps/VoodooPS2Trackpad/alps.h	2017-02-11 19:40:32.000000000 +0300
+++ /Users/sergey/Desktop/newAlps/VoodooPS2Trackpad/alps.h	2017-10-10 22:44:44.000000000 +0300
@@ -445,9 +445,9 @@ protected:
     bool alps_hw_init_ss4_v2();
-    bool ps2_command_short(UInt8 command);
+    void ps2_command_short(UInt8 command);
-    bool ps2_command(unsigned char value, UInt8 command);
+    void ps2_command(unsigned char value, UInt8 command);
     void set_protocol();

Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...

I just want to say, thanks for sharing!
It works like 99% good on my E6430 with fresh High Sierra

Sadly, sleep is neither working with Battery nor with AC.

And i got some Artefatcts while booting, but i dont worry about. If booted, everything is good!


But all in all, thanks again for sharing your config!

Best regards from germany!

Link to comment
Share on other sites


  • Create New...