Contribute
Register

[Guide] Dell Inspiron 15 7548 UHD - macOS 10.14.3 - Full Hotpatch

Joined
Jan 27, 2019
Messages
31
Motherboard
Dell Inspiron 7548 - Clover
CPU
i7-5500U
Graphics
HD 5500, R7 M270, 3840x2160
Mac
MacBook Pro
Mobile Phone
iOS
388002



Specifications
  • Dell Inspiron 15 7548
  • Display: 15,6" 4K Truelife Touchscreen panel (3480x2160)
  • Processor: Intel Core i7-5500U
  • Memory: 16GB DDR3
  • Hard drive: 256GB SSD
  • Video: Intel HD 5500 / AMD R7 260 (disabled)
  • Audio: ALC3234 (ALC255)
  • Wireless: Dell DW1560
  • Ports: 2 USB 3.0 • 1 USB 2.0 • 1 HDMI • Headphone jack • SD Card slot
  • Camera: Integrated webcam
  • Operating system: macOS 10.14.3
What works
  • Battery status
  • Brightness w/brightness keys
  • USB ports (USB3/2, webcam, SD Card)
  • Wifi / Bluetooth (Handoff, AirDrop, AirPlay not tested)
  • Audio (HDMI, internal speakers, headphones and microphone)
  • Power Management (with AMD graphics disabled)
  • Trackpad/Touchscreen Gestures (4 finger gesture not supported on trackpad)
What doesn't work
  • Full 4K resolution on built-in display (1840x1035@60 HiDPI max) and through HDMI (1920x1080@60 non-HiDPI max)
  • Sleep, you might get a black screen or freeze at wake sometimes


Installation Guide

0. BIOS settings
  • Virtualization: [Disabled]
  • SATA Operation: [AHCI]
  • Boot List Option: [UEFI]
  • Secure Boot: [Disabled]
  • LoadLegacy Option Rom (CSM): [Enabled]
Note: the default DVMT prealloc for this laptopt is 64MB so no BIOS patching is needed. Changing to a higher setting and patching the framebuffer to match the value didn't seem to solve the resolution issue. The BIOS used in this laptop is A08.


1. Building the macOS Installer

Partitioning the USB
Use a 16GB USB2 partitioned as GPT (hidden EFI partition automatically created).
With the USB pluged in, determine its identifier with 'diskutil' command, in Terminal:
Code:
diskutil list
Repartition the USB, for example /dev/disk2:
Code:
# repartition /dev/disk2 GPT, one partition
# EFI will be created automatically
# second partition, "install_macos", HFS+J, remainder
diskutil partitionDisk /dev/disk2 1 GPT HFS+J "install_macos" R

Building the Installer
Download macOS Mojave from AppStore.
Use the same mechanism you would use to create a USB installer for a real Mac (createinstallmedia), in Terminal:
Code:
# copy installer image
sudo "/Applications/Install macOS Mojave.app/Contents/Resources/createinstallmedia" --volume  /Volumes/install_macos --nointeraction

# rename
sudo diskutil rename "Install macOS Mojave" install_macos

Installing Clover
Download Clover Installer from RehabMan fork: https://github.com/RehabMan/Clover
Run the Clover Installer package (Clover UEFI on GPT):
  • select the target of the install to "install_macos" using "Change Install Location"
  • select "Customize" (the default is Legacy)
  • check "Install for UEFI booting only", "Install Clover in the ESP" will automatically select
  • check "BGM" from Themes
  • the defaults for Drivers64UEFI are recommended
After making your selections you can continue to "Install" the Clover bootloader to your USB.
Add HFSPlus.efi to EFI/Clover/drivers64UEFI (not included in the Clover installer): https://github.com/JrCs/CloverGrowerPro/raw/master/Files/HFSPlus/X64/HFSPlus.efi

Preparing essential kexts
Download and copy to EFI/CLOVER/kexts/Other the essential kexts listed below.
Choosing a config.plist
Download config_HD5300_5500_6000.plist from: https://github.com/RehabMan/OS-X-Clover-Laptop-Config/archive/master.zip
  • comment framebuffer patch on Devices/Properties/PciRoot(0)/Pci(0x02,0)
  • set DellSIMBIOSPatch to YES on KernelAndKextPatches
  • rename it to config.plist and replace in EFI/CLOVER.


2. Using the macOS Installer

