stonevil / Razer_Blade_Advanced_early_2019_Hackintosh

Razer Blade Advanced early 2019 Hackintosh. Guide and EFI
127 stars 16 forks source link

Razer Blade Advanced early 2019 macOS 10.14/10.15 Hackintosh

Note: I'AM NOT RESPONSIBLE IF YOU MESS UP YOUR COMPUTER USING THIS GUIDE!

SUPPORT

I have no access anymore to Razer Blade notebooks and not be able to test properly and update documentation. I open for any cooperation and will try maintain this repository as much as possible. Please fill free to create Pull Requests.

Intro

About this Mac

I have been using Apple hardware and software since 1996 for macOS has been the best OS to meet my needs. My first computer was a PowerBook 150. Since then, I used mostly Apple mobile solutions: PowerBook G3, PowerBook Titanium, bunch of MacBook Pro 13" and 15". But, I'm really dissatisfied with the latest MacBook Pro 2017 as it has a useless keyboard with arrow keys designed for Tinker Bell and zero ability to upgrade up to 32Gb RAM back then in 2017. Yes. I know. This is 100% Intel failure. Just like performance and thermal issues the Intel CPU had for the last 6 years. Intel just doesn’t care about the mobile CPU market anymore.

So, finally, I made a decision to go to the dark side and to switch to the hackintosh notebook. After doing some research, I selected Razer Blade Advanced. This has, perhaps, the best combo of design (!), performance and upgradability.

Apple finally has updated the MacBook Pro with the proper Magic Keyboard and up to 64Gb RAM and decent enough dGPU! Alleluya!

Purpose

Hardware

Razer Blade Advanced early 2019

Spec macOS 10.14 compatibility
Chipset Mobile Intel HM370 No issues
CPU Intel Core i7-8750H processor, 6 Cores / 12 Threads, 2.2GHz / 4.1GHz, 9MB Cache No issues
Memory 16GB dual-channel DDR4-2667MHz, up to 64GB No issues
GPU Intel UHD 630 No issues
dGPU Nvidia 2070 Max-Q (8GB GDDR6 VRAM) Nvidia Drivers absent for Mojave. ACPI should be patched to disable dGPU
Storage Samsung PM981 256GB NVMe M.2 Incompatible firmware. You can install macOS on compatible
Screen 15.6" Full HD 144Hz, 1920 x 1080 IPS No issues
Webcam Windows Hello built-in IR HD webcam (1MP / 720P) No issues. Windows Hello is not supported in macOS
WiFi Intel Wireless-AC 9560NGW Drivers absent for macOS. Should replaced
Input & Output USB 3.1 Gen 1 (USB-A) x3 No issues
Thunderbolt 3 (USB-C) No issues
HDMI 2.0B HDMI connected directly to Nvidia GPU and will not work in macOS
Mini DisplayPort 1.4 Mini DisplayPort connected directly to Nvidia GPU and will not work in macOS
Soundboard Realtek ALC298 No issues. ACPI patch should be added to solve sleep issue
Battery 80Wh About 3-5h after proper Power Management configuration. ACPI should be patched to enable battery stats
Keyboard Per-key RGB powered by Razer Chroma N-Key rollover backlit No issues. Original Razer Chroma software absent for macOS. Many thanks to BlvckBytes for MenuBar app to control Razer Blade keyboard and logo RGB lighting
Touchpad Precision Glass No issues. ACPI should be patched to enable trackpad
Dimensions 17.8mm x 235mm x 355mm
Weight 2.21 kg ACPI patches will not help with this. /sarcasm
Power 230W power adapter

Hardware Upgrades and Tools

The bundled WiFI and NVMe is not compatible with macOS and should be replaced. Please find below the recommended replacement parts, already tested for compatibility. Usually I need to deploy for testing 4-5 node Kubernetes cluster with at least 4Gb per node. So 32GB is a necessary upgrade for me.

Accessories

Accessories Description Amazon URL
USB mouse Trackpad will be unavailable during macOS installation procedure Amazon
USB storage with at least 16Gb storage Installation USB media Amazon
USB-A to USB-C cable For USB ports detection procedure Amazon

