Jump to content

hardcorehenry

Just Joined
  • Content Count

    48
  • Joined

  • Last visited


Reputation Activity

  1. Like
    hardcorehenry reacted to yapan4 in Help installing Mojave on Xeon W-2175 and Asus WS C422 mobo   
    I also continue to test and report the news if it appears.
  2. Like
    hardcorehenry got a reaction from fabiosun in Help installing Mojave on Xeon W-2175 and Asus WS C422 mobo   
    This is your generated SSDT, you posted. Uder PR13 there are CP0E and CP0F. That would mean you ommited this renames. I thing that CP0E should be renamed as PR14, CP0F as PR15 and the rest below PR16 ...and so on. There is no CP0E and CP0F in config acpi renames and the rest sould also change names. If my bad english isn't good enough post your config and original CPU OEM extracted with clover F4, because i'm not sure about originals CPU OEM names.

  3. Like
    hardcorehenry reacted to fabiosun in Help installing Mojave on Xeon W-2175 and Asus WS C422 mobo   
    rename this : SSDT-CpuPm.aml in SSDT.aml if I understand well and then put the same name in sorted order
     
  4. Like
    hardcorehenry reacted to obus in Help installing Mojave on Xeon W-2175 and Asus WS C422 mobo   
    Not working.
    No FV and no XCPM. 
    Tried with both checked and unchecked plugin in clover.
     
    Last login: Wed Apr 24 16:18:07 on console
    iMacPro:~ admin$ sysctl -a | grep xcpm
    machdep.xcpm.mode: 0
    machdep.xcpm.hard_plimit_max_100mhz_ratio: 0
    machdep.xcpm.hard_plimit_min_100mhz_ratio: 0
    machdep.xcpm.soft_plimit_max_100mhz_ratio: 0
    machdep.xcpm.soft_plimit_min_100mhz_ratio: 0
    machdep.xcpm.tuib_plimit_max_100mhz_ratio: 0
    machdep.xcpm.tuib_plimit_min_100mhz_ratio: 0
    machdep.xcpm.tuib_enabled: 0
    machdep.xcpm.power_source: 0
    machdep.xcpm.bootplim: 0
    machdep.xcpm.bootpst: 0
    machdep.xcpm.tuib_ns: 0
    machdep.xcpm.vectors_loaded_count: 0
    machdep.xcpm.ratio_change_ratelimit_ns: 500000
    machdep.xcpm.ratio_changes_total: 0
    machdep.xcpm.maxbusdelay: 0
    machdep.xcpm.maxintdelay: 0
    machdep.xcpm.mid_applications: 0
    machdep.xcpm.mid_relaxations: 0
    machdep.xcpm.mid_mode: 1
    machdep.xcpm.mid_cst_control_limit: 0
    machdep.xcpm.mid_mode_active: 0
    machdep.xcpm.mbd_mode: 1
    machdep.xcpm.mbd_applications: 0
    machdep.xcpm.mbd_relaxations: 0
    machdep.xcpm.forced_idle_ratio: 100
    machdep.xcpm.forced_idle_period: 30000000
    machdep.xcpm.deep_idle_log: 0
    machdep.xcpm.qos_txfr: 1
    machdep.xcpm.deep_idle_count: 0
    machdep.xcpm.deep_idle_last_stats: n/a
    machdep.xcpm.deep_idle_total_stats: n/a
    machdep.xcpm.cpu_thermal_level: 0
    machdep.xcpm.gpu_thermal_level: 0
    machdep.xcpm.io_thermal_level: 0
    machdep.xcpm.io_control_engages: 0
    machdep.xcpm.io_control_disengages: 0
    machdep.xcpm.io_filtered_reads: 0
    machdep.xcpm.io_cst_control_enabled: 0
    machdep.xcpm.ring_boost_enabled: 0
    machdep.xcpm.io_epp_boost_enabled: 0
    machdep.xcpm.epp_override: 0
    iMacPro:~ admin$
  5. Like
    hardcorehenry got a reaction from obus in Help installing Mojave on Xeon W-2175 and Asus WS C422 mobo   
    Sorry for cutting in, I'm not expert of Xeon processors, but I saw your configs ang I think you should untick plugin type in your config, because you using SSDT.aml which contain plugin-type.
  6. Thanks
    hardcorehenry reacted to headkaze in Hackintool v2.5.3   
    HACKINTOOL
    The Swiss army knife of vanilla Hackintoshing
     
    WARNING!
    Hackintool is not an automated patching tool that does all the work for you. Knowledge is required on how to patch before using it. Please read the Intel Framebuffer patching using WhateverGreen guide before you download this tool! I also recommend you read Daliansky's Hackintool tutorial (a proper English translation would be welcome).
     
    Mojave, Lilu + WhateverGreen
    You cannot use the Clover's KextsToPatch for framebuffer patching in Mojave for Skylake and above
     
    Framebuffer Dumps
    There are a few ways to dump your framebuffer data (the second two require WhateverGreen + Lilu debug versions) to read in Hackintool:
    1. Use the Framebuffer->macOS 10.13.6 / Framebuffer->macOS 10.14 menu to create patches without a framebuffer dump
    2. Use the -igfxdump boot flag to dump IGPU framebuffer kext to /AppleIntelFramebuffer_X_Y (root of your boot drive) and then File->Open menu
    3. Use the -igfxfbdump boot flag to dump native and patched framebuffer table to ioreg and then File->Import->IOReg Dump menu
     
    Features
    - Supports Sandy Bridge, Ivy Bridge, Haswell, Broadwell, Skylake, Kaby Lake, Coffee Lake, Cannon Lake and Ice Lake generations
    - Create All, Connectors or VRAM patches
    - Detect Changes for auto patch creation
    - Create Clover patches in hex, base64 or Devices/Properties formats
    - Displays native GPU and Model identifiers
    - Display and edit Memory Info such as Stolen, Framebuffer, VRAM, Cursor etc.
    - Roll over some items for additional info (Tooltips)
    - Reads "live" data directly from Framebuffer kexts (if available; see Mojave note below)
    - File->Open framebuffer file generated by WhateverGreen's -igfxdump boot flag
    - File->Export->Clover config.plist / File->Export->Framebuffer.txt file
    - Patch audio layout id
    - Add USB port limit patch
    - Plug and unplug USB2 / USB3 devices and set port connector types then generate a USBPorts.kext
    - Advanced patching options (DVMT pre-alloc 32 MB, VRAM 2048 MB, Disable eGPU, Enable HDMI20 (4K), DP -> HDMI, GfxYTile Fix, Reboot Fix, USB port Limit, Spoof Audio Device Id, FB Port Limit, Spoof Gfx Device Id)
     
    Release Notes
    2.5.3 - Fixed EveryMac.com Visit link
    2.5.2 - Added Host, OS, Kernel and RAM System Info
    2.5.1 - Add support for 0x3EA50005 0x3EA60005 0x3E980003 frame id for CFL refresh
    2.5.0 - Fixed stdout/stderr output capture for admin privilege shell commands (thanks jaymonkey)
    2.4.9 - Fixes
    2.4.8 - Fixes
    2.4.7 - Fixes
    2.4.6 - "Rebuild KextCache and Repair Permissions" moved to tools section now has progress bar
    2.4.5 - Output added for "Rebuild KextCache and Repair Permissions"
    2.4.4 - Chinese language updates. Compiler improvements
    2.4.3 - Chinese language updates. USB configurator fixes
    2.4.2 - Changed Framebuffer Info to Selected / Current Framebuffer Info for easier comparison
    2.4.1 - Chinese language update
    2.4.0 - Now includes iMessageDebug data (ElNono / mdmwii / flux84 / sugarface / pokenguyen). Export system info data. View model info (everymac.com). Check serial feature. Preliminary OpenCore support (thanks vit9696)
    2.3.9 - ComboBox fix (thanks telepati)
    2.3.8 - Bug fixes (thanks ReddestDream)
    2.3.7 - Improved Clover EFI Mounting. Clover PCI export now uses SubClass for device_type
    2.3.6 - Bug fixes. "Use Intel HDMI" option added (hda-gfx=onboard-x). Added "Non Scaled" resolution type
    2.3.5 - Fixed bug in Device Path generator (gfxutil). Added "Generate Windows UTC Registry Files" tool
    2.3.4 - Updated audio codecs, Export PCI list in Clover and dsl format, Now dumps all ACPI tables and decompiles to dsl
    2.3.3 - Extract DSDT (phpdev32), Auto update PCIIDs (MuntashirAkon), Export PCI list in JSON format
    2.3.2 - Monitor PCI hotplug
    2.3.1 - UI Updates
    2.3.1 - Right-click on a PCI device and select "Copy IOReg Path". Launch IORegistryExplorer and select Go->Go to Path... menu, paste in the path and click the "Go to Path" button.
    2.2.8 - Added warning for HWP state logging (previous state can only be restored after a reboot)
    2.2.7 - Added VDA Decoder status. Added DevicePath for PCI devices. Export PCI Devices list to desktop
    2.2.6 - Improved Boot EFI detection. Set Boot EFI manually. AppleIntelInfo shows 30 second timer to log CStates. Restores HWP state after logging. Added Intel Regs warning. Calculator now shows reverse bytes
    2.2.4 - Added AppleIntelInfo options (Enable HWP, Log: CStates, IGPU, IPG Style, Intel Regs, MSRs). Added AppleIntelInfo 20 second delay for CState capture.
    2.2.2 - Added Info tab (Network Interfaces, Graphic Devices, Audio Devices and Storage Devices). Will highlight power settings green or red to indicate issues
    2.2.1 - Fixes
    2.2.0 - New PCI Devices, Network, Power and Tools tab
    2.1.9 - Added Github kext downloading. The download version may be older than the source version. Also due to Github API rate limits it will store the latest download urls. Added Install kext(s) function. Added Rebuild KextCache and Repair Permissions function
    2.1.8 - Uses kextstat to get the versions
    2.1.7 - Now detects more kexts
    2.1.6 - Can now download the current version numbers of Lilu + Plugins
    2.0.8 - Patch->System Configs menu with various configurations you can try if your Coffee Lake system is being troublesome (CaseySJ)
    2.0.4 - Apply Clover patches (KernelToPatch, KextToPatch, DSDT Renames). View, create and edit NVRAM variables (be careful!). View installed Lilu + Plugins, download and automatically compile the latest versions
    1.9.6 - Disk display enhancements (icons / mount / unmount buttons)
    1.9.2 - Fixes
    1.9.1 - Added SSDT-UIAC.aml / SSDT-USBX.aml export support
    1.9.0 - Fixed launch bug (thanks @Pavo)
    1.8.7 - Added USB Power DSDT Renames
    1.8.6 - Added DSDT Renames
    1.8.5 - Fixes
    1.8.4 - Auto update capability using Sparkle framework
    1.8.3 - Improved Audio Device detection / selection, window can now be resized
    1.8.2 - Added translations; French (Matgen84), German (al6042), Korean (zisqo), Russian / Ukrainian (ctich)
    1.8.1 - Clover downloader (Kozlek / JrCs / slice), NVRAM boot-args edit, improved authorization, UI update
    1.8.0 - Improved USB power export (corpnewt), other fixes, new icon
    1.7.9 - Added USB power export, EFI partition mounting, calculator and log viewer
    1.7.8 - Added resolution injection from one-key-hidpi script (xzhih)
    1.7.7 - Added EDID patching support for AMD & nVidia
    1.7.6 - EDID overrides can now export custom icons
    1.7.5 - Improved USB guide, added print button
    1.7.4 - Fixed defaults
    1.7.3 - Updates
    1.7.2 - Renamed app to Hackintool, added EDID injection support (Andy Vandijck)
    1.7.1 - Dark mode fixes
    1.7.0 - USB & Audio info added, shows possible spoof / kext requirements
    1.6.9 - Updates
    1.6.8 - Added framebuffer-camellia and framebuffer-flags patching support
    1.6.7 - Added Macmini8,1 and MacBookAir8,1 definitions
    1.6.6 - Data file updates
    1.6.5 - Fixed USBInjectAll detection
    1.6.4 - Audio layout id detection improvement
    1.6.3 - Now shows Audio Controller
    1.6.2 - USB fixes
    1.6.1 - Improved Spoof Audio Device Id option
    1.6.0 - Fixes
    1.5.9 - Now shows USB Controllers
    1.5.8 - Will store and restore USB ports between app sessions for use with new USBInjectAll.kext (0.7.0) to include boot flags for excluding groups of ports
    1.5.7 - Now detects EHC and hub ports (thanks to RehabMan & SavageAUS). Multi-select USB Ports. Now detects if USBInjectAll is installed
    1.5.4 - Fixed audio codec detection when user has multiple audio devices. Added "Reboot Fix" advanced patch (sets connector pipe values to 18)
    1.5.3 - Improved Export->Clover config.plist and now makes a backup (config-backup.plist)
    1.5.2 - Added Patch->AzulPatcher4600
    1.5.1 - USBPorts port-count fix
    1.5.0 - Fixes
    1.4.9 - Added tab to show if Lilu, WhateverGreen and AppleALC are installed and version info
    1.4.8 - Fixed framebuffer-cursormem output for iASL DSL Source patching
    1.4.7 - Added support for new WEG -igfxfbdump boot flag using File->Import->IOReg Dump menu
    1.4.6 - Fixes. Added Framebuffer->macOS 10.14 menu item. Added QE/CI and Metal support detection
    1.4.5 - Added support for framebuffer-cursormem (Haswell)
    1.4.4 - Added ability to inject valid device-id's
    1.4.3 - Fixes
    1.4.2 - Added Patch->Import KextsToPatch / Apply Current Patches menu. Renamed USBPower.kext -> USBPorts.kext
    1.4.1 - Added TypeC USB ports
    1.4.0 - Improved Intel Generation detection
    1.3.9 - Now using AppleIntelFramebuffer@X index for connector association
    1.3.8 - Fixed bug AppleIntelFramebuffer port-number should be connecter index + 4 or 0 for internal (RehabMan)
    1.3.7 - Shows Display Info for connected displays on connector ports (with display hot plug support), fixed iASL DSL Source hex output, connector drag-drop to change order
    1.3.6 - Fixes
    1.3.5 - Will try HDAS if HDEF is not found
    1.3.4 - Added AllData connector patch method (RehabMan). Will try GFX0 if IGPU is not found
    1.3.3 - Fixes. Added more audio layout-id's (vandroiy2013)
    1.3.2 - Fixes
    1.3.1 - Fixes. Added new menu Framebuffer->Current Version / macOS 10.13.6
    1.3.0 - Added audio patching, Clover config.plist exporting, USB patching, advanced auto patching
    1.2.8 - Added iASL DSL Source patch output, display detected Intel gen and platform-id
    1.2.7 - File->Export framebuffer text file
    1.2.6 - Fix preallocated memory calculation formula (vit9696)
    1.2.5 - Still outputs a config.plist/Devices/Properties patch when "Auto Detect Changes" is selected
    1.2.4 - Fixes
    1.2.3 - config.plist/Devices/Properties patch now outputs data format
    1.2.2 - Fixes
    1.2.1 - Updates and fixes
    1.2.0 - Added support for Cannon Lake and Ice Lake
    1.1.0 - Added MacBookPro15,1 and MacBookPro15,2 models
    1.0.9 - Support for Mojave, Coffee Lake, WhateverGreen's -igfxdump boot flag and Clover's config.plist/Devices/Properties patch output
    1.0.8 - Updates
    1.0.7 - Fixed support for dark mode
    1.0.6 - Better backwards compatibility
    1.0.5 - Detects Chipset / Address on Startup, Edit Memory Values Easier
    1.0.4 - Added GPU / Model Info
    1.0.3 - Added Tooltips
    1.0.2 - Added Memory tab
    1.0.1 - Minor Fixes
    1.0.0 - Initial Release
     
    Credits
    - vit9696 for WhateverGreen (full credits), Lilu (full credits), AppleALC (full credits), USBPorts.kext and additional help
    - vit9696 for IntelFramebuffer.bt with additional work by bcc9, Piker-Alpha and joevt
    - DalianSky for Intel Core Platform ID and SMBIOS Quick Reference
    - vandroiy2013 for audio id data from AppleALC
    - RehabMan for all data patching method, ioreg framebuffer dump and other contributions
     
    Download
    Download Hackintool
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     



















  7. Like
    hardcorehenry reacted to shrieken213 in Broken Power Management in 10.14.5 Beta?   
    Thanks. You're seeing exactly what I'm seeing with the IGPU. Idle or not your IGPU is at full clock with headless.
     
    My screenshots were with 0x0300220d; the IGPU idles at 0.2 Ghz and HWSensors picks up 0.02~0.05W. It peaks at 10.74W under full load (LuxMark OpenCL stress test). Because the headless connector doesn't allow the IGPU to be used for anything other than HEVC and ME, I can't directly compare load power. Vega has hardware HEVC enabled, so playback's not touching the IGPU at all in either case for me.
     
    This all sounds as with headless the IGPU is stuck at full clock but is either on or completely off, while when it's fully enabled it's stepping its clocks and voltages but always on. Which is also kind of weird since if the IGPU is off it shouldn't have a clock speed at all.
     
    Were you running 10.14.4 or 10.14.5 when you took that screenshot? I see your CPU is stepping properly.
  8. Thanks
    hardcorehenry reacted to glasgood in Populating System Information - PCI via config.plist using Hackintool   
     
     
        Populating System Information - PCI via config.plist using Hackintool
     
     
     

     
     
    CREDITS
     
    Hackintool @headkaze
    Clover Configurator Mackie100
    LSPCI
     
     
     
     
    A quick guide on how to add device information into System Information - PCI with config.plist and Hackintool using Clover Configurator.  
     
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
     
     
     
     
     
    DOWNLOAD
     
    Hackintool PlistEdit Pro Clover Configurator  
     
     
     
    DOWNLOAD SAMPLE FILES
     
    config.plist ( includes Hackintool pcidevices.plist properties export  ) pcidevices.plist configArbitraryAndProperties.plist( previous config.plist using Arbitrary & Properties without use of Hackintool )  
     
     
     
    SYSTEM INFORMATION - PCI
     
    To my knowledge, there are a few different ways to populate the System Information PCI with device information:
     
    Those are:
     
    DSDT  SSDT Devices Arbitrary  ( config.plist ) Devices Properties ( config.plist ) Devices Arbitrary & Properties ( config.plist )  
    Initially,  my approach at populating System Information PCI was to add devices to Arbitrary & Properties. That approach required using other tools, some such as lspci or IOREgistryExplorer to obtain device addresses and paths, so involved some work. 
     
    Then 
     
    On the 23/04/2019 @headkaze released Hackintool v2.3.4 
     
    Hackintool now exports a file named pcidevices.plist, that file contains all the information needed to populate System Information PCI
     
    The easy, better method used to populate System Information PCI is by using Hackintool, see DEVICES - PROPERTIES - HACKINTOOL.
     
    I have documented inside DEVICES - ARBITRARY and DEVICES - PROPERTIES information on how to populate System Information PCI without using Hackintool for the sake of knowing other methods. 

     
     
     
     
    DEVICES - ARBITRARY
     
     
     
    DEVICES - PROPERTIES
     
     
     
     
     
    DEVICES - PROPERTIES - HACKINTOOL
     
     
    Run Hackintool, PCI tab and Update PCIIDs  

     
     
    Export PCI info  

     
     
     
    HOW TO SAVE pcidevices.plist Properties TO CONFIG.PLIST
     
     
    Download and install
     
    PlistEditPro  
    Right click and open pcidevices.plist with PlistEdit Pro  

     
     
    Mount EFI partition and drag and drop config.plist onto desktop. Right click, open with PlistEdit Pro  

     
     
    Place both PlistEdit Pro windows side by side:  

     
     
    Next, click Properties, copy. (pcidevices.plist)  

     
     
    Then, click on Devices (config.plist) so that it is highlighted and Paste As Child and Save.  
     
     
     
    Verify Properties has been added correctly to Devices inside config.plist using Clover Configurator or PlistEdit Pro  

     

     
     
    Place config.plist back inside EFI/Clover  

     
     
    Done!  
     
     
     
     
    Optionally you can make edits to Devices model string information, so "Cannon Lake PCH cVAs" in my config.plist has been renamed to " Realtek ALC1120-VB " 
     
     
    Open pcidevices.plist with Clover Configurator.
     

     
     


     
     
     
    Example of optional renames done with config.plist for Aorus Z390 Pro
     
    Before:
     

     
     
    After:
     
     

     
     
    Save renames and then add Devices / Properties to your config.plist.
     
     
    No need to rename device_type Bridge model name. 
     


     
     
     
    THANKS TO @headkaze  & @Hervé
     
    AND ALSO @steve3d for his post!
     
    config.plist
  9. Thanks
    hardcorehenry reacted to chris1111 in [pre-release] macOS Mojave 10.14.5   
    Fresh Install Or Update to 10.14.5 B2. ---  boot args  nv_disable=1
    After update You can use this program I build ➣ Fix Old NVIDIA macOS Mojave10.14.5-b2 with the recommandation of AsentientBot or do it manually
    If you use my program make sure to use it on the direct Mojave sytem 10.14.5 b2; do not use it from another SSD
  10. Like
    hardcorehenry got a reaction from yapan4 in Help installing Mojave on Xeon W-2175 and Asus WS C422 mobo   
    You could find this here. But you don't need this since you generated your own SSDT it contains plugin-type inside. You could try generate "cf-frequency-data" by this instruction and paste into your SSDT, so your CPU could reach lower frequencies. Then build or download CPUFriend.kext.
  11. Thanks
    hardcorehenry got a reaction from abhi.eternal in Is it worth it on a non-Metal supported card?   
    If you have multiboot, boot into your working macos system, enter mojave/System/Library/Frameworks remove OpenGL.framework and paste from this link. Then enter M/S/L/PrivateFrameworks and remove GPUSupport.framework and paste new one. Original frameworks best backup somewhere. Then boot your Mojave with boot flags -v -s. Next commands:  mount -uw /    cd /System/Library/Frameworks   chmod -R 755 OpenGL.framework   chown -R 0:0 OpenGL.framework  cd /System/Library/PrivateFrameworks  
    chmod -R 755 GPUSupport.framework  chown -R 0:0 GPUSupport.framework
    exit      Should work, mine works
  12. Thanks
  13. Like
    hardcorehenry reacted to Meowthra in Intel Haswell GT1 QE/CI Patcher [Sierra - Mojave]   
    Intel HD Graphics Haswell GT1 QE/CI Binary Patcher
     
    Patch Target:
    AppleIntelHD5000Graphics.kext
    AppleIntelHD5000GraphicsMTLDriver.bundle
    AppleIntelHD5000GraphicsVADriver.bundle
     
    Supported version:
    Sierra 10.12.6
    HighSierra 10.13.6
    Mojave 10.14 - 10.14.3
     
    usage:
    copy Lilu.kext & HSWGT1Fixup.kext To /Volumes/EFI/EFI/CLOVER/kexts/Other/
    fake deviceid:  0412 or 0a26 、0a2e、0d22、0d26
     
     
     
     
    HSWGT1Fixup-20190409.zip
  14. Thanks
    hardcorehenry reacted to Meowthra in Intel HD Graphics Haswell GT1 QE/CI 10.13   
    Haswell-UTL GT1 0x0a06
    OS Version: 10.13.6
     
    Install Opcode Emulator:
    https://www.insanelymac.com/forum/topic/329704-opcode-emulator-opemu-plug-in-project/
     
    QE/CI Patch:
    https://www.insanelymac.com/forum/topic/337900-intel-haswell-gt1-qeci-patcher-sierra-mojave/
     
    No Need to install WhateverGreen.
     
    Clover:
    rename GFX0 to IGPU
    <key>ACPI</key> <dict> <key>DSDT</key> <dict> <key>Patches</key> <array> <dict> <key>Comment</key> <string>Rename GFX0 to IGPU</string> <key>Find</key> <data>R0ZYMA==</data> <key>Replace</key> <data>SUdQVQ==</data> </dict> </array> </dict> </dict>  
    ig-platform-id: 0A160000
    fake deviceid:  0412
    <key>Devices</key> <dict> <key>Properties</key> <dict> <key>PciRoot(0)/Pci(0x02,0)</key> <dict> <key>device-id</key> <data> EgQAAA== </data> <key>AAPL,ig-platform-id</key> <data> AAAWCg== </data> </dict> </dict> </dict>  
    Turn off all graphics injections in Clover:
    <key>Graphics</key> <dict> <key>Inject</key> <dict> <key>ATI</key> <false/> <key>Intel</key> <false/> <key>NVidia</key> <false/> </dict> </dict>  
    AGPM:
    https://www.insanelymac.com/forum/topic/337145-agpm-patch/
     
     
    Reboot Computer
     

     
     
     
     
     
    clover-config.plist.tar.gz
  15. Thanks
    hardcorehenry got a reaction from fusion71au in [pre-release] macOS Mojave 10.14.4   
    Thanks Badruzeus for the link! BACK IN SADDLE !!! We'll see for how long Dosdude1 amazing job !!!
     
  16. Thanks
    hardcorehenry got a reaction from fusion71au in [pre-release] macOS Mojave 10.14.4   
    Thanks Badruzeus for the link! BACK IN SADDLE !!! We'll see for how long Dosdude1 amazing job !!!
     
  17. Thanks
    hardcorehenry reacted to Badruzeus in [pre-release] macOS Mojave 10.14.4   
    Accelerated graphics for non-Metal GPUs under 10.14.4 Beta, finally. Link (credit: dosdude1)
    Don't forget to make backup of vanilla System frameworks b4 replacing with patched versions. Enjoy!
  18. Thanks
    hardcorehenry got a reaction from fantomas1 in HD 4830 Mojave   
    This should help: https://www.insanelymac.com/forum/topic/296949-tuto-qe_ci-exotic-patch-via-clover/
  19. Thanks
    hardcorehenry reacted to Vlada. in [HOW TO] Modification of AMD FB + Clover injection   
    Mostly because of my partly success in making proper patch for all Radeon R9 270 Series GPU-s described in Radeon R9 270X FrameBuffer issue topic, but also because I see that many of you are still searching for some sort of help, I was coming to an idea to share some of my conclusions via this tutorial, in hope that it will resolve all of your current troubles. Once when you check this tutorial and you use it, you will understand better where is the problem and eventually, after you determinate what is what you will be able to fix it. It is important to say, that this tutorial is universal and it can be used for any AMD GPU.
     
    So lets start… 
     
    Modifying the AMD driver is one of the advanced hacker's technique, however, recently with clover in combination, the whole process can be reduced to a decent minimum. This tutorial aims to discover what specific digits in the code do and basically to educate so that everyone can make necessary modification alone and w/o further assistant. All you need is a bit of good will and some patience.
     
    ---------------------------------------------------------------------------------------------------------
     
    Extracting ROM file - Step 1 involves extraction of the original ROM file from your graphics card. This could be done from Windows by applications such as GPU-Z or some other similar, or from Mac OS X via DPCIManager application. Extracted ROM file you’ll need to save and then switch again in your Mac OS X.
     
    ---------------------------------------------------------------------------------------------------------
     
    Finding proper FB - Step 2 involves finding proper frame buffer that can be used by your GPU. In order to do this properly, we will need a terminal and corresponding ATI FrameBuffers script. We need this one to extract FB code inside AMDXXXXControllers.kexts. 
     
    Download ATI FrameBuffers php scripts by Pavo. Unpack the zip file on the desktop, then switch to terminal. Type php then simply drag the script in the terminal and press enter.
     
    What you’ll get is a long series of codes together with the exact names of the frame buffers inside certain AMD Controller kexts.
     
    Although by using this patching method we can modified any FB, it is recommended that you find the proper one for your GPU, which might already work with your card. The point with this is to locate those that contain the same number of connectors, so per example:   My GPU has 4 connectors: 2xDVI, 1xHDMI and 1xDP  -  so this means that I need to use FB with 4 connectors.   In the AMD personality dump file, just under the first line with FB name, we can find info that we need.   Personality: Futomaki ConnectorInfo count in decimal: 4   So this means that I should check those FB-s first.    Copy the code from the terminal in the Text Editor and save it on the desktop. Then take a look carefully extracted code, and write all frame buffers from the AMD Controller kext that drives your video card. For example, Radeon R9 270X that I’m using, is driven by AMD7000Controller.kext which containing the following list of frame buffers: MaguroS, Maguro, KaniS, Kani, Junsai, IkuraS, Ikura, OPM, Hamachi, Futomaki, Gari, Ebi, Dashimaki, Chutoro, Buri, Aji. For Radeon 6850HD it is necessary to look at the list of FB extracted from AMD6000Controller.kext, etc. ...
     
    Now that you have the names of FB-s you will need to determine which of them your card can use. The simplest way of doing this is Clover, although it is possible to do the same thing with Chameleon boot loader, but I'll be focusing exclusively this time on Clover.
     
    So open Clover Configurator and in the Graphics section of the FB Name field, type the first FB from your list. Then restart computer and reboot again in OS X. If all goes well, your graphics will work immediately (with or without GL quartz enabled), however, there are two more situations that may occur.
     
    First one is a situation where you will get a black screen, but the monitor will stays on. This also means that assigned FB works, but the connectors code inside dedicated AMD Controller kext is mismatched. In this situation pressing the ALT+CMD+Eject buttons on Apple keyboards and WIN+ALT+F12 on PC keyboards will simply sleep your computer. After waking from sleep your computer will activate the screen again. Basically, this is the one of the most common situation which requires further patching.
     
    In all other situations, most likely your monitor will automatically be switched off. This means that the assigned FB does not work, or another word that is not compatible with your GPU. In this situation my recommendation would be that you simply restart your computer. The best way to do that is to implement the software restart by pressing CTRL+CMD+Eject buttons on Apple keyboards or for PC keyboards that would be CRTL+ALT+F12, after which the computer will just restart immediately.
     
    By modifying Clover Boot options from its menu, where you can rename assigned FB or simply remove all enabled Graphics options that you are previously assigned, you will be able to re-boot OS X normally again. Basically, this is the part that will certainly take you some time before you discover which FB best suits to your card, but when you do this, you're ready for the next step.
     
    ---------------------------------------------------------------------------------------------------------
     
    FB Code Construction - Step 3 is the most important and involves modifying the original driver or more precisely, it considers changing hexadecimal values inside the driver that are defining the connector output signal from your graphic card.
     
    For this maneuver we will need correct values extracted from the existing ROM file, and that can be done through the two scripts: radeon_bios_decode  and redsock_bios_decoder scripts. It is necessary to use both because they are giving different results. Basically only with both results we can collect all the necessary data that we need.
     
    Scripts can be used in a similar way. You’ll need to open the terminal, drag the first script in a terminal then press once space, than type  <  than once space again and now drag your ROM file in the terminal and simply hit Enter. The obtained result will look something like this (example R9 270X)
     
    localhost:~ Vladimir$ /Users/Vladimir/Developer/Ati\ Workbench/AMD\ Graphics\ tool/Radeon\ BIOS\ decoders/radeon_bios_decode < /Users/Vladimir/Developer/Ati\ Workbench/AMD\ Graphics\ tool/AMD\ BIOS/Pitcairn.rom
     
    radeon_bios_decode will give the following result:


    ATOM BIOS Rom:   SubsystemVendorID: 0x148c SubsystemID: 0x2336   IOBaseAddress: 0x0000   Filename: E8B11LCC.HHW   BIOS Bootup Message: C63101 CURACAO XT 2GB GDDR5 64Mx32 E8B11LCC.HHW 2013 PCI ID 1002: 6810 Connector at index 0   Type [offset 43522]: DisplayPort (10)   Encoder [offset 43526]: INTERNAL_UNIPHY2 (0x21)   i2cid [offset 43632]: 0x90, OSX senseid: 0x1 Connector at index 1   Type [offset 43532]: HDMI-A (11)   Encoder [offset 43536]: INTERNAL_UNIPHY2 (0x21)   i2cid [offset 43659]: 0x92, OSX senseid: 0x3 Connector at index 2   Type [offset 43542]: DVI-I (2)   Encoder [offset 43546]: INTERNAL_UNIPHY (0x1e)   i2cid [offset 43696]: 0x95, OSX senseid: 0x6 Connector at index 3   Type [offset 43552]: DVI-I (2)   Encoder [offset 43556]: INTERNAL_KLDSCP_DAC1 (0x15)   i2cid [offset 43696]: 0x95, OSX senseid: 0x6 Connector at index 4   Type [offset 43562]: DVI-D (3)   Encoder [offset 43566]: INTERNAL_UNIPHY1 (0x20)   i2cid [offset 43723]: 0x94, OSX senseid: 0x5 redsock_bios_decoder will give the following result:
    E8B11LCC.HHW: C63101 CURACAO XT 2GB GDDR5 64Mx32 E8B11LCC.HHW 2013 Subsystem Vendor ID: 148c   Subsystem ID: 2336 Object Header Structure Size: 355 Connector Object Table Offset: 48 Router Table Object Offset: 0 Encoder Object Table Offset: fd Display Path Table Offset: 12 Connector Object Id [19] which is [DISPLAY_PORT]   encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false Connector Object Id [12] which is [HDMI_TYPE_A]   encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true Connector Object Id [2] which is [DVI_I]   encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false Connector Object Id [2] which is [DVI_I]   encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 0x10 enc)] linkb: false Connector Object Id [4] which is [DVI_D]   encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false Copy and paste the results into Text Editor and save it. Then extract the following items from both results like in this example by following the color order:
     
    01 [DISPLAY_PORT] 
    redsock_bios_decoder :
    enc obj 0x21 transmitter 0x12 dual link 0x2 enc 0x4
    radeon_bios_decode:
    Connector at index 0
    Type [@offset 43522]: DisplayPort (10)
    Encoder [@offset 43526]: INTERNAL_UNIPHY2 (0x21) 
    i2cid [@offset 43632]: 0x90, OSX senseid: 0x1
     
    Code construction: 12 04 01 01
     
    02 [HDMI_TYPE_A] 
    redsock_bios_decoder :
    enc obj 0x21 transmitter 0x22 dual link 0x2 enc 0x5
    radeon_bios_decode:
    Connector at index 1
    Type [@offset 43532]: HDMI-A (11)
    Encoder [@offset 43536]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 43659]: 0x92, OSX senseid: 0x3
     
    Code construction: 22 05 02 03
     
    03 [DVI_I] 
    redsock_bios_decoder :
    enc obj 0x1e transmitter 0x10 dual link 0x0 enc 0x0
    radeon_bios_decode:
    Connector at index 2
    Type [@offset 43542]: DVI-I (2)
    Encoder [@offset 43546]: INTERNAL_UNIPHY (0x1e)
    i2cid [@offset 43696]: 0x95, OSX senseid: 0x6
     
    Code construction: 10 00 03 06
     
    04 [DVI_I] 
    redsock_bios_decoder :
    enc obj 0x15 transmitter 0x00 enc 0x10
    radeon_bios_decode:
    Connector at index 3
    Type [@offset 43552]: DVI-I (2)
    Encoder [@offset 43556]: INTERNAL_KLDSCP_DAC1 (0x15)
    i2cid [@offset 43696]: 0x95, OSX senseid: 0x6
     
    Code construction: 00 10 04 06
     
    05 [DVI_D] 
    redsock_bios_decoder :
    enc obj 0x20 transmitter 0x11 dual link 0x1 enc 0x2
    radeon_bios_decode:
    Connector at index 4
    Type [@offset 43562]: DVI-D (3)
    Encoder [@offset 43566]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 43723]: 0x94, OSX senseid: 0x5
     
    Code construction: 11 02 05 05
     
    Now let's look at the original source code extracted from the original driver for the FB Futomaki that activates R9 270X:
     
    Personality: Futomaki 10.9.2
    ConnectorInfo count in decimal: 4
    Disk offset in decimal 811280
    00 04 00 00 04 03 00 00 00 01 01 01 12 04 04 01
    00 04 00 00 04 03 00 00 00 01 02 01 22 05 05 02
    04 00 00 00 14 02 00 00 00 01 03 00 00 00 06 06
    00 08 00 00 04 02 00 00 00 01 04 00 11 02 01 03
     
     
    Each row represents definition for the one connector. In this case we have 4 of them.
    In order to better understand what is what I will separate first line from the code as an example:
     
    00 04 00 00 04 03 00 00 00 01 01 01 12 04 04 01
     
    Divided into segments:
     
    00 04 00 00 / Connector type
    04 03 00 00 / ATY, ControlFlags
    00 01 01 01 / Features
    12 / Transmitter
    04 / Encoder
    04 / hotplug ID
    01 / Sense ID
     
    What this means?
     
    First I’ll put the list of all types of connectors:
     
    Connector Type LVDS 0 × 00000002 = 02 00 00 00 Note: Laptop Monitor
    Connector Type DVIDL 0 × 00000004 = 04 00 00 00 Note: Dual Link DVI
    Connector Type VGA 0 × 00000010 = 10 00 00 00
    Connector Type SV 0 × 00000080 = 08 00 00 00
    Connector Type DP = 0 × 00000400 00 04 00 00
    Connector Type HDMI 0 × 00000800 = 00 08 00 00
    Connector Type DVISL 0 × 00000200 = 00 02 00 00 Note: Single Link DVI
     
    So now it's clear that first 4 pair of numbers represents the type of connector in the code:
     
    00 04 00 00 04 03 00 00 00 01 01 01 12 04 04 01 / Display Port
    00 04 00 00 04 03 00 00 00 01 02 01 22 05 05 02 / Display Port
    04 00 00 00 14 02 00 00 00 01 03 00 00 00 06 06 / DVI-D
    00 08 00 00 04 02 00 00 00 01 04 00 11 02 01 03 / HDMI
     
    Constructed FB is made this way, mostly due to the fact that Apple monitors are using DP as the primary connection and then we have beneath in order all others.
     
    In the vast majority of cases there, you will need to change only the last 4 digits, which are also the most important for proper connector injection, or eventually you will need to assign further a DVI-I (SL) connection for your monitor. In this case, it is basically a mandatory thing mostly because the original code does not have it. Therefore, we will need to change the second row from DP into DVI-SL.  The initial input of first four pairs of digits we will need to change from 00 04 00 00 to 00 02 00 00, which is the proper input for DVI-SL.
     
    00 02 00 00
     
    Then follows the explanation of the second set of digits:
     
    0×0002 : LVDS               ControlFlag : 0×0040 and 0×0100
    0×0004 : DVI                  ControlFlag : 0×0016, 0×0014, and 0×214
    0×0010 : VGA                ControlFlag : 0×0010
    0×0080 : S-Video           ControlFlag : 0×0002
    0×0200 : DVI                  ControlFlag : 0×0014, 0×0214, and 0×0204
    0×0400 : DisplayPort     ControlFlag : 0×0100, 0×0104, 0×0304, 0×0604, and 0×0400
    0×0800 : HDMI               ControlFlag : 0×0200 
    0×1000 : DVI                   ControlFlag : 0×0016
     
    Translated in to:
     
    Connector Type DP 04 03 00 00
    Connector Type DP 04 03 00 00
    Connector Type HDMI 00 02 00 00
    Connector Type DVIDL 14 02 00 00
    Connector Type_DVISL C 04 02 00 00
    Connector Type_DVISL 04 02 00 00
     
    From this example it is clear that in the modified row we should add further 04 02 00 00 according to the matched connector name. So after first 00 02 00 00 we will need to add the following 4 pair of digits 04 02 00 00 and all together it looks like this:
     
    00 02 00 00 04 02 00 00
     
    The following is the part that relates to the ATY,Features (hex digits):
     
    The first pair of numbers:
     
    0 × 0002: LVDS * 0x09 = 09
    0 × 0004: DVI 0x00 = 00
    0 × 0010: VGA 0x00 = 00
    0 × 0080: S-Video 0x04 = 04
    0 × 0200: DVI 0x00 = 00
    0 × 0400: Display Port 0 × 00 = 00
    0 × 0800: HDMI 0 × 00 = 00
    0 × 1000: DVI 0x00 = 00
     
    The second pair of numbers:
     
    Use Internal * 0 × 01 = 01
    Use RGB YUV On 0 × 04 = 04
    Use Backlight * 0 × 08 = 08
    Backlight Inverted 0 × 10 = 10
    Use Clamshell 0 × 20 = 20
     
    A third pair of numbers represents the order of connector activation
     
    01 = first active connector
    02 = second active connector
    03 = third active connector
    etc. ...
     
    I suggest that you mark as first, connector raw that your monitor will use it as primary. 
     
    The fourth two numbers are listed as Unknown:
     
    You can leave the same like in the original code (usually stands 01 or 00) or simply replace it with zeros - 00. I will in this demonstration left the original values:
     
    Finally, we add the following digits:
     
    00 02 00 00 04 02 00 00 00 01 01 01
     
    Last four digits simply rewrite from the above constructed table:
     
    03 [DVI_I] 
    redsock_bios_decoder :
    enc obj 0x1e transmitter 0x10 dual link 0x0 enc 0x0
    radeon_bios_decode:
    Connector at index 2
    Type [@offset 43542]: DVI-I (2)
    Encoder [@offset 43546]: INTERNAL_UNIPHY (0x1e)
    i2cid [@offset 43696]: 0x95, OSX senseid: 0x6
     
    Code construction: 10 00 03 06
     
    I will explain in short, what is what here, but that would not be important much anyway. The only one thing important it is the order of digits that we need to use and the patch will work. So here it is:
     
    Transmitter - the first two digits
    Encoder - the second two digits
    Hotplug ID - third two digits
    Sense ID - Fourth two digits
     
    ---------------------------------------------------------------------------------------------
     
    So that was detail explanation, however, we can simplify this procedure by using next basic code schematics per connector:
     
    LVDS / 02000000 40000000 08010000 / + (add your code construction)
    VGA / 10000000 10000000 00010000 / + (add your code construction)
    DP / 00040000 04030000 00010000 / + (add your code construction)
    DVI-SL / 00020000 04020000 00010000 /  + (add your code construction)
    DVI-DL / 04000000 14020000 00010000 /  + (add your code construction)
    HDMI / 00080000 00020000 00010000 / + (add your code construction)
     
    As you can see, all you have to do is to add the last 8 digits which you need to construct by yourself (see example above)
     
    Sierra is using additional digits in the code, so you'll need to add extra zero segments in front of your code construction and after it. Check example bellow:
     
    00080000 00020000 00010000 00000000 + (add your code construction) 00000000
     
    -----------------------------------------------------------------------------------------------
     
    So this is it, and here we have final construction.
     
    00 02 00 00 04 02 00 00 00 01 01 01 10 00 03 06
     
    Except for the above modification, like I said, in most cases you will need to replace only the last four values:
     
    Original code:
    00 04 00 00 04 03 00 00 00 01 01 01 12 04 04 01 - DP
    00 04 00 00 04 03 00 00 00 01 02 01 22 05 05 02 - DP
    04 00 00 00 14 02 00 00 00 01 03 00 00 00 06 06 - DVI-DL
    00 08 00 00 04 02 00 00 00 01 04 00 11 02 01 03 - HDMI
     
    Modified code:
     
    00 04 00 00 04 03 00 00 00 01 02 01 12 04 01 01 - DP
    00 02 00 00 04 02 00 00 00 01 01 01 10 00 03 06 - DVI-I
    04 00 00 00 14 02 00 00 00 01 03 00 11 02 05 05 - DVI-D
    00 08 00 00 00 02 00 00 00 01 04 00 22 05 02 03 - HDMI
     
     
    With this, the whole thing is completed and you are now ready for the final step.
     
    ---------------------------------------------------------------------------------------------------------
     
    Clover Injection - Step 4 involves injection of the code and its activation.
     
    This can be done in several ways: kext patching by some hex tool or making the Binary patch, however, none of these methods are sufficiently elegant, mostly because in this case we will need to patch driver every time when we make system upgrade.
     
    Luckily we have a Clover, which is able to apply such modification "on the fly" which is ideal concept, or other words, this method represents a permanent solution that does not depend from the future system upgrades.
     
    Open Clover Configurator, and go to the Kernel & Kext patches. Click on the plus sign in the KextsToPatch field :
     

     
    Then type the name of the kext you want to patch, in this case this is AMD7000Controller. In the next field, enter the original hex code extracted from the driver, and next to it write a new one that you have created. Eventually, you can add notes in the next field (par example: Connectors patch) and that was it. You are ready for testing.
     

     
    If you are all done properly everything will work from the first attempt. If not you will need to work further on it. But if something goes wrong, you can always change the name of the FB or simply to uncheck the options that you have activated in the Graphics panel and thus everything will be back to its initial state.
    Decoders.zip
    ATI-framebuffers.zip
  20. Thanks
    hardcorehenry got a reaction from fantomas1 in HD 4830 Mojave   
    This should help: https://www.insanelymac.com/forum/topic/296949-tuto-qe_ci-exotic-patch-via-clover/
  21. Like
    hardcorehenry reacted to Badruzeus in [pre-release] macOS Mojave 10.14.4   
    Did Apple new security rules (CSR/SIP related) prevent unsigned binaries to be loaded on this new 10.14.4 kernel?
    Any of you can check for it, probably.. need an update? I realized that also need to re-run: $ sudo spctl --master-disable ..once updated to this build, though previously (on 10.14.3) is disabled. Thanks.
  22. Thanks
    hardcorehenry got a reaction from Badruzeus in [pre-release] macOS Mojave 10.14.4   
    csrutil status returns disabled. I'm not able check second command because lack of command line in Mojave. As wern apfel  discovered in this topic https://www.insanelymac.com/forum/topic/303186-how-to-modification-of-amd-fb-clover-injection/?page=16 ,  in case of non metal Radeons, way of 10.14.4 reads connectors might be the culprit.
     
  23. Like
    hardcorehenry reacted to fantomas1 in [Tuto] QE_CI Exotic Patch via Clover   
    -----------------------------
    Mise à jour 12/07/2018
    -----------------------------
     
    La sortie de macOS 10.14 Beta m'oblige à mettre ce topic à jour. Plus de détails dans ce post.
     

     

     
    -----------------------------
    Mise à jour 09/06/2017
     
    -----------------------------
     
    La sortie de macOS 10.13 Beta m'oblige à mettre ce topic à jour. Plus de détails dans ce post.
     

     
     
     
    -----------------------------
    Mise à jour 15/06/2016
    -----------------------------
     
    Une petite mise à jour du topic pour confirmer le bon fonctionnement du patch à la volé de Clover (r3561) avec macOS Sierra.
     

     
     
     
    -----------------------------
    Mise à jour 24/08/2015
    -----------------------------
     
    ok, très bien,
     
    comme pour la HD6770, la nouvelle méthode du patch à la volé est de nouveau fonctionnel et avec les dernières versions de Clover.
     
    pour ma part, je suis sur El Capitan DB7 et Clover r3259
     

     
     
    par contre, je suis toujours obligé de m’aider de l’astuce avec FakeSMC pour que mes kexts soient toujours chargés, mais au moins cela marche.   
     
     
     
     
    et pour config.plist, cela donne ça :
     

     
     
    ceci est juste un exemple avec ma HD4830, il va de soi que vous devez mettre Device-ID de votre carte graphique !!!
     
     
     
     
     
    Salut à tou(te)s
     
    Comme certain(e)s le savent, les cartes graphiques dites "Exotiques" ne sont pas supportés par le système d'exploitation d'Apple.
    En sus d'ajouter l'identifient de la carte graphique (Device ID) dans l'Info.plist du ou des kexts concernés, il faut aussi interagir sur la partie "binaire" du kext par le biais du "patching".
     
    Dans notre cas, les cartes graphiques exotiques sont les cartes AMD (anciennement ATI) de la série HD 48xx, et plus précisément les HD 4830, HD4850, HD4870x2 et HD4890.*
     
    Donc le but est de faire fonctionner ces cartes graphiques de manière stable et fluide en activant QE_CI, chose nécessaire pour en profiter pleinement du système d'exploitation.
     
    * Juste avant de commencer, vous l'avez peut-être remarqué, la HD4870 n'est pas sur la liste suscitée et pour cause c'est que cette carte graphique est nativement supportée par le système d'exploitation d'Apple. Son Device ID est 0x94401002 que vous pouvez trouvé dans l'Info.plist des kexts concernés et c'est celui-ci que nous allons utiliser afin de le remplacer par le Device ID de notre carte graphique.
     
    ** Ce tuto est fait pour fonctionner sous OS X Mavericks, mais il doit fonctionner aussi avec les autres. La seule chose différente c'est l'adresse binaire à patcher.    
     
     
    Très bien, comme le titre le suggère, nous allons voir comment faire reconnaître ces cartes graphiques sous Clover et obtenir par la même un QE_CI activé et parfaitement fonctionnelle.
     
    Je vais utiliser ma Sapphire HD4830 512 MB GDDR3 PCI-E (comme cobaye    ) pour ce test et qui a pour Device ID 0x944c1002.
     
    Pour que ce test réussisse, nous allons donc utiliser ces 2 kexts, à savoir AMD4800Controller.kext (pour la partie QE) et ATIRadeonX2000.kext (pour la partie CI) et allons ajouter notre Device ID dans l'Info.plist. via le tweak "KernelAndKextPatches"
     
    Donc les valeurs à entrer dans notre config.plist sont celle-ci :
    <key>KernelAndKextPatches</key>     <array>         <dict>             <key>Name</key>             <string>AMD4800Controller</string>             <key>InfoPlistPatch</key>             <string>Yes</string>             <key>Find</key>             <string>0x94401002</string>             <key>Replace</key>             <string>0x944C1002</string>         </dict>         <dict>             <key>Name</key>             <string>ATIRadeonX2000</string>             <key>InfoPlistPatch</key>             <string>Yes</string>             <key>Find</key>             <string>0x94401002</string>             <key>Replace</key>             <string>0x944C1002</string>         </dict>     </array> Comme vous pouvez le voir, la clé "InfoPlistPatch" sert à injecter notre Device ID "uniquement" dans Info.plist, sans y toucher à la partie "binaire" de nos kexts. La clé "Find" a pour fonction de trouver le Device ID que l'on veut remplacer par le notre en utilisant la clé "Replace".
     
    Très bien, maintenant comme nous l'avons dit au début de ce tutoriel, ajouter notre Device ID n'est pas suffisant pour faire fonctionner pleinement notre carte graphique, il faut encore interagir sur la partie "binaire" de nos kexts. Dans notre cas, il va falloir agir uniquement sur un kext, çàd sur ATIRadeonX2000.kext et plus particulièrement sur ATIRadeonX2000.kext/Contents/MacOS/ATIRadeonX2000
     
    Et pour cela, nous allons faire comme ceci :
    <key>KextsToPatch</key> <array> <dict>     <key>Name</key>     <string>ATIRadeonX2000</string>     <key>Find</key>     <data>0F8394010000</data>     <key>Replace</key>     <data>909090909090</data> </dict> </array> Là nous pouvons voir que la clé "InfoPlistPatch" n'est pas utilisée et donc ces valeurs n'auront aucun effet sur l'Info.plist mais agiront uniquement au niveau de la partie "binaire". 
     
    Et voici les valeurs en leur forme complète que vous devrez ajouter dans votre config.plist
    <key>KernelAndKextPatches</key>     <array>         <dict>             <key>Name</key>             <string>AMD4800Controller</string>             <key>InfoPlistPatch</key>             <string>Yes</string>             <key>Find</key>             <string>0x94401002</string>             <key>Replace</key>             <string>0x944C1002</string>         </dict>         <dict>             <key>Name</key>             <string>ATIRadeonX2000</string>             <key>InfoPlistPatch</key>             <string>Yes</string>             <key>Find</key>             <string>0x94401002</string>             <key>Replace</key>             <string>0x944C1002</string>         </dict>         <dict>             <key>Name</key>             <string>ATIRadeonX2000</string>             <key>Find</key>             <data>0F8394010000</data>             <key>Replace</key>             <data>909090909090</data>        </dict>     </array> Très bien, maintenant il ne nous reste plus qu'à autoriser l'injection des kexts, sans quoi le patch ne fonctionnera pas. Et nous allons le faire via le tweak "InjectKexts" comme ceci :
    <key>SystemParameters</key> --> clé principale <dict>       <key>InjectSystemID</key>       <true/>       <key>InjectKexts</key> --> sous clé       <string>Yes</string> </dict>  
     
    Si certain(e)s d'entre vous préfèrent utiliser le logiciel "Clover Configurator" pour plus de facilité, voici comment entrer ces valeurs :
     
    Allez sur l'onglet "Kernel And Kext Patches" et faites comme ceci :
     
     
     
    *Ne faites pas attention sur le majuscule/minuscule, cela ne fait aucune différence
     
     
    Et pour injecter les kexts, aller sur l'onglet "System Parameters" et mettez l'option Inject Kexts sur Yes comme ceci :
     

     
     
    Voilà, vous n'avez plus qu'à enregistrer les ajustements, redémarrer votre pc et apprécier le résultat.
     
     
    MAIS ... seulement voilà ... il y a un problème ... 
     
    Quoi ? 
     
    Initialement, les kexts ne sont pas présents dans le kernelcache à cause de "OSBundleRequired=Safe Boot" (ils ne sont pas chargés en local par défaut mais en mode sans échec) et donc le patchage "à la volé" (on the fly) ne fonctionnera pas.
     
    Donc quoi, tout ça pour rien ?
     
    Non, bien-sûr, voici l'astuce pour remédier à cela :
     
    Dans un premier temps, il vous faut booter l'OS sans kernelcache. Si vous utiliser Clover Configurator, il vous suffit juste de cocher l'option "No Caches" dans l'onglet "System and Parameters" ou bien vous le faites directement dans votre config.plist :
    <key>SystemParameters</key> <dict>       <key>InjectSystemID</key>       <true/>       <key>InjectKexts</key>       <string>Yes</string>       <key>NoCaches</key>       <true/> </dict> Ceci aura donc pour effet de bloquer kernelcache et obliger boot.efi de charger le kernel et les kexts séparément. Clover et FSInject vont ensuite intercepter tous les chargements des kexts par boot.efi et changer "OSBundleRequired=Safe Boot" en "OSBundleRequired=Root" à la volé (on the fly) et forceront boot .efi à charger les kexts. Et ensuite dans un second temps, Clover va patcher l'Info.plist de ces deux kexts et la partie binaire de ATIRadeonX2000, kernel va les charger et ils seront rattachés à votre carte graphique.
     
    Une fois ceci fait (donc les kexts utilisés), il vous suffit de faire sudo touch /System/Library/Extensions. Ceci créera un nouveau kernelcache qui cette fois-ci contiendra vos kexts utilisés. Ensuite il ne vous reste plus qu'à redémarrer normalement (en décochant l'option No Caches dans Clover Configurator) et le patch fonctionnera à merveille.
     
     
    Oui, mais ... là aussi ...
     
    Quoi encore ?
     
    Seulement voilà, pour une raison ou une autre, il peut arriver que kernelcache se reconstruit tout seul et le patch "à la volé" ne fonctionne plus.
     
    Alors je fais quoi moi en attendant ?
     
    L'astuce la plus efficace pour le moment est d'injecter les infos de vos kexts à l'intérieur de l'Info.plist de FakeSMC.kext comme des IOKitPersonalities additionnels.
     
    ????Kézako????
     
    Ces infos vous les trouverez dans l'Info.plist de ces 2 kexts, sous IOKitPersonalities. Les voici :
     
    Pour AMD4800Controller.kext
    <key>Controller</key> <dict>         <key>ATY,Cardinal</key>         <dict>                 <key>aty_config</key>                 <dict>                         <key>CFG_NO_PP</key>                         <true/>                 </dict>          </dict>          <key>CFBundleIdentifier</key>          <string>com.apple.kext.AMD4800Controller</string>          <key>IOClass</key>          <string>AMD4800Controller</string>          <key>IOMatchCategory</key>          <string>IOFramebuffer</string>          <key>IOName</key>          <string>AMD4800Controller</string>          <key>IOPCIMatch</key>          <string>0x94401002 0x944a1002</string>          <key>IOProbeScore</key>          <integer>65050</integer>          <key>IOProviderClass</key>          <string>IOPCIDevice</string>         <key>aty_config</key>          <dict>                 <key>CFG_NO_PP</key>                  <false/>                  <key>CFG_PAA</key>                  <integer>0</integer>                  <key>CFG_USE_USCN</key>                  <false/>          </dict>          <key>aty_properties</key>          <dict>                  <key>PP_GFXClockGatingEnabled</key>                  <integer>1</integer>          </dict> </dict> Et pour ATIRadeonX2000.kext
    <key>ATIRadeonX2000</key> <dict>         <key>ATIEnableWideBlitSupport</key>         <true/> <key>ATIUseTearingWideBlit</key> <false/> <key>CFBundleIdentifier</key> <string>com.apple.ATIRadeonX2000</string> <key>GpuDebugPolicy</key> <integer>0</integer> <key>IOCFPlugInTypes</key> <dict> <key>ACCF0000-0000-0000-0000-000a2789904e</key> <string>ATIRadeonX2000GA.plugin</string> </dict> <key>IOClass</key> <string>ATIRadeonX2000</string> <key>IODVDBundleName</key> <string>ATIRadeonX2000VADriver</string> <key>IOKitDebug</key> <integer>0</integer> <key>IOMatchCategory</key> <string>IOAccelerator</string> <key>IOPCIMatch</key> <string>0x94001002 0x94011002 0x94021002 0x94031002 0x95811002 0x95831002 0x95881002 0x94c81002 0x94c91002 0x95001002 0x95011002 0x95051002 0x95071002 0x95041002 0x95061002 0x95981002 0x94881002 0x95991002 0x95911002 0x95931002 0x94401002 0x94421002 0x944A1002 0x945A1002 0x94901002 0x949E1002 0x94801002 0x95401002 0x95411002 0x954E1002 0x954F1002 0x95521002 0x95531002 0x94a01002</string> <key>IOProviderClass</key> <string>IOPCIDevice</string> <key>IOSourceVersion</key> <string>8.24.11</string> <key>IOVARendererID</key> <integer>16908288</integer> <key>sensor-properties</key> <array> <dict> <key>device_type</key> <data> Z3B1LXNlbnNvcg== </data> <key>location</key> <string>GPU</string> <key>name</key> <string>gpu-sensor</string> <key>polling-period</key> <data> AAAAAQAAAAA= </data> <key>reg</key> <data> AAAAAg== </data> <key>sample-period</key> <data> AAAAAACYmAA= </data> <key>sensor-id</key> <data> AAAABg== </data> <key>version</key> <data> AAAAAg== </data> <key>zone</key> <data> AAAAAg== </data> </dict> </array </dict>  
    Et voici donc l'Info.plist de FakeSMC.kext dans son intégrité, vous pouvez jeter un oeil, histoire de voir à quoi cela ressemble :
     
    FakeSMC_Info.plist.zip
     
    Et pour les moins casse-têtes, voici FakeSMC.kext modifié que j'utilise pour charger les 2 kexts :
     
    FakeSMC.kext.zip
     
     
    Voilà, avec ceci, vous n'aurez plus besoin de savoir si oui ou non les kexts sont dans le kernelcache.
     
     
    Crédits attribués à :
     
    netkas  pour son incontournable QE_CI Exotic patch (même s'il n'importe plus son support)
     
    Slice  & co. pour leur bébé nommé Clover
     
    dmazar  pour son astuce avec FakeSMC.kext   (pour plus d'info, voir ici)
     
    duffs (rarement ici, plus sur le site de netkas) pour son astuce de comment patcher la partie binaire avec Clover, ce fût lors de la sortie de OS X Mavericks DP1
     
    nyolc8  pour le support de QE_CI Exotic patch pour Mavericks
     
    fantomas1  pour ......... pour ... quoi déjà ? Ah ben non ... non ... pour rien ...
  24. Like
    hardcorehenry got a reaction from Badruzeus in [pre-release] macOS Mojave 10.14.4   
    I can confirm it, there is a black screen on non-metal graphic card. I run Mojave on old ATI Radeon 4850 and till 10.14.3 all run well. Could you tell if the fresh install changed anything?
  25. Like
    hardcorehenry reacted to ellaosx in RTCMemoryFixup?   
    @lvs1974
     
    Is RTCMemoryFixup like clover's AppleRTC KextsToPatch to prevent cmos reset from happening?
×