Awesome
RTCMemoryFixup
An open source kernel extension providing a way to emulate some offsets in CMOS (RTC) memory. It can help you to avoid some conflicts between macOS AppleRTC and firmware/BIOS of your PC.
It can also help you to find out at which offsets you have a conflict. In most cases it is enough to boot with some offsets in boot-args, perform sleep, wake and reboot. If you don't see any CMOS errors or some unexpected reboots, it means you have managed to exclude conflicted CMOS offsets.
Offsets in boot-args rtcfx_exclude
can have value from 00 to FF (wihout prefix 0x). Be careful:
- Offsets from 0 to 0D usually are more or less 'compatible' and should not cause any conflicts.
- Offsets from 0x80 to 0xAB are used to store some hibernation information (IOHibernateRTCVariables). If any offset in this range causes a conflict, you can exclude it, but hibernation won't work.
- In my case it was only the one offset: B2. B0 - B4 offsets are used for PowerManagement features, but they don't work on hacks anyway)
Compilation
- This kext is not Lilu-plugin, but it still relies on some useful methods from Lilu libraries, so you have to put Lilu.kext into project folder.
Boot-args
rtcfx_exclude=offset1,offset2,start_offset-end_offset...
- list of offsets or ranges of offsets where writing is not allowed-rtcfxdbg
turns on debugging output