WiFi

WiFi module Description eBay or AliExpress URL Confirmation
BCM94352Z (DW-1560) Recommended. 2 antennas. No issues. Additional kext's are required. Easily to find for \$24-60 on eBay community
BCM943602BAED (DW-1830) 3 antennas. RBA have only 2. Works out of the box. About \$60-120 on AliExpress AliExpress community

Storage

NVMe 4k Support Amazon URL Confirmation
Samsung EVO 970 NVMe NO Amazon community
Samsung EVO 970 Pro NVMe NO Amazon community
Samsung EVO 970 Plus NVMe NO Amazon Do the Samsung 970 Evo Plus drives work ? New Firmware Available for testing 5/20/19
Sabrent Rocket NVMe YES Amazon stonevil
WD Black SN750 NVMe - Amazon community
HP EX900 M.2 NVMe - Amazon konohasaint
Samsung PM981 NO Bundled with Razer Blade suyukai

Note: Bundled Samsung NVMe PM981 can be enabled with additional macOS Extension (kext) and (ACPI hot patch). More information in suyukai post I find a way to use macOS on SSD(pm981) in blade!...

macOS have native support and works better with 4k blocks. Check NVMe format. Performance tested with Blackmagic Disk Speed Test. Samsung EVO 970 1Tb NVMe and Sabrent Rocket 1Tb NMVe have the same Read/Write performance. But Samsung EVO stays about 8-12° C hotter on heave load. Even with additional passive cooling.

Note: I do recommend to use at least 1Tb NVMe for dual boot with Windows 10.

RAM

Memory module Modules size Speed CL Amazon URL Confirmation
Ballistix Sport LT 32GB 2x16Gb 2666 CL16 Amazon stonevil
Kingston Technology HyperX Impact 32GB 2x16Gb 2666 CL15 Amazon Razer Blade 15 Advanced RAM upgrade

Recommended Upgrades

Accessories Description Amazon URL Confirmation
Advancing Gene NVMe M.2 Heatsink Passive cooling for NVMe. Decreased temperature for about 10-12° C on heave load Amazon stonevil

Recommended Tools

Tool URL
iFixIt Pro Tech Toolkit iFixIt

(Optional) Extreme Upgrade only for Advance Gamers

Accessories Description Amazon URL
Thermal Grizzly Conductonaut Thermal Grease Paste Liquid metal thermal paste Amazon
MG Chemicals 422B Silicone Modified Conformal Coating Coating Amazon
3M Scotch Super 88 Vinyl Electrical Tape Electrical tape Amazon

Useful information

Repository

BIOS_mod/ folder. This folder contains the latest RBA AMI BIOS mod with all the required unlocked options.

This BIOS mod is actual only for Razer Blade Advanced early 2019 with

Version
System BIOS 1.05
EC FW 1.03
MCU FW 1.00.00.00

Do not use this mod if your system is different! Please check with BIOS.

BIOS_mod/Nvidia_2080_Max-Q_BIOS_mod/ this folder contains patches for 80w or 90w TDP for Nvidia 2080 Max-Q.

EFI/ folder is basically a full copy of my EFI folder from EFI drive with a removed machine serial number.

ACPI Patches

can be different for your computer.

