commit 882b576888b71769af0cbd0d9b00c58386e4c072 Author: <> Date: Thu Aug 25 12:17:34 2022 +0000 Deployed 99d34f1 with MkDocs version: 1.3.1 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..dc52663 --- /dev/null +++ b/404.html @@ -0,0 +1,801 @@ + + + +
+ + + + + + + + + + + + + + + + + + +Note
+BIOS modding is optional.
+Danger
+The BIOS mod may permanently break TPM. Consider this if you wish to proceed, especially now that TPM is required for Windows 11.
+A modded BIOS will allow for more optimizations to be made for macOS and will overall make your hackintosh better. I am a BIOS modding novice myself, but with these instructions, I was able to mod my x1c6 BIOS in less than one hour. I fully recommend doing this for all who think themselves capable. Furthermore, the default config.plist
for this repository is meant to accommodate a modded BIOS with appropriate settings. If you cannot mod your BIOS or is unwilling to do so, use Vanilla BIOS.plist
.
Recommendation
+ +The CH341a SPI Programmer and SOIC8 Clip are needed to dump, mod, and flash the BIOS chip. There are better and more profession alternative devices but I've found this one to be adequate for the job.
+ +Info
+The BIOS chip is located above the CPU, under the sticker shield:
++ +
+Here are the steps to mod your BIOS (credits to paranoidbashthot
and \x
). Attempt this at your own risk.
xx_80_patches-v*.txt
, I commented out WWAN patches since I do not need it.diff
to make sure things were dumped properly, store this backup somewhere safe.BIOS-v1.45
, I cannot be sure about other BIOS versions. Though they will most likely work as well.The modded BIOS does not need to be signed by thinkpad-eufi-sign
. Remember to replace 4C 4E 56 42 42 53 45 43 FB
with 4C 4E 56 42 42 53 45 43 FF
on the patched BIOS.
Your BIOS chip may not be made by Winbond, but by Macronix instead. In that case, add the argument -c MX25L12835F/MX25L12845E/MX25L12865E
to flashrom
. See Issue #116
Advance Menu
tab.+ +
+ +The following are further optimization settings that can be figured once your BIOS is modded.
+graph TD
+ id1[Advance Tab]-->id2[Intel Advanced Menu];
+ id2-->id3[System Agent Configuration];
+ id2-->id4[Power & Performance];
+ id3-->id5[Graphics Configuration];
+ id4-->id6[CPU - Power Management Control];
+ id5-->|DVMT Pre-Allocated|64M;
+ id6-->id7[CPU Lock Configuration];
+ id7-->|CFG Lock|Disabled;
+i7-8650U
, verified by stress testing with Prime95
and Heaven Benchmark
, your may be worse or better, please do your own testing. In addition, I suggest you repaste your machine with an aftermarket thermal paste for lower temps and a better undervolt.graph TD
+ id1[Advance Tab]-->id2[Intel Advanced Menu];
+ id2-->id3[OverClocking Performance Menu];
+ id3-->|OverClocking Feature|Enabled;
+ id3-->Processor;
+ id3-->GT;
+ id3-->Uncore;
+ Processor-->|Voltage Offset|100;
+ Processor-->|Offset Prefix|id4[-];
+ GT-->|GT Voltage Offset|id8[80];
+ GT-->|Offset Prefix|id5[-];
+ GT-->|GTU Voltage Offset|id8;
+ GT-->|Offset Prefix|id5;
+ Uncore-->|Uncore Voltage Offset|80;
+ Uncore-->|Offset Prefix|id6[-];
+The following settings depend on your own personal preference:
+If you want to optimize CPU performance at the cost of battery:
+graph LR
+ id1[Advance Tab]-->id2[Power & Performance];
+ id2-->id3[CPU - Power Management Control];
+ id3-->|Boot Performance Mode|id4[Turbo Performance];
+ id3-->|Config TDP Configurations|Up;
+graph LR
+ id1[Advance Tab]-->id2[Power & Performance];
+ id2-->id3[CPU - Power Management Control];
+ id3-->|Boot Performance Mode|id4[Max Battery];
+ id3-->|Config TDP Configurations|Down;
+
+
+
+
+
+
+
+
+
+ These BIOS settings must be made to install and run macOS without any problems:
+graph LR
+ id1[Main Menu]-->Security;
+ id1-->Config;
+ id1-->Startup;
+ Security-->TPM[Security Chip];
+ Security-->Fingerprint;
+ Security-->SBC[Secure Boot Configuration];
+ Config-->Network;
+ Startup-->|UEFI/Legacy Boot|id4[UEFI Only];
+ Startup-->|CSM Support|No;
+ TPM-->|Security Chip|id2[Disabled];
+ Fingerprint-->|Predesktop Authentication|id2;
+ SBC-->|Secure Boot|id2;
+ Network-->|Wake on LAN|id3[Disabled];
+ Network-->|Wake on LAN from Dock|id3;
+ Network-->|UEFI IPv4 Network Stack|id3;
+ Network-->|UEFI IPv6 Network Stack|id3;
+Tip
+You can also disable hardware/features you do not need to save power, some examples are:
+graph LR
+ id1[Main Menu]-->Security;
+ id1-->Config;
+ Security-->id2[I/O Port Access];
+ Config-->USB;
+ id2-->|Wireless WAN|id3[Disabled];
+ id2-->|Fingerprint Reader|id3;
+ id2-->|Memory Card Slot|id3;
+ USB-->|Always on USB|Disabled;
+graph LR
+ id1[Main Menu]-->Config;
+ Config-->id2[Thunderbolt 3];
+ id2-->|Thunderbolt BIOS Assist Mode|Enabled;
+ id2-->|Thunderbolt Device|Enabled;
+graph LR
+ id1[Main Menu]-->Config;
+ Config-->id2[Thunderbolt 3];
+ id2-->|Thunderbolt BIOS Assist Mode|Disabled;
+ id2-->|Security Level|id3[No Security];
+ id2-->|Support in Pre Boot Environment: Thunderbolt Device|Disabled;
+
+
+
+
+
+
+
+
+
+ All notable changes to this project will be documented in this file.
+The format is based on Keep a Changelog.
ToggleSipEntry.efi
to easily enable/disable SIP status during boot picker.RTCMemoryFixup.kext
BluetToolFixup.kext
to fix Bluetooth stack in macOS Monterey. (It should on load on macOS Monterey).HFSPlus.efi
install EFI
is now deprecated. Use the main EFI
to install macOS (You may also wish to enable ShowPicker
, as well as -v
in boot-args
)docs/Hardware.md
no longer requires a wireless card change. The recommendaiton/preferred card is now AX200.Resources
folder structuring and added new support files.ECEnabler.kext
in favor of SSDT-Battery
(ECEnabler
had some trouble updating charge level for me).SSDT-Battery
in favor of ECEnabler.kext
Resources
per master repo update.1.4.3
SSDT-Keyboard
patches now that YogaSMC partially handles keyboard locale.Resources
with latest `OCBinaryDataocvalidate
(0.6.5) in OC
to easily check and validate config.plist
changes.config.plist
SSDT-PWRB
to patch power button.SSDT-XHC2
is also now apart of this.SSDT-Sleep
SSDT-Battery
to rev8, thanks @benbenderYogaSMC
to stable build 1.3.0
SSDT-Battery
. Thanks @benbenderYogaSMC
is now recommended and preferred.TbtForcePower.efi
as it is no longer needed.ThunderboltReset.kext
has it is no longer needed.YogaSMC
is now the preferred method to handle Fn keys instead of ThinkpadAssisstant.YogaSMC
is still in its infancy, so you still prefer ThinkpadAssistant, use SSDT-Keyboard-Legacy.dsl
and /patches/OpenCore Patches/ Keyboard-Legacy.plist
config.plsit
:Arch
value to each kext entry in accordance with new OpenCore doc.ExtendBTFeatureFlags
value to replace BT4LEContinuityFixup
/patches/
to make things easier to find and understand.3_README-POSTinstallation.md
to SUMMARY.md
since it's not really a step but more of an overview of what patches what.SSDT-Keyboard
SSDT-PNLF
to accomodate AppleBacklightSmoother.kext
SSDT-Battery
that fixes accesses to 16byte-EC-field HWAC (Issue #82).SSDT-Sleep
is an all-in-one sleep patch over SSDT-PTSWAK
, SSDT-GPRW
, SSDT-EXT*
Linux
in BIOS as it is now indepently set by SSDT-Sleep
If (_OSI ("Darwin"))
and SSDT-DTPG
are now replaced in favor of SSDT-Darwin
and OSDW
, just like in genuine Macs.USBPorts.kext
in favor of patching/mapping via ACPI with SSDT-XHC1
, SSDT-XHC2
, and SSDT-USBX
README.md
:3_README-POSTinstallation.md
into the SUMMARY
section.HibernateMode
to NVRAM
instead of Auto
update.sh
script to automatically build and replace all ACPI patchesSSDT-HWAC
to patch access to 16byte-EC-field HWACSSDT-EC
to patch embedded controller for use with YogaSMC
SSDT-Debug
, SSDT-HOOKS
, and Debug.plist
for debugging if neededSSDT-INIT
to configure system values: HPET
, DYTC
, and DPTF
YogaSMC.kext
to interface with the device's EC. Make sure to also install the app and pref pane.AppleBacklightSmoother.kext
is just as its name implies.BrightnessKeys.kext
to handle Fn keys with ACPI renames.SSDT-HPET
, similar to genuine Macs, HPET is now disabled within SSDT-INIT
ThunderboltReset.kext
so I replaced it one built by @benbender. You can monitor the issue here osy86/ThunderboltReset/issues/7. Thank you @benbender for noticing this.VoodooRMI
RTCMemoryFixUp
for support of Hibernation Mode 25.uninstall.sh
from the previous commit to remove ALCPlugFix. Resources
GPRW
ACPI patch to fix Bluetooth wake. Make sure that your Wake-on-LAN is disabled in BIOS to prevent sleep problems.SMCSuperIO
as it was unnecessary.PlayChime
to Yes
if you want it.AudioDxe.efi
can upsample audio on the fly.BIOS-v1.45
. Thanks @benbender for bringing this to my attention.VoodooRMI
, this kext is now stable.dortania
as referring to their often updated content should be better.config.plist
is now defaulted to users with a BIOS mod, those without a BIOS mod will need to add config_unmoddedBIOS.plist
to config.plist
OpenCore-EFI
now has the 4K output patch disabled for easier system upgrades. Install OpenCore patches/4K-Output
if you need it.VoodooRMI
patches/Internal Displays/
for the WQHD HDR Screen:EFI-OpenCore/README.md
about decisions on config.plist
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). 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. XQ74
patch in SSDT-Keyboard
to support FnLock
HUD per ThinkpadAssistant 1.8.0config.plist
. I will continue to update this section with more details as time goes on. disable-external-gpu
or -wegnoegpu
. For some strange reasons, that variable activated on-board HDMI. See similar reports here. 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).VoodooPS2
kexts loading order.HibernateMode
to Auto
DSDT
.SSDT-MCHC
and SSDT-SBUS
for VoodooRMI
compatibility.SSDT-EXT3
with SSDT-LED
tyler
to somewhat track distributions and usage across various projectsSMCLightSensor.kext
has been removed as the x1c6 has no ambient light sensor.Keyboard Perfection is almost here! +- Modified SSDT-Keyboard patch to be compatible with ThinkpadAssistant. + - Mute/unMute Microphone with F4, with LED! + - Disable WiFi with F8 + - Mirror with F7 + - Bluetooth, F10 still has to be handled by BetterTouchTool, but hopefully supported will be added soon. See my request
+TbtForcePower.efi
from LiveUSB OpenCore config.plist
install_USB
to 0. config.plist
assets
folder into docs/
.config.plist
as they are unnecessary.BIOS-v1.43
.0.5.3
.patches
. Making sure to read patches/README
.EFI-Clover/README.md
.docs
.=0;)(r=i[a])&&(o&&4^r.compareDocumentPosition(o)&&o.parentNode.insertBefore(r,o),o=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=F);for(var n=this._groups,r=n.length,i=new Array(r),a=0;a >1)+f+t+k+E.slice(C);break;default:t=E+f+t+k}return s(t)}return y=void 0===y?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y)),k.toString=function(){return t+""},k}return{format:h,formatPrefix:function(t,e){var n=h(((t=Ji(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(na(e)/3))),i=Math.pow(10,-r),a=la[8+r/3];return function(t){return n(i*t)+a}}}}({thousands:",",grouping:[3],currency:["$",""]}),sa=oa.format,ca=oa.formatPrefix;class da extends Map{constructor(t,e=ga){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(const[e,n]of t)this.set(e,n)}get(t){return super.get(pa(this,t))}has(t){return super.has(pa(this,t))}set(t,e){return super.set(function({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}(this,t),e)}delete(t){return super.delete(function({_intern:t,_key:e},n){const r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}(this,t))}}function pa({_intern:t,_key:e},n){const r=e(n);return t.has(r)?t.get(r):n}function ga(t){return null!==t&&"object"==typeof t?t.valueOf():t}Set;const ya=Symbol("implicit");function ma(){var t=new da,e=[],n=[],r=ya;function i(i){let a=t.get(i);if(void 0===a){if(r!==ya)return r;t.set(i,a=e.push(i)-1)}return n[a%n.length]}return i.domain=function(n){if(!arguments.length)return e.slice();e=[],t=new da;for(const r of n)t.has(r)||t.set(r,e.push(r)-1);return i},i.range=function(t){return arguments.length?(n=Array.from(t),i):n.slice()},i.unknown=function(t){return arguments.length?(r=t,i):r},i.copy=function(){return ma(e,n).unknown(r)},Zi.apply(i,arguments),i}const va=1e3,ba=6e4,_a=36e5,xa=864e5,wa=6048e5,ka=31536e6;var Ta=new Date,Ca=new Date;function Ea(t,e,n,r){function i(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return i.floor=function(e){return t(e=new Date(+e)),e},i.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},i.round=function(t){var e=i(t),n=i.ceil(t);return t-e =0;)(r=i[a])&&(o&&4^r.compareDocumentPosition(o)&&o.parentNode.insertBefore(r,o),o=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=cc);for(var n=this._groups,r=n.length,i=new Array(r),a=0;a =0;)(r=i[a])&&(o&&4^r.compareDocumentPosition(o)&&o.parentNode.insertBefore(r,o),o=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=Wd);for(var n=this._groups,r=n.length,i=new Array(r),a=0;a Info tl;dr - The X1C6 has different cooler fan manufacturers, and they differ greatly in noise and performance. Recommendation Depending on the battery health (cycle count, max capacity), consider getting a battery replacement. Warning Avoid battery replacements from eBay as their autheticity cannot be verified. Addtionaly, their reported capacity, cycle count, and longevity can be misleading.=c)return-1;if(37===(i=e.charCodeAt(o++))){if(i=e.charAt(o++),!(a=x[i in To?e.charAt(o++):i])||(r=a(t,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}return b.x=w(n,b),b.X=w(r,b),b.c=w(e,b),_.x=w(n,_),_.X=w(r,_),_.c=w(e,_),{format:function(t){var e=w(t+="",b);return e.toString=function(){return t},e},parse:function(t){var e=k(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=w(t+="",_);return e.toString=function(){return t},e},utcParse:function(t){var e=k(t+="",!0);return e.toString=function(){return t},e}}}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}),ko=wo.format,wo.parse,wo.utcFormat,wo.utcParse;var Qs=Array.prototype.find;function Ks(){return this.firstElementChild}var Js=Array.prototype.filter;function tc(){return Array.from(this.children)}function ec(t){return new Array(t.length)}function nc(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function rc(t){return function(){return t}}function ic(t,e,n,r,i,a){for(var o,s=0,c=e.length,u=a.length;se?1:t>=e?0:NaN}nc.prototype={constructor:nc,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var uc="http://www.w3.org/1999/xhtml";const lc={svg:"http://www.w3.org/2000/svg",xhtml:uc,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function hc(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),lc.hasOwnProperty(e)?{space:lc[e],local:t}:t}function fc(t){return function(){this.removeAttribute(t)}}function dc(t){return function(){this.removeAttributeNS(t.space,t.local)}}function pc(t,e){return function(){this.setAttribute(t,e)}}function gc(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function yc(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function mc(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function vc(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function bc(t){return function(){this.style.removeProperty(t)}}function _c(t,e,n){return function(){this.style.setProperty(t,e,n)}}function xc(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function wc(t,e){return t.style.getPropertyValue(e)||vc(t).getComputedStyle(t,null).getPropertyValue(e)}function kc(t){return function(){delete this[t]}}function Tc(t,e){return function(){this[t]=e}}function Cc(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function Ec(t){return t.trim().split(/^|\s+/)}function Sc(t){return t.classList||new Ac(t)}function Ac(t){this._node=t,this._names=Ec(t.getAttribute("class")||"")}function Mc(t,e){for(var n=Sc(t),r=-1,i=e.length;++r=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function Zc(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,a=e.length;r=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var eu=[null];function nu(t,e){this._groups=t,this._parents=e}function ru(){return new nu([[document.documentElement]],eu)}nu.prototype=ru.prototype={constructor:nu,select:function(t){"function"!=typeof t&&(t=$s(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i=c)return-1;if(37===(i=e.charCodeAt(o++))){if(i=e.charAt(o++),!(a=x[i in zl?e.charAt(o++):i])||(r=a(t,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}return b.x=w(n,b),b.X=w(r,b),b.c=w(e,b),_.x=w(n,_),_.X=w(r,_),_.c=w(e,_),{format:function(t){var e=w(t+="",b);return e.toString=function(){return t},e},parse:function(t){var e=k(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=w(t+="",_);return e.toString=function(){return t},e},utcParse:function(t){var e=k(t+="",!0);return e.toString=function(){return t},e}}}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}),Yl=jl.format,jl.parse,jl.utcFormat,jl.utcParse;var af={value:()=>{}};function of(){for(var t,e=0,n=arguments.length,r={};e
+
Optimizing Hardware
+
+Repaste the Cooler
+
+
+Replace the Fan (if applicable)
+Battery Replacement
+