Note: The SSD must be previously formated by Windows or Disk Utility.
  1. Boot your computer to the USB.
  2. Clover bootloader screen shows up, select "install_macos" (boot verbose).
  3. Use Disk Utility to partition your drive as GPT, create a APFS partition and install macOS to your formatted partition.
  4. Clover bootloader screen shows up (it can happen many times), select "Boot macOS from YourPartition". "YourPartition" will be named depending on what you chose in Disk Utility in step 3.
  5. If everything goes well you'll arrive at the macOS desktop.
Note: If the installer finishes and you get a black/gray screen that looks garbled when you use keyboard, find a way to get to System Preferences -> Displays -> set Resolution to Scaled -> change Scale to a larger text.

Note: If you can't reach System Preferences to scale down resolution, boot with ivalid ig-platform-id, install some VNC viewer and control the Macbook from another device.


3. Basic Post Installation

Installing Clover to SSD
The Clover installation to the SSD is the same as installing it to the USB, except that the install targer will be your macOS system volume.
To mount the EFI partition containing Clover, in Terminal:
Code:
# determine EFI partition identifier
diskutil list

# make mounting directory
sudo mkdir /Volumes/efi

# mount the EFI partition
sudo mount -t msdos /dev/disk0s1 /Volumes/efi
An easier way to do this is directly with 'diskutil' command (only having EFI partition labeled as 'EFI'), in Terminal:
Code:
sudo diskutil mount EFI
Select on BIOS/BOOT add UEFI boot entry option, and search for the partition containing Clover and select CLOVERX64.efi. Put the boot option at the top so it'll boot first.

Note: the IONetworkingFamily.kext patch found on KernelAndKextPatches/KextToPatch must be removed now that we have a running system.

Installing Kexts
Install kexts from Clover and those needeed to L/E from Terminal:
Code:
sudo cp -R KextToInstall.kext /Library/Extensions
Note that once you install a kext with incorrect permissions or wrong location, you must remove it first:
Code:
sudo rm -Rf /Library/Extensions/KextToRemove.kext
And to rebuild cache:
Code:
sudo kextcache -i /

Problem Reporting
Download the install_tools.sh from https://www.tonymacx86.com/threads/tool-generate-proper-problem-reporting-files.235953/, and run in Terminal:
Code:
chmod a+x ~/Downloads/install_tools.sh
~/Downloads/install_tools.sh

#tu run it
gen_debug


Original Post
RehabMan's complete install guide https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/
 

Attachments

Last edited:
Joined
Jan 27, 2019
Messages
31
Motherboard
Dell Inspiron 7548 - Clover
CPU
i7-5500U
Graphics
HD 5500, R7 M270, 3840x2160
Mac
MacBook Pro
Mobile Phone
iOS
Post Installation Guide

0. Patching Laptop DSDT/SSDT

Extracting native ACPI files
At the main Clover bootloader screen, press F4 and Clover will dump the native ACPI files to EFI/Clover/ACPI/origin. You can then access them after you boot macOS to disassemble and patch them.

Preparing tools for disassembly
You need the iasl compiler, which is run from Terminal, download it from: https://bitbucket.org/RehabMan/acpica/downloads/
Copy it to /usr/bin, in Terminal:
Code:
sudo cp ~/Downloads/iasl /usr/bin

Disassembling ACPI files
Disassemble in macOS Terminal:
Code:
cd "to directory where you placed all SSDT/DSDT"
iasl -da -dl DSDT.aml SSDT*.aml
From this point, work only with the resulting *.dsl and once the patching is finished, save them as "ACPI Machine Language Binary" in Clover/ACPI/patched.

Fixing Errors
Even by disassembling all at once the native files still have errors. Must patch so they compile without errors (warnings are ok) using MaciASL. Download link: https://github.com/RehabMan/OS-X-MaciASL-patchmatic
Once al DSDT/SSDT compile without errors we can start patching.

Hotpatch
Download and save the hotpatch folder from: https://github.com/RehabMan/OS-X-Clover-Laptop-Config/archive/master.zip, we'll edit those necessary for the fixes.

Note: all the modified .dsl files created in this guide are attached in this post. It's strongly recommended to make your own patches to avoid problems due to hardware/software compatibility.


1. Power Management
Run on Terminal:
Code:
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
sudo mkdir /var/vm/sleepimage
sudo pmset -a standby 0
sudo pmset -a autopoweroff 0
Always check your hibernatemode after updates and disable it. System updates tend to re-enable it, although the trick above (making sleepimage a directory) tends to help.