Extensions/ folder with all required macOS Extensions (kext's).

Tools/ folder with various tools to flash BIOS, etc. macOS IORegistryExplorer v2.1 is included with this repository. This tool is necessary for debugging USB, etc. configuration.

Tools/AMI/ is a folder with AMI BIOS flashing and modding tools. Tools/Nvidia/ is a folder with Nvidia BIOS flashing tools.

Development/ACPI_patches/ is a folder with uncompiled versions of the SSDT's created for various ACPI hot patches.

Drivers/Windows/Apple USB Ethernet drivers for Windows is a folder with Apple USB-A Ethernet drivers for Windows extracted from Apple BootCamp.

Required Tools

Tool Description Download URL
balenaEtcher a free and open-source utility used for burning image files such as .iso and .img files, as well as zipped folders to create live SD cards and USB flash drives. balenaEtcher
UniBeast a tool for building macOS installation media UniBeast
TINU an alternative tool for building macOS installation media TINU
Clover Configurator an easy to use macOS application designed to help you create custom configuration files for the Clover EFI bootloader via a streamlined graphical interface Clover Configurator
KextBeast a quick installer for .kext, .bundle, and .plugin files KextBeast
Continuity Activation Tool is a tool that makes the changes necessary to enable Continuity features on compatible hardware Continuity Activation Tool
Kext Updater this little tool is totally easy to have up-to-date kext's Kext Updater
MaciASL a native AML compiler and IDE for OS X, with syntax colouring, tree navigation, automated patching, online patch file repositories, and iASL binary updates, written entirely in Cocoa, conforms to OS X guidelines MaciASL
iasl -//- iasl
GenSMBIOS a Py script that uses acidanthera's macserial to generate SMBIOS and optionally saves them to a plist GenSMBIOS Github Repository
one-key-cpufriend a script for modifying macOS CPU Performance one-key-cpufriend Github Repository
USBMap a Py script for mapping out USB ports and creating a custom SSDT or injector kext (WIP) USBMap Github Repository
Intel Power Gadget a software-based power usage monitoring tool enabled for Intel Core processors Intel Power Gadget
iStat Menus an advanced Mac system monitor iStat Menus
Prime95 a free Mersenne Prime search tool. Maybe, the best tool for CPU torture testing Prime95
UNetbootin this tool allows you to create bootable USB drives for Windows and Ubuntu and other Linux distributions without burning a CD. UNetbootin

Preparation

BIOS update

It is very important to make all the updates for BIOS before starting any macOS deployment. ACPI sources will be different after BIOS update and this will require to dump ACPI sources and patch them again. And, that is not a pleasant task.

Download BIOS, EC, ME, etc. Firmware and apply them from stock Windows partition.

Razer Hardware Drivers download URL

Useful information

BIOS unlock

Certain changes for the BIOS configuration should be done to make macOS bootable on the Razer Blade Advanced.

Some of these configurations can be fixed one or another way in Clover configuration file. But, it is better to play safe and change configuration in BIOS. Deactivation of the CFG-Lock can help a lot with power management.

If the BIOS is upgraded to the latest version and

Version
System BIOS 1.05
EC FW 1.03
MCU FW 1.00.00.00

it's safely to use already modded dump from BIOS_mod/ folder and jump to BIOS flashing.

Otherwise, follow the BIOS export step.

BIOS export

AFUWINGUI_Save

BIOS modding

Most of the options are required for further undervolting and overclocking. But, some of them are necessary for the macOS. These options are marked with !

Power_Performance

CPU_VR_Settings

CPU_Power_Management_Control1

CPU_Power_Management_Control2

OverClocking_Performance_Menu

Processor

Ring

GT

Uncore

Memory_Overclocking_Menu1

Memory_Overclocking_Menu2

Chipset

System_Agent_Configuration

Graphics_Configuration

PEG_Port_Configuration

BIOS flashing

AFUWINGUI_Flash

Useful information

BIOS configuration

There are a few changes in the BIOS that are vital to make macOS happy and bootable on RBA. Undervolting and Overclocking are explained in the following chapter.

Note: If some of these options are not available in BIOS, please, boot back in Windows and check modded BIOS dump for missing changes.

Hardware preparation

WiFi and NVMe replacement

WiFi and NVMe replacement is easy enough for this Model. You just need to unscrew the bottom case. Check the video provided below for more information.

Useful information

(Optional) NVMe format with 4k block

This step is optional. MacOS works faster and better with NVMe with 4k blocks. Usually NVMe formatted with 512 or 512e block size for unknown reason. Maybe another Windows compatibility issue. Anyway, Windows 10 works with no issues with NVMe with 4k blocks.

The best way to format NVMe drive is to boot from Linux Live USB media and use smartctl and nvme-cli tools.

balenaEtcher_Select_Image

balenaEtcher_Select_Media

balenaEtcher_Flash

Note: Ubuntu lacks the support by default drivers for most Broadcom WiFi modules.

There are 2 way to overcome this issue:

Accessories Description Amazon URL
USB to Ethernet Internet access AmazonBasics USB 3.0 to 10/100/1000 Gigabit Ethernet

To change NVMe drive block size

Ubuntu_Show_Applications

Ubuntu_Terminal

sudo apt -y install smartmontools

Ubuntu_Install_smartmontools

Ubuntu_Install_smartmontools_postfix

sudo apt -y install nvme-cli

Ubuntu_Install_nvme_cli_fail

Ubuntu_Install_nvme_cli_url

Ubuntu_Install_nvme_cli_url_open_with1

Ubuntu_Install_nvme_cli_url_open_with2

Ubuntu_Install_nvme_cli_url_open_with3

Ubuntu_Install_nvme_cli_url_open_with4

Ubuntu_Install_nvme_cli_window

sudo smartctl -a /dev/nvme0

Ubuntu_Run_smartctl

Ubuntu_Run_smartctl_result

sudo nvme format -l 1 /dev/nvme0

Ubuntu_Install_nvme_format

sudo smartctl -a /dev/nvme0

Useful information

(Optional) Liquid Metal re-paste

Be very careful and do this at your OWN RISK!

This step is not necessary and can be recommended only for hardcore gamers with experience of building their own rigs. Razer is already using very good thermal paste, so re-pasting thermal paste is not very useful until liquid metal is used. The Grizzly Conductonaut Thermal Grease Paste may be the best one. Read more about liquid metal thermal paste and all the issues it can cause before making the decision to proceed.

Useful information

macOS

macOS install media preparation

Use you own OR borrow some friend Mac computer.

Useful information

macOS installation

Note: Do not try to connect the computer with iCloud before you generate proper SMBIOS! This step is explained in the 'iCloud. iMessages and FaceTime' step.

Useful information

Install EFI and Extensions

Once the macOS installation is finished:

sudo kextcache -i /

If you have the same Razer Blade model, you are safe to jump to step iCloud. iMessages and FaceTime. Otherwise, you need to generate custom ACPI hot patches and USB mapping specific to your Razer Blade model.

Disable Hibernation

Hibernation does not work correctly with the majority of hackintosh notebooks anyway.

sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
sudo mkdir /var/vm/sleepimage

Tweak Energy Saver

System_Preferences

System_Preferences_Energy_Saver

ACPI patching

If you have a little bit different version of Razer Blade (just like mid 2019 Model OR Base Model OR different version of BIOS) the ACPI and USB patches will not be compatible with you Razer Blade!

In this case, ACPI hot patches should be created from scratch.

Again, it is very important to apply all BIOS patches, firmware updates before this step (!).

ACPI export

DSDT patching for battery, trackpad

sudo cp ~/Downloads/iasl /usr/local/bin/
/usr/local/bin/iasl -da -dl DSDT.aml SSDT*.aml

DSDT_01_BAT

DSDT_05_GFX

Next step is hot patch DSDT for brightness settings between reboots.

    Device (ALSD)
    {
        Name (_HID, "ACPI0008")  // _HID: Hardware ID
        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            If (LEqual (ALSE, 0x02))
            {
                Return (0x0B)
            }

            Return (Zero)
        }

        Method (_ALI, 0, NotSerialized)  // _ALI: Ambient Light Illuminance
        {
            Return (Or (ShiftLeft (LHIH, 0x08), LLOW))
        }

        Name (_ALR, Package (0x05)  // _ALR: Ambient Light Response
        {
            Package (0x02)
            {
                0x46, 
                Zero
            }, 

            Package (0x02)
            {
                0x49, 
                0x0A
            }, 

            Package (0x02)
            {
                0x55, 
                0x50
            }, 

            Package (0x02)
            {
                0x64, 
                0x012C
            }, 

            Package (0x02)
            {
                0x96, 
                0x03E8
            }
        })
    }

