LattePanda Alpha 10.15.4 m3-8100y Opencore setup

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.

  1. Create your boot USB you will need to download the following files:
    OpenCorePkg
    AppleSupportPkg
    ProperTree

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.

Windows install:

  • 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
  1. 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)
    -> Kext
    ->OpenCore.efi
    -> Tools

  • Download the following Drivers:
    ApfsDriverLoader.efi
    HfsPlus.efi
    OpenRuntime.efi
    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
    OpenCanopy.efi

  • 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:
    -> AppleALC.kext
    -> FakePCIID_Intel_HDMI_Audio.kext
    -> FakePCIID.kext
    -> Lilu.kext
    ->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)
    ->RealtekRTL8111.kext
    ->SMCProcessor.kext
    ->SMCSuperIO.kext
    ->USBInjectAll.kext
    ->VirtualSMC.kext
    ->WhateverGreen.kext
    NOTE I DO NOT USE ANY WIFI OR BLUETOOTH KEXTS BECAUSE I HAVE APPLE WIFI CARD BCM94360CS2 and ADAPTER

  • Compile your SSDT with iasl and put into your ACPI folder:
    SSDT-PLUG
    SSDT-GPI0

  1. 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
  1. 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”

  2. Install MacOS

  • 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.
  1. 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 :frowning:)
  • setup file vault if you want (I haven’t done this either :frowning:)
  • 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.

  1. Download and install Soundflower Installer and SoundflowerBed

  2. Set your sound output to Soundflower (64ch)

  3. 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 :slight_smile: ) 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

Notes:

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.

1 Like

@Kasek - great job on writing this up. Looks kind of simple now, but this took a huge amount of time, learning and experimentation to get up and running. Just a couple of notes, from my experience.

As Kasak notes we’ve both been trying some different things to resolve the final few things. So, my setup is slightly different. I don’t use AudioDxe.efi, FakePCIID_Intel_HDMI_Audio.kext, FakePCIID.kext, or NoTouchID.kext.

Without the previous items, I’ve tried some different SMBIOS settings. I found that I could get HDMI audio to work with MacbookAir10,1 but it didn’t with MacbookPro14,3. The reason we have been trying MacbookPro14,3 is that it is one of the “recommended” options in the opencore documentation. I believe, but this is still a bit trial and error, that MacbookAir8,1 is the best option as it has the closest CPU/GPU to the LPA.

When I said that HDMI audio was working, this was on Catalina 15.3. When upgrading too 15.4 there is an issue with bringing the monitor back from sleep that requires a whatevergreen flag. And with this upgrade, and maybe the flag, HDMI audio doesn’t work anymore - or haven’t found yet how to get it to work. I think, given that HDMI audio worked previously without additional kexts, that it is possible with maybe a change in Framebuffer or something.

Anyway, we both hope that this encourages people with the 8100y 864s to try opencore Hackintosh. Hopefully more people experimenting will get the final few things wrapped up :slight_smile: That said, things currently seem stable with just a few minor items not working yet…

One more thing. This is the opencore laptop guide. It’s really pretty good. And in terms of opencore Hackintosh, the LPA is a laptop.

thanks for linking that forgot. i will edit the first post to explain better
the no touch id kext is only if using the macbookpro product as you need to disable it for log in or it will hang up
the audiodxe.efi is only there for the boot chime, if you want to try and get it working you need it ive left it so i have it in messing around hoping ot get it working.

Worth testing the Touch ID kext. I had it for a bit as well, but removed and didn’t find any difference - for MacBook Pro SMBIOS or MacBook Air SMBIOS (which also has a Touch ID).

oh didnt realize ill have to try that and see what happens

