Skip to content

Commit

Permalink
Kernel Panic Steps
Browse files Browse the repository at this point in the history
  • Loading branch information
stevealexrs authored Dec 2, 2021
1 parent 95db7f0 commit 0be836a
Showing 1 changed file with 47 additions and 4 deletions.
51 changes: 47 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# OpenCore-Legion-5i-17IMH05H

This repository contains EFI files for OpenCore 0.6.7 for Legion-5i-17IMH05H with macOS Big Sur 11.2.3
This repository contains EFI files for OpenCore 0.7.5 for Legion-5i-17IMH05H with macOS Monterey 12.0.1

This is the main guide I follow: [OpenCore Dortania](https://dortania.github.io/OpenCore-Install-Guide/)

Expand All @@ -17,8 +17,9 @@ Note: This repo contains extra properties files added by Mac. (.DS_STORE, .\__fi
|Display| 17.3" FHD 1920x1080 |
|Wifi| Intel Wireless AX201 |
|Audio Codec| Realtek ALC257 |
|Memory| 32GB + 32GB |
|Storage| 1TB SSD + 2TB M.2 NVMe SSD |
|Ethernet| Realtek PCIe GBe Family Controller |
|Memory| Crucial DDR4-3200 SODIMM (2x32GB) |
|Storage| SkHynix 1TB SSD + Kingston 2TB M.2 NVMe SSD |

## Status

Expand All @@ -36,6 +37,48 @@ Note: This repo contains extra properties files added by Mac. (.DS_STORE, .\__fi
| Touchpad | Not working |

## Troubleshooting
Most things work fine after following the guide so I will only list difficulties or irregularities I faced that are not found in Dortania guide.
Make sure you have followed all recommended steps in Dortania guide before continuing.
### Kernel Panic
You need 3 additional things to fix this (in order):
1. Add CpuTscSync.kext
2. Set DevirtualiseMmio = False
3. Disable unsupported SkHynix NVMe

Adding CpuTscSync.kext and setting DevirtualiseMmio = false in config.plist are quite straightforward. Disabling NVMe takes some time. You can first verify whether the NVMe SSD is actually causing issue by adding *nvme=-1* to (probably) disable all ssd in boot-args. If the kernel panic is gone, then the culprit is the NVMe SSD. However, this will stop other NVMe SSD too so you need to add an ssdt.

Go to Device Manager on Windows and click *Storage Controllers*. There will be multiple *Standard NVM Express Controller* under it. The controller that stores Window is the one with driver that cannot be disabled. Then, go to *Details* and search for *BIOS device name*. You should see this:

![NVMe Controller BIOS device name](https://user-images.githubusercontent.com/59494379/144441672-da749fb9-b30c-48cc-89d1-9fce33e05cf1.png)

You can get the ssdt from [SSDT-DNVMe]https://github.com/programbw/y9000x/blob/master/EFI/CLOVER/ACPI/patched/SSDT-DNVMe.aml or make one yourself. You can decompile the aml to dsl and change the relevant value to the value you got from *BIOS device name*. It should be quite obvious. Here is an example of the code:

`
DefinitionBlock ("", "SSDT", 2, "hack", "NVMe-Pcc", 0x00000000)
{
External (_SB_.PCI0.RP09.PXSX, DeviceObj) // change this if doesn't match

Method (_SB.PCI0.RP09.PXSX._DSM, 4, NotSerialized) // change this if doesn't match
{
If ((!Arg2 || !_OSI ("Darwin")))
{
Return (Buffer (One)
{
0x03
})
}

Return (Package (0x02)
{
"class-code",
Buffer (0x04)
{
0xFF, 0x08, 0x01, 0x00
}
})
}
}
`
Don't forget to add the ssdt to the EFI and snapshot it with ProperTree.



0 comments on commit 0be836a

Please sign in to comment.