DSDT_ALS0_01

    Device (_SB.ALS0)
    {
        Name (_HID, "ACPI0008")  // _HID: Hardware ID
        Name (_CID, "smc-als")  // _STA: Status
        Name (_ALI, 300)  // _ALI: Ambient Light Illuminance
        Name (_ALR, Package ()  // _ALR: Ambient Light Response
        {
            Package () { 100, 300 },
        })
    }

DSDT_ALS0_02

Next step is hot patch DSDT for trackpad.

IORegistryExplorer_Open_Right_Click

IORegistryExplorer_TPD0

Method (SSCN, 0, NotSerialized)
{
    Return (PKG3 (SSH0, SSL0, SSD0))
}

Method (FMCN, 0, NotSerialized)
{
    Return (PKG3 (FMH0, FML0, FMD0))
}
Method (_SCN, 0, NotSerialized)
{
    Return (PKG3 (SSH0, SSL0, SSD0))
}

Method (_MCN, 0, NotSerialized)
{
    Return (PKG3 (FMH0, FML0, FMD0))
}

DSDT_11_SSCN_FMCN

Scope (_SB.PCI0.I2C0)
    {
        Name (I2CN, Zero)
        Name (I2CX, Zero)
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (SDS0, I2CN)
            Store (Zero, I2CX)
        }

        Device (TPD0)
