- Joined
- Jul 22, 2018
- Messages
- 7,535
- Motherboard
- Supermicro X11SPA-T
- CPU
- Intel Xeon W-3275 28 Core
- Graphics
- 2xAMD RX 580 8GB
- OS X/macOS
- 13.x
- Bootloader
- OpenCore (UEFI)
- Mac
- Mac mini
- MacBook Pro
- Mobile Phone
- Android
- iOS
Lenovo Ideapad S540-15IWL - Intel Core i5-8265U - 8GB RAM - Intel UHD Graphics 620
Overview
This is a complete installation guide to install macOS Big Sur 11.2.3 on Lenovo Ideapad S540-15IWL. The purpose of this guide is to provide a step-by-step guide to install Big Sur using OpenCore UEFI.
Specifications
Component | Model Number |
---|---|
Tablet | Lenovo Ideapad S540-15IWL |
Processor | Intel Core i5-8265U |
RAM | 8GB 1866MHz |
Graphics | Intel UHD Graphics 620 |
SSD | Samsung 512GB NVMe SSD |
Audio | Realtek ALC257 |
Display | 15.6” FHD (1920x1080) IPS, antiglare, 300 nits, 72% NTSC |
Wireless/Bluetooth | Replaced with Broadcom BCM94352Z, NGFF, M.2, A+E Key Type |
WebCam | SunplusIT Integrated Camera |
Fingerprint | GoodixFingerPrint |
Ports | 1 x DC Power Input | 1 x HDMI | 2 x USB 3.0 | 1 x USB Type-C Gen2 | 1 x 3.5mm audio combo jack | 1 x SD Card slot |
Summary
Features | Status |
---|---|
Graphics | YES |
Built-in Audio | YES |
Brightness | YES |
Brightness HotKeys | YES |
Fingerprint | NOT SUPPORTED |
WebCam | YES |
Battery meter | YES |
Card Reader | YES |
Ethernet | YES |
WiFi/BT | YES |
AirDrop | YES |
Handoff | YES |
Apple Watch Unlock | YES |
Power Management | YES |
App Store | YES |
iMessage | YES |
FaceTime | YES |
iCloud | YES |
USB 2.0, and USB 3.0 Ports and Type-C | YES |
Not working
- Fingerprint is unsupported and it doesn't works.
- There is a known issue with Samsung PM981 series NVMe. The SSD was replaced with Samsung 970 EVO Plus.
To create Bootable USB for macOS Big Sur, follow the steps below.
1. Download macOS Big Sur from App Store.
2. Plug USB to your system.
3. Open Disk Utility and erase the USB Flash Drive with following parameters
4. Close Disk Utility.
5. Open Terminal and type:
Code:
sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/USB
6. Enter your password
7. Press (Y) to confirm and then press enter key and it will start to erase the disk and will create macOS Bootable USB.
Once the process completes, close the terminal. The USB Flash Drive will be renamed as Install macOS Big Sur
Note :
- At this point, the bootable USB can be only used to boot Mac only. In order to boot the computer using the USB, follow the steps below.
To prepare OpenCore boot loader, you need to download OpenCore.
Download the Release folder followed by the release version.
When extracting, you'll get 4 folders which has been listed below.
Directories | Description |
---|---|
Docs | Contains documentation, change log, a sample config.plist, and ACPI Samples for OpenCore. |
IA32 | Contains OpenCore EFI, 32-bit OpenCore Boot Loader. |
Utilities | Contains several utilities. |
X64 | Contains OpenCore EFI, 64-bit OpenCore Boot Loader. |
1. Copy X64 to your working directory and follow the steps below
Adding Required SSDTs
SSDTs are mandatory which allows several important fixes and is required to boot the system.
SSDT Name | Notes |
---|---|
SSDT-EC-USBX |
|
SSDT-AWAC |
|
SSDT-PLUG |
|
SSDT-PNLFCFL |
|
2. From the Docs/Acpi Samples/Binaries directory, copy the above SSDTs to EFI/OC/ACPI.
Adding Required Drivers
Drivers are mandatory which allows several important function and is required to boot the system.
Driver Name | Required | Notes |
---|---|---|
OpenRuntime.efi | YES |
|
OpenHfsPlus.efi | YES |
|
OpenCanopy.efi | Optional |
|
AudioDxe.efi | Optional |
|
3. From the EFI/OC directory, just keep the above drivers and delete rest of the drivers.
Notes :
- All the drivers can be found at: X64/EFI/OC/Drivers
Adding Required Kexts
In order to boot into the installation, you need to add the necessary kexts. Follow the steps below to place the necessary kexts.
Kext Name | Required | Notes |
---|---|---|
Lilu | YES |
|
VirtualSMC | YES |
|
WhateverGreen | YES |
|
AppleALC | YES |
|
SMCBatteryManager.kext | YES |
|
AirportBrcmFixup.kext | YES |
|
BrcmBluetoothInjector.kext | YES |
|
BrcmFirmwareData.kext | YES |
|
BrcmPatchRAM3.kext | YES |
|
USBInjectAll | YES |
|
Sinetek-rtsx.kext | YES |
|
VoodooI2C.kext | YES |
|
VoodooI2CHID.kext | YES |
|
VoodooPS2Controller.kext | YES |
|
1. Download the above kexts.
2. Extract the kexts from the RELEASE folder.
3. Copy the kexts to: /EFI/OC/Kexts
Notes:
- Do not download the project files. The pre-built binaries/downloads are available in the README.md section. Make sure you read it carefully.
- Download the latest version for better support.
- Use the kext from RELEASE folder and RELEASE.zip file.
- Do not place unnecessary kexts here. It might prevent booting the installer.
- Only use basic kexts which is required to boot off the installer. You can install the rest required kexts at the time of post-installation.
- The VirtualSMC package includes Battery and Sensors plugins (SMCBatteryManager.kext, SMCDellSensors.kext, SMCLightSensor.kext, SMCProcessor.kext, and SMCSuperIO.kext). You do not need these kexts for booting the installer.
Creating OpenCore config.plist
To create config.plist, follow the steps below.
Copy sample.plist from Docs to your working directory and rename it to config.plist. The only changes to the config.plist has been described below. The rest will remain completely untouched.
ACPI>Add
This section is for adding the DSDT and SSDT files for your system. The following changes are needed.
SSDT Name | Notes |
---|---|
SSDT-EC-USBX |
|
SSDT-AWAC |
|
SSDT-PLUG |
|
SSDT-PNLFCFL |
|
ACPI>Patch
This section is used for device renames such as USB, Graphics and Audio. The following changes are needed.
Table Signature* | Find | Replace | Comment | Enabled | Notes |
---|---|---|---|---|---|
DSDT | 47465830 | 49475055 | Rename GFX0 to IGPU (Graphics) | NO |
|
DSDT | 48454349 | 494D4549 | Rename HECI to IMEI (PAVP)* | YES |
|
DSDT | 4D45495F | 494D4549 | Rename MEI to IMEI (PAVP)* | YES |
|
DSDT | 48444153 | 48444546 | Rename HDAS to HDEF (Audio) | YES |
|
Booter>Quirks
Notes:
- *Requires both renames for full function.
- GFX0 to IGPU rename must be enabled after ACPI patching.
Booter>Quirks
This section allows to apply certain Booter quirks. The following changes are needed.
Quirks | Value | Notes |
---|---|---|
AvoidRunTimeDefrag | YES |
|
EnableSafeModeSlide | YES |
|
EnableWriteUnprotector | YES |
|
ProvideCustomSlide | YES |
|
SetupVirtualMap | YES |
|
SyncRuntimePermissions | YES |
|
Note:
- The values which have been not discussed above, that will remain disabled.
DeviceProperties
This section is used for adding device properties. This includes PCI Devices information such as Graphics, Audio, WiFi, Ethernet and other controllers. The following changes are needed.
Devices | Key | Value | Type | Notes |
---|---|---|---|---|
PciRoot(0x0)/Pci(0x2,0x0) | AAPL,ig-platform-id | 0900A53E | DATA |
|
device-id | A53E0000 | DATA |
| |
framebuffer-con1-busid | 01000000 | DATA | ||
framebuffer-con1-enable | 01000000 | DATA |
| |
framebuffer-con1-type | 00080000 | DATA |
| |
framebuffer-con2-enable | 01000000 | DATA | ||
framebuffer-con2-index | FFFFFFFF | DATA | ||
framebuffer-con1-enable | 1 | NUMBER |
| |
framebuffer-fbmem | 00009000 | DATA |
| |
framebuffer-patch1-enable | 1 | NUMBER |
| |
framebuffer-stolenmem | 00003001 | DATA |
| |
hda-gfx | onboard-1 | STRING |
| |
PciRoot(0)/Pci(0x1f,3) | hda-gfx | onboard-1 | STRING |
|
layout-id | 30 | NUMBER |
| |
no-controller-patch | 1 | NUMBER |
Kernel>Add
This section is for adding and blocking kexts. This also defines the order of the kexts and the architecture of each kext. The following changes are needed.
Arch | BundlePath* | ExecutablePath | PlistPath | Enabled | Notes |
---|---|---|---|---|---|
Any | Lilu.kext** | Contents/MacOS/Lilu | Contents/Info.plist | YES |
|
Any | VirtualSMC.kext** | Contents/MacOS/VirtualSMC | Contents/Info.plist | YES |
|
Any | WhateverGreen.kext** | Contents/MacOS/WhateverGreen | Contents/Info.plist | YES |
|
Any | AppleALC.kext** | Contents/MacOS/AppleALC | Contents/Info.plist | YES |
|
Any | AppleBacklightFixup.kext** | Contents/MacOS/AppleBacklightFixup | Contents/Info.plist | NO |
|
Any | SMCBatteryManager.kext | Contents/MacOS/SMCBatteryManager | Contents/Info.plist | NO | |
Any | AirportBrcmFixup.kext | Contents/MacOS/AirportBrcmFixup | Contents/Info.plist | YES | |
Any | AirportBrcmFixup.kext/Contents/PlugIns/AirPortBrcmNIC_Injector.kext | Contents/Info.plist | YES | ||
Any | BrcmBluetoothInjector.kext | Contents/Info.plist | YES | ||
Any | BrcmFirmwareData.kext | Contents/MacOS/BrcmFirmwareData | Contents/Info.plist | YES | |
Any | BrcmPatchRAM3.kext | Contents/MacOS/BrcmPatchRAM3 | Contents/Info.plist | YES | |
Any | USBInjectAll.kext** | Contents/MacOS/USBInjectAll | Contents/Info.plist | YES |
|
Any | Sinetek-rtsx.kext** | Contents/MacOS/Sinetek-rtsx | Contents/Info.plist | NO |
|
Any | VoodooI2C.kext/Contents/PlugIns/VoodooGPIO.kext | Contents/MacOS/VoodooGPIO | Contents/Info.plist | NO | |
Any | VoodooI2C.kext/Contents/PlugIns/VoodooI2CServices.kext | Contents/MacOS/VoodooI2CServices | Contents/Info.plist | NO | |
Any | VoodooI2C.kext | Contents/MacOS/VoodooI2C | Contents/Info.plist | NO | |
Any | VoodooI2C.kext/Contents/PlugIns/VoodooInput.kext | Contents/MacOS/VoodooInput | Contents/Info.plist | NO | |
Any | VoodooI2CHID.kext | Contents/MacOS/VoodooI2CHID | Contents/Info.plist | NO | |
Any | VoodooPS2Controller.kext | Contents/MacOS/VoodooPS2Controller | Contents/Info.plist | YES | |
Any | VoodooPS2Controller.kext/Contents/PlugIns/VoodooInput.kext | Contents/MacOS/VoodooInput | Contents/Info.plist | YES | Delete this entry after postinstallation. |
Any | VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Keyboard.kext | Contents/MacOS/VoodooPS2Keyboard | Contents/Info.plist | YES | |
Any | VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Mouse.kext | Contents/MacOS/VoodooPS2Mouse | Contents/Info.plist | YES | |
Any | VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Trackpad.kext | Contents/MacOS/VoodooPS2Trackpad | Contents/Info.plist | YES |
Notes:
- All the plugins must load after loading it's dependencies otherwise the kext will no longer function even when loaded in OS X/macOS.
- The mandatory kexts must be loaded in sorted order as shown in the above table.
- *Indicates BundlePath i.e. Name of the Kext
- **Indicates mandatory kexts.
- All the added kexts must exists in the EFI/OC/Kexts directory.
- The options which have been not discussed above, that will remain untouched.
Kernel>Scheme
This section allows settings related to Kernel. The following changes are needed.
Options | Value | Notes |
---|---|---|
FuzzyMatch | YES |
|
KernelArch | Auto |
|
KernelCache | Auto |
|
Kernel>Quirks
This section allows to apply certain Kernel quirks. It provides settings related to Kernel and several other options related to BIOS/UEFI and USB ports. The following changes are needed.
Quirks | Value | Notes |
---|---|---|
AppleCpuPmCfgLock | YES |
|
AppleXcpmCfgLock | YES |
|
CustomBIOSGuid | YES |
|
DisableIoMapper | YES |
|
PanicKNoextDump | YES |
|
PowerTimeoutKernelPanic | YES |
|
XhciPortLimit | YES |
|
DisableLinkeditJettison | YES |
|
Note:
- The values which have been not discussed above, that will remain disabled.
NVRAM>Add
This section is for adding NVRAM properties, boot args and configuring SIP. The following changes are needed.
UUID | Key | Value | Type | Notes |
---|---|---|---|---|
7C436110-AB2A-4BBB-A880-FE41995C9F82 | boot-args |
| STRING |
|
csr-active-config |
| DATA |
| |
prev-lang:kbd | en-US:0 | STRING |
|
PlatformInfo
This section allows to set SMBIOS. It's an important section and has various impact on your system. The following changes are needed.
Suggested SMBIOS
SMBIOS | CPU |
---|---|
MacBook Pro14,1 | Intel Skylake for i3, i5 and i7 |
Using OpenCore Configurator, generate a SMBIOS under PlatformInfo section and configure the options as outlined below.
Platform Info>DatHub - Generic - PlatformNVRAM
DataHub
Option | Value | Notes |
---|---|---|
Add this section in config.plist | YES | Adds DataHub field |
Generic
Options | Value | Notes |
---|---|---|
Add this section in config.plist | YES | Adds Generic field |
from SMBIOS | YES | |
ProcessorType | 0 |
|
SystemMemoryStatus | Auto |
|
SpoofVendor | YES | Sets SMBIOS vendor fields to Acidanthera |
PlatformNVRAM
Option | Value | Note |
---|---|---|
Add this section in config.plist | YES | Adds PlatformNVRAM field |
SMBIOS
Option | Value | Note |
---|---|---|
Add this section in config.plist | YES | Add SMBIOS field. |
UEFI
This section is for adding UEFI drivers and related settings. This section will remain completely untouched
Note:
The values which have been not discussed above, that will remain as default values.
Installing OpenCore EFI
Now, as the EFI is completely prepared, it's time for the installation of OpenCore on the Bootable USB Flash Drive.
1. Mount the EFI partition of your Bootable USB Flash Drive.
2. Copy the EFI from your working directory to EFI partition of your Bootable USB Flash Drive.
Now you’ve successfully installed OpenCore, the required drivers, kexts and config.plist and the USB Flash drive is ready to boot off your computer.
UEFI Settings
The next step is to configure the BIOS. To access your BIOS/UEFI, press and hold Delete key on your Keyboard and then set the following.
Settings | Value |
---|---|
SATA Emulation | AHCI |
Network Boot | Disabled |
Virtualization Technology | Enabled |
Legacy Support | Enabled |
Secure Boot | Disabled |
Fast Boot | Disabled |
Once the UEFI is setup, Save & Exit Setup
Installation
The installation step is simple.
Plug your Bootable USB Flash Drive to the target system.
Turn on your system.
3. Boot to Boot Menu using F12
4. Select your USB Flash Drive with the UEFI prefix and press enter to boot.
5. When at OpenCore menu, select ResetNVRAM and boot from it.
6. Repeat step no. 5.
7. When at OpenCore menu, boot using Install macOS Big Sur. It will take couple of minutes to boot into installer screen. Once you reach the installer, select your preferred language and continue.
8. On top, click on Utilities and then select Disk Utility.
9. When at Disk Utility, click on View and select Show all Devices.
10. Select your target SSD. Do not select the partition
11. Click on Erase button and erase the drive with following parameters.
Name | Macintosh HD |
Format | APFS |
Scheme | GUID Partition Map |
12. Close Disk Utility.
13. Select Install macOS and continue with the options.
14. Select Macintosh HD and click on Install.
This will take couple of minutes and will restart at "Less than a minute is remaining". Upon completion, the system will automatically restart. The System will restart to complete the installation. Here it ends the first phase of the installation.
After installation, boot it using USB, but this time select Macintosh HD.
The first boot maybe slower as the caches are not build yet. Once the caches are built, it will boot normally.
When you're at the welcome screen, continue with the basics options such as Keyboard setup, Network, Computer Account and Privacy settings.
Now the installation is complete, but the drive isn't bootable yet. You need to complete the Post Installation
Post Installation
Now, configuring the Post Installation. There is not much to do for the postinstallation except configuring WiFi/BT and the boot from system drive. Everything rest is fully functional.
DSDT and SSDT Patching
For the DSDT and SSDT patching, i prefer full patched set of DSDT and SSDT. For more information on DSDT and SSDT patching, checkout the guide linked below
https://www.elitemacx86.com/threads/guide-how-to-patch-laptop-dsdt-and-ssdts.178/
Using the guides, patch all of your DSDT and SSDT.
DSDT
- Layout id = 11 (0x11)
- Lenovo Ideapad-100
- Rename GFX0 to IGPU
- Fix _WAK Arg0 v2
- HPET Fix
- SMBUS Fix
- IRQ Fix
- RTC Fix
- OS Check Fix (Windows 10)
- Fix Mutex with non-zero SyncLevel
- USB3_PRW 0x6D Skylake (instant wake)
- GPIO Controller Enable [SKL+]
Code:
into method label _REG parent_hid PNP0C09 insert
begin
//added to turn nvidia/radeon off\n
If (LAnd(LEqual(Arg0,3),LEqual(Arg1,1)))\n
{\n
External(\_SB.PCI0.RP05.PXSX._OFF, MethodObj)\n
\_SB.PCI0.RP05.PXSX._OFF()\n
}\n
end;
SSDT
- Rename GFX0 to IGPU
- Cleanup/Fix Errors (SSDT)
- Remove _PSS placeholders
Find the following lines and delete them.
Code:
External (_SB_.PR00._PPC, IntObj)
External (_SB_.PR00._PSS, BuffObj)
External (_SB_.PR01._PPC, IntObj)
Patch for Disabling GPU in SSDT-9-CB-01
Code:
into method label _INI parent_label \_SB.PCI0.RP05.PXSX insert
begin
//added to turn nvidia/radeon off\n
External(\_SB.PCI0.RP05.PXSX._OFF, MethodObj)\n
_OFF()\n
end;
Place all the patches DSDT and SSDTs to EFI/OC/ACPI
1. Open your config.plist
2. Add all the DSDT and SSDTs.
Note:
- The DSDT and all the OEM SSDTs must be added in a sorted order.
- The SSDT (SSDT-PNLFCFL.aml) should be added at last.
The kexts for the Brightness and Trackpad already exists in the required directory and the ACPI has been patched accordingly. You just need to enable the disabled patch and kexts in your config.plist.
Boot from System Drive
This is one of the most important part as it allows to boot it using the system drive without any need of installation USB.
1. Mount the EFI Partition of your System drive and the Bootable USB. Both the EFI partition of your Hard Drive and USB Flash Drive will be mounted on your Desktop.
2. Assuming that you’ve mounted your EFI Partition, continue the following.
3. Open your EFI Partition of your Hard Drive.
4. Select EFI folder and then move to Trash.
5. Open your EFI Partition of your macOS Bootable USB.
6. Copy the EFI folder from your macOS Bootable USB to your EFI Partition of your Hard Drive.
By using this method, you’ll be easily able to install OpenCore Boot loader on your System Drive.
Restart your Laptop
After completing the post installation, restart your laptop.
Miscellaneous
App Store, iMessage, FaceTime, and iCloud
1. Mount your EFI partition
2. Open your config.plist
3. Navigate to Platform Info Tab
4. Generate a new SMBIOS for "MacBook Pro14,1"
5. Save your config.plist
6. Restart your Tablet
7. Login into App Store, iMessage, FaceTime and iCloud.
Conclusion
You should have all the functions as stated above.
Credits:
RehabMan
Last edited: