Git Product home page Git Product logo

lenovo-thinkcentre-m900-tiny-pc-hackintosh's Introduction

Lenovo-ThinkCentre-M900-Tiny-PC-Hackintosh

Lenovo Thinkcentre M900 Tiny PC OpenCore 0.8.3

Tested to clean Install Sierra, Catalina, Big Sur, and Monterey.

Sierra: m900tiny sierra 10 12 6

Catalina: 00 m900tinycatalina

Big Sur: 01 m900tinybigsur2

Monterey: 01 m900tinymonterey 2

Guides and sources:

From Windows:

I followed Dortania's OpenCore Guide and did Port Mapping from Windows https://www.reddit.com/r/hackintosh/comments/ta1ef4/guide_easy_usb_mapping_with_usbtoolbox_on_windows/?utm_medium=android_app&utm_source=share

After Installing Catalina: (for Catalina and older versions, Port Mapping is not a must), so its perfect, for doing post-install process...

My Specs:

  • Model Make: Lenovo Thinkcentre M900 Tiny PC

  • Bios Version: FWKTBFA

  • CPU/GPU: Intel i7-6700t/Intel HD Graphics 530 (2 DisplayPort + 1 VGA port) only 2 display ports work on macOS.

  • DRAM: 20GB (16GB+4GB) 2133Mhz DDR4 So-Dimm

  • Storage: 1TB Crucial P5 2280 (nvme slot) (MacOS-Catalina, Big Sur and Windows 10 64bit 21H2)...

I used this guide to install win10 (https://www.youtube.com/watch?v=ztxHRGdX0Sw&t=3s)

IMG_20220729_124101

IMG_20220729_124110

What works on MacOS:

  • Graphics Full Aceleration, (Lilu.kext, VirtualSMC.kext, WhateverGreen.kext). (my Processor and GPU are natively supported, so I dont need any config on DeviceProperties).

  • Type A USB Ports - (USB Port Map kext + SSDT-USBX-.aml-for USB power)

  • Power Management (SSDT-PLUG.aml, EC.aml,SSDT-MEM2.aml and CPUFriend+CPUFriendDataProvider kexts)

  • Internet Conexion - LAN (IntelMausi.kext) ; Wifi+Bluetooth no kext required, only mapped BT usb port as internal (255)

  • Audio: Monitor Speakers via DisplayPort and LineOut to Headphones ¨Front Jack¨ (AppleAlc.kext+HPET.aml+IRQ and IPIC Conflict patch) - now Also Internal Speaker working with alcid=20

There are other patches for making macOS believe that os running on a real iMac, like DMAC, MCHC, MEM2, PCMR, and so on.

Note: I will dedicate some time to trying to fix sleep issue (display not working after sleep)...

Progress: I went deep into Whatevergreen.kext patching, So I figured out how to send sleep command, ONLY TO IGPU, and make the M900 to go into HALF-SLEEP state, to avoid the tiny pc to get stuck on BLANK MODE

Instead of typing a lot, I will show you My Config on a few pictures... Remember this tiny pc has mobile hardware, so I treated it as a MacMini not a iMac; the LSPCON and hda-gfx=onboard-1 patches, make MacOS believe its a mobile IGPU not a Desktop IGPU so, when you go to sleep and later press a key or move the mouse, basically the system believes you a CLOSING and/or OPENING the "Laptop". - (you have to remove or uncomment both patches "#", to boot Monterey and up) Edit: I tried it without the 2 patches and it works, so they are not really necessary, the PM SET commands are enough!!

00DEVICEPROPERTIES

01KEXTS

02BOOT-ARGS

03DORTANIA FIX SLEEP

-- if you check whatevergreen patching methods, the board controller (0x1912) supports 3 video output ports (2 DP + 1 Dummy which can be HDMI or VGA depending on adapter)... If you change the dummy port definition from Dummy to DP, SLEEP and WAKE happens really fast 2-3 seconds. Exampl: From Dummy "10 00 00 00" to Display Port "00 04 00 00".

This way you avoid getting stuck on BLANK SCREEN and Only Fan and CPU are still running, reducing power consumption.

Lenovo ThinkCentre M900 Tiny Pc CFG lock (MSR 0xE2) fix:

All the following models with BIOS Update - Intel B150 for ThinkCentre M700 Tiny, ThinkCentre M800, M900, M900x Tiny

Bios Version: FWKTBFA (fwjtbfusa) - 05 Jul 2022 - with this BIOS update, you can use a 7th Gen CPU (i5-7500t or i7-7700t).

This guide will work, only if your Lenovo ThinkCentre tiny pc has this bios version, if not, you will have to update. (It is included on Windows 10 updates), or you can download it from official site. https://support.lenovo.com/pt/en/downloads/DS105487

Method:

  • I followed Dortania Post-Install Guide on the topic, with a little variation...

https://dortania.github.io/OpenCore-Post-Install/misc/msr-lock.html#what-is-cfg-lock

The guide helped me find the CFG Lock value for my bios, but no matter how much I searched, I could not find CpuSetup value anywhere, so I knew the Modified GRUB Shell commands, had to be different.

varstore

  • I first tried the suggested: setup_var_cv CpuSetup 0x197 0x01 0x00, with no luck.

  • I tried this: setup_var 0x197 0x00, and it worked. (0x197 is the value for this bios version) "CFG lock, VarStoreInfo (VarOffset/VarName): 0x197, VarStore: 0x1, QuestionId: 0x87D , Size: 1, Min: 0x0, Max 0x1, Step: 0x0"

  • You have to disable Kernel -> Quirks -> AppleCpuPmCfgLock and Kernel -> Quirks -> AppleXcpmCfgLock, on your Config.plist

Sample Pics:

01LOCKED MSR

02SAMPLE

03SAMPLE

04UNLOCKED MSR

Now the system has full access to your CPU MSR 0xe2, to control it and perform better.

This is a WORK IN PROGRESS, please let me know any problem you may have, or any suggestions.

I hope this information helps.... if you have the same model...

lenovo-thinkcentre-m900-tiny-pc-hackintosh's People

Contributors

juanpy0223 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.