Nice writeup!! I will take it into consideration when I try opencore on my M7-7xxx LPA (although right now is working almost perfect with Clover, so "don’t fix it if it aint’ broken!)

Only comment, FWIW, as far as I know, HDMI audio has NO MacOS control anyway: all sound control is actually done on the monitor which you have plugged in to HDMI, so I would say if you get audio, its working perfectly already… :wink:

Cheers!

FWIW, I have my M3-7xxx LPA as a MacBook 10,1, and occasionally (haven’t noticed if is with sleep, as I have mine set up to just show photos as screen saver, but am not sure if powering off the tv will cause sleep…) my audio output jumps to “headphones” instead of “HDMI”, so it obviously seems that audio has broken when that happens, until I realise and put it back to “HDMI”, and works immediately again…

cheers!

PD: when I do power of the tv, leaving the LPA on, on powering tv on again now no longer have video, I have to share screen from another computer, power off the LPA (or just hold 15secs the power button :man_shrugging:), and power on again, whereby video is restored… with opencore is this fixed? at the moment it is one of the only things that does not work as I wish with clover…

I’ve been told this on the hackintosh discord channel as well. However when I had my clover install I could adjust it, I was also on 10.15.3. I only upgraded because of the positives I’ve heard about opencore over clover. If it doesn’t work I’ll deal I just thought if there was a way it would be nice. I would definetly like to get the chime working but that might be more an opencore issue then my setup.

Edit: I will check the turning off monitor in a bit, online class don’t want to miss out if it requires restart or something

with how mine is et up right now, i just turned off the monitor and back on and my lockscreen was there no problem

I never had HDMI volume control no my LPA but it did come up as an option in system preferences sound output. This was on 15.3, but curiously, it would not come up initially after boot, but if I put the monitor to sleep then back awake (which I never had a problem with) the HMDI audio option would be available. This worked for me on 10,1 which I was using at the time but if I used 14,3 it wouldn’t work. When I upgraded to 15.4 (probably shouldn’t have) there was a monitor sleep issue (documented in the opencore manual and also in the new version of whatevergreen) with bring monitor back from sleep that requires a new flag “igfxonln=1”. This is a new flag in the latest version of whatevergreen to "force-online IGPU property force online status for all displays". But with this change I don’t get HDMI audio. But I haven’t played around too much to see if can solve.

FWIW - Now I think that 8,1 is the best match for the LPA 8100y (and 10,1 for lPA M3-7xxx LPA). I’ve tried a bunch of AAPL,ig-platform-id settings, but haven’t really noticed a difference. I’m also a bit puzzled about the -wegnoegpu boot flag (to disable external GPU (or add disable-external-gpu property to IGPU). In any case, have been kind of trying different settings, but not really noticing a difference and haven’t managed to get HDMI audio to return/work…

I have followed the posts to crate a boot EFI and alter with all the proper efi/kexts and I think I have followed it properly. I can see the USB stick from the boot menu of the LP (newer version 8100y) and I choose it, the stick activty light blink, then nothing but blank screen… however if i hit any key on the kbd, the stick blinks again, like it is re-loading something. What might cause it not to have any video or any display right from the start? oh BTW what are your BIOS settings for the 8100y?

Can someone checkout my config.plist file to see if there is anything obvious?
Where would I upload it

thanks

Worth running it through: OC Sanity Checker and see what it says.

also if you add -v i think it is itll take you through the verbose boot so you can see whats going on. I forgot this as i removed it since mine is running and i think it looks nicer with just the apple logo let me know if that helps at all and i can take a look at your config later tonight and see if i notice anything

would that be adding the -v to the boot args in the config.plist ?

I believe the 8100y is an amber-lake model, I don’t see that in the OS Sanity Checker, what would be the closest match i should use?

thx

Kasek,

Where can I send you my config.plist?

I have run through OC Sanity Checker and corrected some things, but still just black screen after picking the USB Stick from Bios Boot.

kasek#7921 on discord you can send to me there, and yes the -v would go on the boot args. send it over and depending when i get it ill take a look tonight or tomorrow

I put in a friend request. Accept and I can send the plist tomorrow.