From a985053bc592712b157f2f6d85005e92043b8221 Mon Sep 17 00:00:00 2001 From: Tyler Nguyen Date: Fri, 26 Jun 2020 08:22:55 -0500 Subject: [PATCH] Lots of improvements, please check changelog --- .gitignore | 1 + EFI-OpenCore/EFI/OC/ACPI/SSDT-HPET.aml | Bin 112 -> 124 bytes EFI-OpenCore/EFI/OC/ACPI/SSDT-Keyboard.aml | Bin 2391 -> 2720 bytes EFI-OpenCore/EFI/OC/ACPI/SSDT-MCHC.aml | Bin 104 -> 0 bytes EFI-OpenCore/EFI/OC/ACPI/SSDT-SBUS.aml | Bin 190 -> 0 bytes .../Kexts/VoodooRMI.kext/Contents/Info.plist | 95 ++++ .../VoodooRMI.kext/Contents/MacOS/VoodooRMI | Bin 0 -> 168080 bytes .../VoodooInput.kext/Contents/Info.plist | 76 +++ .../Contents/MacOS/VoodooInput | Bin 0 -> 93920 bytes .../Contents/_CodeSignature/CodeResources | 115 ++++ .../Contents/_CodeSignature/CodeResources | 125 +++++ .../VoodooSMBus.kext/Contents/Info.plist | 528 ++++++++++++++++++ .../Contents/MacOS/VoodooSMBus | Bin 0 -> 265056 bytes .../Headers/VoodooSMBusDeviceNub.hpp | 50 ++ .../Contents/_CodeSignature/CodeResources | 132 +++++ EFI-OpenCore/EFI/OC/config.plist | 473 ++++++---------- EFI-OpenCore/README.md | 36 +- EFI-install_USB/EFI/OC/config.plist | 12 +- README.md | 64 ++- docs/2_README-installMEDIA.md | 10 +- docs/3_README-POSTinstallation.md | 12 +- docs/4_README-ACPIpatching.md | 25 +- docs/5_README-other.md | 2 + docs/CHANGELOG.md | 22 + docs/assets/img/ALCPlugFix_fixAudio.png | Bin 31739 -> 28401 bytes .../img/macOS Settings/Battery_powernap.png | Bin 120926 -> 117226 bytes .../img/macOS Settings/Bluetooth_wake.png | Bin 138056 -> 134356 bytes .../img/macOS Settings/Poweradt_powernap.png | Bin 127881 -> 124181 bytes docs/assets/img/macOS Settings/touchpad.png | Bin 254339 -> 251001 bytes patches/OpenCore Patches/TPbattery.plist | 248 -------- patches/OpenCore Patches/x1c6-keyboard.plist | 34 ++ patches/SSDT-HPET.dsl | 10 +- patches/SSDT-Keyboard.dsl | 69 ++- patches/SSDT-MCHC.dsl | 25 - patches/SSDT-SBUS.dsl | 47 -- 35 files changed, 1524 insertions(+), 687 deletions(-) delete mode 100644 EFI-OpenCore/EFI/OC/ACPI/SSDT-MCHC.aml delete mode 100644 EFI-OpenCore/EFI/OC/ACPI/SSDT-SBUS.aml create mode 100644 EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/Info.plist create mode 100755 EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/MacOS/VoodooRMI create mode 100644 EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/PlugIns/VoodooInput.kext/Contents/Info.plist create mode 100755 EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/PlugIns/VoodooInput.kext/Contents/MacOS/VoodooInput create mode 100644 EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/PlugIns/VoodooInput.kext/Contents/_CodeSignature/CodeResources create mode 100644 EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/_CodeSignature/CodeResources create mode 100644 EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/Info.plist create mode 100755 EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/MacOS/VoodooSMBus create mode 100644 EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/Resources/Headers/VoodooSMBusDeviceNub.hpp create mode 100644 EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/_CodeSignature/CodeResources delete mode 100644 patches/SSDT-MCHC.dsl delete mode 100644 patches/SSDT-SBUS.dsl diff --git a/.gitignore b/.gitignore index f4fbe44..e8f5564 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ Library/Extensions/HighPointIOP.kext Library/Extensions/HighPointRR.kext Library/Extensions/PromiseSTEX.kext Library/Extensions/SoftRAID.kext +SMBIOS.plist diff --git a/EFI-OpenCore/EFI/OC/ACPI/SSDT-HPET.aml b/EFI-OpenCore/EFI/OC/ACPI/SSDT-HPET.aml index da1e74438a9b1db0a43243f4c0b04cdeeaf2df27..7494cd70ca984ca13faf84f9308ddfddf3013e26 100644 GIT binary patch delta 60 zcmXS@;R+6R38`UVU|=$v$R#bT#UL7^&m14@6d&O1Y2Xv!?8G)v%|JwiOHhfCvyGF1 Pk%8gDKL!>ChDrtiim(he delta 48 zcmb;^;0g|Q2`OM;U|`an$R*7vG10<6N{UNdiIG8xfl-Npqm7e+k%8gDKL!>ChDrti D+z|*o diff --git a/EFI-OpenCore/EFI/OC/ACPI/SSDT-Keyboard.aml b/EFI-OpenCore/EFI/OC/ACPI/SSDT-Keyboard.aml index 7383fa04c4e6a764090aaaf6a7db4c7b6079991f..26093c0bc70af57b9cc73dbfbb142d26b8996ae8 100644 GIT binary patch delta 184 zcmcaEv_OG~}3!A|i3&YlK70nSdY&hhaaKCUjt3?g0v@qy+h3=2H@;{Ag?d0i5V z$}{sA7C5j^2Fp(lWD=cRz#`6=Ie7z{0Uyv@E~WxTkkmp?Hn8M+R&l0GW-#+Es}vVd X1w#P?NWtWVOyW%DCYx6>u44xPhw?DA delta 50 zcmZ1=dR>SsIM^j5oRfipDQ+T{G>g9&gXrXiOu`dw^ftDzGfrN~sKVqIHu*fG*ye9c GtJncd5e_&2 diff --git a/EFI-OpenCore/EFI/OC/ACPI/SSDT-MCHC.aml b/EFI-OpenCore/EFI/OC/ACPI/SSDT-MCHC.aml deleted file mode 100644 index d6c07f29e13de241d410246d4ffc46cbd1695f3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104 zcmWFzb_vN~U|?X{S5ldiTEyV%?BNXLf`O-Bh>rlHg2DoR2GJP3_+Y2_0B27FHU tI48PE9i)RJ-q9t9K}0$}IK+`*fk3=}uqUreVo`Z!9>WqY{)Nm-7y#BC836zQ diff --git a/EFI-OpenCore/EFI/OC/ACPI/SSDT-SBUS.aml b/EFI-OpenCore/EFI/OC/ACPI/SSDT-SBUS.aml deleted file mode 100644 index 39ff0dcaaafb212992cf30f223446041529b6f4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmWFzb_vG + + + + BuildMachineOSBuild + 17G13035 + CFBundleDevelopmentRegion + en + CFBundleExecutable + VoodooRMI + CFBundleIdentifier + com.1Revenger1.VoodooRMI + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + VoodooRMI + CFBundlePackageType + KEXT + CFBundleShortVersionString + 0.4 + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 0.4 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 9F2000 + DTPlatformVersion + GM + DTSDKBuild + 17E189 + DTSDKName + macosx10.13 + DTXcode + 0941 + DTXcodeBuild + 9F2000 + IOKitPersonalities + + RMIDevice + + CFBundleIdentifier + com.1Revenger1.VoodooRMI + Configuration + + DisableWhileTypingTimeout + 500 + TrackstickMultiplier + 5 + TrackstickScrollMultiplierX + 5 + TrackstickScrollMultiplierY + 5 + + IOClass + RMIBus + IOProbeScore + 2910 + IOProviderClass + RMISMBus + + RMISMBus + + CFBundleIdentifier + com.1Revenger1.VoodooRMI + IOClass + RMISMBus + IOProbeScore + 500 + IOProviderClass + VoodooSMBusDeviceNub + + + NSHumanReadableCopyright + Copyright © 2020 1Revenger1. All rights reserved. + OSBundleLibraries + + com.apple.iokit.IOHIDFamily + 2.0 + com.apple.kpi.iokit + 18.5 + com.apple.kpi.libkern + 18.5 + com.apple.kpi.mach + 18.5 + de.leo-labs.VoodooSMBus + 2.1 + + OSBundleRequired + Console + + diff --git a/EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/MacOS/VoodooRMI b/EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/MacOS/VoodooRMI new file mode 100755 index 0000000000000000000000000000000000000000..904431b212a966009bf1f80aad4f844e564a18b4 GIT binary patch literal 168080 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 literal 0 HcmV?d00001 diff --git a/EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/PlugIns/VoodooInput.kext/Contents/Info.plist b/EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/PlugIns/VoodooInput.kext/Contents/Info.plist new file mode 100644 index 0000000..304731f --- /dev/null +++ b/EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/PlugIns/VoodooInput.kext/Contents/Info.plist @@ -0,0 +1,76 @@ + + + + + BuildMachineOSBuild + 17G13035 + CFBundleDevelopmentRegion + en + CFBundleExecutable + VoodooInput + CFBundleIdentifier + me.kishorprins.VoodooInput + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + VoodooInput + CFBundlePackageType + KEXT + CFBundleShortVersionString + 1.0.6 + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 1.0.6 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 9F2000 + DTPlatformVersion + GM + DTSDKBuild + 17E189 + DTSDKName + macosx10.13 + DTXcode + 0941 + DTXcodeBuild + 9F2000 + IOKitPersonalities + + Voodoo Input + + CFBundleIdentifier + me.kishorprins.VoodooInput + IOClass + VoodooInput + IOProbeScore + 200 + IOPropertyMatch + + VoodooInputSupported + + + IOProviderClass + IOService + + + NSHumanReadableCopyright + Copyright © 2019 Kishor Prins. All rights reserved. + OSBundleLibraries + + com.apple.iokit.IOHIDFamily + 2.0 + com.apple.kpi.iokit + 14 + com.apple.kpi.libkern + 14 + com.apple.kpi.mach + 13.0 + + OSBundleRequired + Root + + diff --git a/EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/PlugIns/VoodooInput.kext/Contents/MacOS/VoodooInput b/EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/PlugIns/VoodooInput.kext/Contents/MacOS/VoodooInput new file mode 100755 index 0000000000000000000000000000000000000000..06d5b05c66a48623c2835bc1b847f16c8764ac23 GIT binary patch literal 93920 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 + + + + files + + files2 + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/_CodeSignature/CodeResources b/EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/_CodeSignature/CodeResources new file mode 100644 index 0000000..36af21b --- /dev/null +++ b/EFI-OpenCore/EFI/OC/Kexts/VoodooRMI.kext/Contents/_CodeSignature/CodeResources @@ -0,0 +1,125 @@ + + + + + files + + files2 + + PlugIns/VoodooInput.kext + + cdhash + + gBdThkR8m9/gtvD9Z2KxYBK6oro= + + requirement + cdhash H"881d29fc8cf0eb6fcd23679deb0d7837fdce9a85" or cdhash H"80175386447c9bdfe0b6f0fd6762b16012baa2ba" + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/Info.plist b/EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/Info.plist new file mode 100644 index 0000000..a348759 --- /dev/null +++ b/EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/Info.plist @@ -0,0 +1,528 @@ + + + + + BuildMachineOSBuild + 17G13035 + CFBundleDevelopmentRegion + en + CFBundleExecutable + VoodooSMBus + CFBundleIdentifier + de.leo-labs.VoodooSMBus + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + VoodooSMBus + CFBundlePackageType + KEXT + CFBundleShortVersionString + 2.1 + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 2.1 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 9F2000 + DTPlatformVersion + GM + DTSDKBuild + 17E189 + DTSDKName + macosx10.13 + DTXcode + 0941 + DTXcodeBuild + 9F2000 + IOKitPersonalities + + Custom MT2 Personality + + ApplePreferenceCapability + 2 + ApplePreferenceIdentifier + com.apple.AppleMultitouchTrackpad + ApplePreferencesDefaultPreferences + + ActuateDetents + 0 + Clicking + 1 + DragLock + 0 + Dragging + 0 + FirstClickThreshold + 1 + ForceSuppressed + + SecondClickThreshold + 1 + TrackpadCornerSecondaryClick + 0 + TrackpadFiveFingerPinchGesture + 2 + TrackpadFourFingerHorizSwipeGesture + 2 + TrackpadFourFingerPinchGesture + 2 + TrackpadFourFingerVertSwipeGesture + 2 + TrackpadHorizScroll + 1 + TrackpadMomentumScroll + + TrackpadPinch + 1 + TrackpadRightClick + + TrackpadRotate + 1 + TrackpadScroll + + TrackpadThreeFingerDrag + + TrackpadThreeFingerHorizSwipeGesture + 2 + TrackpadThreeFingerVertSwipeGesture + 2 + + CFBundleIdentifier + com.apple.driver.AppleTopCaseHIDEventDriver + DefaultMultitouchProperties + + ActuationSupported + + ExtractAndPostDeviceButtonState + + ForceSupported + + HIDServiceSupport + + IOCFPlugInTypes + + 0516B563-B15B-11DA-96EB-0014519758EF + AppleMultitouchDriver.kext/Contents/PlugIns/MultitouchHID.plugin + + MT Built-In + + MTHIDDevice + + MTPowerStatsDisable + + SupportsGestureScrolling + + TrackpadFourFingerGestures + + TrackpadMomentumScroll + + TrackpadSecondaryClickCorners + + TrackpadThreeFingerDrag + + parser-options + 39 + parser-type + 1000 + + DeviceUsagePairs + + + DeviceUsage + 2 + DeviceUsagePage + 1 + + + DoReportIntervalHack + + HIDAccelCurves + + + HIDAccelGainLinear + 65536 + HIDAccelIndex + 0 + HIDAccelTangentSpeedLinear + 484966 + HIDAccelTangentSpeedParabolicRoot + 1376256 + + + HIDAccelGainCubic + 5243 + HIDAccelGainLinear + 64881 + HIDAccelGainParabolic + 32768 + HIDAccelIndex + 8192 + HIDAccelTangentSpeedLinear + 478413 + HIDAccelTangentSpeedParabolicRoot + 1310720 + + + HIDAccelGainCubic + 6554 + HIDAccelGainLinear + 64225 + HIDAccelGainParabolic + 43254 + HIDAccelIndex + 32768 + HIDAccelTangentSpeedLinear + 471859 + HIDAccelTangentSpeedParabolicRoot + 1245184 + + + HIDAccelGainCubic + 7864 + HIDAccelGainLinear + 62915 + HIDAccelGainParabolic + 54395 + HIDAccelIndex + 45056 + HIDAccelTangentSpeedLinear + 465306 + HIDAccelTangentSpeedParabolicRoot + 1179648 + + + HIDAccelGainCubic + 9830 + HIDAccelGainLinear + 61604 + HIDAccelGainParabolic + 65536 + HIDAccelIndex + 57344 + HIDAccelTangentSpeedLinear + 458752 + HIDAccelTangentSpeedParabolicRoot + 1114112 + + + HIDAccelGainCubic + 11796 + HIDAccelGainLinear + 60293 + HIDAccelGainParabolic + 75366 + HIDAccelIndex + 65536 + HIDAccelTangentSpeedLinear + 458752 + HIDAccelTangentSpeedParabolicRoot + 1048576 + + + HIDAccelGainCubic + 13763 + HIDAccelGainLinear + 58327 + HIDAccelGainParabolic + 85197 + HIDAccelIndex + 98304 + HIDAccelTangentSpeedLinear + 458752 + HIDAccelTangentSpeedParabolicRoot + 983040 + + + HIDAccelGainCubic + 15729 + HIDAccelGainLinear + 56361 + HIDAccelGainParabolic + 95027 + HIDAccelIndex + 131072 + HIDAccelTangentSpeedLinear + 458752 + HIDAccelTangentSpeedParabolicRoot + 917504 + + + HIDAccelGainCubic + 18350 + HIDAccelGainLinear + 54395 + HIDAccelGainParabolic + 108790 + HIDAccelIndex + 163840 + HIDAccelTangentSpeedLinear + 458752 + HIDAccelTangentSpeedParabolicRoot + 851968 + + + HIDAccelGainCubic + 23593 + HIDAccelGainLinear + 65536 + HIDAccelGainParabolic + 123208 + HIDAccelIndex + 196608 + HIDAccelTangentSpeedLinear + 458752 + HIDAccelTangentSpeedParabolicRoot + 786432 + + + HIDDisallowRemappingOfPrimaryClick + + HIDPointerAccelerationTable + AACAAFVTQioABwAAAAAAAgAEAAAABAAAABAAAAAQAAAAACAAAA0AAIAAAACAAAABQAAAAYAAAAIAAAAC4AAAAwAAAATgAAAEAAAAB0AAAAUAAAAKAAAABgAAAA1AAAAIAAAAFgAAAArAAAAjAAAADQAAAC8AAAAOwAAAOMAAABBAAABBAAAAEcAAAEjAAAAAUAAADwAAgAAAAIAAAAEAAAABQAAAAYAAAAJAAAACAAAAA4AAAAKAAAAE4AAAAwAAAAZgAAAEAAAACgAAAAUAAAAOQAAABgAAABNAAAAIAAAAHsAAAArAAAAuwAAADQAAADyAAAAOwAAARwAAABBAAABPwAAAEcAAAFiAAAAAgAAADwAAgAAAAIAAAAEAAAABYAAAAYAAAAKgAAACAAAABEAAAAKAAAAGAAAAAwAAAAgAAAAEAAAADQAAAAUAAAASwAAABgAAABkAAAAIAAAAKAAAAArAAAA7wAAADQAAAEuAAAAOwAAAV0AAABBAAABgQAAAEcAAAGkAAAAAsAAADwAAgAAAAIAAAAEAAAABoAAAAYAAAAMAAAACAAAABQAAAAKAAAAHQAAAAwAAAAnAAAAEAAAAEEAAAAUAAAAXgAAABgAAAB/AAAAIAAAAMgAAAArAAABKAAAADQAAAFyAAAAOwAAAaQAAABBAAABywAAAEcAAAHrAAAAA4AAADwAAgAAAAKAAAAEAAAABwAAAAYAAAANgAAACAAAABeAAAAKAAAAIoAAAAwAAAAvAAAAEAAAAE8AAAAUAAAAdQAAABgAAACfAAAAIAAAAPcAAAArAAABZAAAADQAAAG3AAAAOwAAAe0AAABBAAACFQAAAEcAAAIxAAAABAAAADwAAgAAAAMAAAAEAAAACAAAAAYAAAAPgAAACAAAABsAAAAKAAAAKQAAAAwAAAA5gAAAEAAAAGMAAAAUAAAAkwAAABgAAADLAAAAIAAAATUAAAArAAABugAAADQAAAIMAAAAOwAAAj0AAABBAAACXAAAAEcAAAJxA + HIDPointerAccelerationType + HIDTrackpadAcceleration + HIDScrollAccelCurves + + + HIDAccelGainLinear + 65536 + HIDAccelIndex + 0 + HIDAccelTangentSpeedLinear + 393216 + HIDAccelTangentSpeedParabolicRoot + 786432 + + + HIDAccelGainLinear + 62259 + HIDAccelGainParabolic + 39322 + HIDAccelIndex + 8192 + HIDAccelTangentSpeedLinear + 406323 + HIDAccelTangentSpeedParabolicRoot + 786432 + + + HIDAccelGainLinear + 58982 + HIDAccelGainParabolic + 58982 + HIDAccelIndex + 32768 + HIDAccelTangentSpeedLinear + 419430 + HIDAccelTangentSpeedParabolicRoot + 786432 + + + HIDAccelGainLinear + 55706 + HIDAccelGainParabolic + 78643 + HIDAccelIndex + 45056 + HIDAccelTangentSpeedLinear + 432538 + HIDAccelTangentSpeedParabolicRoot + 786432 + + + HIDAccelGainLinear + 52429 + HIDAccelGainParabolic + 91750 + HIDAccelIndex + 57344 + HIDAccelTangentSpeedLinear + 445645 + HIDAccelTangentSpeedParabolicRoot + 786432 + + + HIDAccelGainLinear + 49152 + HIDAccelGainParabolic + 104858 + HIDAccelIndex + 65536 + HIDAccelTangentSpeedLinear + 458752 + HIDAccelTangentSpeedParabolicRoot + 786432 + + + HIDAccelGainLinear + 45875 + HIDAccelGainParabolic + 117965 + HIDAccelIndex + 98304 + HIDAccelTangentSpeedLinear + 471859 + HIDAccelTangentSpeedParabolicRoot + 786432 + + + HIDAccelGainLinear + 42598 + HIDAccelGainParabolic + 131072 + HIDAccelIndex + 131072 + HIDAccelTangentSpeedLinear + 484966 + HIDAccelTangentSpeedParabolicRoot + 786432 + + + HIDAccelGainLinear + 39322 + HIDAccelGainParabolic + 144179 + HIDAccelIndex + 163840 + HIDAccelTangentSpeedLinear + 498074 + HIDAccelTangentSpeedParabolicRoot + 786432 + + + HIDAccelGainLinear + 36045 + HIDAccelGainParabolic + 157286 + HIDAccelIndex + 196608 + HIDAccelTangentSpeedLinear + 511181 + HIDAccelTangentSpeedParabolicRoot + 786432 + + + HIDScrollAccelerationTable + AACAAFVTQioABwAAAAAAAQABAAAAAQAAAAAgAAAQAABxOwAATOMAAwAAAAdgAAAEwAAADoAAAAbxSgAX6V4ACVeCACMQWgALZ6EALBF7AA2N1AA03ToAD36aADvQuAASWKAARl01ABUAAABO2dgAF8AAAFXK7QAas+UAW2FQAB2QAABe0qoAIL75AGEgywAkLXsAYnXvACewAABjRl8AAIAAABMAAHE7AABWfwABAAAAAuAAAAIAAAAJYAAAAwAAABIAAAAEwAAAIMAAAAaAAAAwgAAACGp5AEH9tgAK7bUAV4ZuAA0B2ABrPTkADv1/AIEEcAAQy5gAkdRWABJouQCe3VAAE+c/AKikCgAXAucAtn2SABot3ADARE4AHVjQAMX4OgAg35IAytuYACQ4bgDO7mUAJ6CXANIwowAAsAAAFAAAcTsAAGFOAADAAAABwAAAAQAAAANgAAACAAAADCAAAAMAAAAW4AAABMAAACnAAAAGQAAAOsAAAAfOggBP7OcACgWAAGo8rgAL658AhMCkAA2RCwCfR+EADzjIALWDbwAQ/k8AxqbEABLNUQDUeCMAFepmAOTKxwAZoVYA8qFmAB1CvwD7fXwAIQuCAQFpdAAkS20BBVKIACegAAEIK4wAAOAAABQAAHE7AABtdwAAwAAAAeAAAAEAAAAD4AAAAgAAAA6AAAADAAAAHEAAAATAAAA0AAAABgAAAEdAAAAHN4wAXL7hAAkAAACAwAAACoAAAKGAAAALz7IAvU7UAA01yQDadikADvtPAPKF4gARLu4BCSWiABUlDwEfV8QAGT9oASzRKgAdChkBNQrGACDz5QE6cR4AJEARAT3XdgAnn1YBQMHWAABQAAATAABxOwAAS7AAAQAAAAJgAAACAAAABuAAAAMAAAAMYAAABMAAABcAAAAGwAAAJAAAAAkAAAAyAAAACz1uAEFngAANcE8AUMGhAA+sTQBgSTMAEagdAG5NTAATT9YAd9WQABTQfgB+26MAF3odAIbYXQAagocAjp+lAB2J6QCTvnkAIN/yAJdcWwAkO0IAmYu9ACegOACacdcAAQAAABUAAHE7AABWfwAAwAAAAiAAAAEAAAAEgAAAAYAAAAqAAAACAAAAEaAAAAMAAAAhgAAABMAAAD6AAAAFwAAAVEAAAAbAAABrAAAACAAAAIxAAAAJAAAAqYAAAApAAADKwAAAC8AAAPTAAAANwAABJAAAABAAAAFEn9IAFEAAAV49zAAZAAABbrsYABzQAAFz78AAIOAAAXhvwAAkIAABem/AACegAAF8JGg= + HIDScrollAccelerationType + HIDTrackpadScrollAcceleration + HIDScrollResolution + 26214400 + IOCFPlugInTypes + + 0516B563-B15B-11DA-96EB-0014519758EF + AppleMultitouchDriver.kext/Contents/PlugIns/MultitouchHID.plugin + + IOClass + AppleMultitouchTrackpadHIDEventDriver + IOProbeScore + 9999 + IOProviderClass + IOHIDInterface + MTEventSource + + ProductIDArray + + 628 + + TrackpadEmbedded + + VendorID + 1452 + + ELANTouchpadDriver + + CFBundleIdentifier + de.leo-labs.VoodooSMBus + Configuration + + DisableWhileTrackpoint + + DisableWhileTrackpointTimeoutMs + 500 + DisableWhileTypingTimeoutMs + 400 + IgnoreSetTouchpadStatus + + + IOClass + ELANTouchpadDriver + IOProbeScore + 400 + IOProviderClass + VoodooSMBusDeviceNub + RM,deliverNotifications + + + Native Multitouch Engine + + CFBundleIdentifier + de.leo-labs.VoodooSMBus + IOClass + VoodooI2CNativeEngine + IOMatchCategory + VoodooI2CNativeEngine + IOProviderClass + VoodooI2CMultitouchInterface + + VoodooSMBusControllerDriver + + Addresses + + 44 + 21 + + CFBundleIdentifier + de.leo-labs.VoodooSMBus + IOClass + VoodooSMBusControllerDriver + IOPCIMatch + 0x9d238086 0xa3238086 + IOPCIMatchComment + Intel SMBus Controller i80 (9d23: Sunrise Point-LP (PCH), a323: Cannon Lake-H (PCH)) + IOProbeScore + 400 + IOProviderClass + IOPCIDevice + + VoodooSMBusIntelLpssI2C + + CFBundleIdentifier + de.leo-labs.VoodooSMBus + IOClass + VoodooSMBusIntelLpssI2C + IOPCIMatch + 0x9d608086 + IOPCIMatchComment + Dummy IntelLpssI2CDriver + IOProbeScore + 400 + IOProviderClass + IOPCIDevice + + + NSHumanReadableCopyright + Copyright © 2019 leo-labs. All rights reserved. + OSBundleCompatibleVersion + 2.1 + OSBundleLibraries + + com.apple.iokit.IOHIDFamily + 2.0 + com.apple.iokit.IOPCIFamily + 2.9 + com.apple.kpi.iokit + 18.5 + com.apple.kpi.libkern + 18.5 + com.apple.kpi.mach + 18.5 + + OSBundleRequired + Root + + diff --git a/EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/MacOS/VoodooSMBus b/EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/MacOS/VoodooSMBus new file mode 100755 index 0000000000000000000000000000000000000000..b3f26bbd8af65b81cfdca0daf137fdb32dbc50c3 GIT binary patch literal 265056 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 z zm1rbReDRra?`-w%R(t=$bK=0Jo1C+x>dvB->$m=(=H0wwFMlfi>4$4R-hACx@4UEn z>vb=!x&Fp4Up{z6-Ig^6yyE!lh3Pq8|M{ZjtEUWp^j+KK|F`q!6HdF;@$p?M7e+E!e)c zbc;K-Sg>#Y<_};0?dONjT0Ut>~PWhu8VxPUNzzR_D!$9{iIKG@7n448**E3-22fd4%uzfEqY&l&r|-=;>*rD z`){A0cE(+Y%zE$spUT#iALs69K5=c@)d;6UekG}cMqWvS| zZrSpb;a7Sdn7N{7${hvk9nCZSJLf(AOjq&DcQY>EkbD{OfTy7k~Nm8(*(_DC4xM)r;QPeo5vNla{^ss(x7aH21QTUP`;?sr&DbeDdjmH{HGCjE2nV zjjycB3;nBq#d|aChb}yOMQHnn_up~%vsT~aJpakdL!qsA`02+ZFRdugTN(J{kvr9m zd-!AT_>|dDYxzE#{fgk}F9weMppSkXKb<_IEn{GX_cDwO+JUHvq!(Tbz&%6Gz>)lUpG3-0{!OH?y7VhVB-qv^R z7MZhU!9>48}A7)*1(%Ze+uU($M=aauq+%~Z3Rv#^{zvr{JXUy$# zZvM1;9yzP zHRTlNy?Dl1XTMi|<(9LaZa??PZNB?*-uO#hzuxP;H&E^S%M&Y_mz;a%q)WHFY?o|T z<2LVq+&lC1ulG4`-DVwEocBQa1NEzJT6xdePpo|KxJ75>|9G$G*`-Go3gs>b-prtZS_eov`e_ zJ9j=l>$00qz51warsdrFad*b+SM7PhDYv#CH>axVfSq6dW8k)ZiiTT`IN{|<&&+=8 z;4kN2c*$po}ceWQlx%16U%U}KFn~@Vvd+X_AAAkMu$2Pew`4BHjR$ctTEB=84k9@o9r<0z|9`{nAN=Ss`@54pQ-;eAoV;k)@DJbg&M9xq zf1~}SzpM=&wd$WcyRNvo=!?mbs_UO<{r2lKuUWk)=jV5~WOpk~*7lFx8%u$)6c|f^ zu@o3ffw2@AOM$Tz7)yb%6c|f^u@o3ffw2@AOM$Tz7)yb%6c|f^u@o3ffw2@AOM$Tz z7)yb%6c|f^u@o3ffw2@AOM$Tz7)yb%6c|f^u@o3ffw2@AOM$Tz7)yb%6c|f^u@o3f zfw2@AOM$Tz7)yb%6c|f^u@o3ffw2@AOM$Tz7)yb%6c|f^u@o3ffw2@AOM$Tz7)yb% Q6c|f^u@o3f0WAgoAH_ncqW}N^ literal 0 HcmV?d00001 diff --git a/EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/Resources/Headers/VoodooSMBusDeviceNub.hpp b/EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/Resources/Headers/VoodooSMBusDeviceNub.hpp new file mode 100644 index 0000000..af2a217 --- /dev/null +++ b/EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/Resources/Headers/VoodooSMBusDeviceNub.hpp @@ -0,0 +1,50 @@ +/* + * VoodooSMBusDeviceNub.hpp + * SMBus Controller Driver for macOS X + * + * Copyright (c) 2019 Leonard Kleinhans + * + */ + + +#ifndef VoodooSMBusDeviceNub_hpp +#define VoodooSMBusDeviceNub_hpp + +#include + +class VoodooSMBusControllerDriver; +class VoodooSMBusSlaveDevice; +typedef UInt8 u8; + +#ifndef EXPORT +#define EXPORT __attribute__((visibility("default"))) +#endif + +class EXPORT VoodooSMBusDeviceNub : public IOService { + OSDeclareDefaultStructors(VoodooSMBusDeviceNub); + +public: + bool init() override; + bool attach(IOService* provider, UInt8 address); + bool start(IOService* provider) override; + void stop(IOService* provider) override; + void free(void) override; + + void handleHostNotify(); + void setSlaveDeviceFlags(unsigned short flags); + + IOReturn writeByteData(u8 command, u8 value); + IOReturn readByteData(u8 command); + IOReturn readBlockData(u8 command, u8 *values); + IOReturn writeByte(u8 value); + IOReturn writeBlockData(u8 command, u8 length, const u8 *values); + IOReturn wakeupController(); + +private: + VoodooSMBusControllerDriver* controller; + void releaseResources(); + VoodooSMBusSlaveDevice* slave_device; + void handleHostNotifyThreaded(); +}; + +#endif /* VoodooSMBusDeviceNub_hpp */ diff --git a/EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/_CodeSignature/CodeResources b/EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/_CodeSignature/CodeResources new file mode 100644 index 0000000..ade480b --- /dev/null +++ b/EFI-OpenCore/EFI/OC/Kexts/VoodooSMBus.kext/Contents/_CodeSignature/CodeResources @@ -0,0 +1,132 @@ + + + + + files + + Resources/Headers/VoodooSMBusDeviceNub.hpp + + Gkz/vNrHlRcTeb3TNsAqUb24aZ4= + + + files2 + + Resources/Headers/VoodooSMBusDeviceNub.hpp + + hash + + Gkz/vNrHlRcTeb3TNsAqUb24aZ4= + + hash2 + + OgYn96uJNktmjX+20pkPJEVgMAFTgyFCGxbanbDpdzA= + + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/EFI-OpenCore/EFI/OC/config.plist b/EFI-OpenCore/EFI/OC/config.plist index 6cbe8e9..11f9709 100755 --- a/EFI-OpenCore/EFI/OC/config.plist +++ b/EFI-OpenCore/EFI/OC/config.plist @@ -38,14 +38,6 @@ Path SSDT-ALS0.aml - - Comment - SBUS - Enabled - - Path - SSDT-SBUS.aml - Comment Thinkpad Keyboard (Need x1c6-keyboard.plist) @@ -94,14 +86,6 @@ Path SSDT-DMAC.aml - - Comment - Fake MCHC (Completeness) - Enabled - - Path - SSDT-MCHC.aml - Comment Fake PMCR (Completeness) @@ -492,254 +476,6 @@ - - Comment - Mutex:MDGS=0 - Count - 0 - Enabled - - Find - - AU1ER1MH - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AU1ER1MA - - ReplaceMask - - - Skip - 0 - TableLength - 0 - - - Comment - Mutex:MCPU=0 - Count - 0 - Enabled - - Find - - AU1DUFUH - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AU1DUFUA - - ReplaceMask - - - Skip - 0 - TableLength - 0 - - - Comment - Mutex:BATM=0 - Count - 0 - Enabled - - Find - - AUJBVE0H - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AUJBVE0A - - ReplaceMask - - - Skip - 0 - TableLength - 0 - - - Comment - Mutex:MSMI=0 - Count - 0 - Enabled - - Find - - AU1TTUkH - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AU1TTUkA - - ReplaceMask - - - Skip - 0 - TableLength - 0 - - - Comment - Mutex:BFWM=0 - Count - 0 - Enabled - - Find - - AUJGV00H - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AUJGV00A - - ReplaceMask - - - Skip - 0 - TableLength - 0 - - - Comment - Mutex:XDHK=0 - Count - 0 - Enabled - - Find - - AVhESEsH - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AVhESEsA - - ReplaceMask - - - Skip - 0 - TableLength - 0 - - - Comment - Mutex:MWMI=0 - Count - 0 - Enabled - - Find - - AU1XTUkH - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AU1XTUkA - - ReplaceMask - - - Skip - 0 - TableLength - 0 - - - Comment - Mutex:NPWM=0 - Count - 0 - Enabled - - Find - - AU5QV00H - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AU5QV00A - - ReplaceMask - - - Skip - 0 - TableLength - 0 - Comment _PTS to ZPTS(1,N) @@ -1148,6 +884,40 @@ + + Comment + _Q74 to XQ74 (FnLock - Fn + Esc) + Count + 1 + Enabled + + Find + + X1E3NA== + + Limit + 0 + Mask + + + OemTableId + + + Replace + + WFE3NA== + + ReplaceMask + + + Skip + 0 + TableLength + 0 + TableSignature + + + Quirks @@ -1224,30 +994,30 @@ FlkAAA== - enable-hdmi20 + disable-external-gpu AQAAAA== + framebuffer-con1-alldata + + AQUJAAAIAADHAwAA + framebuffer-con1-enable AQAAAA== - framebuffer-con1-type + framebuffer-con2-alldata - AAgAAA== + AgQKAAAEAADHAwAA - framebuffer-fbmem + framebuffer-con2-enable - AACQAA== + AQAAAA== framebuffer-patch-enable AQAAAA== - framebuffer-stolenmem - - AAAwAQ== - Delete @@ -1417,6 +1187,70 @@ PlistPath Contents/Info.plist + + BundlePath + VoodooRMI.kext/Contents/Plugins/VoodooInput.kext + Comment + Input for Synaptics SMBUS touchpad support + Enabled + + ExecutablePath + Contents/MacOS/VoodooInput + MaxKernel + + MinKernel + + PlistPath + Contents/Info.plist + + + BundlePath + VoodooSMBus.kext + Comment + Synaptics SMBUS touchpad support + Enabled + + ExecutablePath + Contents/MacOS/VoodooSMBus + MaxKernel + + MinKernel + + PlistPath + Contents/Info.plist + + + BundlePath + VoodooRMI.kext + Comment + Synaptics SMBUS touchpad support + Enabled + + ExecutablePath + Contents/MacOS/VoodooRMI + MaxKernel + + MinKernel + + PlistPath + Contents/Info.plist + + + BundlePath + VoodooPS2Controller.kext/Contents/Plugins/VoodooInput.kext + Comment + + Enabled + + ExecutablePath + Contents/MacOS/VoodooInput + MaxKernel + + MinKernel + + PlistPath + Contents/Info.plist + BundlePath VoodooPS2Controller.kext @@ -1433,29 +1267,13 @@ PlistPath Contents/Info.plist - - BundlePath - VoodooPS2Controller.kext/Contents/Plugins/VoodooInput.kext - Comment - - Enabled - - ExecutablePath - Contents/MacOS/VoodooInput - MaxKernel - - MinKernel - - PlistPath - Contents/Info.plist - BundlePath VoodooPS2Controller.kext/Contents/Plugins/VoodooPS2Mouse.kext Comment Mouse Enabled - + ExecutablePath Contents/MacOS/VoodooPS2Mouse MaxKernel @@ -1471,7 +1289,7 @@ Comment Trackpad Enabled - + ExecutablePath Contents/MacOS/VoodooPS2Trackpad MaxKernel @@ -1590,7 +1408,76 @@ Patch - + + + Base + + Comment + KBL-DVMTpatch-10.15-10.15.1-10.15.2-10.15.3 (Enable 4K UHD HDMI/DisplayPort Output) + Count + 0 + Enabled + + Find + + D4KnAwAA + + Identifier + com.apple.driver.AppleIntelKBLGraphicsFramebuffer + Limit + 0 + Mask + + + MaxKernel + 19.3.0 + MinKernel + + Replace + + D4IAAAAA + + ReplaceMask + + + Skip + 0 + + + Base + + Comment + KBL-DVMTpatch-10.15.4 (Enable 4K UHD HDMI/DisplayPort Output) + Count + 0 + Enabled + + Find + + D4KPAwAA + + Identifier + com.apple.driver.AppleIntelKBLGraphicsFramebuffer + Limit + 0 + Mask + + + MaxKernel + + MinKernel + 19.4.0 + Replace + + D4IAAAAA + + ReplaceMask + + + Skip + 0 + + Quirks AppleCpuPmCfgLock @@ -1634,7 +1521,7 @@ ConsoleAttributes 0 HibernateMode - None + Auto HideAuxiliary PickerAudioAssist diff --git a/EFI-OpenCore/README.md b/EFI-OpenCore/README.md index fcf43d9..af5bd99 100644 --- a/EFI-OpenCore/README.md +++ b/EFI-OpenCore/README.md @@ -19,17 +19,39 @@ See [`docs/5_README-other`](https://github.com/tylernguyen/x1c6-hackintosh/blob/ `CPUFriendDataProvider` can be generated with [CPUFriendFriend](https://github.com/corpnewt/CPUFriendFriend_) or [one-key-cpufriend](https://github.com/stevezhengshiqi/one-key-cpufriend). This is especially important if you have a different CPU than mine. Even if you have the same CPU as me, you may prefer a different Energy Performance Preference (EPP) so do generate your own CPUFriendDataProvider. -> ## Important Note: - -Unlike Clover, where SSDT patches are only being applied when booting macOS. OpenCore will apply SSDT patches regardless of the operating system. This is critical when multi-booting, since Windows and Linux do not need the additional patches that macOS does. In many cases, if Windows/Linux fails to boot under OpenCore, it is likely that your macOS intended SSDT patch(s) is being applied universally. To prevent OpenCore from doing this, it is important that your SSDT patches specify its intended OS, which in our case is "Darwin." -See highlighted example: - -![OpenCore SSDT patching notice](https://raw.githubusercontent.com/tylernguyen/x1c6-hackintosh/master/docs/assets/img/OpenCore%20SSDT%20patching%20notice.png) - > ## Checking your OpenCore config.plist It is important to keep your OpenCore config.plist properly up-to-spec, as OpenCore configurations tend to change accordingly with OpenCore versions. A good resource to check your config plist is https://opencore.slowgeek.com/. +> ## `config.plist` Comments: +* Notes on kexts and ACPI patches are on the respective Add OpenCore entry. +* Injects AppleALC layout-id `21`: +`Device Properties` > `PciRoot(0x0)/Pci(0x1f,0x3)` > `layout-id`: +* Intel iGPU and HDMI patches: +`Device Properties` > `PciRoot(0x0)/Pci(0x2,0x0)` > + * `device-id` = `16590000` per [WhateverGreen/IntelHD.en.md](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/FAQ.IntelHD.en.md) +* FileVault compatibility: + * Misc -> Boot + * `PollAppleHotKeys` set to YES(While not needed can be helpful) + * Misc -> Security + * `AuthRestart` set to YES(Enables Authenticated restart for FileVault 2 so password is not required on reboot. Can be considered a security risk so optional) + * NVRAM -> Add -> 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 + * `UIScale` set to `02` for high resolution small displays + * UEFI -> Input + * `KeySupport` set to YES(Only when using OpenCore's builtin input, users of OpenUsbKbDxe should avoid) + * UEFI -> Output + * `ProvideConsoleGop` to YES + * UEFI -> ProtocolOverrides + * `FirmwareVolume` set to YES + * `AppleSmcIo` set to YES(this replaces VirtualSMC.efi) + * UEFI -> Quirks + * `RequestBootVarRouting` set to YES + +* OpenCanopy Support: +I prefer OpenCanopy for its looks. However, it is completely optional and can take up space in your EFI. If you would rather use OpenCore's built in picker. Change `PickerMode` to `Builtin` and remove `OpenCanopy.efi` from `UEFI` > `Drivers`. + +* OpenCore tools and utilities are removed for a clean setup and can be added when needed. + > ## Updating: To update your OpenCore folder to my current version, simply backup your `PlatformInfo` information and move it to the new OpenCore config. Keep in mind that, depending on your setup, you may wish to keep other settings you've made so make sure to note your OpenCore `config.plist` changes as you make them. diff --git a/EFI-install_USB/EFI/OC/config.plist b/EFI-install_USB/EFI/OC/config.plist index 21c024c..fd8f096 100755 --- a/EFI-install_USB/EFI/OC/config.plist +++ b/EFI-install_USB/EFI/OC/config.plist @@ -184,13 +184,13 @@ BundlePath - VoodooPS2Controller.kext + VoodooPS2Controller.kext/Contents/Plugins/VoodooInput.kext Comment - VoodooPS2Controller + Enabled ExecutablePath - Contents/MacOS/VoodooPS2Controller + Contents/MacOS/VoodooInput MaxKernel MinKernel @@ -200,13 +200,13 @@ BundlePath - VoodooPS2Controller.kext/Contents/Plugins/VoodooInput.kext + VoodooPS2Controller.kext Comment - + VoodooPS2Controller Enabled ExecutablePath - Contents/MacOS/VoodooInput + Contents/MacOS/VoodooPS2Controller MaxKernel MinKernel diff --git a/README.md b/README.md index 5cfcb35..dab7e39 100644 --- a/README.md +++ b/README.md @@ -25,38 +25,53 @@ ##### Recent | [Changelog Archive](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/CHANGELOG.md) -> ### 2020-6-1 +> ### 2020-6-26 + +#### Added + +- `VoodooRMI` as alternative trackpad option. **Enabled by default, feel free to revert back to `VoodooPS2Mouse` and `VoodooPS2Trackpad` if you prefer**. *Note, there's currently a bug with RMI where the touchpad would not load once in a while. The RMI kext uploaded in this repo has a temp fix by me (See [VoodooSMBUS/PR](https://github.com/VoodooSMBus/VoodooSMBus/pull/41)). However, the issue is still ongoing and the dev team is aware of it. I'm switching this repo to VoodooRMI because I believe it's the future and I want to possible bugs to be reported to be fixed for the kext's first stable release. +- Kernel patches to enable 4K external graphics, thank you so much [@benbender](https://github.com/benbender) +- `XQ74` patch in `SSDT-Keyboard` to support `FnLock` HUD per ThinkpadAssistant 1.8.0 +- In [EFI-OpenCore/README.md](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/EFI-OpenCore/README.md), I've added a short section explaining why certain variables are the way they are in my `config.plist`. I will continue to update this section with more details as time goes on. #### Changed -- OpenCore to 0.5.9 -- Upgraded various Acidanthera kexts. -- Recompiled various SSDT with new iasl libraries. -- Replaced `SSDT-EXT3` with `SSDT-LED` -- Change SSDT OEM ID to `tyler` to somewhat track distributions and usage across various projects +- iGPU Framebuffer patching for HDMI issue in Catalina. + - In Catalina/WhateverGreen version, for some reasons my previous framebuffer patches for HDMI no longer worked. So I re-did the patch in mode details but eventually the property that fixed it was `disable-external-gpu` or `-wegnoegpu`. For some strange reasons, that variable activated on-board HDMI. See [similar reports here](https://www.tonymacx86.com/threads/guide-general-framebuffer-patching-guide-hdmi-black-screen-problem.269149/page-123). I'm going to create an issue on acidanthera/bugtracker soon to report to the dev team. In the mean time, keep this property if you rely on HDMI and do not have an eGPU. Delete this property if you have an eGPU (You're likely using the HDMI on the eGPU anyway). +- Fixed `VoodooPS2` kexts loading order. +- Various reference docs to dortania. +- `HibernateMode` to `Auto` + +#### Removed + +- Unnecessary Mutex OpenCore patches, all Mutex are already 0 in stock `DSDT`. +- `SSDT-MCHC` and `SSDT-SBUS` for `VoodooRMI` compatibility. > ## SUMMARY: **`In short, x1c6-hackintosh is very stable and is currently my daily driver. I fully recommend this project to anyone looking for a MacBook alternative.`** -| Fully functional | Non-functional | Semi-functional. Additional pulls needed and welcomed. | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| WiFi, Bluetooth, Apple Continuity ✅ \*need [network card replacement](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/1_README-HARDWAREandBIOS.md) | Fingerprint Reader (not needed, DISABLED at BIOS) ❌ | Video Output: Currently only output `2560x1440`. Though capable of 4K `4096x2150`. See [Issue #40](https://github.com/tylernguyen/x1c6-hackintosh/issues/40) ⚠️ | -| USB A, USB C, Webcam, Audio Playback/Recording Sleep, Ethernet, Intel Graphics, TrackPoint and Trackpad, MicroSD card reader ✅ | Wireless WAN (DISABLED at BIOS) \*ENABLED if you have a 2nd drive connected❌ | Thunderbolt 3 hotplug partially working. See [Issue #24](https://github.com/tylernguyen/x1c6-hackintosh/issues/24#issuecomment-603183002) ⚠️ | -| iCloud suite: App Store, iMessage, FaceTime, iCloud Drive, etc... ✅ | Hibernation ❌ | Power management and optimizations. See [Issue #28](https://github.com/tylernguyen/x1c6-hackintosh/issues/28) ⚠️ | -| Multimedia Fn keys ✅ \*need [ThinkpadAssistant](https://github.com/MSzturc/ThinkpadAssistant) | | | -| PM981 installation. ✅ See [Issue #43](https://github.com/tylernguyen/x1c6-hackintosh/issues/43) | | | +| Fully functional | Non-functional | Semi-functional. Additional pulls needed and welcomed. | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | +| WiFi, Bluetooth, Apple Continuity ✅ \*need [network card replacement](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/1_README-HARDWAREandBIOS.md) | Fingerprint Reader (not needed, DISABLED at BIOS) ❌ | Power management and optimizations. See [Issue #28](https://github.com/tylernguyen/x1c6-hackintosh/issues/28) ⚠️ | +| USB A, USB C, Webcam, Audio Playback/Recording Sleep, Ethernet, Intel Graphics, TrackPoint and Trackpad, MicroSD card reader ✅ | Wireless WAN (DISABLED at BIOS) \*ENABLED if you have a 2nd drive connected❌ | Thunderbolt 3 hotplug partially working. See [Issue #24](https://github.com/tylernguyen/x1c6-hackintosh/issues/24#issuecomment-603183002) ⚠️ | +| iCloud suite: App Store, iMessage, FaceTime, iCloud Drive, etc... ✅ | Hibernation mode 25 ❌ CMOS error, see [Issue #44](https://github.com/tylernguyen/x1c6-hackintosh/issues/44) | | +| Multimedia Fn keys ✅ \*need [ThinkpadAssistant](https://github.com/MSzturc/ThinkpadAssistant) | | | +| PM981 installation. ✅ See [Issue #43](https://github.com/tylernguyen/x1c6-hackintosh/issues/43) | | | +| 4K UHD via HDMI/DisplayPort. ✅ \*one minor quirk with Recovery and macOS updates, See [Issue #28](https://github.com/tylernguyen/x1c6-hackintosh/issues/28#issuecomment-649107190) | | | **For more information regarding certain features, please refer to [`docs/3_README-POSTinstallation.md`](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/3_README-POSTinstallation.md)** > ## NEEDED: A macOS machine would be VERY useful: to create install drives, and for when your ThinkPad cannot boot. Though it is not completely necessary. -Flash drive, 16GB or more. -Xcode works fine for editing plist files, but I prefer [PlistEdit Pro](https://www.fatcatsoftware.com/plisteditpro/). +Flash drive, 12GB or more. +Xcode works fine for editing plist files on macOS, but I prefer [PlistEdit Pro](https://www.fatcatsoftware.com/plisteditpro/). +[ProperTree](https://github.com/corpnewt/ProperTree) if you need to edit plist files on Windows. [MaciASL](https://github.com/acidanthera/MaciASL), for patching ACPI tables. +[MountEFI](https://github.com/corpnewt/MountEFI) to quickly mount EFI partitions. [IOJones](https://github.com/acidanthera/IOJones), for diagnosis. -[Hackintool](https://www.insanelymac.com/forum/topic/335018-hackintool-v286/), for diagnosis. +[Hackintool](https://www.insanelymac.com/forum/topic/335018-hackintool-v286/), for diagnostic ONLY, Hackintool should not be used for patching, it is outdated. > ## WHERE TO START: @@ -100,10 +115,14 @@ TrackPad: PS/2 > ## Read These (References): -- [dortania Hackintosh guides](https://github.com/dortania) -- [The Vanilla Laptop Guide](https://fewtarius.gitbook.io/laptopguide/) +- [dortania's Hackintosh guides](https://github.com/dortania) +- [dortania/ Getting Started with ACPI](https://dortania.github.io/Getting-Started-With-ACPI/) +- [dortania/ vanilla laptop guide](https://dortania.github.io/vanilla-laptop-guide/) +- [dortania/ opencore `laptop` guide](https://dortania.github.io/oc-laptop-guide/) +- [dortania/ opencore `desktop` guide](https://dortania.github.io/OpenCore-Desktop-Guide/) +- [dortania/ opencore `multiboot`](https://github.com/dortania/OpenCore-Multiboot) +- [dortania/ `USB map` guide](https://github.com/dortania/USB-Map-Guide) - Daliansky's [Hackintool tutorial](https://translate.google.com/translate?js=n&sl=auto&tl=en&u=https://blog.daliansky.net/Intel-FB-Patcher-tutorial-and-insertion-pose.html). -- [Getting Started with ACPI](https://khronokernel.github.io/Getting-Started-With-ACPI/) - [WhateverGreen Intel HD Manual](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/FAQ.IntelHD.en.md) > ## OTHER x1c6-hackintosh REPOSITORIES: @@ -115,7 +134,7 @@ Create a pull request if you like to be added, final decision at my discreation. > ## CONTACT: https://tylerspaper.com/contact -Signal: (202)-644-9951 \*This is a Signal ONLY number. You will not get a reply of you text me at this number. +Signal: +1 (202)-644-9951 \*This is a Signal ONLY number. You will not get a reply of you text me at this number. > ## DONATE AND SUPPORT: @@ -128,8 +147,11 @@ https://tylerspaper.com/support/ [@corpnewt](https://github.com/corpnewt) for CPUFriendFriend. [@Sniki](https://github.com/Sniki) and [@goodwin](https://github.com/goodwin) for ALCPlugFix. [@xzhih](https://github.com/xzhih) for one-key-hidpi. -[@daliansky](https://github.com/daliansky) for all the hotpatches. +[@daliansky](https://github.com/daliansky) for various hotpatches. [@velaar](https://github.com/velaar) for your continual support and contributions. +[@benbender](https://github.com/benbender) for the the 4K output patch. +[@Porco-Rosso](https://github.com/Porco-Rosso) putting up with my requests to test repo changes. +[@MSzturc](https://github.com/MSzturc) for adding my requested features to ThinkpadAssistant. The greatest thank you and appreciation to [@Acidanthera](https://github.com/acidanthera), without whom's work, none of this would be possible. diff --git a/docs/2_README-installMEDIA.md b/docs/2_README-installMEDIA.md index b1d8f7f..b75bd57 100644 --- a/docs/2_README-installMEDIA.md +++ b/docs/2_README-installMEDIA.md @@ -1,7 +1,10 @@ +> ## Partitioning to dual-boot on one drive: +Please refer to [dortania/ opencore `multiboot`](https://github.com/dortania/OpenCore-Multiboot). +*Note that on the x1c6, it is possible, and better to dual boot off of a second drive in the WWAN slot. + > ## Creating a macOS Installation Media: > ### If you have a macOS machine: - 1. Download macOS installer from the App Store. 2. Erase the installation media as GUID Partition Map, Mac OS Extended "Journaled". Name it "Install macOS (MacOS version)" - Example: "Install macOS Catalina". 3. Use 'createinstallermedia' command to copy installer to install media. [guide](https://support.apple.com/en-us/ht201372) @@ -13,3 +16,8 @@ 8. Complete the installation. 9. Boot into the newly installed Hackintosh partition using the installation media. That is to say, boot into the installtion media for OpenCore to boot into the installed Hackintosh partition. 10. Proceed with post installation configurations. + +> ### If you do not have a macOS machine: +Use [gibMacOS](https://github.com/corpnewt/gibMacOS) to create installation media on Windows/Linux. I prefer an offline installation as opposed to the recovery method. + +> ## **Refer to [Dortania](https://github.com/dortania) for more detailed documentations.** \ No newline at end of file diff --git a/docs/3_README-POSTinstallation.md b/docs/3_README-POSTinstallation.md index 8b94408..0341ac6 100644 --- a/docs/3_README-POSTinstallation.md +++ b/docs/3_README-POSTinstallation.md @@ -24,20 +24,20 @@ For the kexts you will be using, make sure to create matching entries within `Op | Bluetooth | ✅ | Native with BCM94360CS2. `BrcmFirmwareRepo.kext`, `BrcmPatchRAM3.kext`, and `BrcmBluetoothInjector.kext` otherwise. | See `patches/OpenCore Patches/` for specific network card. | | Continuty | ✅ | Native with BCM94360CS2. `BT4LEContiunityFixup.kext` otherwise. Working Blutetooth and WiFi setup | See `patches/OpenCore Patches/` for specific network card. | | AirDrop | ✅ | Native with BCM94360CS2. `BT4LEContiunityFixup.kext` otherwise. Working Blutetooth and WiFi setup | See `patches/OpenCore Patches/` for specific network card. | -| TrackPoint | ✅ | Patched `VoodooPS2Controller.kext` | - | -| TrackPad | ✅ | `VoodooPS2Controller.kext` | - | -| Built-in Keyboard | ✅ | `VoodooPS2Controller.kext` Optimizations recommended, see [`docs/5_README-other.md`](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/3_README-POSTinstallation.md) | - | +| TrackPoint | ✅ | `VoodooPS2Controller.kext` | - | +| TrackPad | ✅ | `VoodooPS2Controller. kext` or `VoodooRMI.kext` | - | +| Built-in Keyboard | ✅ | `VoodooPS2Controller.kext` and [ThinkpadAssistant](https://github.com/MSzturc/ThinkpadAssistant). Optimizations recommended, see [`docs/5_README-other.md`](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/5_README-other.md) | - | | Battery Percentage Indication | ✅ | `SSDT-OCBAT0-TP_tx80_x1c6th.aml` | Use [MaciASL](https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/) | | CPU Power Management (SpeedShift) | ✅ | `XCPM` and `CPUFriend.kext`, generate your own CPUFriendDataProvider with [CPUFriendFriend](https://github.com/corpnewt/CPUFriendFriend_) or [one-key-cpufriend](https://github.com/stevezhengshiqi/one-key-cpufriend). | | IGPU Power Management | ✅ | `XCPM`, enabled by `SSDT-PLUG-_PR.PR00.aml` | - | | PCIe Ethernet | ✅ | `IntelMausi.kext` | Needs Lenovo Ethernet adapter | | | Audio Recording | ✅ | `AppleALC.kext` with Layout ID = 21 | - | | Audio Playback | ✅ | `AppleALC.kext` with Layout ID = 21 | - | -| Automatic Headphone Output Switching | ✅ | `ALCPlugFix` | - | +| Automatic Headphone Output Switching | ✅ | [ALCPlugFix](https://github.com/tylernguyen/x1c6-hackintosh/tree/master/patches/ALCPlugFix) | - | | Full Graphics Accleration (QE/CI) | ✅ | `WhateverGreen.kext` | - | | Brightness Adjustments | ✅ | `WhateverGreen.kext` and `SSDT-PNLF-SKL_KBL.aml` | - | -| Micro SD Card Reader | ✅ | Custom `USBPorts.kext` See current OpenCore-EFI kext folder. You can create your own with Hackintool. | - | -| USB 3.1 | ✅ | Custom `USBPorts.kext` See current OpenCore-EFI kext folder. You can create your own with Hackintool. | - | +| Micro SD Card Reader | ✅ | Custom `USBPorts.kext` See current OpenCore-EFI kext folder. You can create your own with [USBMap](https://github.com/corpnewt/USBMap). | - | +| USB 3.1 | ✅ | Custom `USBPorts.kext` See current OpenCore-EFI kext folder. You can create your own with [USBMap](https://github.com/corpnewt/USBMap). | - | | DisplayPort on Thunderbolt 3 Dock | ⚠️ | `SSDT-TB3.aml`, `IOElectrify.kext` | [More details](https://github.com/tylernguyen/x1c6-hackintosh/issues/24#issuecomment-603183002) | | Thunderbolt 3 Dock (Port Replicator) | ✅ | `SSDT-TB3.aml`, `IOElectrify.kext` | - | | Thunderbolt 3 Hotplug | ⚠️ | `SSDT-TB3.aml`, `IOElectrify.kext` | [More details](https://github.com/tylernguyen/x1c6-hackintosh/issues/24#issuecomment-603183002) | diff --git a/docs/4_README-ACPIpatching.md b/docs/4_README-ACPIpatching.md index 9ee84c0..321e8c9 100644 --- a/docs/4_README-ACPIpatching.md +++ b/docs/4_README-ACPIpatching.md @@ -24,6 +24,13 @@ Should your source DSDT be similar enough (in regards to certain items in these ## Some patches here may be unused. Refer to the current OpenCore-EFI folder to see which one I am currently using. While other patches may be needed case-by-case, such as the WiFi/Bluetooth patches. +> ## Important Note: + +Unlike Clover, where SSDT patches are only being applied when booting macOS. OpenCore will apply SSDT patches regardless of the operating system. This is critical when multi-booting, since Windows and Linux do not need the additional patches that macOS does. In many cases, if Windows/Linux fails to boot under OpenCore, it is likely that your macOS intended SSDT patch(s) is being applied universally. To prevent OpenCore from doing this, it is important that your SSDT patches specify its intended OS, which in our case is "Darwin." +See highlighted example: + +![OpenCore SSDT patching notice](https://raw.githubusercontent.com/tylernguyen/x1c6-hackintosh/master/docs/assets/img/OpenCore%20SSDT%20patching%20notice.png) + ## Some Thinkpad machines are `LPC` and some are`LPCB`. Please examine your own DSDT and modify patches as needed. > ### Non-native WiFi and Bluetooth @@ -33,13 +40,13 @@ Should your source DSDT be similar enough (in regards to certain items in these \*Notice that these patches require additional kexts to be installed. See them in `Kernel/Add/` -> ### SSDT-OCBAT0-TP_tx80_x1c6th - Enabling Battery Status in macOS +> ### SSDT-OCBAT0-TP_tx80_x1c6th - Enables Battery Status in macOS **Need `OpenCore Patches/ TPbattery.plist`** - Single battery system: only `BAT0` in ACPI, no `BAT1`. -> ### SSDT-PLUG-\_PR.PR00 - Enablaing Native Intel Power Managements +> ### SSDT-PLUG-\_PR.PR00 - Enables Native Intel Power Managements Why?: `Processor` search in DSDT, rename `PR` to other variables as needed. @@ -65,11 +72,11 @@ Why?: `Processor` search in DSDT, rename `PR` to other variables as needed. } ``` -> ### SSDT-PNLF-SKL_KBL - Enabling Brightness Mangement in macOS +> ### SSDT-PNLF-SKL_KBL - Enables Brightness Management in macOS iGPU is `PCI0.GFX0` Why?: `Skylake/ KabyLake/ KabyLake-R` CPU. -Used in conjuction with `WhateverGreen.kext` +Used in conjunction with `WhateverGreen.kext` > ### SSDT-HPET @@ -88,7 +95,7 @@ For multimedia functions: - Remap 4: F7 (Dual Display) to F16 (for use with ThinkpadAssistant) - Remap 5: F8 (Network) to F17 (for use with ThinkpadAssistant) - Remap 6: F9 (Settings) to F18 (for use with ThinkpadAssistant) -- Remap 7: F10 (Bluetooth) to [Shift+Down] +- Remap 7: F10 (Bluetooth) to [Left Shift + F8] ((for use with ThinkpadAssistant)) - Remap 8: F11 (Keyboard) to [Shift+Up] - Remap 9: F12 (Star) to F19 (for use with ThinkpadAssistant) - Remap 10: PrtSc to F13 @@ -120,18 +127,10 @@ Look up `_PTS` and `_WAK` in source DSDT and confirm the following, modify if di - PTSWAK extension patch. Solve the problem that some machines need to press any key to light up the screen after waking up. When using, you should inquire whether the `PNP0C0D` device name and path already exist in the patch file, such as`_SB.PCI0.LPCB.LID0`. If not, add it yourself. -> ### SSDT-SBUS - -Why?: `0x001F0004` under Device (SBUS). - > ### SSDT-DMAC Why?: `PNP0200` is missing in DSDT. -> ### SSDT-MCHC - -Why?: `MCHC` is missing in DSDT. - > ### SSDT-PMCR Why?: `PMCR`,`APP9876` missing in DSDT. diff --git a/docs/5_README-other.md b/docs/5_README-other.md index 5929ec7..0a2774f 100644 --- a/docs/5_README-other.md +++ b/docs/5_README-other.md @@ -15,6 +15,8 @@ - Disable Power Nap for both [`Battery`](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/assets/img/macOS%20Settings/Batter_powernap.png) and [`Power Adapter`](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/assets/img/macOS%20Settings/Poweradt_powernap.png). - Disable [`Wake for Network Access`](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/assets/img/macOS%20Settings/Poweradt_powernap.png) in `Power Adapter`. - Uncheck [`Allow Bluetooth devices to wake this computer`](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/docs/assets/img/macOS%20Settings/Bluetooth_wake.png). +- Do not disable `hibernatefile`. +- `sudo pmset -a tcpkeepalive 0` to disable Network while sleeping. > ## Multimedia Fn Key Patching: diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index d848ef6..6bb1cec 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -3,6 +3,28 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +> ### 2020-6-26 + +#### Added + +- `VoodooRMI` as alternative trackpad option. **Enabled by default, feel free to revert back to `VoodooPS2Mouse` and `VoodooPS2Trackpad` if you prefer**. *Note, there's currently a bug with RMI where the touchpad would not load once in a while. The RMI kext uploaded in this repo has a temp fix by me (See [VoodooSMBUS/PR](https://github.com/VoodooSMBus/VoodooSMBus/pull/41)). However, the issue is still ongoing and the dev team is aware of it. I'm switching this repo to VoodooRMI because I believe it's the future and I want to possible bugs to be reported to be fixed for the kext's first stable release. +- Kernel patches to enable 4K external graphics, thank you so much [@benbender](https://github.com/benbender) +- `XQ74` patch in `SSDT-Keyboard` to support `FnLock` HUD per ThinkpadAssistant 1.8.0 +- In [EFI-OpenCore/README.md](https://github.com/tylernguyen/x1c6-hackintosh/blob/master/EFI-OpenCore/README.md), I've added a short section explaining why certain variables are the way they are in my `config.plist`. I will continue to update this section with more details as time goes on. + +#### Changed + +- iGPU Framebuffer patching for HDMI issue in Catalina. + - In Catalina/WhateverGreen version, for some reasons my previous framebuffer patches for HDMI no longer worked. So I re-did the patch in mode details but eventually the property that fixed it was `disable-external-gpu` or `-wegnoegpu`. For some strange reasons, that variable activated on-board HDMI. See [similar reports here](https://www.tonymacx86.com/threads/guide-general-framebuffer-patching-guide-hdmi-black-screen-problem.269149/page-123). I'm going to create an issue on acidanthera/bugtracker soon to report to the dev team. In the mean time, keep this property if you rely on HDMI and do not have an eGPU. Delete this property if you have an eGPU (You're likely using the HDMI on the eGPU anyway). +- Fixed `VoodooPS2` kexts loading order. +- Various reference docs to dortania. +- `HibernateMode` to `Auto` + +#### Removed + +- Unnecessary Mutex OpenCore patches, all Mutex are already 0 in stock `DSDT`. +- `SSDT-MCHC` and `SSDT-SBUS` for `VoodooRMI` compatibility. + > ### 2020-6-1 #### Changed diff --git a/docs/assets/img/ALCPlugFix_fixAudio.png b/docs/assets/img/ALCPlugFix_fixAudio.png index ba7c1d2a5aa5277f0f7a55c67a76c24a7326ff2e..3f946a02644aeffbcb2563280ed17e74ebb6505a 100644 GIT binary patch delta 13 VcmezUo$=#c#tF)sb$QR_0RS|}2A==` delta 3375 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 Dd?*&% diff --git a/docs/assets/img/macOS Settings/Battery_powernap.png b/docs/assets/img/macOS Settings/Battery_powernap.png index ad62944b95800041924c95b479b135d4f23110ec..1178fb34c9b747fcecc25a14da9a1ef12740dac0 100644 GIT binary patch delta 17 Zcmcb&f&JBF_6f?()A_bf=VLs65&%iz2jTz# delta 3743 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 KR|}u&>G>bR!qS@n diff --git a/docs/assets/img/macOS Settings/Bluetooth_wake.png b/docs/assets/img/macOS Settings/Bluetooth_wake.png index c01944252001c2331ae85ddf525796f6f4527e42..494c206b002ed63d18acd8cf2d1858c88ac84390 100644 GIT binary patch delta 21 dcmX@HjpNEpjtR=m)A`z`^D%Cp&d0Qo2LNS)2p<3d delta 3746 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 P1PMM8JX0e`QN{2-O1sin diff --git a/docs/assets/img/macOS Settings/Poweradt_powernap.png b/docs/assets/img/macOS Settings/Poweradt_powernap.png index 25d888e9663e06d35d3bb70bcf019a355992a48f..15de89596e29b2ee67f439d32865cd068c214a7c 100644 GIT binary patch delta 17 ZcmeBt&OY@N`vm3Y>3rL#^D%yU0suxr2kZa< delta 3743 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 K8o@JPmj4G;uF|Cd diff --git a/docs/assets/img/macOS Settings/touchpad.png b/docs/assets/img/macOS Settings/touchpad.png index ceaf4b398d1c70f883ba86b1debb1536e76b3dd7..7f18c07ccf938944aa815f0d4992c1ba25c07183 100644 GIT binary patch delta 25 fcmZoZ%>Q!*{{-b`UEX$GUPd5h+OEsX9Cif&cGd_P delta 3384 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 Nv69R+k}M8`{{vI$7kK~x diff --git a/patches/OpenCore Patches/TPbattery.plist b/patches/OpenCore Patches/TPbattery.plist index d84c144..db31818 100755 --- a/patches/OpenCore Patches/TPbattery.plist +++ b/patches/OpenCore Patches/TPbattery.plist @@ -133,254 +133,6 @@ - - Comment - Mutex:MDGS=0 - Count - 0 - Enabled - - Find - - AU1ER1MH - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AU1ER1MA - - ReplaceMask - - - Skip - 0 - TableLength - 0 - - - Comment - Mutex:MCPU=0 - Count - 0 - Enabled - - Find - - AU1DUFUH - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AU1DUFUA - - ReplaceMask - - - Skip - 0 - TableLength - 0 - - - Comment - Mutex:BATM=0 - Count - 0 - Enabled - - Find - - AUJBVE0H - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AUJBVE0A - - ReplaceMask - - - Skip - 0 - TableLength - 0 - - - Comment - Mutex:MSMI=0 - Count - 0 - Enabled - - Find - - AU1TTUkH - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AU1TTUkA - - ReplaceMask - - - Skip - 0 - TableLength - 0 - - - Comment - Mutex:BFWM=0 - Count - 0 - Enabled - - Find - - AUJGV00H - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AUJGV00A - - ReplaceMask - - - Skip - 0 - TableLength - 0 - - - Comment - Mutex:XDHK=0 - Count - 0 - Enabled - - Find - - AVhESEsH - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AVhESEsA - - ReplaceMask - - - Skip - 0 - TableLength - 0 - - - Comment - Mutex:MWMI=0 - Count - 0 - Enabled - - Find - - AU1XTUkH - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AU1XTUkA - - ReplaceMask - - - Skip - 0 - TableLength - 0 - - - Comment - Mutex:NPWM=0 - Count - 0 - Enabled - - Find - - AU5QV00H - - Limit - 0 - Mask - - - OemTableId - - - Replace - - AU5QV00A - - ReplaceMask - - - Skip - 0 - TableLength - 0 - diff --git a/patches/OpenCore Patches/x1c6-keyboard.plist b/patches/OpenCore Patches/x1c6-keyboard.plist index abf7f05..2c7e60a 100644 --- a/patches/OpenCore Patches/x1c6-keyboard.plist +++ b/patches/OpenCore Patches/x1c6-keyboard.plist @@ -357,6 +357,40 @@ + + Comment + _Q74 to XQ74 (FnLock - Fn + Esc) + Count + 1 + Enabled + + Find + + X1E3NA== + + Limit + 0 + Mask + + + OemTableId + + + Replace + + WFE3NA== + + ReplaceMask + + + Skip + 0 + TableLength + 0 + TableSignature + + + diff --git a/patches/SSDT-HPET.dsl b/patches/SSDT-HPET.dsl index 0911e02..c7d927a 100644 --- a/patches/SSDT-HPET.dsl +++ b/patches/SSDT-HPET.dsl @@ -4,16 +4,12 @@ // DefinitionBlock ("", "SSDT", 2, "tyler", "HPET", 0x00000000) { + External (_SB.PCI0.LPCB, DeviceObj) // (from opcode) External (_SB.PCI0.LPCB.HPET, DeviceObj) // (from opcode) - Name (\_SB.PCI0.LPCB.HPET._CRS, ResourceTemplate () // _CRS: Current Resource Settings { - IRQNoFlags() - {0} - IRQNoFlags() - {8} - IRQNoFlags() - {11} + IRQNoFlags () + {0,8,11} Memory32Fixed (ReadWrite, 0xFED00000, // Address Base 0x00000400, // Address Length diff --git a/patches/SSDT-Keyboard.dsl b/patches/SSDT-Keyboard.dsl index d321342..9d98857 100644 --- a/patches/SSDT-Keyboard.dsl +++ b/patches/SSDT-Keyboard.dsl @@ -1,23 +1,66 @@ +/* +LED1 is F4 - Mic Mute +LED2 is Keyboard Backlight +LED3 is FnLock LED +*/ DefinitionBlock("", "SSDT", 2, "tyler", "x1input", 0) { External(_SB.PCI0.LPCB.KBD, DeviceObj) External(_SB.PCI0.LPCB.EC, DeviceObj) - External(_SB.PCI0.LPCB.EC.XQ6A, MethodObj) - External(_SB.PCI0.LPCB.EC.XQ15, MethodObj) - External(_SB.PCI0.LPCB.EC.XQ14, MethodObj) - External(_SB.PCI0.LPCB.EC.XQ16, MethodObj) - External(_SB.PCI0.LPCB.EC.XQ64, MethodObj) - External(_SB.PCI0.LPCB.EC.XQ66, MethodObj) - External(_SB.PCI0.LPCB.EC.XQ60, MethodObj) - External(_SB.PCI0.LPCB.EC.XQ61, MethodObj) - External(_SB.PCI0.LPCB.EC.XQ62, MethodObj) - External(_SB.PCI0.LPCB.EC.XQ1F, MethodObj) - External(_SB.PCI0.LPCB.EC.HKEY.MMTS, MethodObj) - External(_SB.PCI0.LPCB.EC.HKEY.MMTG, MethodObj) - External(_SB.PCI0.LPCB.EC.HKEY.MLCS, MethodObj) + External(_SB.PCI0.LPCB.EC.XQ74, MethodObj) // FnLock + External(_SB.PCI0.LPCB.EC.XQ6A, MethodObj) // F4 - Mic Mute + External(_SB.PCI0.LPCB.EC.XQ15, MethodObj) // F5 + External(_SB.PCI0.LPCB.EC.XQ14, MethodObj) // F6 + External(_SB.PCI0.LPCB.EC.XQ16, MethodObj) // F7 + External(_SB.PCI0.LPCB.EC.XQ64, MethodObj) // F8 + External(_SB.PCI0.LPCB.EC.XQ66, MethodObj) // F9 + External(_SB.PCI0.LPCB.EC.XQ60, MethodObj) // F10 + External(_SB.PCI0.LPCB.EC.XQ61, MethodObj) // F11 + External(_SB.PCI0.LPCB.EC.XQ62, MethodObj) // F12 + External(_SB.PCI0.LPCB.EC.XQ1F, MethodObj) // Keyboard Backlight (Fn+Space) + External(_SB.PCI0.LPCB.EC.HKEY.MHKQ, MethodObj) // FnLock LED + External(_SB.PCI0.LPCB.EC.HKEY.MMTS, MethodObj) // F4 - Mic Mute LED + External(_SB.PCI0.LPCB.EC.HKEY.MLCS, MethodObj) // Keyboard Backlight LED Scope (_SB.PCI0.LPCB.EC) { + Name (LED3, Zero) + Method (_Q74, 0, NotSerialized) // FnLock (Fn + Esc) + { + If (_OSI ("Darwin")) + { + // Toggle FnLock LED + If ((LED3 == Zero)) + { + // Right Shift + F18 + Notify (\_SB.PCI0.LPCB.KBD, 0x012A) + Notify (\_SB.PCI0.LPCB.KBD, 0x0369) + Notify (\_SB.PCI0.LPCB.KBD, 0x01aa) + + // 0x02 = Enable LED + \_SB.PCI0.LPCB.EC.HKEY.MHKQ (0x02) + LED3 = One + } + Else + { + // Left Shift + F18 + Notify (\_SB.PCI0.LPCB.KBD, 0x0136) + Notify (\_SB.PCI0.LPCB.KBD, 0x0369) + Notify (\_SB.PCI0.LPCB.KBD, 0x01b6) + + // 0x00 = Disable LED + \_SB.PCI0.LPCB.EC.HKEY.MHKQ (Zero) + LED3 = Zero + } + + } + Else + { + // Call original _Q74 method. + \_SB.PCI0.LPCB.EC.XQ74() + } + } + Name (LED1, Zero) // _Q6A - Microphone Mute Method (_Q6A, 0, NotSerialized) // F4 - Microphone Mute = F20 diff --git a/patches/SSDT-MCHC.dsl b/patches/SSDT-MCHC.dsl deleted file mode 100644 index 08b10e1..0000000 --- a/patches/SSDT-MCHC.dsl +++ /dev/null @@ -1,25 +0,0 @@ -// This SSDT adds the missing Memory (DRAM) Controller to the system. - -DefinitionBlock ("", "SSDT", 2, "tyler", "MCHC", 0x00000000) -{ - External (_SB_.PCI0, DeviceObj) - - Scope (_SB.PCI0) - { - Device (MCHC) - { - Name (_ADR, Zero) // _ADR: Address - Method (_STA, 0, NotSerialized) // _STA: Status - { - If (_OSI ("Darwin")) - { - Return (0x0F) - } - Else - { - Return (Zero) - } - } - } - } -} diff --git a/patches/SSDT-SBUS.dsl b/patches/SSDT-SBUS.dsl deleted file mode 100644 index c4b376b..0000000 --- a/patches/SSDT-SBUS.dsl +++ /dev/null @@ -1,47 +0,0 @@ -// -DefinitionBlock ("", "SSDT", 2, "tyler", "SBUS", 0) -{ - External (_SB_.PCI0.SBUS, DeviceObj) - - Scope (_SB.PCI0.SBUS) - { - Device (BUS0) - { - Name (_CID, "smbus") - Name (_ADR, Zero) - Device (DVL0) - { - Name (_ADR, 0x57) - Name (_CID, "diagsvault") - Method (_DSM, 4, NotSerialized) - { - If (!Arg2) - { - Return (Buffer (One) - { - 0x03 - }) - } - - Return (Package (0x02) - { - "address", - 0x57 - }) - } - } - Method (_STA, 0, NotSerialized) - { - If (_OSI ("Darwin")) - { - Return (0x0F) - } - Else - { - Return (Zero) - } - } - } - } -} -