This is my first attempt at a guide for anything, hopefully this will be beneficial for the community. I have been working with @memoriafuturi for the past while trying to get an opencore build perfected for the Panda. We have got it running smoothly however, we can’t get the HDMI audio working perfectly yet. We hope that some of you can help us to get everything nailed down with the perfect opencore build.
With this setup i am running Catalina 10.15.4 and have opencore updated to the current 0.5.7 build. All features are working such as facetime, iMessage, icloud, ect. The only feature I have yet to test out is filevault as I just haven’t gotten around to it yet. I also haven’t done my USB mapping as I have been putting it off, mainly due to the fact that I don’t feel like doing it.
Before starting I want to thank @memoriafuturi for the help getting this thing booted and running, as well as the community on discord’s Hackintosh channel. I also have taken references for this guide from the vanilla opencore guides, as well as @Seishun’s guide and @BluDread for helping me get the sound on clover install I was able to use the same technique for sound on Opencore.
PLEASE NOTE, I am not responsible for any damage that could occur with your LattePanda, I am not responsible if anything doesn’t work out for you. This is how mine is setup and running with no KNOWN issues. Please read the entire guide top to bottom and make sure you know what you are doing before proceeding with this.
- Create your boot USB you will need to download the following files:
NOTE: YOU MUST REMOVE CLOVER COMPLETELY FROM YOUR SYSTEM IF YOU ARE SWITCHING OVER. YOU MUST FIRST RUN NVRAM FROM THE BOOT PICKER FIRST BEFORE INSTALL IF COMING OVER FROM CLOVER.
- Grab a minimum 4gb USB drive and GibMacOS
- Run GibMacOS.bat as an Admin
- Select option R toggle Recovery-Only
- Select your desired MacOs version (I am currently running 10.15.4 as of writing so pick this)(make sure its the full release and not just a security update)
- When complete Open makeinstall.bat as an Admin
- Pick your USB drive number and O (opencore) for example 1O or 2O
- Your drive will then be formatted and you will need to copy the path to your MacOs recovery download (downloaded in previous step to gibmacos-master\macos\downloads\publicrelease\NAME OF MACOS RECOVERY
- Your USB should now be called BOOT
- EFI folder setup:
Open the previously downloaded OpenCorePkg folder and copy the EFI folder to your USB drive
You should have the following files ONLY in your EFI folder:
Boot -> BOOTx64.efi
OC -> ACPI
-> Drivers (OpenCanopy.efi is optional for the GUI but will be covered later for adding it, if you want the GUI keep this file)
Download the following Drivers:
AudioDxe.efi Only needed if wanting the boot chime, currently not working for me but this config is set up to try and have it working
Put all the above files into your driver folder
Download your kext files from here: Kext Files
Download the following and put into the kext folder:
->NoTouchID.kext (needed to not have log in hang up, @memoriafuturi said he had no difference with or without i have not personally tested this)
NOTE I DO NOT USE ANY WIFI OR BLUETOOTH KEXTS BECAUSE I HAVE APPLE WIFI CARD BCM94360CS2 and ADAPTER
- Editing Config.plist
- Grab the sample.plist file from opencore release -> docs folder
- open sample.plist in proper tree
- remove the 5 warnings at the top
- chose file -> OC snapshot and chose your OC file this will load your kext and drivers right onto your config for you.
- Make sure to remove any sample SSDT that you dont have in your ACPI folder
- Under patch you can remove all of patch 1 and we will edit patch 0 to have the following
-> Comment - change H_EC to EC
-> count - 0
-> enabled - true
-> find - 485F4543
-> replace - 45435F5F
- leave the quirks as they are
- under the next section of quirks change ProtectMemoryRegions to ProtectCsmRegion
- Remove ProtectUefiServices
- Change RebuildAppleMemoryMap to true
- remove setupvirtualmap and signalappleOS
- Change SyncRuntimePermissions to true
- under PciRoot(0x0)/Pci(0x2,0x0) change the value to 0000C087
- add a new section under Add looking like:
KEY = PciRoot(0x0)/Pci(0x1f,0x3) TYPE = Dictionary
under the above add the following
KEY= alc-layout-id TYPE= Number VALUE = 7
KEY= hda-gfx TYPE= string VALUE = onboard-1
KEY= AAPL,slot-name TYPE = string VALUE = internal
- under kernel make sure it loaded all of your kext files, it will load them automatically in the appropriate order
- under kernel quirks change the following:
-> AppleCpuPmCfgLock - true
-> AppleXcpmCfgLock - true
-> DisableIoMapper - True
-> PanicNoKextDump - true
-> PowerTimeoutKernelPanic - true
->XhciPortLimit - true
- Under Misc -> we want to change the following:
-> remove ConsoleAttributes
-> change pickerattributes to 1
-> change pickermode to external
- under debug change:
-> Appledebug - true
-> DisableWatchDog - true
-> displaylevel - 2147483714
- under security make the following changes:
-> AllowNVRAMReset - true
-> AllowSetDefault - true
-> vault - optional
-> Scanpolicy - 0
- Remove anythign under tools section
- under NVRAM make the following changes:
-> systemaudiovolume - 70
-> boot-args - debug=0x100 keepsyms=1 igfxonln=1
-> prev-lang:kbd - en-US:0
- writeflash - true
- under generic I personally use MacBookPro14,3 for my systemProductName. @memoriafuturi has also gotten MacBookAir8,1 and MacBookAir10,1 working. This is written using the MacBookPro14,3 that I am using.
- You will need to run GenSMBIOS for the PlatformInfo -> Generic section
chose option 1 to get your serial and option 3 for selecting out SMBIOS.
Type: goes to SystemProductName
Serial: goes to SystemSerialNumber
Board Serial: goes to MLB
SmUUID: goes tyo SystemUUID
- Rom change to 11223300 0000
- Check Your Serial Number you want to see it tell you invalid serial number, you do not want a serial number that is in use!
- Under UEFI make sure all of your drivers loaded in, remove any that you dont have
- under audio make the following changes:
-> Audiosupport - true
-> audiodevice - PciRoot(0x0)/Pci(0x1f,0x3)
-> audioout- 1
-> minimum volume - 70
-> playchime - true
-> volumeamplifier - 143
- under Input remove ASUS from PointerSupportMode as we don’t have that
- under the very last quirks make the following changes:
-> RequestBootVarFallback - true
Following the above if you kept OpenCanopy.efi you can now have the GUI. We have to download: Resources Folder
The Resources Folder goes in EFI -> OC
Technically now you should also have the MacOS bootchime working, however it doesn’t work for me and the official OpenCore guide says “GPU audio out is a hit or miss”
- spam delete key on boot up and make sure you select your USB to boot
- IF YOU HAD CLOVER PREVIOUSLY YOU WILL NEED TO SELECT CLEAN NVRAM FIRST BEFORE PROCEEDING.
- Format your hdd/sdd and choose a name for the drive, set format as APFS and scheme as GUID partition map
- install and chose your preferences, when it reboots make sure to hit the delete key and boot your usb again and you should be presented with MacOS.
- Finishing up install
- from here copy your usb EFI folder to your hdd/sdd efi folder so you can boot without your usb. (keep this usb for test booting if you alter your config)
- configure your USB ports with USBMapper (I haven’t done this yet )
- setup file vault if you want (I haven’t done this either )
- if you use windows as well and have an apple wifi card, you will want to disable the onboard wifi and install bootcamp and you can get your apple card working for bluetooth and wifi on windows. Check youtube for this or pm me and i can try and help out.
- if you are having sleep/hibernate problems make sure you do the usb mapping and then in terminal type the following:
-> sudo pmset hibernatemode 0
-> sudo pmset standby 0
-> sudo pmset autopoweroff 0
That should be everything this is my exact setup and it boots and runs great so hopefully yours will be the same.
Edit April 28, 2020: I have managed to get hdmi audio adjustable through macOS. I did have to install some software in order to. I am happy with this solution for my build if you want it here you go, if you want a “proper” way through the config please let us all knw if you find it.
Set your sound output to Soundflower (64ch)
In Soundflowerbed (on status bar) set 64 ch to hdmi for your output
Side note I downloaded an app called Ubersicht with it you can install widgets on your homescreen. personally I am using calendar, timemachine and matrix (cool wall paper effect ) incase anyone wants to customize their experience a little bit.
EDIT MAY 5, 2020: Open core 0.5.8 was released please see below for how to update from 0.5.7. PLEASE USE A BOOTABLE USB DRIVE FIRST TO TEST AND MAKE SURE YOU HAVE DONE THIS PROPERLY. IT IS WORKING FOR ME AND I DONT WANT ANYONE TO HAVE ISSUES AFTER THE UPDATE.
- remove ApfsDriverLoader.efi from your drivers folder
- open proper tree and do OC snapshot and point it to your OC folder, this will remove the above driver from your config.
- Under booter quirks change ProtectCsmRegions to ProtectMemoryRegions, it should still be false
- add a new sibling under booter quirks called ProtectUefiServices change to boolean and make it false
under the next set of quirks (after all your kext files) under XhciPortLimit add a new sibling, DisableRtcChecksum make it boolean and make it false
- under security add BootProtect as a string and value will be None
- change writeflash to true
With that your config should be updated, dont forget to check your kext files for updates i use kext updater also make sure you update the bootx64.efi in the boot folder and the opencore.efi in the OC folder.
AGAIN PLEASE USE A BOOTABLE USB TO TEST THIS FIRST!!!
When you are presented at the drive selection if you press Ctrl + Enter it should make that drive your auto boot on opencanopy. This wasnt working for me on 0.5.7 but seems it was fixed in 0.5.8
I mentioned above the boot chime I can’t get to work. If anyone is able to get the boot chime working please post here and let us all know. If anyone sees unnecessary settings or anything in the config please let us know as well, the cleaner the config I would imagine the faster the boot and better running experience.
Also if anyone can figure out how to make Opencore auto boot I would be forever grateful. currently even after changing in bios it make windows default. When I was running clover it actually would boot clover as default. Not sure if it’s an opencore issue or if something changed somewhere else.
Hope this guide has helped I will try and update it as new Opencore releases come out if they will still work with our setups.