2. Brightness
Save SSDT-PNLF.dsl and SSDT-ALS0.dsl (found in hotpatch folder) as .aml in CLOVER/ACPI/patched.
Backlight level is properly stored between restarts.


3. Disable AMD Graphics Card
Open SSDT-DDGPU.dsl and:
  • remove all entries from the _SB.PCI0.PEGP.DGFX path
  • change PEG0 to RP05 on all _SB.PCI0.PEG0.PEGP entries
  • save as .aml and replace on CLOVER/ACPI/patched.


4. USB
Download SSDT-UIAC-ALL.dsl from https://github.com/RehabMan/OS-X-USB-Inject-All and patch it.
  • package is 8086_9cb1 as per IOreg, remove all the other entries
  • remove unused ports
  • change the UsbConnector values to match the type of port (USB2 = 0, USB3 = 3, internal = 255)
  • save as SSDT-UIAC.aml to CLOVER/ACPI/patched
  • save SSDT-DEH01.dsl as .aml to CLOVER/ACPI/patched
Ports used:
HS01/SS01: USB3 Left - HS02/SS02: USB3 Right - HS03: USB2 Right - HS04: SD Card
HS05: Webcam - HS06: Touchscreen - HS07: Bluetooth


5. Battery Status
Download and install ACPIBatteryManager.kext from: https://github.com/RehabMan/OS-X-ACPI-Battery-Driver
  • save SSDT-XOSI.dsl (from hotpatch) and SSDT-BATT.dsl as .aml in CLOVER/ACPI/patched
  • enable _OSI -> XOSI and add _BST -> XBST and _BIF -> XBIF patches to config.plist (under ACPI/DSDT/Patches)
Code:
change _BST -> XBST
    <5f425354>
    <58425354>

change _BIF -> XBIF
    <5f424946>
    <58424946>


6. Audio
Download and install AppleALC.kext from: https://github.com/acidanthera/AppleALC
Reboot and check if there is a IRQ conflict caused by HPET, in Terminal:
Code:
kextstat | grep 'Lilu\|AppleALC\|AppleHDA'
If there is no AppleHDA apply FixHPET otherwise omit that fix.

On the config.plist:
  • set to YES FixHPET on ACPI/DSDT/Fixes
  • uncomment layout-id on Devices/Properties/PciRoot(0)/Pci(0x1b,0) and PciRoot(0)/Pci(0x03,0)
  • try each possible layout (30 worked)
ALC3234 (ALC255) has 10 posible layouts 3, 13, 17, 18, 21, 27, 28, 30, 31 and 99.


7. HDMI
As seen in IOreg under IGPU, framebuffer 1 is used when display is connected through HDMI port.
On config.plist under Devices/Properties/PciRoot(0)/Pci(0x02,0):
  • uncomment framebuffer-patch-enable, framebuffer-con1-enable and framebuffer-con1-type
  • uncomment framebuffer-con2-enable
  • add framebuffer-con2-alldata and set <ff000000 01000000 40000000> to completely disable con2 (fixes sleep issues)


8. Touchpad/Touchscreen Gestures
Download and install VoodooI2C.kext and VoodooI2CHID.kext from: https://github.com/alexandred/VoodooI2C
  • make sure that SSDT-XOSI.aml is in CLOVER/ACPI/patched and _OSI -> XOSI patch applied (done for battery status fix)
  • remove VoodooPS2Mouse and VoodooPS2Trackpad from /L/E/VoodooPS2Controller/Contents/PlugIns
  • rebuild cache


9. Bluetooth
WiFi hardware has a built-in bluetooth controller that connects to the USB bus, patch USB correctly and install:
BT4LEContiunityFixup.kext: https://github.com/acidanthera/BT4LEContiunityFixup (handoff/continuity features)
BrcPatchRAM2.kext/BrcmFirmwareRepo.kext: https://github.com/RehabMan/OS-X-BrcmPatchRAM


10. Keyboard
The SSDT-KBD.dsl has the brightnes keys patches and also for the Fn+PrtScr that messed with the Wifi. It has also a remapping for PS2 keys PrtScr, Fn+PrtScr and Fn+(right)Ctrl to F13, F16 and F17 respectively.