Scope (_SB.PCI0.I2C0)
    {
        Name (I2CN, Zero)
        Name (I2CX, Zero)
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (SDS0, I2CN)
            Store (Zero, I2CX)
        }

        Method (SSCN, 0, NotSerialized)
        {
            Return (PKG3 (SSH0, SSL0, SSD0))
        }

        Method (FMCN, 0, NotSerialized)
        {
            Return (PKG3 (FMH0, FML0, FMD0))
        }

        Device (TPD0)

DSDT_12_SSCN_FMCN

Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
{
    If (LLess (OSYS, 0x07DC))
    {
        Return (SBFI)
    }

    If (LEqual (TPDM, Zero))
    {
        Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFG))
    }

    Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFI))
}
Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
{
    Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFG))
}

DSDT_13__CRS

DSDT_Save_As_2

(Optional) Trackpad GPIO Pinning

This step is optional but highly recommended.

Before you begin make sure you computer's Platform Controller Hub is Cannon Point-H (Coffee Lake CPU). For other platforms tables will be different. In this case please check with GPIO Pinning documentation.

DSDT_GPIO_Pin_01

DSDT_GPIO_Pin_02

CNL_GPP(0, 51, 74, 64),             /* GPP_C */

DSDT_GPIO_Pin_03

69-51+64 = 82

DSDT_GPIO_Pin_10_Decimal_to_Hexadecimal_Converter

Name (SBFG, ResourceTemplate ()
{
GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
    "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
    )
    {   // Pin list
    0x0000
    }
})
Name (SBFG, ResourceTemplate ()
{
GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
    "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
    )
    {   // Pin list
    0x52
    }
})

DSDT_GPIO_Pin_11

Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
    Return (ConcatenateResTemplate(SBFB, SBFG))
}

DSDT_GPIO_Pin_05__CRS

DSDT_Save_As_2

Next step is hot patch ACPI to disable Nvidia GPU in macOS for saving battery and decreasing the overall heat.

Nvidia GPU disable

\_SB.PCI0.PEG0.PEGP and expand it, click on _OFF
Method (_OFF, 0, Serialized) // _OFF: Power Off

SSDT-12-OptTabl_01

Method (_INI) {_OFF() } // added to call _OFF

SSDT-12-OptTabl_02

into method label _INI parent_label \_SB.PCI0.GFX0 insert

begin

//added to turn nvidia/radeon off\n

External(\_SB.PCI0.PEG0.PEGP._OFF, MethodObj)\n

\n

end;

SSDT-12-OptTabl_03

[Unknown ASL Compiler exception ID] (TGPC [Integer])

SSDT-12-OptTabl_04

External (_SB_.PCI0.PEG0.TGPC, IntObj)    // (from opcode)

SSDT-12-OptTabl_05

SSDT-12-OptTabl_Save_As_2

Useful information

USB mapping

Required Accessories

Device USB version USB connection type
Any 2.0 USB-A
Any 3.0 USB-A
Any 3.x USB-C
Cable USB-A to USB-C cable Amazon USB-C
  #######################################################
 #                      USBMap                         #
