Lattepanda Alpha m3-8100y Catalina Baseline

There are various threads like this one that are sharing files and configs, and quite frankly, it has become copy pasta, and a ton of legacy configurations from past MacOS versions (10.13/10.14) make things extremely complicated and hard to understand exactly what is happening.

I recently started from scratch and had a barebones clean install of MacOS Catalina without issues. I’ll list out the steps here so that this can be a starting off point for more specific issues like WIFI/BT, audio, HDMI, etc. I will attempt to explain as much as possible how I came to the specifics of the configuration so that if you are a newbie, you can follow logically how to get a bootable install on the new version of the LattePanda Alpha, OR if you are experienced, then you can message me with updates and changes so that the final configuration can be reproducible by anyone without sending arbitrary zip files here and there (which btw is just plain risky). So yeah, no more of this “don’t worry, trust me” process. Here are the steps to make a clean working Catalina install:

Latest Edit (02/19/2020)

  1. Download Install MacOS Catalina from the AppStore (you will need an existing Mac or Hackintosh)
  2. Once complete, use Disk Utility to erase a flash/thumb drive of at least 32gb (maybe 16gb?). Format it as MacOS Journaled / GUID Partition Map
  3. Open up the Terminal app and enter sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/usb/ --nointeraction; this will prompt you for your password. Enter it and let it run (10-15mins)
  4. Now your thumbdrive as the install media in it, but has no bootable partition. Get the latest clover pkg – and double click on the installer.
  5. Just like in Don’s original video, make sure you Change Install Location to your thumbdrive as the install location; and click Customize.
  6. In UEFI Driver > Recommended Drivers keep the defaults (I tried slimming it down, but then the boot media either panicked or didn’t boot) and add:
  • FSInject
  • DataHubDxe (might not be necessary, but the description says it might be mandatory so I added it in)
  1. Install

  2. Download the Clover Configurator (or google search it, I believe mackie100 is the source) and launch it.

  3. Your EFI drive should be mounted already, but if it is not, click Mount EFI on the side bar and look for your thumbdrive (should be named Install MacOS Catalina) and click mount partition.

  4. Load the config.plist from your EFI drive by clicking the import configuration button (should be in the bottom left corner with and arrow going into the file),

  5. Head to install drivers and check VirtualSmc on the UEFI section (bottom). (Notice that you should already have everything selected from the clover.pkg install already installed (apfsdriverloader, aptiomemoryfix, fsinject, etc…).

  6. On the BIOS section, I’m not 100% sure here (you can experiement) but I tried to mirror the UEFI part and included XhciDxe. (let me know if you can slim these down without issue).

  7. Head to Kexts installer, for OS Version, select Other and select to install:

  • Lilu
  • VirtualSMC (and select to install everything that pops up later)
  • WhateverGreen
  • AppleALC
  • CPUFriend [1]
  • USBInjectAll
  • IntelMausi
  • RealtekRTL8111 [2]

These were selected based on trial and error and also knowing that the first 3 are critical for a bootable drive.

  • [1] CPUFriend is not necessary. But the default min CPU frequency is 1.2/1.3 ghz while the listed min frequency is 1.1 ghz for the M3-8100y. Also, according to @syaburu after sleep/wake-up it seems that the min frequency jumps to 1.6 ghz. Using the link provided by @syaburu you can generate a CPUFriendDataProvider.kext that you copy/paste into your EFI/Clover/kexts/Other folder using Clover to normalize the min CPU frequency that, in theory should be more in line and normal.

    • For more granular control over other CPU options, you can use this script instead.
  • [2] Based on @syaburu’s comments below it seems that this is required for LAN. Since I’m exclusively using wireless, I didn’t install this one. (Update 02/19/2020: confirmed that if you want to use LAN/Ethernet, please include this kext)

  1. Now we’re going to go to the configuration section by section:

Acpi

  • Uncheck everything
  • In patches DSDT, remove all the entries that have disabled checked, I had these as my final patches
Comment Find* [HEX] Replace [HEX] Reasons
change H_EC to EC 485F4543 45435F5F link
Rename GFX0 to IGPU 47465830 49475055 link
Rename oem _DSM to ZDSM 5F44534D 5A44534D link
Rename HECI to IMEI 48454349 494D4549 link
  • In patches RenameDevices, I think this was already there (default)
  • If not, don’t include it and see if you can get your LPA to boot
    • (if it does, let me know so I can cross if off the guide)
Find Device* Replace Device*
#_SB.PCI0.RP01.PXSX ARPT
  • In Drop Tables, I added an entry for MATS – (click on the + and select it from the dropdown)
  • Check AutoMerge (I believe this was from a Unibeast generated config.plist)
    • (if it isn’t necessary, let me know to cross if off the guide)
Reasons
  • The patches are there for successful boot, the H_EC to EC is needed otherwise the installer panics (Catalina issue, see link in table above). The other stuff I believe helped change the pink hue to normal colors when the installer launched.
  • The last two DSDT patches were either defaulted there, from a Unibeast config.plist, or from another working release. Try to remove them and see if the LPA boots (always better to have less clutter)
  • The Drop Table entry is actually from a default when Unibeast released it’s Catalina configurator (note: if you want to skip steps 1-9, you can use Unibeast 10 but be aware if you do, you might be better off following tonymac’s guide)

Boot

  • right click the arguments section and add:
    • dart=0
    • nv_disable=1
    • -cdfon
    • -igfxnohdmi
    • -v
Reasons
  • Descriptions for dart and nv_disable
  • Relates to HDMI – monitor would shut off after successful boot into installation tool
  • Uncheck everything except debug, legacy is No, other settings are if you want to change the timeout when you get into Clover Boot menu

skip CPU and Boot Graphics

Devices

  • For FakeID > IntelGFX – 0x12345678
  • For USB uncheck all
  • For audio I had inject 1
Reasons
  • link
  • Also, took some defaults from Unibeast config.plist creator
    • this won’t prevent booting, but might help with either pink screen or other issues – feel free to tinker (and let me know your results with/without it)

skip Disable Drivers

Gui

Graphics

  • Uncheck everything and include this as Custom EDID:
00FFFFFF FFFFFF00 58B30037 00000000 011B0103 80794478 0AF061A9 52409F24 0D5054AF EF80B300 9500A940 90408100 81808140 010108E8 0030F270 5A80B058 8A00501D 7400001E 023A8018 71382D40 582C4500 501D7400 001E0000 00FC0035 35554844 5F4C4344 5F54560A 000000FD 00303E0F 463C000A 20202020 2020018F
Reasons
  • TODO: (not sure where I originally found this – help finding a source/explanation for this would be nice)

Kernel and Kext Patches

  • There should be these by default if not, add them:
    • (or if the LPA boots without them, let me know so I can cross it off)
Name * Find* [HEX] Replace* [HEX] Comment
com.apple.iokit.IOUSBHostFamily 83FB0F0F 83FB3F0F USB port limit patch #1 10.15.x by pmheart, daliansky and ydeng
com.apple.driver.usb.AppleUSBXHCI 83F90F0F 83F93F0F USB port limit patch #2 10.15.x by pmheart, daliansky and ydeng

  • for KernelToPatch*: this also should be there, if not, add it:
Find Replace Comment
20B9E200 00000F30 20B9E200 00009090 MSR 0xE2 _xcpm_idle instant reboot© Pike R. Alpha
Reasons
  • If I recall correctly, these were there either default from Unibeast, and I just copied them over or from a past config.plist (maybe from Don that was required to work)
    • Try not including it and if it works without it, don’t include it (please let me know if this is the case so I can cross it out from the guide)

RT Variables, SMBIOS, System Parameters

  • These are needed so that Apple can believe your hackintosh is a legit Mac device.
  • The thing you need to adjust are CSRActiveConfig is 0x67 Reason - disable SIP
  • The rest of the sections you can generate the uuids where they allow you to, but you’ll have to take the other data from a real device (google is your friend here)
  • In system parameters, I selected Yes to Inject Kexts just to be explicit about loading the kexts we’ve downloaded…it might not be necessary, but I think I experienced issues when I had it on the default value of Detect

DONE

  • Exit the app. You should have a working MacOS Catalina drive.

I’ll post updates and edits as they come up. For the LattePanda Alpha v2 (m3-8100y) I believe there wasn’t any BIOS changes as many of the options that existed in the 7y30 version do not in the 8100y.

I disabled the internal WIFI/BT as I’m using an official apple BCM card with the NGFF adapter. I also had a Broadcom NGFF card as well as recommended by Don, but I had a nightmare getting BT to work out of the box. Follow this repo for instructions. Use kextbeast to correctly install kexts into the System vs injecting them on boot.

Please let me know if this helps. I didn’t focus on formatting just to get the content out there. I’ll edit and update this post as necessary.

Outstanding Issues

  • hibernation seems (sleep/hibernate works well where the fans stop, and the LED pulses, but after a few hours, seems like the LPA switches to a higher consumption mode where the fan spins periodically and the LED stays blue)

    • links for add’l info: link 1, link 2, link 3
    • @syaburu suggested this patch – I’ve not tested this nor used the application recommended in the github repo to apply such things BUT Rehabman is a well known contributor to hackintosh builds. If you do decide to use this, please let me know if there are any side effects or consequences.
    • I seemed to have “fixed” this by disabling Wake for network access in Settings > Energy Saver, but it may not be as comprehensive as the patch listed above.
  • bluetooth not working with the Broadcom BCM94352Z (unofficial but supported) wifi/bt chip

  • sound through hdmi or the audio jack

    • (requesting help – as I don’t really use sound for my daily use…)
  • others – (let me know!)

1 Like

With Cpufriend, you can lower the minimum frequency of the CPU. Because the noise of the CPU fan is reduced. And Cpufriend does not work without Cpufriend.kext and CPUFriendDataProvider.kext

Enable Cpufriend


Disable Cpufriend

Conversely, you can also choose performance. one-key-cpufriend makes it easy to set Cpufriend.

LattePanda Alpha is equipped with a Realtek🦀 LAN chip. Don’t you need RealtekRTL8111.kext?

Guide looks really good. Am waiting for my LattePanda v2 to arrive. This will be first attempt at a hackintosh. Curious whether you’re able to provide the config.plist file - I’m assuming that all the setting instructions in clover are basically setting up this file?

@memoriafuturi

The reason I don’t provide a config.plist is that it creates copy pasta where you don’t have any clue what these settings do. People (even newbies like myself) should try to understand what the tools are trying to achieve. Hence, I’ve tried to provide as much rationale for each setting, and have requested people to provide insight to what works and what doesn’t for the LPA specifically.

This is not saying that the config.plists out there are not helpful. I’ve also referenced several of them. But what ends up happening is that you just end up copying and pasting them into your EFI folder without a second thought, so when things don’t work out-of-the-box, you’re SOL.

This way, you get to “make” your own and contribute to making the guide more helpful with variations for newcomers and veterans alike so that they can pick and choose what tweaks and settings they would like to provide.

@Seishun

Fair enough. I do understand the sentiment. But still coming to grips with Clover and concerned may miss something. So nice to have a backup incase it doesn’t work. This was know whether it’s me messing up copying Clover settings or something else. Anyway, thanks for the guide - will test out when my LPA arrives :slight_smile:

have a nice day,
With the update of 10.15.3 does not recognize my wifi card(BCM94360CS2), what do you suggest.
but Bluetooth works well

@Seishun - Thanks so much for this tutorial. Seems like it’s up and running now. Don’t have my wifi/bt card yet, but otherwise is looking good. My first attempt at a Hackintosh and would have been much more painful without this info

Use the following command in Terminal find out the reason for waking up.

log show --style syslog | fgrep “Wake reason”

I followed what to do and installed Catalina macos however my wifi is not working but bluetooth works and some reason my audio is not working on audio jack nor HDMI
can someone help me out please

1 Like

Here’s how to get your 3.5mm audio jack working :slight_smile:

1 Like

Has anyone successfully installed Broadcom BCM94352Z? What guide/settings did you use?

Yes. Works beautifully for me (except for Bluetooth). You need to ensure you have the broadcom fix kext applied (there’s two) for it to work natively. Plenty of documentation on how to do this on Tonymac:

Hi @MacManPro

Thanks for the reply and good to hear working for you. I’ve just been trying for the wifi and after that will think about BT.

So I think I’ve followed the guide, but I’m clearly doing something wrong. For the kexts I ended up with AirportBrcmFixup.kext, Lilu.kext (this is also in clover/EFI), FakePCIID.kext, FakePCIID_Broadcom_WiFi.kext in LE. Put the last 2 in LE rather than SLE as seems where people recommended.

Can you provide any advice?

Also, how are you attaching your card? It’s kind of small….

@memoriafuturi, apologies for the belated reply.

The Broadcom card I ordered was the one that Don recommended: https://www.amazon.com/gp/product/B082X8PN2G/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1

Here is what it looks like on my board currently:

The rubber band and electrical tape keep my M.2 M (NVMe) and M.2 E (Broadcom) keys secure pretty well. Although ghetto, it works :slight_smile: Until I print these bad boys to keep them fully secure: https://www.thingiverse.com/thing:3541722

As for what kexts I installed and in which location, I used Clover Configurator to do it all. I mounted my EFI, loaded my Config.plist, went into the “Install Kext” area of Clover Configurator, and installed the AirportBrcmFixup.kext and FakePCIID_Broadcom_WiFi.kext. I then rebooted and I had perfectly-working WiFi. I might have installed a few other ketxts as well; I don’t have access to my Lattepanda right now, so I’ll get back to you with exactly which kexts I have installed; but, that’s what I did and it all works.

@MacManPro - Thanks for the info. Great idea with the elastic bands - working great :slight_smile:

I’ve tried these KEXTs, but no luck. Actually, I wasn’t able to find FakePCIID_Broadcom_WiFi.kext in Clover list so I manually downloaded and moved in. Not sure if this has an impact - maybe not updating the plist if I do manually? But doesn’t show up in my list so thought would try.

Also, while Catalina does seem to work, I’m getting a heap of text when loading from Clover. Not sure if it’s telling me of some errors as it flies off the screen so quickly. Am trying to take a photo of it - am I right that there isn’t a log of this text? Would make things much easier.

Anyway, thanks again for your help. Hopefully can get sorted.

Ah that might be the problem right there: I’m running Mojave (10.14.6). I’ll try and get you my EFI folder as soon as I can (might be a day or two), but it absolutely works in Mojave. And you’re right about FakePCIID_Broadcom_WiFi.kext; I had to manually install that one as well. I won’t be upgrading to Catalina until Don can verify it works perfectly. The Developer version works, but it’s risky.

Ah, ok, think I’ll go back to Mojave as well then. wifi (and bluetooth) more important to me than Catalina. EFI would be helpful when you get a chance. Have you given up on bluetooth? Also, I’m assuming there isn’t a way to capture the screen output from clover on boot? I’ve searched around but haven’t found any tips…

Just in case it’s useful to anyone, I just found this. Have ordered for the Broadcom wifi/bt card. Haven’t received/tested, but seems like should work…

1 Like

For some reason I can’t update the original post anymore.

5/20/2020 Update

After updating to Catalina 10.15.4 (and forgetting to update my Clover Bootloader + Kexts), I realized there might be some things missing that used to work, but don’t work anymore.

  1. It is important to install AptioMemoryFix driver. The original and OsxAptioFixv3 are confirmed to boot correctly and I bet v2 would also work. Just make sure to pick one.
  2. In “Boot” -cdfon and -igfxnohdmi aren’t necessary for a successful boot you can remove them
  3. In “Devices” leave the FakeID for IntelGFX blank
  4. In “Graphics” the Custom EDID isn’t needed; keep it blank
  5. to get working 3.5mm audio jack following the guide:
  • alcid=7 in “boot” option in custom flags in Clover
  • inject=No in audio section in the “devices” option in Clover

Fixing HDMI Issues
Following this guide - (tonymac: general framebuffer patching guide)

I had issues connecting into my OnLap1315 portable monitor, where the login screen goes blank. (This is still having issues despite the below…)

  • Download hackintool: here
  • Open hackintool
  • Ensure that framebuffer menu item is MacOS 10.14 and patch has “Apply Current Patches” checked
  • In the “Patch” menu section, select Kaby Lake with Platform ID 0x591C0005 source
  • In the “Connectors” tabs, if you have a monitor plugged in, it should light up in red, make sure that it has HDMI specified
  • Move to the “Patch” tab, and enter the “Advanced” section. You should select Hotplug Reboot Fix, VRAM 2048MB in addition to the defaulted selections.
  • Click Generate Patch
  • On Clover, make sure to mount the EFI partition of your hackintosh
  • Click on File > Export > Bootloader config.plist and select the config.plist in your EFI
  • the hackintool will inject the current config.plist and create a backup
  • reboot and hope this helps