BillDH2k Posted April 20, 2023 Share Posted April 20, 2023 I have a nearly perfect working 5400 (unit #1, i5-8365U, my signature system) running Monterey. Try to setup an 2nd 5400 (Unit #2, i5-8250U), using the same EFI, the TouchPad is not working, while everything else appeared to be working fine. There are some some differences the two systems: they used different touch pad boards (see attached two pictures. Matching stock pictures). #1 has P/N 02GW1W, #2 has 04HHPD. In addition, #1 has Thunderbolt option, while #2 does not. I've attached the config.plist, and IO register reports below. This could be simple driver change, but I don't know which one to use. There is another difference: #1 has BIOS 1.22.1 (able to disable CFG Lock), while #2 has 1.23 (unable to disable CFG Lock, not down-gradable to older BIOS). Anyone has an answer? Thanks! config.plist.zip 5400-#1-IOReg-WorkingTouchPad.zip 5400-#2-IOReg-NonWorkingTouchPad.zip Link to comment Share on other sites More sharing options...
Baio77 Posted April 21, 2023 Share Posted April 21, 2023 Certainly there are aesthetically identical PCs, the problem is what is inside the body. Example you could have 2 identical PCs also as HW but the components could change. In my opinion you have 2 different Trackpads, you may need additional kexts https://github.com/blankmac/AlpsHID Link to comment Share on other sites More sharing options...
Solution BillDH2k Posted April 22, 2023 Author Solution Share Posted April 22, 2023 @Baio77 It turned out to be a simple fix. The culpit was that GPIO device in the unit #2 was not enabled by the generic "SSDT-GPI0.aml" patch used in my EFI. I had to use a different method, by setting GPEN =1, to enable it (as explained in the OpenCore guide, for my particular case). Also, I updated to the latest woodooI2C.kext. Now the touchpad worked! Here is the updated SSDT-GPIO.aml, only works on unit #2 (it's BIOS ACPI code will enable GPIO if GPEN =1): /* SSDT-GPIO.aml */ DefinitionBlock ("", "SSDT", 2, "DRTNIA", "GPI0", 0x00000000) { External (GPEN, FieldUnitObj) If (_OSI ("Darwin")) { \GPEN = One } } For comparison, here is the generic patch, which works on unit #1, not unit #2 (#1's BIOS is different. Not 100% sure caused by the version difference, or hardware difference): DefinitionBlock ("", "SSDT", 2, "hack", "GPI0", 0x00000000) { External (_SB_.PCI0.GPI0, DeviceObj) Scope (_SB.PCI0.GPI0) { Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } } } @Baio77: The AlpsHID kext also worked, but GPIO must be enabled first. 1 Link to comment Share on other sites More sharing options...
Baio77 Posted April 22, 2023 Share Posted April 22, 2023 yes analyzing ioreg I have not observed carefully , but the problem is what you wrote. it is very probable that 2 identical PCs have different HW components and/or different ACPI so it is easy to deal with problems similar to yours. All is well, that ends well Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now