#######################################################

Plist:          USB.plist
UIA Boot Args:  None
USBInjectAll:   Not Loaded - NVRAM boot-args WILL NOT WORK
AptioMemoryFix: Loaded

NVRAM Arg Options:
  E. Apply Exclusion-Arg.txt
  H. Exclude HSxx Ports (-uia_exclude_hs)
  S. Exclude SSxx Ports (-uia_exclude_ss)
  C. Clear Exclusions

R.  Remove USB.plist from Scripts Folder
T.  Reset Settings to Defaults
P.  Edit Plist & Create SSDT/Kext
D.  Discover Ports
U.  Validate USB Power Settings
Q.  Quit

Please select an option:
  #######################################################
 #           Validating USB Power Settings             #
#######################################################

Checking EC
 - EC is properly setup
Checking USBX requirements
 - MacBookPro15,2 not found in IOUSBHostFamily.kext - checking for USBX
 --> USBX device found: USBX@0

EC Setup Properly:   True
USBX Setup Properly: True

Press [enter] to return
  #######################################################
 #                     USB Types                       #
#######################################################

0: Type A connector
1: Mini-AB connector
2: ExpressCard
3: USB 3 Standard-A connector
4: USB 3 Standard-B connector
5: USB 3 Micro-B connector
6: USB 3 Micro-AB connector
7: USB 3 Power-B connector
8: Type C connector - USB2-only
9: Type C connector - USB2 and SS with Switch
10: Type C connector - USB2 and SS without Switch
11 - 254: Reserved
255: Proprietary connector

Per the ACPI 6.2 Spec.

Press [enter] to return
 #######################################################
 #                  Detecting Ports                    #
#######################################################

1. HS01 - Controller XHC
2. HS02 - Controller XHC
3. HS03 - Controller XHC
4. HS05 - Controller XHC
    - BCM20702A0
5. HS06 - Controller XHC
6. HS07 - Controller XHC
    - Integrated Camera
7. HS08 - Controller XHC
    - Razer Blade
8. HS09 - Controller XHC
9. HS10 - Controller XHC
10. HS11 - Controller XHC
11. HS13 - Controller XHC
12. HS14 - Controller XHC
13. SS01 - Controller XHC
14. SS02 - Controller XHC
15. SS03 - Controller XHC

Populated:  XHC:3

Press Q then [enter] to stop

Waiting 5 seconds:
Select ports to toggle with comma-delimited lists (eg. 1,2,3,4,5)
Change types using this formula T:1,2,3,4,5:t where t is the type
Set custom names using this formula C:1:Name - Name = None to clear
T:4,6,7:255
  #######################################################
 #               Creating USBMap.kext                  #
#######################################################

Loading plist
Generating Info.plist
Writing to USBMap.kext
 - Created USBMap.kext!
Checking EC
 - EC is properly setup
Checking USBX requirements
 - MacBookPro15,2 not found in IOUSBHostFamily.kext - checking for USBX
 --> USBX device found: USBX@0

Created the following file:

USBMap.kext

Copy automatically to booted EFI? (y/n):

Verify configuration by inserting USB 2.0 and USB 3.0 and USB-C devices just like during detecting procedure. Also, close the lid and turn over notebook. After 20-60sec, depending on the current load, fans should stop rotating. Wait for another 3-5min. They shouldn't start spinning again. If they start and stop after 10-20sec, you have done something wrong and need to start the procedure again.

Useful information

iCloud. iMessages and FaceTime

Follow the instruction in the article An iDiot's Guide To iMessage.

Useful information

FileVault

This step is optional, but highly recommended from the security standpoint.

Clover_Preboot

System_Preferences_FileVault_Locked

System_Preferences_FileVault_Unlocked

Useful information

Power Management

BIOS tweak

CPUFriendDataProvider

