Skip to content

xenophon61/Lenovo-ThinkCentre-M700-OSX-Sonoma-on-Skylake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lenovo-ThinkCentre-M700-OSX-Sonoma-on-Skylake

Opencore configuration to run OS X Sonoma on a (i5) ThinkCentre M700 Skylake SFF PC. {under construction}. Some information is in the Wiki.

Specifications:

  • Lenovo ThinkCentre M700 model 10HY002WMG
  • I5-6400t 1.2G (Skylake) with 8Gb RAM
  • Intel® HD Graphics 530
  • BIOS version 7/2022 FWKTBFA
  • Has locked MSR2 (CFG Lock var offset = 0x197, and must be unlocked); you can use the local Wiki for guidance
  • boot disk is a LiteOn m2.SATA (attached to the m2 slot, which does not accept NVME drives)
  • Intel wifi (with bluetooth)
  • Display connected to the DP connector closest to the power supply (con2?)

Brief guide:

  • enable CSM in BIOS, as per the Wiki; now is the time to turn CFG Lock off, and enable XCHI (again, check the Wiki)
  • download the EFI.zip, expand it and update your serial number with GenSMBIOS (for an iMac19,1), as per Dortania
  • note that the Files section above includes only a subset, for review purposes. Don't copy it to the EFI partition, instead use the expanded EFI.zip
  • should be bootable (OC 0.9.5 and up-to-date kexts)
  • note: HibernationFixup and Lilu are debug versions
  • the individual non-compressed folders are provided for guidance (of particular significance is config.plist, which lists the DeviceProperties and NVRAM boot args, along with Misc:Boot:Hibernation setup)

Miscellaneous (but important) notes:

This is a sweet little machine, took me a while to run Sonoma and then stumbled on the infamous wake-from-sleep issue with its HD 530 iGPU. No way I would accept a non-sleeping computer, so took it upon myself to solve the problem - essentially trying laptop-specific advice from OSXLatitude and insanelymac forum users. Seems it's working (fingers crossed).

  • WOL works, with the included Mausi driver (v1.0.8)
  • use power button to wake (appears as PWRBT wake in pmset logs)
  • the USB ports were initially mapped with CorpNewt's scripts under an iMac19,1 SMBIOS
  • however, the final map(*) was obtained by booting Windows 10 and then running USBToolBox/tool; of note it detected the Intel Bluetooth adapter and assigned it to an "internal" port, but not really identifying it
  • Hackintool reports iGPU as "???", and I don't know the significance of this; it works fine
  • Bluetooth is reported as present, but haven't bothered to check if it works or not (probably won't be reliable); the IntelBT injectors are disabled in the config.plist, but BlueToolFixup is required (otherwise you get an annoying dialog at startup)
  • these are the current boot arguments(*)
  boot-args	alcid=21 igfxagdc=0  revpatch=sbvmm forceRenderStandby=0 igfxonln=1 keepsyms=1 -amfipassbeta swd_panic=1 hbfx-ahbm=1 darkwake=0 -noDC9  -liludbgall -hbfxdbg -btlfxallowanyaddr
  • the SSDT-USBW.aml is created as per Dortania but unused; same for the stock Dortania SSDT-USBX.aml
  • final important note: AppleALC is disabled (must use a USB sound adapter)(*)

Solving the display wake issue required a lot of Voodoo; the items marked with an asterisk probably played a major role, and I just don't have the resources to figure out which exactly is critical or not. I plan to gradually introduce them and see (AppleALC.kext in particular).

Disclaimer: it should be considered as a work-in-progress. I've had 10+ successful sleep/wake cycles over many days, but the occasional hard freeze on wake :-(

Post-install:

sudo pmset restoredefaults
sudo pmset -a hibernatemode 25
sudo pmset -a standby 1
sudo pmset -a powernap 0
sudo pmset -a sleep 1
sudo pmset -a standbydelaylow 610
sudo pmset -a standbydelayhigh 610

System-wide power settings:
Currently in use:
 standby              1
 Sleep On Power Button 1
 womp                 0
 autorestart          0
 hibernatefile        /var/vm/sleepimage
 proximitywake        0
 powernap             0
 networkoversleep     0
 disksleep            10
 standbydelayhigh     610
 sleep                1
 hibernatemode        25
 ttyskeepawake        1
 displaysleep         10
 tcpkeepalive         1
 highstandbythreshold 50
 standbydelaylow      610
  • disable RTC wakes; This has been described very eloquently by JayMonkey, and involves some steps to create a new powerd.plist.

Epilogue

Does it work? Well, I'll leave it on for as long as possible and report back (currently December 9, 2023). So far so good!

25-Dec-23 update: new setup, slightly changed from above, has slept and awakened (using the power button) n=10 times in the past few days. Stay posted for an updated EFI folder in a week or two. In the meantime, you can recreate the EFI using "config.plist" for guidance.

See Disclaimer, just above.

With greetings from Athens,

Xen

Debugging

Here's a small collection of commands to view the debug logs, gathered from the internet:

pmset -g log | egrep "\b(Sleep|Wake|DarkWake|Start)\s{2,}"
sudo dmesg | grep HBFX
log show --predicate 'process == "kernel"' --style syslog --source --debug --last boot
sudo log show --predicate 'process == "kernel"' --style syslog --source --debug | grep hibern

Credits: