Jump to content


Popular Content

Showing content with the highest reputation since 07/20/18 in all areas

  1. 2 points
    Requirements Pendrive 2.0 (>=8GB) "Install macOS Sierra app" (https://itunes.apple.com/de/app/macos-sierra/id1127487414?l=en)(Around 5GB) Working Mac Installing Clover to USB Get a USB 2.0 Pendrive (8GB and above) Before you can partition the USB, you must determine what the disk identifier is. With the USB plugged in to the computer, use 'diskutil list': In Terminal: diskutil list In my case, output: /dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *1.0 TB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_CoreStorage MacOS 500.4 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s5 4: Microsoft Basic Data DATA 498.8 GB disk0s4 /dev/disk1 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: Pendrive *8.0 GB disk1 As you can see my pendrive is available at /dev/disk1 (check yours). Now we are going to create partitions, In Terminal: diskutil partitionDisk /dev/disk1 1 GPT HFS+J "install_macos" R Output: Started partitioning on disk1 Unmounting disk Creating the partition map Waiting for the disks to reappear Formatting disk1s2 as Mac OS Extended (Journaled) with name install_osx Initialized /dev/rdisk1s2 as a 7 GB case-insensitive HFS Plus volume with a 8192k journal Mounting disk Finished partitioning on disk1 /dev/disk1 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *8.0 GB disk1 1: EFI EFI 209.7 MB disk1s1 2: Apple_HFS install_macos 7.7 GB disk1s2 Now as you can see partitions are created and your pendrive is ready to install clover. Download the Clover installer. Current builds are available on sourceforge: http://sourceforge.net/projects/cloverefiboot After Downloading the Clover installer, Install it to the Target "install_macos" partition using "Change Install Location". Select "Customize". Check "Install for UEFI booting only", "Install Clover in the ESP" will automatically selected. Check "BGM" from Themes. Check "AptioMemoryFix.efi", "EmuVariableUefi-64.efi", "OsxFatBinaryDrv-64.efi" from Drivers64UEFI. After making your selections, Click "Install". Finally, one more EFI driver is needed, HFSPlus.efi: Download from : https://github.com/JrCs/CloverGrowerPro/raw/master/Files/HFSPlus/X64/HFSPlus.efi. Copy to /EFI/Clover/drivers64UEFI. Kext Setup Remove all folders from EFI/CLOVER/kexts/ except 'Other'. Now Download These, FakeSMC.kext: https://github.com/RehabMan/OS-X-FakeSMC-kozlek VoodooPS2Controller.kext: https://github.com/RehabMan/OS-X-Voodoo-PS2-Controller USBInjectAll.kext: https://github.com/RehabMan/OS-X-USB-Inject-All Lilu.kext: https://github.com/vit9696/Lilu IntelGraphicsFixup.kext: https://github.com/lvs1974/IntelGraphicsFixup RealtekRTL8100.kext: https://www.insanelymac.com/forum/files/file/259-realtekrtl8100-binary/ Setting config.plist Download it from the attachments, Unzip and replace EFI/CLOVER/config.plist Building the MacOS Installer In Terminal : sudo "/Applications/Install macOS Sierra.app/Contents/Resources/createinstallmedia" --volume /Volumes/install_macos --applicationpath "/Applications/Install macOS Sierra.app" --nointeraction sudo diskutil rename "Install macOS Sierra" install_macos Now your Bootable USB is ready to install. Turn off your Laptop. Installing Make sure you have adequate bios settings Then Follow: Power on laptop with pendrive connected to it. Continuously press "ESC". Select "Boot From USB" (i.e. F9) and select pendrive from the menu. Now it boots into Clover, with left-right arrow, select options. Select "Graphics Injector Menu". Under "Inject Intel" select "FakeID" and replace "0x00000000" to "0x12345678". Now return to main screen and select "install_macos". When grey screen comes, select DiskUtility. Format whole Hard Disk as "Mac Os Extended (Journaled)" with Name as "MacOS" Now quit DiskUtility and click "Install Mac OS Sierra" and select the newly created partition in previous step. Now installer will begin installing files (~15-20mins) and the restart. After restart again boot into clover(Follow Step 1-5) and again select "install_macos". Now Install screen will appear and continue installation. This time installer will install files to your target partition and create Recovery HD partition. Later on restarts. After restart again boot into clover(Follow Step 1-5) and again select "MacOS". If everything goes well, you will finish up the installation process and arrive at the Mac OS Sierra desktop. Install clover to hdd. Congratulations!! Your Installation is complete!! Now you need to fix things one by one. Will Provide fixes when I get time.
  2. 1 point
    Heya! After a lot of playing around with ASUS acpi tables I have finally come up with a SSDT that will work nearly on all ASUS laptops (Haswell or above) for reading FAN RPM, CPU TEMP and also Custom Controlling FAN. I do not have hardware below Haswell so can't test. If someone get's it working using this SSDT on machines prior to haswell. Let me and others know. Background Info: The system FAN is generally controlled by the embedded controller (EC) but there are methods in ACPI that can let you read and control your system FAN. As you might know, ASUS machines are the best for hackintosh as they have the best written ACPI code. Like, if it was HP instead of ASUS you would have to acquire a mutex object. Write a value to the EC and then release the object. But in ASUS machines there is a method that takes arguments and does this job automatically. Still. There are multiple methods in our DSDT that allow us to read and control system FAN. For example to read FAN speed, there are two ways. If you observe, the FAN speed is at offset 0x93 of EC (Use RWEverything to find out) So, when we search for Offset 0x93 in the DSDT we get a result like this: Offset (0x93), TAH0, 16, // TAH0 stands for FAN1 TAH1, 16, // TAH1 stands for FAN2 (in case your laptop has 2 fans) TSTP, 16, // TSTP stores current fan value in some bytes Note: Instead of using RWEverything if you have a look at method TACH you can see that it stores the values in TAH0 and TAH1 depending upon the Args supplied. So, searching for TAH0 or TAH1 we can see that they are located at offset 0x93 So, now we can read the value from these registers in some units and then we will have to use some formula to convert that unit to RPM. In order to find that formula, if you have a look at Method TACH in dsdt, you will see: Method (TACH, 1, Serialized) { Name (_T_0, Zero) If (ECAV ()) { While (One) { _T_0 = Arg0 If ((_T_0 == Zero)) { Local0 = TAH0 Break } ElseIf ((_T_0 == One)) { Local0 = TAH1 Break } Else { Return (Ones) } Break } Local0 *= 0x02 If ((Local0 != Zero)) { Divide (0x0041CDB4, Local0, Local1, Local0) Return (Local0) } Else { Return (Ones) } } Else { Return (Ones) } } So, we know that we have to store the value from TAH0 or TAH1 (depends on Arg0) and then we have to multiply it by 2 and then we have to divide it by 0x0041CDB4 (4312500) to get the value in RPMs. Once we know that, we could write a simple ACPI code to return the value in RPMs like: // GRPM means get RPM Method (GRPM, 0) { // Store value in Local0 Local0 = \_SB.PCI0.LPCB.EC0.TAH0 // If local0 is not equal to 0 If (Local0 != 0){ // Multiply by 2 Local0 = Local0 * 2 // Divide by 4312500 Divide (0x0041CDB4, Local0, Local1, Local0) } // Return the value Return (Local0) } As you can see this is very expensive method. But what we learned here is, If we execute method TACH with Arg0 as 0 (Zero) it will give us the speed in RPM of FAN 1. Similarly, if we use Arg0 as 1 (One) it will return the value in RPM for FAN 2 My laptop only has one FAN so, I can execute method TACH like, \SB.PCI0.LPCB.EC0.TACH(0) // Using Arg0 as Zero for FAN 1 And it will give me FANs RPM, so, instead of reading from EC and converting bits to RPM this is more preferable. Also, EC bytes may change while patching DSDT so it is a good idea to use dynamic methods so that a single SSDT could work for all machines. One such example is, If you use ACPIBatteryManager then you will have to convert 16bits registers to 8bits. And then, to use that "reading RPM from EC method you will have to create a new method to combine 2 8 bits registers to 1 16 bit like, // JEBR = Join 8 bit registers Method (JEBR, 2) { Return ((Arg0 | (Arg1 << 8))) // Arg0 and Arg1 will be 8Bit register 1 and 2 respectively (AH00, AH01) } Now moving to FAN control, If you have a look at method QMOD in DSDT: Method (QMOD, 1, NotSerialized) { If ((Arg0 == Zero)) { Return (Zero) // If arg0 is Zero. Terminate by returning 0 } If ((Arg0 == One)) { ^^PCI0.LPCB.EC0.ST98 (QFAN) // Hmm, ST98 is somewhat related to FAN control } If ((Arg0 == 0x02)) { ^^PCI0.LPCB.EC0.ST98 (0xFF) // Okay, ST98 again.. Something is interesting } Return (One) } Now, if you look at ST98 you can see: Method (ST98, 1, Serialized) { If (ECAV ()) // Checked if EC is available, will you write to it? { Acquire (MU4T, 0xFFFF) // Oh! So you are acquiring a mutex object CMD = 0xFF EDA1 = 0x98 EDA2 = Arg0 // Oh, so you did write Arg0 in EDA2 (Located in EC01 OperationRegion) ECAC () Release (MU4T) // Released it here, you did write something to the EC for sure Return (Zero) } Return (Ones) } Now, we can understand that, method QMOD (Quiet Mode?) Takes 1 argument that could be (0, 1 or 2). We can eliminate 0 as when we pass Arg0 as 0 it simply returns. Interesting are args 1 and 2 When using 1 it passes Arg0 to ST98 as QFAN's value (Hmm.. What is this QFAN) When using 2 it passes Arg0 to ST98 as 0xFF (255) (Oh wait! according to ACPI spec, 255 is max allowed FAN value.) Gotcha! We can use ST98 and pass it an arg ranging between 0x0 (0) to 0xFF (255) where 0 is for FAN off and 255 is for Max allowed or auto. But, why is there a QMOD method then? There might be some good reason for that. So, we will not invoke ST98 directly but will use the modus operandi of method QMOD Like, we will first store that max allowed FAN value in QFAN Then, we will invoke QMOD with Arg0 as 1 (One). Which will invoke ST98 for us hence, setting the max allowed speed for FAN. So, the ACPI code for this would be: Method (SETR, 0) { QFAN = 200 // Suppose we want to use max allowed value as 200 // Now we can call QMOD with Arg0 as 1 QMOD (1) } Now we know what to do. We now just need to write a method that can calculate the CPU temperature and then set FAN RPM accordingly. This is when you will use my SSDT-FAN How to implement: Requirements: FakeSMC kext along with sensors installed at /L/E or /S/L/E (DO NOT INJECT USING CLOVER) ACPIPoller.kext HWMonitor for monitoring CPU Temp and FANS My SSDT-FAN.aml Installation: Place SSDT-FAN.aml to /EFI/CLOVER/ACPI/patched (If using sorted order make sure you add SSDT-FAN to it) Install ACPIPoller to /L/E or /S/L/E (not both and definitely do not inject using CLOVER) Configuration: You can set "Name (UCFC, One)" to "Name (UCFC, Zero)" in my SSDT-FAN in case you want to use default FAN control method as provided by your OEM. My SSDT will only provide FAN RPM reading and CPU Temp reading.Achievements: Default scaling that ASUS provided was from 2200RPM to 2900RPM (Fan spinning fast without use) I managed to bring scale it from 255RPM to 5026RPM (Fan turns off if temp Temp rarely goes above 53˚C (Went up to 68 earlier) Technicalities: As we know know how to implement custom fan control using various methods in our DSDT we can't really use them as is in real life scenarios as FAN will literally be dancing. You might have observed that temperature keeps fluctuating a few degrees every second while you are working on something. Moreover, we need an automated method that can read and set FAN RPM. So, my SSDT calculates average temperature and then also waits for 2 seconds (to handle fluctuation) before increasing the RPM and waits for 5 seconds (to let CPU cool) before lowering RPM. You can edit this timeout by editing "Name (FCTU, 2)" for FanControlTimeoutUp and "Name (FCTD, 5)" for FanControlTimeoutDown. Method to calculate average accredited to RehabMan as he wrote the code first. There is only one known way to calculate average in maths. LOL. If you want to know how it is implemented, read this code: Note: This code is a part of my single optimizer SSDT project for ASUS laptops (Means, I am working on a single SSDT that you could place in your CLOVER/ACPI/patched and will have everything working without patching DSDT. You can customize SSDT using Device ANKD (A Nick's Device) like you can configure this SSDT to use custom FAN control or not). You can have a look at WIP code here // SSDT for FAN readings and custom FAN control for ASUS laptops // Copyright, black.dragon74 <www.osxlatitude.com> // Please configure the options in Device ANKD before compiling this SSDT DefinitionBlock("SSDT-FAN", "SSDT", 2, "Nick", "AsusFan", 0) { // Declare externals External (\_SB.QFAN, FieldUnitObj) External (\_SB.ATKD.QMOD, MethodObj) External (\_SB.PCI0.LPCB.EC0.ECAV, MethodObj) External (\_SB.PCI0.LPCB.EC0.ECPU, FieldUnitObj) External (\_SB.PCI0.LPCB.EC0.ST83, MethodObj) External (\_SB.PCI0.LPCB.EC0.ST98, MethodObj) External (\_SB.PCI0.LPCB.EC0.TACH, MethodObj) // Create a Nick's device to take care of this SSDT's configurations Device (ANKD) { Name (_HID, "ANKD0000") // Required. DO NOT change Name (UCFC, 1) // Set this to 0 if you don't wanna use my custom FAN control } // Create devices required by FakeSMC_ACPISensors Device (SMCD) { Name (_HID, "FAN0000") // Required, DO NOT change // Add tachometer Name (TACH, Package() { "System FAN", "FAN0" }) // Add CPU heatsink Name (TEMP, Package() { "CPU Heatsink", "TCPU" }) // Method to read FAN RPM (tachometer) Method (FAN0, 0) { // Check is EC is ready If (\_SB.PCI0.LPCB.EC0.ECAV()) { // Continue Local0 = \_SB.PCI0.LPCB.EC0.ST83(0) // Method ST83 acquires mutex and writes value to EC. O stands for FAN 1, Use 1 for FAN 2 If (Local0 == 255) { // If ST83 is 0xFF (Max fan speed) terminate by returning FAN RPM Return (Local0) } // Else, Get RPM and store it in Local0 Local0 = \_SB.PCI0.LPCB.EC0.TACH(0) // Method TACH in DSDT returns current FAN RPM in 100s, Arg0 as 0 is for FAN 1, for FAN 2, use Arg0 as 1 } Else { // Terminate, return Zero Local0 = 0 } // Return 255, 0 or Fan RPM based on conditionals above Return (Local0) } // Method to read CPU temp (CPU Heatsink) Method (TCPU, 0) { // Check if EC is ready If (\_SB.PCI0.LPCB.EC0.ECAV()) { // Then Local0 = \_SB.PCI0.LPCB.EC0.ECPU // EC Field storing current CPU temp Local1 = 60 // From DSDT If (Local0 < 128) { Local1 = Local0 } } Else { // Terminate, return Zero Local1 = 0 } // Return final CPU temp. ACPISensors take care of unit conversion. Return (Local1) } // Custom FAN table by black.dragon74 for ASUS laptops based on RehabMan's idea // Quietest fan operation yet coolest CPU. // Scaling from values as low as 255 RPM to values as high as 5026 RPM (That's great!) // Scaling that ASUS provided was from 2200 RPM to 2900 RPM (Duh!) // Temperatures. 0xFF means if temp is above 52C, let bios take control of things(auto). Name(FTA1, Package() { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0xFF, }) // Fan speeds. 255(0xFF) is max/auto, 0(0x00) is for fan off Name(FTA2, Package() { 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 160, 185, 205, 225, 245, 250, 255 }) // Time out values Name (FCTU, 2) // RPM Up Name (FCTD, 5) // RPM Down // Table to keep track of past temperatures (to track average) Name (FHST, Buffer() { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }) // Size should match the count of above FTA1 and FTA2 package Name (FIDX, 0) // current index in buffer above Name (FNUM, 0) // number of entries in above buffer to count in avg Name (FSUM, 0) // current sum of entries in buffer // Keeps track of last fan speed set, and counter to set new one Name (FLST, 0xFF) // last index for fan control Name (FCNT, 0) // count of times it has been "wrong", 0 means no counter // Method to control FAN wrt TEMP // Name in ACPIPoller.kext's Info.plist should be FCPU with HID FAN0000 Method (FCPU, 0) { // If UCFC is set to 0, terminate If (\ANKD.UCFC == 0) { Return (0) } // If EC is not ready, terminate If (!\_SB.PCI0.LPCB.EC0.ECAV()) { Return (0) } Local5 = \_SB.PCI0.LPCB.EC0.ECPU // Current temperature of the CPU Heatsink If (Local5 < 128) { Local0 = Local5 // Store temperature in Local0 } Else { Local0 = 60 // As per BIOS } // calculate average temperature Local1 = Local0 + FSUM Local2 = FIDX Local1 -= DerefOf(FHST[Local2]) FHST[Local2] = Local0 FSUM = Local1 // Local1 is new sum // adjust current index into temperature history table Local2++ if (Local2 >= SizeOf(FHST)) { Local2 = 0 } FIDX = Local2 // adjust total items collected in temp table Local2 = FNUM if (Local2 != SizeOf(FHST)) { Local2++ FNUM = Local2 } // Local1 is new sum, Local2 is number of entries in sum Local0 = Local1 / Local2 // Local0 is now average temp // table based search (use avg temperature to search) if (Local0 > 255) { Local0 = 255 } Local2 = Match(FTA1, MGE, Local0, MTR, 0, 0) // calculate difference between current and found index if (Local2 > FLST) { Local1 = Local2 - FLST Local4 = FCTU } else { Local1 = FLST - Local2 Local4 = FCTD } // set new fan speed, if necessary if (!Local1) { // no difference, so leave current fan speed and reset count FCNT = 0 } else { // there is a difference, start/continue process of changing fan Local3 = FCNT FCNT++ // how long to wait depends on how big the difference // 20 secs if diff is 2, 5 secs if diff is 4, etc. Local1 = Local4 / Local1 if (Local3 >= Local1) { // timeout expired, so start setting new fan speed FLST = Local2 // Method 1 (Recommended) // Store custom fan value from table in Local5 Local5 = DerefOf(FTA2[Local2]) // Set QFAN value to that of Local5 \_SB.QFAN = Local5 // Execute QMOD with Arg0 as 1(One) to set FAN's max allowed speed to that of \_SB.QFAN \_SB.ATKD.QMOD(1) // End Method 1 // Method 2 (Works but not recommended) Uncomment the line below to use this (remember to comment lines in method 1) // \_SB.PCI0.LPCB.EC0.ST98 (DerefOf(FTA2[Local2])) // End Method 2 // Reset FAN count (Required in either methods) FCNT = 0 } } Return (1) // Return something as this is a requirement of a ACPI Method } } } Moment of joy: Problem Reporting: Attach proper problem reporting files. See How to generate proper problem reporting files Note: If you see FAN RPM = 255 and hear a lot of noise from FAN it means your FAN is running at it's maximum speed. Regards ACPIPoller.zip SSDT-FAN.zip
  3. 1 point
    Replace this into /EFI/Clover try booting again what version of BIOS is it running? E5570_taylor.zip
  4. 1 point
    here, replace this folder into /EFI/Clover/ACPI patched.zip
  5. 1 point
    It's done via /E/E/kexts.plist. It follow the same principles as Clover. Details available here in IM's Chameleon thread. Use one of the latest versions such as r2905 or r2908. Micky1979 attached sample files too. Here's one for you: kexts.plist.zip
  6. 1 point
    We are assuming you're using Clover loader for your installer... Mount the EFI partition and attach the Clover folder
  7. 1 point
    which one works / you tested? using layout-id 11 with AppleALC or using layout-id 3 with AppleHDA_ALC283.kext?
  8. 1 point
    try changing to layout-id 11 for AppleALC.kext disable the 2 AppleHDA kextToPatches in Config file If that still doesn't work, then you could try the dummyHDA, install to /L/E repair permissions and rebuild cache Remove AppleALC use layout-id =3 re-enable the 2 AppleHDA kextToPatches in Config file
  9. 1 point
    New AppleALC.kext should have EAPD fix built-in. Perhaps, try and older version than 1.3.0. Try 1.2.7 If using EAPDFix.kext, try change FixType to 3.
  10. 1 point
    CPU power management was not running. Ok after deleting the SSDT table installed in Clover's ACPI/patched folder and regenerating a new one after having installed Pike R Alpha's tool properly and adjusted Clover's ACPI config. Also re-installed my A19's patched DSDT since E6230 runs A19 but patched DSDT of a previous version was in place. @Kuruyia states that Sleep through closing the lid still randomly fails but I know by experience that it sometimes takes several long seconds to kick in. Maybe that's what the actual problem is now that CPU PM is effectively in place and hibernation most definitely disabled. Wake for network access was also disabled in Energy Saver PrefPane. Can't see any reason why closing the lid would not put computer to sleep now, apart from a hardware problem.
  11. 1 point
  12. 1 point
    hmm sounds like your bios might not have ps2 EFI module when running in UEFI mode have you checked dell for bios update maybe they mention a correction for PS2 or you can try add the clover installer driver modules for PS2 its worth a try.
  13. 1 point
  14. 1 point
  15. 1 point
    Here, download this and then add this to /EFI/Clover If you need a guide, you could try this
  16. 1 point
    No, the Config changes is only OS X related. What error are you getting for Windows? Your EFI folder is missing the microsoft folder. Did you delete it? You could try boot Windows installer and repair boot issue Try this Config for Bluetooth config.plist.zip
  17. 1 point
    Hi there, (this post is a bit of a my research notes - so it might be a long post) It happens now and then that i come across a Macbook with a dead GPU - so far the best solution is to patch the motherboard - but that itself can be pricey - let alone time costly - also - who wants to repair a 2011 macbook - that said - so lighting struck me - since the machine have 2 graphics cards (an intel and a AMD) - why not just disable the AMD Card ? In my first test i just removed the kexts.. that worked.. so.. so.. screen artifacts and genereally the machine was running extremely slow - something more was needed - the solution is to disable the GPU in NVRAM. Solution found here: https://apple.stackexchange.com/questions/166876/macbook-pro-how-to-disable-discrete-gpu-permanently-from-efi/196709?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa The key is to: sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00 So, to recap - what i did: 1. Removed the AMD kexts.. 2. Patched NVram Result: Machine boots into macos and feels quite normal.. HDMI dosent work.. but i can live with that - also, i fear that the NVram might get reset or kexts will zombie back after an update.. so i created 2x scripts. 1. /scripts/gpupatch.sh 2. /Library/LaunchAgents/com.user.loginscript.plist The combination of both will run gpupatch.sh on each boot, check if AMD drivers exists and remove them - and finally.. patch NVram.. my hope is that if something breaks i can just boot.. and reboot and it should work. Lets have a look at the files - first gpupatch.sh ------------ dt=$(date '+%d/%m/%Y %H:%M:%S'); sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01 echo "$dt - Patched GPU" >> /scripts/gpupatch.log if [ -d "/System/Library/Extensions/AMD10000Controller.kext" ]; then sudo rm -Rf /System/Library/Extensions/AMD10000Controller.kext echo "$dt - Removed kext AMD10000Controller.kext" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMD7000Controller.kext" ]; then sudo rm -Rf /System/Library/Extensions/AMD7000Controller.kext echo "$dt - Removed kext AMD7000Controller.kext" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMD8000Controller.kext" ]; then sudo rm -Rf /System/Library/Extensions/AMD8000Controller.kext echo "$dt - Removed kext AMD8000Controller.kext" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMD9000Controller.kext" ]; then sudo rm -Rf /System/Library/Extensions/AMD9000Controller.kext echo "$dt - Removed kext AMD9000Controller.kext" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMD9500Controller.kext" ]; then sudo rm -Rf /System/Library/Extensions/AMD9500Controller.kext echo "$dt - Removed kext AMD9500Controller.kext" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDFramebuffer.kext" ]; then sudo rm -Rf /System/Library/Extensions/AMDFramebuffer.kext echo "$dt - Removed kext AMDFramebuffer.kext" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDMTLBronzeDriver.bundle" ]; then sudo rm -Rf /System/Library/Extensions/AMDMTLBronzeDriver.bundle echo "$dt - Removed kext AMDMTLBronzeDriver.bundle" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDRadeonVADriver.bundle" ]; then sudo rm -Rf /System/Library/Extensions/AMDRadeonVADriver.bundle echo "$dt - Removed kext AMDRadeonVADriver.bundle" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDRadeonVADriver2.bundle" ]; then sudo rm -Rf /System/Library/Extensions/AMDRadeonVADriver2.bundle echo "$dt - Removed kext AMDRadeonVADriver2.bundle" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDRadeonX4000.kext" ]; then sudo rm -Rf /System/Library/Extensions/AMDRadeonX4000.kext echo "$dt - Removed kext AMDRadeonX4000.kext" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDRadeonX4000GLDriver.bundle" ]; then sudo rm -Rf /System/Library/Extensions/AMDRadeonX4000GLDriver.bundle echo "$dt - Removed kext AMDRadeonX4000GLDriver.bundle" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDRadeonX4000HWServices.kext" ]; then sudo rm -Rf /System/Library/Extensions/AMDRadeonX4000HWServices.kext echo "$dt - Removed kext AMDRadeonX4000HWServices.kext" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDRadeonX5000.kext" ]; then sudo rm -Rf /System/Library/Extensions/AMDRadeonX5000.kext echo "$dt - Removed kext AMDRadeonX5000.kext" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDRadeonX5000GLDriver.bundle" ]; then sudo rm -Rf /System/Library/Extensions/AMDRadeonX5000GLDriver.bundle echo "$dt - Removed kext AMDRadeonX5000GLDriver.bundle" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDRadeonX5000HWServices.kext" ]; then sudo rm -Rf /System/Library/Extensions/AMDRadeonX5000HWServices.kext echo "$dt - Removed kext AMDRadeonX5000HWServices.kext" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDRadeonX5000MTLDriver.bundle" ]; then sudo rm -Rf /System/Library/Extensions/AMDRadeonX5000MTLDriver.bundle echo "$dt - Removed kext AMDRadeonX5000MTLDriver.bundle" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDRadeonX5000Shared.bundle" ]; then sudo rm -Rf /System/Library/Extensions/AMDRadeonX5000Shared.bundle echo "$dt - Removed kext AMDRadeonX5000Shared.bundle" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDRadeonX6000HWServices.kext" ]; then sudo rm -Rf /System/Library/Extensions/AMDRadeonX6000HWServices.kext echo "$dt - Removed kext AMDRadeonX6000HWServices.kext" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDShared.bundle" ]; then sudo rm -Rf /System/Library/Extensions/AMDShared.bundle echo "$dt - Removed kext AMDShared.bundle" >> /scripts/gpupatch.log fi if [ -d "/System/Library/Extensions/AMDSupport.kext" ]; then sudo rm -Rf /System/Library/Extensions/AMDSupport.kext echo "$dt - Removed kext AMDSupport.kext" >> /scripts/gpupatch.log .. and now com.user.loginscript.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.user.loginscript</string> <key>ProgramArguments</key> <array><string>/scripts/patchgpu.sh</string></array> <key>RunAtLoad</key> <true/> </dict> </plist> Yes - i could have done the script different and much simplar - but i wanted you to be able to see what files i removed. Comments welcome.
  18. 1 point
  19. 1 point
    Wow, so messy! You got duplicate kexts everywhere! Remove these from /S/L/E Lilu.kext AppleALC.kext BrcmPatchRAM2.kext AppleBacklightInjector.kext VoodooPS2Controller-V8Test6.kext FakeSMC.kext FakePCIID_Broadcom_WiFi.kext FakePCIID_XHCIMux.kext FakePCIID.kext NvidiaGraphicsFixup.kext HDMIAudio.kext AppleHDA_ALC292.kext CodecCommander.kext ACPIBatteryManager.kext IOAHCISerialATAPI_Injector.kext BrcmFirmwareRepo.kext USBInjectAll.kext Now remove these from /L/E Lilu.kext AppleALC.kext VoodooPS2Controller-V8Test6.kext FakeSMC.kext FakePCIID_Broadcom_WiFi.kext FakePCIID_XHCIMux.kext FakePCIID.kext NvidiaGraphicsFixup.kext AppleHDA_ALC292.kext ACPIBatteryManager.kext IOAHCISerialATAPI_Injector.kext USBInjectAll.kext All the kexts in /EFI/Clover/kexts/Other will run perfectly fine here. If you want to update USBInjectAll.kext, do so in here. Repair permissions and rebuild cache
  20. 1 point
    You missed a step it seems. There should be a couple of kexts inside /EFI/Clover/kexts/Other/LE or CopyToLE Those kexts should be copied to /Library/Extensions CodecCommander <- fixes the static noise AppleBacklightInjector <- enable Brightness Slider DisableTurboBoostBattery Repair permissions and rebuild cache
  21. 1 point
    Wow, your files are a mess! Duplicate kexts in /S/L/E and /L/E and in /EFI/Clover/kexts/Other You'll need to clean it up a bit by first removing all the added kexts in /S/L/E and /L/E If you don't know which kexts, look in your kextcache_log.txt that you attached. If VoodooPS2Controller only works in /L/E, then just leave that one there. In /EFI/Clover/kexts/Other, remove the following: AppleHDA_ALC292.kext IntelBacklight.kext EAPDFix.kext FakePCIID_Intel_HDMI_Audio.kext NullCPUPowerManagement.kext FakePCIID_HD4600_HD4400.kext IntelGraphicsFixup.kext Shiki.kext Update LIlu.kext (v1.2.5) and add latest WhateverGreen.kext (bundled with Shiki.kext and IntelGraphicsFixup.kext) Repair permission and rebuild cache. Reboot to Clover, press F4. Continue to OSX and attach new debug file. Your last debug is missing the Clover folder so I don't know what you have in your Config file
  22. 1 point
    you can try in clover kext to patch: com.apple.iokit.IOBluetoothFamily Find: 48 85 FF 74 47 48 8B 07 Replace: 41 BE 0F 00 00 00 EB 44 comment:Hotspot patch/Credit: lisai9093
  23. 1 point
    Try this, replace into /EFI/Clover Remove the following from /EFI/Clover/drivers64UEFI AptioMemoryFix.efi (keep AptioMemoryFix-64.efi) EmuVariableUefi-64.efi OsxAptioFix2Drv-64.efi M4800_HS.zip
  24. 1 point
    noticed a RX 580 expresscard eGPU attached to one of these systems: 2013 15" Dell Latitude E6540 HD8790M + RX580@4Gbps-EC2 (EXP GDC 8.x) + macOS 10.13.5 & Win10 [nando4] (eGPU.io) FCPX BruceX is accelerated and completes in 30s. Pretty good.
  25. 1 point
    Hello friends, Many of you have noticed that after upgrade to high sierra whenever you machine sleeps, be it a display sleep or a system sleep, the screen turns out fully white with garbled lines, or it might turn black with just the cursor moving. If you try and press few keys you will find out that the machine works but the display doesn't. If you want to know a little background info, read on, else skip to fix. On my ASUS R541UJ this bugged me a lot. I tried hell lot of things like, re patching DSDT, trying with all 15 ig-platform-id (for Kabylake), still, the issue persisted. I also have an ASUS A555LA (which I am trying to make a perfect MacBook Air). So, in my process of making my A555LA a perfect MacBook I added a ALS (ambient light sensor device) and then, changed vendor-id along with product-id of the laptop's display to that of Apple's display i.e. PID: 0x9cf2 VID: 0x610 for MacBook Air's display.. Whatever I do on my A555LA, I replicate the same on my 2 other ASUS laptops. So, I did the same on my R541UJ (the one affected by this annoying bug) And to my surprise, that issue was fixed! Then, I disabled the ALS device in my custom SSDT (I generally make a dynamic configurable SSDT that works for all my machines, See here) and that issue didn't come back. So, I finally came to the conclusion that it was due to incorrect vendor-id and product-id of my display in IODisplayEDID or EDID. Enough talking, let's see how you can fix this in a few simple steps. How to fix: In order to fix this, as you might already know from above, we need to change our display's product and vendor id to that of Apple's display. There are 3 ways for this, Injecting custom EDID using clover, Using a display override, Using a custom override kext (DispalyMergeNub). I love CLOVER so will be covering that part of the fix in this guide. Also, injecting EDID with clover is preferred as it will also work when booting recovery partition. (Not the same with Display Overrides and DisplayMergeNub) Update your CLOVER to latest version (nothing to do with this fix but is a good idea to have you boot loader up to date) Download Darwin Dumper from here Download FixEDID app from here Download my script attached to this post. Open Darwin dumper and uncheck everything except EDID. Then, select run from the left pane. It will dump your EDID and then it will open a folder where it dumped the files. In the folder you will find an EDID folder. Upon opening it you will see 3 files namely, EDID.bin, EDID.hex, EDID.txt (All three files are your EDID dump except in different formats). We need the one in BIN format for FixEDID.app Copy EDID.bin from DarwinDump*/EDID to your Desktop (Dump* is the darwinDumper output folder) Open FixEDID.app and select open EDID binary file. Choose the EDID.bin file you copied to desktop. If you look below "Open EDID binary file" button, you will see a drop down menu saying "Apple iMac Display 16:10" Select it and choose "Apple MacBook Air Display 16:9" (Note: You may try experimenting with different models, I personally use "Apple MacBook Air Display 16:9" on my A555LA and "Apple MacBook Pro Display 16:10" on my R541UJ) Make sure display class is set to "AppleBacklightDisplay" for we are overriding our internal LVDS display. (AppleDisplay is used for external displays like that on HDMI or DP) Click on Make button (Note: You won't see any sort of confirmation but the app has done it's work) Close FixEDID and come back to your desktop. You will see a host of new files there. (3 files to be precise) For this guide, you just need DisplayVendorID-xxx folder. Open it any then you will find a file named "DisplayProductID-xxxx" Copy this file to the Desktop. Now we need to extract EDID that is in base64 format and then convert it to HEX format as required by CLOVER. Worry not, I got you covered. Now is the time to run my script. Assuming my downloaded script is in Downloads folder, open terminal and type: # Change working directory cd ~/Downloads # Make script executable chmod a+x get_edid.sh # Run and get EDID to inject ./get_edid.sh ~/Desktop/DisplayProductID* ` This script wil give you EDID you need to inject using CLOVER, like: Copy that EDID and paste it in your config.plist under Graphics > EDID > Custom (You can use clover configurator as that will save you from manual PLIST editing which is not recommended for novice users) Also, set Boolean Inject to True (YES) under config.plist > Graphics > EDID. See below screenshots for reference: Any Plist Editor(Xcode): Clover Configurator: Reboot and Voilà! You won't face that dreaded issue ever again until you remove custom EDID. LOL. You can verify if the EDID is being injected by opening terminal and typing: ioreg -l | grep "IODisplayEDID" ` The output should match the output of get_edid.sh Problem Reporting: See How to generate proper problem reporting files Note: This issue mostly seems to effect machines running High Sierra on Kabylake hardware (maybe Skylake too?). I have personally tested this on Sierra (with and without skylake spoofing) turns out that Sierra is not affected by this. Note: Upon booting up with custom EDID in place you will see that your colors are not such bright and crisp. YMMV. (Coz our's isn't a Apple branded display ). To fix that, open system preferences > Display. Select "Color" tab and choose "Apple RGB Display" Hope this helped someone! Regards get_edid.zip
This leaderboard is set to Amsterdam/GMT+02:00