cd ~/Download/one-key-cpufriend-master
./one-key-cpufriend.sh
-----------------------------------------
|****** Choose Low Frequency Mode ******|
-----------------------------------------
(1) Remain the same (1200/1300mhz)
(2) 800mhz
(3) Customize
Which option you want to choose? (1/2/3)
----------------------------------------
| Choose Energy Performance Preference |
----------------------------------------
(1) Max Power Saving
(2) Balance Power (Default)
(3) Balance performance
(4) Performance
Which mode is your favourite? (1/2/3/4)
sudo kextcache -i /

Useful information

Undervolting

There are several tools for Windows for undervolting and overclocking CPU and GPU. Just like:

With macOS, it is a different story. There are a few tools for macOS for undervolting, but they require additional macOS Extensions (kext's). Often, they are not free or not very well supported.

So, I decided to go Rogue and do undervolt with BIOS. Tools like XTU provide better control, but I need a solution that will work both in Windows and Debian Linux and macOS.

AMI BIOS provides a lot of different tools for undervolting and overclocking.

The most interesting and easy to use are:

To apply configuration:

Option Configuration start undervolting Recommended step My stable working configuration
Processor Core Voltage Offset -100 -5 -140
GT Core Voltage Offset -100 -5 -140
GTU Core Voltage Offset -100 -5 -140
Uncore Voltage Offset -60 -5 -120

CPU limitations can be very different even in same series. So, do not use my configuration blindly.

BIOS has many additional configurations for undervolting and overclocking, just like TDP (Thermal Design Power), but this requires extensive knowledge in CPU/Chipset/etc. and power management. This is not a part of this documentation. For more information, check the links provided at the end of the document.

Note: It looks like the mid 2019 Razer Blade Advanced has been undervolted from factory! But there are still room for improvement.

Useful information

Nvidia BIOS flashing

Razer Blade Advanced mid 2019 has very few changes in comparison to the previous early 2019 model.

The biggest disadvantage is 80w 2080 Max-Q instead of 90w in the previous model. This is a huge difference for general performance. Check article Comparison: 80w vs 90w RTX 2080 Max-Q.

nvflash64.exe -6 Nvidia_2080_Max-Q_90w.rom

Useful information

Razer Chroma

Razer Chroma support for Razer Blade notebooks and the latest Razer devices has not been implemented for macOS yet. I suppose, it will never be implemented.

Many thanks to BlvckBytes for MenuBar app to control Razer Blade keyboard and logo RGB lighting.

Windows

NVMe partition

Windows installation media preparation

Windows_Download1

Windows_Download2

Windows_Download3

Windows_Download4

Windows_Download5

Windows_unetbootin1

Windows_unetbootin2

Useful information

Windows installation

Note: Be careful and select right partition created before for Windows 10. Otherwise, you can destroy the macOS installation.

Useful information

Clover Boot fix

To fix dual-booting hackintosh, rename bootmgfw.efi to bootmgfw-orig.efi causing Clover to become unblocked. Add the tag -orig to the name so that it’s still a recognizable file and is shown in the Windows EFI partition for booting in the Clover Boot loader menu.

To rename bootmgfw.efi

(Optional) Override Windows Boot Manager

If for some reason the UEFI OS (drive_name) isn’t shown as an available boot device, there is a way to override Windows Boot Manager and have it redirected to Clover.

Note: Very often, with cumulative and security updates Windows 10 will place new bootmgfw.efi in EFI/Microsoft/Boot/. You can notice this by two Windows boot options in Clover boot screen. Just remove old bootmgfw-orig.efi and rename new bootmgfw.efi to bootmgfw-orig.efi.

Useful information

Hackintosh Dual Boot Windows 10 and macOS High Sierra

Known Issues and Limitations

Limitations

HDMI_DP

Issues

Conclusion

It's a pretty good laptop with a way better keyboard than 2016-2019y MacBook Pro. It is a solid workstation and an extremely good gaming machine. It has easy to upgrade NVMe and RAM and WiFi modules. This Model supports NVMe up to 2Tb and RAM up to 64Gb.

Major disadvantages are:

P.S. Apple, please fix the keyboard and release a real Pro MacBook. Just take a look on Razer Blade Advanced as that is a good place for starting to design a new MacBook Pro.

Additional Information

Community

Credits

TODO