Git Product home page Git Product logo

opencore-hackintosh-hp-elitedesk-800-g3's Introduction

OpenCore Hackintosh on HP EliteDesk 800 G3

This is a repository where I store files that were configured to run macOS properly on HP EliteDesk 800 G3.

You can use the EFI folder or refer to the configurations here to make your own bootable macOS installation USB. More information on creating bootable macOS installation USB please checkout the official guide from OpenCore. If you are on the same HP model or system, you can copy or modify my EFI folder and place it into EFI partition of your USB.

Explainations for files and configurations are presented in way that user can understand and apply for his/her own PC with the same system or model.

Disclaimer: I do not own any responsibilities if your PC running into problems by patching the files or applying the guide here. Please do your own research.

PC specifications ๐Ÿงพ

model
Figure 1. Front face of model

model
Figure 2. Back face of model

SPECIFICATIONS TABLE
NAME DESCRIPTION
Model name HP EliteDesk 800 G3 Desktop Mini Business PC (65W)
OS macOS Monterey 12.4
CPU 3,5 GHz Quad-Core - Intel Core i5-7600
Memory 16GB (8GB x 2) - Hynix/Hyundai DDR4 2400 MHz
Graphics Intel HD Graphics 630
Monitor LG 29WN600
Wi-Fi Broadcom BCM94360CS2
Bluetooth Broadcom BCM94360CS2
Storage 250 GB - CRUCIAL NVME CT250P2SSD8
Storage 1 TB - WDC SATA III WD10JPVX-75JC3T0
BIOS 447.60.3.0.0
OpenCore 0.8.1

WORKING & NOT WORKING

Working โœ…

  • Almost everything from Apple services
  • All USB ports (including USB-C port)
  • All DisplayPort
  • Both audio ports on the front face
  • Wi-Fi
  • Bluetooth
  • Graphics acceleration
  • NVME SSD
  • Boot chime
  • AirDrop
  • Hand-off

Not working โŒ

  • Apple TV (can open but video is not streamed) โ†’ finding way to fix. (Update: AppleTV uses DRM, the DRM fix from WhateverGreen has been broken since macOS 10.12.3, you will need a dGPU to address this issue)
  • Sleep (sometimes it works)

Unchecked / tested โ“

  • VGA port
  • Ethernet port

BIOS SETUP ๐Ÿ’พ

Required: Please reset your BIOS to default settings before this

  • Advanced โ†’ Boot Options

    • Disable Fast Boot
    • Enable USB Storage Boot
    • UEFI Boot order, place your bootable macOS installation USB on the first row otherwise you will need to choose it when system restarts by pressing F10 โ†’ your USB.
    • Other settings remain default
  • Advanced โ†’ Secure Boot Configuration

    • Select Legacy Support Disable and Secure Boot Disable
    • Other settings remain default
  • Advanced โ†’ System Options

    • Enable Virtualization Technology (VTx)
    • Disable Virtualization Technology for Directed I/O (VTd)
    • Enable M.2 SSD if you're using a NVME SSD
    • Check M.2 WLAN/BT (Uncheck it if have interruption issues)
    • Check Allow PCIe/PCI SERR# Interrupt (Uncheck it if have interruption issues)
    • Other settings remain default
  • Advanced โ†’ Built-in Device Options

    • Disable Wake on LAN
    • Set Video memory size to 64MB or larger
    • Disable LAN/WLAN Auto Switching
    • Disable Wake on Wake on USB
    • Other settings remain default

Notice: Make sure to save your settings before restarting

SSDTs ๐Ÿ—‚

Below are three SSDTs required for my system. To find SSDTs for your system, please refer to this document.

  • SSDT-EC-USBX-DESKTOP.aml
  • SSDT-PLUG-DRTNIA.aml

Location: EFI/OC/ACPI/

DRIVERS ๐Ÿ—ณ

Required

  • HfsPlus.efi
  • OpenRuntime.efi

Optional

  • OpenCanopy.efi (for enabling OpenCore GUI bootloader)
  • AudioDxe.efi (for enabling boot chime)