Detect the ACPI events generated by the keys with ACPIDebug.kext, and adding to the DSDT "Add DSDT Debug Methods" and "Instrument EC Queries" patches. Monitor Console.app which codes are generated (_Q81 and _Q80 for brightness and _Q9F for Fn+PrtScr) and:
  • save SSDT-KBD.dsl as .aml in CLOVER/ACPI/patched
  • add _Q80 -> XQ80, _Q81 -> XQ81 and _Q9F -> XQ9F patches to config.plist (under ACPI/DSDT/Patches)
Code:
change _Q80 -> XQ80 (brightness up)
    <5f513830>
    <58513830>

change _Q81 -> XQ81 (brightness down)
    <5f513831>
    <58513831>

change _Q9F -> XQ9F (Fn+PrtScr)
    <5f513946>
    <58513946>


11. Sleep
This patch prevents "instant wake" when entering on sleep. For the proper function of sleep it's mandatory to patch the entire system.
  • save SSDT-GPRW.dsl (modified) as .aml in CLOVER/ACPI/patched
  • add (GPRW,2,N) -> XPRW patch to config.plist (under ACPI/DSDT/Patches)
Code:
change (GPRW,2,N) -> XPRW
   <47505257 02>
   <58505257 02>
Note: there are still some issues with sleep, will update as soon it's fixed.


12. Max Resolution
As the max resolution possible for 4K display is non standard (1840x1035 HiDPI), we'll create a file fo adding it to the Display menu. VendorID: 4c83, ProductId: 4c46.

Create directory for the plist file (if it doesn't exist):
Code:
sudo mkdir /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-4c83
Create DisplayProductID-4c46.plist file in desktop (if its found on Overrides folder, modify existing file), and copy:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>DisplayProductName</key>
    <string>Dell UHD Display</string>
    <key>DisplayProductID</key>
    <integer>19526</integer>
    <key>DisplayVendorID</key>
    <integer>19587</integer>
    <key>scale-resolutions</key>
    <array>
        <data>AAAOYAAACBY=</data>
        <data>AAAHMAAABAs=</data>
    </array>
</dict>
</plist>
Save the file and copy it to the final directory (without the plist extension):
Code:
sudo cp Desktop/DisplayProductID-4c46.plist /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-4c83/DisplayProductID-4c46
Restart computer and the new resolution will appear on System Preferences -> Displays (click scaled while pressing option if resolution isn't there).



Original Posts
Special thanks to @RehabMan and all the people from tonymacx86 community.
 

Attachments

Last edited:

shael

Suspended
Joined
Mar 9, 2011
Messages
359
Motherboard
ASUS PRIME X299-Deluxe
CPU
i9-7980XE
Graphics
Vega Frontier
why did you disable the amd card? does it not work?
 

Feartech

Moderator
Joined
Aug 3, 2013
Messages
12,240
Motherboard
Asus N752VX-Clover
CPU
i7-6700HQ / HM170
Graphics
HD530 + GTX 950m 1920 x 1080
Mac
iMac
Mobile Phone
Android
why did you disable the amd card? does it not work?
dual gpu's don't work on laptops

best to disable the amd card for battery saving
 

shael

Suspended
Joined
Mar 9, 2011
Messages
359
Motherboard
ASUS PRIME X299-Deluxe
CPU
i9-7980XE
Graphics
Vega Frontier
dual gpu's don't work on laptops

best to disable the amd card for battery saving
i thought it was just optimus that doesnt work?
 

Feartech

Moderator
Joined
Aug 3, 2013
Messages
12,240
Motherboard
Asus N752VX-Clover
CPU
i7-6700HQ / HM170
Graphics
HD530 + GTX 950m 1920 x 1080
Mac
iMac
Mobile Phone
Android

Feartech

Moderator
Joined
Aug 3, 2013
Messages
12,240
Motherboard
Asus N752VX-Clover
CPU
i7-6700HQ / HM170
Graphics
HD530 + GTX 950m 1920 x 1080
Mac
iMac
Mobile Phone
Android
Joined
Apr 25, 2019
Messages
2
Motherboard
Dell Inspiron 7548
CPU
i5
Graphics
HD 5500
Trying this with Mojave, same laptop you have except with the slightly lower resolution touch screen. I can boot to the clover usb screen, but when I go to install, the screen goes black and eventually, if you hit a key, the laptop reboots. Kind of at a loss since you can't see anything on screen. I followed the directions in the first post to a "T", so I should have had similar results to you.
 
Joined
Apr 25, 2019
Messages
2
Motherboard
Dell Inspiron 7548
CPU
i5
Graphics
HD 5500
I got the install working finally and can boot into Mojave, but no battery, no audio.
 
Top