Location: EFI/OC/Drivers/

KEXTS ๐Ÿ’‰

Required

Optional

  • SMCProcessor.kext (for monitoring CPU temperature, included in VirtualSMC package)
  • SMCSuperIO.kext (for monitoring fan speed, included in VirtualSMC package)
  • CPUFriend.kext (CPU power management, please ignore if you are not certain about this one)
  • CPUFriendDataProvider.kext (same as CPUFriend.kext)
  • NVMeFix.kext (for fixing power and energy consumption on NVME SSD, only use if you are having a NVME SSD)

Location: EFI/OC/Kexts/

USB PORTS MAPPING โŒ— (deprecated โ†’ switched to Hackintool mapping method)

The USBPorts.kext file in the EFI folder was created using Hackintool. The kext file is used to recognize all the ports of my machine. If you are having a different model, you can refer to the video here for making one. Thanks to Tech Labs.

SPECIFIC CONFIGURATIONS

Boot arguments

Required (only remove when you are good with your set up)

  • -v: boot macOS in verbose mode
  • debug=0x100: prevents macOS not to reboot when facing a kernel panic, this will help giving you some insights why the system is not booting.
  • keepsyms=1: prints the symbols during a kernel panic.

Extras

You will notice that the boot-args from my config.plist file has the argument alcid=20. It will be needed for playing boot chime with internal audio. The number 20 is layout ID for my Conexant audio device, which you can find all the supported coded in this page.

Also, there is an extra argument igfxonln=1 that I aimed to force all displays online for fixing wake issue (but not helped at all). You may want to delete this argument.

So literally you will need this in your boot-args: -v debug=0x100 keepsyms=1 alcid=xx, with xx is your audio layout ID.

Graphics acceleration

Follow the guide over here by choosing your correct CPU model name.
From my system on Kaby Lake and Intel Graphics HD 630, I will need to set

  • AAPL,ig-platform-id | DATA | <00001659>

under PciRoot(0x0)/Pci(0x2,0x0) from DeviceProperties section of config.plist file.

Notice: If you are on HD 630, it's safe to choose <00001659> as <00001B59> caused an issue for one of my DisplayPorts (not receive signal after booting).

GUI bootloader and Boot chime

Follow the guide from OpenCore here

GUI bootloader
I already included the EFI folder that contains Resources for a GUI bootloader, and also configured the config.plist.
If you want to modify the theme, feel free to change it from the property Misc -> Boot -> PickerVariant of config.plist file. Options can be found here.

Boot chime

Important: if you are not using my EFI folder, make sure you have AudioDxe.efi in your EFI/OC/Drivers/ and it must be on the same OpenCore version with HfsPlus.efi and OpenRuntime.efi.

You need to define two things below in order to get boot chime:

  • AudioCodec: go to Terminal and run:
ioreg -rxn IOHDACodecDevice | grep IOHDACodecAddress

Then you will probably see this:

  |   "IOHDACodecAddress" = 0x0
  |   "IOHDACodecAddress" = 0x2

There will be few lines appear on Terminal, mostly will be two. First is the internal audio (in my case that is the Conexant one), and the second one will be HDMI/DVI sound. In this case I will pick 0x0 for the AudioCodec as I want to play boot chime from the internal audio.
You can change it to another value appears, if it won't work, just switch to another one.

  • AudioDevice: run gfxutil to find the path
/path/to/gfxutil -f HDEF

You will receive something like this:

00:1f.3 8086:a2f0 /PCI0@0/HDEF@1F,3 = PciRoot(0x0)/Pci(0x1F,0x3)

Grab the right part after the =, in my case it would be PciRoot(0x0)/Pci(0x1F,0x3).

After get the AudioCodec and AudioDevice, put them under UEFI -> Audio. Other configurations I have already made, you can change the others if you know.

CONTRIBUTION ๐Ÿค

Contributions are always welcomed. Please make a Pull request from your side, I will review and merge if it looks good.

opencore-hackintosh-hp-elitedesk-800-g3's People

Contributors

lipham994 avatar lqph1994 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.