Jump to content


Popular Content

Showing content with the highest reputation since 05/25/18 in all areas

  1. 2 points
    Just another 1-2 weeks, and you will have updates from me sure. I am working on it as I have some issues with my dev environment right now to finish. Thanks for the patience.
  2. 1 point
    Hello everyone, Little background information about firmware patch from linux: I've developed this kext to update the firmware needed for those Atheros AR3012 and Broadcom Bluetooth devices to work with all functionalities that hardware supposed to do. Also integrated support for the Atheros bluetooth AR3011 (from old kext by mac4mat) with some improvements/fixes in my kext to make a single solution for bluetooth. BUG REPORT (HAVE A PROBLEM?): Send me your system log file from /var/log, ioreg file saved using IORegistryExplorer app v2.1 and Sys info saved from the app System Information (found in Utilities) in File menu. To receive files from other bluetooth devices (like Mobiles), enable the option "Bluetooth Sharing" in System Preferences->Sharing. Want to know why you can't pair iPhone? Read here Your Combo card WiFi hardware is detected and working, but Bluetooth hardware was not detected in ioreg and not working ? Read this post (Credits: tomwho) Following are the Bluetooth cards supported by my kext: AR3011: Atheros AR5B195 Combo (AR9285 Wifi + AR3011 Bluetooth) Atheros AR5B197 Combo (AR9287 Wifi + AR3011 Bluetooth) Other Atheros AR3011 cards with ids list below AR3012: Atheros WB225 Combo (AR9485 Wifi(doesn't work) + AR3012 Bluetooth) Other Atheros AR3012 cards with ids list below Atheros AR3011 30 sec delay fix (or) after sleep issues patch: (Should be working in 10.9.1+) Enter the following two commands in terminal and reboot: sudo perl -pi -e 's|\x0F\x85\x07\x01|\x0F\x84\x07\x01|g' /System/Library/Extensions/IOBluetoothFamily.kext/Contents/PlugIns/IOBluetoothHostControllerUSBTransport.kext/Contents/MacOS/IOBluetoothHostControllerUSBTransport sudo touch /System/Library/Extensions/ For Clover, add this to kext patches instead: Name: IOBluetoothHostControllerUSBTransport Find: 0F850701 Replace: 0F840701 Comment: Fix Bluetooth 30 seconds delay patch Credits to TimeWalker for the patch idea. NOTE: BCM4352 WiFi 5Ghz access is now working (Credit goes to SKVO fromapplife.ru. For complete details on making this WiFI card work, follow this thread: BCM4352 WiFi BROADCOM WiFi/BT Combo cards Bluetooth: Broadcom BCM4352 Combo Broadcom BCM4360 Combo Broadcom BCM43162 Combo Broadcom BCM4313 Combo (Not all cards need Update) BROADCOM USB/Integrated Bluetooth: Asus BT-400 USB Bluetooth Belkin 20702 USB Bluetooth USB Dongles with 20702A1 Bluetooth (Delock, IOGear etc.,) HP BRCM1043 Integrated Bluetooth (found in HP Elite Notebooks) Supported Bluetooth Vendor and Product ID: (Few device ids below work only from v2.8) Broadcom: VID: 13d3 PID: 3404 (Azurewave 4352) VID: 13d3 PID: 3413 (Azurewave 4360) VID: 13d3 PID: 3418 (Azurewave 4352) VID: 13d3 PID: 3435 (Azurewave 4352) VID: 13d3 PID: 3456 (Azurewave 4352) VID: 0b05 PID: 17cb (Asus USB) VID: 0b05 PID: 17cf (Asus 4352) VID: 0b05 PID: 180a (Asus 4360) VID: 050d PID: 065a (Belkin) VID: 13d3 PID: 3411 (Dell Alienware 4352) VID: 413c PID: 8143 (Dell DW1550 4352) VID: 0a5c PID: 216f (Dell DW1560 4352 NGFF) VID: 0a5c PID: 21e1 (HP Elite NB) VID: 0a5c PID: 21fb (HP 4352) VID: 0a5c PID: 216b (HP 4352 NGFF) VID: 0a5c PID: 216e (HP BCM43162 NGFF) VID: 0a5c PID: 21fd (Generic 4352) VID: 0a5c PID: 21de (4352) VID: 0a5c PID: 22be (4352/4360) VID: 04ca PID: 200a (LiteOn 4352) VID: 04ca PID: 200b (LiteOn 4352) VID: 04ca PID: 200c (LiteOn 4352) VID: 04ca PID: 200f (LiteOn 4352) VID: 0a5c PID: 21e6 (ThinkPad NB) VID: 0489 PID: e079 (Lenovo BCM43162 NGFF) VID: 0489 PID: e07a (Lenovo NGFF) VID: 0930 PID: 0223 (Toshiba NGFF) VID: 0930 PID: 0221 (Toshiba) VID: 0a5c PID: 21e8 (Dongles Delock, IOGear etc.,) VID: 0489 PID: e032 (BCM4313) AR3011: VID: 03f0 PID: 311d VID: 0489 PID: e027 VID: 0489 PID: e02c VID: 0489 PID: e03d VID: 0930 PID: 0215 VID: 0b05 PID: 179c VID: 0cf3 PID: 3000 VID: 0cf3 PID: 3002 VID: 0cf3 PID: 3005 VID: 13d3 PID: 3304 VID: 04f2 PID: aff1 VID: 04ca PID: 3002 AR3012: VID: 0489 PID: e056 VID: 0489 PID: e036 VID: 0489 PID: e03c VID: 0489 PID: e078 VID: 04ca PID: 3005 VID: 04ca PID: 3006 VID: 0cf3 PID: 311d VID: 0cf3 PID: 0036 VID: 0cf3 PID: 3004 VID: 0cf3 PID: 3010 VID: 0cf3 PID: e004 VID: 13d3 PID: 3362 VID: 13d3 PID: 3402 VID: 13d3 PID: 3474 VID: 0b05 PID: 17d0 Kext Customization: You can customize the kext for choosing firmware by editing the file "info.plist" located inside my kext "BTFirmwareUploader.kext/Contents/". Go to the section "IOKitPersonalities" and edit the entry which has your vendor and device id values. Atheros AR3011 and AR3012 BT: You can choose firmware from either linux (or) windows. (Linux firmware is recommended mostly) For Linux firmware, edit the plist entry "Use Linux fw" to Yes (or) true. ) For the Windows firmware, edit the plist entry "Use Linux fw" to No (or) false for both AR3011 & AR3012. For AR3011, you can also choose three firmwares from windows by editing the plist entry "Windows fw" to the values 0-2. Value '0' is the most recent firmware. [Note: Only Windows firmware 1 supports Fn key toggle for BT Off/on in Asus] Broadcom BT: Firmware to use: You can choose either firmware which is meant for that specific device (or) higher version available so far by editing the plist entry "DeviceSpecificFw" to Yes/No (or) true/false. You can abort (or) ignore subsequent firmware updates if the last update was failed by editing the plist entry "AbortOnFwUpdFail" to Yes/No (or) true/false. This is optional and its meant only in case if any system needed update process to continue even if last update was failed for success.(Available from v3.0.5) How to install: 1) Remove any patched kexts (or) Bluetooth enablers installed for Bluetooth and use Apple vanilla Bluetooth kext. 2) Install my kext (BTFirmwareUploader.kext) using your favorite kext installers to /System/Library/Extensions. (Don't install my kext through E/E (or) clover injection). Supports: ​Atheros BT is supported from 10.6.8 or later Broadcom BT is supported from 10.8.5 or later NOTE for 10.11: If you have any problems with my kext firmware update for Broadcom BT in 10.11 then use only "BluetoothDevBroadcomInjector.kext" instead which is just an injector to load Apple BT driver. Change Log: Update: v3.1 5 Released (Legacy version is for 10.10 or lower) Added support for new device ​Supports for 10.6.8 ​Fixed legacy version which was not working Some Minor bug fixes and optimizations Update: v3.1 (Legacy version is for 10.10 or lower) Updated non-device specific firmware version to latest available Added support new devices (check the updated list) Improved 10.11 support Some Minor bug fixes and optimizations Update: v3.0.5 Released Fixed a major bug affecting Atheros Bluetooth Improved 10.11 support Added a plist option for Broadcom Bluetooth to abort update process on fail (Optional) Some Minor bug fixes and optimizations Update: v3.0 Updated support for 10.11 using new SDK and USB API (you have to use kext compiled for 10.11) Made several Improvements and optimizations Fixed some minor bugs Update: v2.8.7 Added OS X detection to prevent/solve issues in 10.11 Fixed some bugs and made few improvements Update: v2.8.5 Fixed a major bug affecting some asus systems with KP Fixed issues related to firmware not getting updated sometimes Fixed some bugs in Atheros firmware update Added few new Atheros AR3012 bluetooth device ids to supported list Some improvements and code optimizations Update: v2.8 Updated firmware for some devices and higher version option Added support for some new devices Improvements to upload process time which finishes quicker now as i've reduced the time needed by doing more beta tests so works better Some minor bug fixes and optimizations Update: v2.7 Updated firmware for some devices and higher version option Added support for some new devices Fixes a bug when dual booting from windows which breaks BT Fixed a bug in BluetoothDevInfo kext injection and renamed the kext name Removed unnecessary "UpdAfterSleep" option from plist Some minor bug fixes and optimizations Update: v2.6 Added support for new Broadcom bluetooth devices Added support for new Atheros bluetooth devices Updated kext to use firmware specific to the Broadcom BT devices Removed unnecessary patch for HP BT (PID:21e3) Fixed some bugs Optimized code Update: v2.5.2 Final Added support for two Broadcom bluetooth devices from HP(VID: 0a5c PID: 21e3/PID: 21e1) Fixed a minor bug in BluetoothDevInfo kext Update: v2.5 Final Added plist option "UseStandaloneFw" to choose standalone firmware meant for BT only cards like Asus BT-400. Added support for two new BCM4352 BT (Dell alienware BCM4352 combo) Fixed device reset error bugs Some minor bug fixes and optimizations Update: v2.4 ​Added support for two new AR3011 BT(VID: 0489 PID: e02c and VID: 0930 PID: 0215) Added support for two new BCM4352 BT (HP and NGFF Toshiba) Added support for new AR3012 BT (VID: 0cf3 PID: 311d) Minor optimizations Update: v2.3 Improved performance of upload ​Fixed issues related to BCM Fixed issues related to firmware update after sleep Updated Broadcom firmware to new version Added LiteOn BCM4352 and an AR3011(PID: e027) card Moved bluetooth info to a plugin kext located inside the PlugIns folder Optimized code Update: v2.1 Added fully working support for AR3012 Updated new firmware in Broadcom Added Dell DW 1550 BCM 94352HMB card and AR3012 card ID's Fixed an issue with AR3011 bluetooth Optimized code Update: v2beta Added experimental support for AR3012(still in testing phase) Added firmware option for Broadcom and updated to new firmware Added new firmware for Atheros Added Asus BCM4352 card support Fixed an issue with AR3011 bluetooth which is failing for some cards like (dev:0x3000 & 0x179c) Apple bluetooth kext patch is not needed for Broadcom bluetooth anymore Update: v1.5 Added more Atheros Bluetooth devices (VEN:0cf3, DEV:3000,3002,3005) Fixed an issue with Atheros AR3011 Bluetooth after sleep Fixed an issue with Broadcom Bluetooth which prevented successful system boot without -v flag First release: v1.3 Enables Bluetooth in the new ac Broadcom BCM4352 card Added support for AR3011 from old kext(credits: mac4mat) Fixes an issue for AR3011 with the old uploader kext which is breaking during reboots in Asus Notebooks Added options to choose firmware for Atheros Bluetooth in the plist For any support, PM me in forums. Note: Don't mirror my kext please, just provide the link for my post. Credits: Leon for providing the opportunity & testing the kext, donators who helped to get me a card for the development, mac4mat (tonycrapx) for the AR3011 source and laloch(archlinux) for the ideas of Broadcom card PS: I've worked very hard in this and need your support , so I request you to consider a small donation if possible which helps me and allows to spend more time on this for future updates. Paypal: Thanks for the support. BTFirmwareUploader_v2.7_Final.zip BTFirmwareUploader_v2.8_Final.zip BTFirmwareUploader_v2.8.5_Final.zip BTFirmwareUploade_v2.8.7.zip BTFirmwareUploader_v3.0_Final.zip BTFirmwareUploader_v3.0_Final_10.11.zip BluetoothDevBroadcomInjector.kext.zip BTFirmwareUploader_v3.0.5.zip BTFirmwareUploader_v3.0.5_10.11.zip BTFirmwareUploader_v3.1_Legacy.zip BTFirmwareUploader_v3.1.zip BTFirmwareUploader_3.1.5_10.11.zip BTFirmwareUploader_3.1.5_Legacy.zip
  3. 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
  4. 1 point
    Hi Guys, Does anyone try to install macOS Sierra on Latitude 7480? Waiting for mine, date of delivery for the laptop is 06/09/2017. It's a replacement for my e7470. Not sure why, but my offer look like Skylake processor. Maybe mistake. Or maybe they offer one with Skylake and Kabe Lake processor. How about the Docking Station TB16? It's using Thunderbolt, but will it work with macOS? Processor : i7-6600U Processor Graphics Processor(GPU) : Intel® Integrated HD Graphics 520 Chipset : 6th Generation Intel® Core Storage : 512GB Solid State Drive M2 2280 SATA RAM : 16GB DDR4 SDRAM 2133 MHz; 2 slots supporting up to 16GB Wifi : Intel replaced with DW1830 LAN : Intel I219-LM PCI-E Gigabit Ethernet Adapter Audio : Realtek® High Definition Audio ALC293 (ALC3235) USB 3.0 : Intel USB 3.0/3.1 xHCI Controller Touchpad : Alps Multi-touch Touchpad v7 Hardware Webcam : USB3.0 UVC HD WebCam Card reader : Dual Pointing, 82 key with Smartcard, Contactless Smartcard, Fingerprint Reader,Thunderbolt 3 Monitor : 14" FHD (1920 x 1080) Anti-Glare, Camera & Mic, WLAN Capable
  5. 1 point
    Last updated: 9 Jun 2018 We still get recurring questions about some well-known and older unsupported GPUs and graphics cards, so let's try and make a quick recap here. The list can be completed as required and necessary. The list will only apply to SL 10.6 and beyond, not before. Intel GMA 900: unsupported since SL GMA 950: supported in SL and Lion in 32bit kernel mode only; unsupported since ML GMA 3100/3150: unsupported GMA 3000/X3000: unsupported GMA X3100: supported in SL and Lion in 32bit kernel mode only; unsupported since ML GMA 4500/4500M/4500MHD/4700MHD: unsupported GMA HD/GMA 5700MHD/1st gen Intel HD (eg: Arrandale CPUs): partially (CI only) or fully (QE/CI) supported on laptops in SL, Lion, ML and beyond depending on built-in LCD connector (LVDS=full support, eDP=partial support). Unsupported since Mojave. Refer to bible thread on the matter. HD 2000 & Sandy Bridge Intel HD: unsupported HD 3000: supported from SL to High Sierra. unsupported since Mojave HD 2500 & Ivy Bridge Intel HD: unsupported in SL and Lion; apparently supported in ML from 10.8.3; unsupported since Mavericks, though some people reported partial support (CI only) in El Capitan for instance. Bay Trail Intel HD: unsupported Haswell Intel HD: unsupported Broadwell Intel HD: unsupported Cherry Trail Intel HD: unsupported nVidia GeForce 6x00 and similar: unsupported since SL GeForce 7x00 and similar: supported in SL and Lion in 32bit mode only; unsupported since ML GeForce GTX 660M: unsupported pre-Kepler: unsupported since Mojave ATI/AMD X300/X600/X700: unsupported X1300/X1400/X15x0: supported up to SL; limited support (CI only) in Lion; unsupported since ML X1600: supported in SL and Lion; unsupported since ML pre-CGN 1.0: unsupported since Mojave NB: Obsolete GPUs for which Apple dropped official support after Lion 10.7.5 (e.g.: GMA950/X3100, GeForce 7x00, ATI X1600) can be supported in ML with MLPF hack (essentially, a hack that runs pseudo ML in 32bit mode with DP1 32/64bit kernel and kexts). More details in our article on the matter.
  6. 1 point
    ok, sorry. Give this a try. Replace Config and place all DSDT/SSDT into /EFI/Clover/ACPI/Patched replacing the old 3558_A10.zip
  7. 1 point
    adjust "finger-z" value to your liking in the trackpad kext info.plist
  8. 1 point
    It's pretty obvious that all HD3000 are affected one way or the other by these graphics glitches. Increasing RAM (from 4 to 8GB for instance) reduces the issue to some degree as does HD3000 kexts patching. But it's quite clear that there is no definitive fix and the glitches remain no matter what, unless you wish to downgrade to Yosemite or earlier of course...
  9. 1 point
    Try this, replace files into /EFI/Clover 3558_audio.zip
  10. 1 point
    ethernet+graphics??? you're having graphics issue too? what do you mean by layout-id = 3 , 13 or 17 ? I mean, launch Config.plist with Clover Configurator. Under Devices/Audio, change inject value to 3. If you still have audio, change it to 13 and so on....
  11. 1 point
    if the os on theSSD was installed with APFS file system you have to add that to your clover drivers folder.
  12. 1 point
    Remove AppleHDA_ALC292.kext from /L/E Restore a vanilla version of AppleHDA.kext to /S/L/E (you can find it in your installer or from another running OS X of the same version) I see you have some patched version of AppleHDA.kext showing in your kextcache log, not sure where that came from. Repair permission and rebuild cache.
  13. 1 point
    If you had been patching your own DSDT recently, you most likely encountered this common error dialogue when clicking on the 1st 2 errors, they'll take you to these set of codes To fix the errors, I created this patch which you can just apply with latest version of MacIASL This will fix all 3 errors listed above. Enjoy!
  14. 1 point
    Known issue already from my E7470 guide Known Issue & Workaround: HDMI-Output works but if connect HDMI-Cable the local Display goes off and never appears. I had tried different configurations but none panned out. Here's a workaround: Close the LID until you see the HDMI display becomes the primary display, then open the LID. It'll switch LCD as primary and projector as secondary.
  15. 1 point
    There is no update yet. Unfortunately I did not update to latest OS X yet due to my work requirments, and also been away from OS X for long time. Just recently began to get back on my projects and working on them, but I have nothing to share yet. I will post updates too my projects as soon as I have something, and hoping its very soon (if my life gives me some room). Thanks and please wait for some time. PS: I will try to take a quick look by this month end if its simple fix, so keep turned to my thread and remind me in a week or two
  16. 1 point
    if you emulate an smbios of a APPLE machine that uses soldered on ram then it will not have the memory tab.
  17. 1 point
    Does system have HDMI and miniDP? Follow instructions from here to debug issue. gen_debug -sysprofile
  18. 1 point
    It'll work OOB exactly as with Apple's own BCM94360xxx (my E6220/E6230 all run on BCM94360CD) but it's a much slower model supporting 802.11n @450Mbps max. vs. 802.11ac @1300Mbps for Apple's BCM94360CD/CS/CS2. https://osxlatitude.com/index.php?/topic/7554-apple-broadcom-bcm4360cd-80211-ac-wifi-and-bluetooth-combo-card/ https://wikidevi.com/wiki/Broadcom_BCM94360CD https://wikidevi.com/wiki/Broadcom_BCM94331CD https://wikidevi.com/wiki/Broadcom_BCM94331CSAX http://www.osxwifi.com
  19. 1 point
    High Sierra Clover Guide Note: By default, upgrading or new Install of HS on an SSD drive, it'll automatically convert to APFS format. If you want to use APFS format, skip step 4 New Installation (1) Create the USB installer via Terminal with "createinstallmedia" (a minimum of 16GB UFD is needed or an external USB drive) sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/"target_USB" --applicationpath /Applications/Install\ macOS\ High\ Sierra.app --nointeraction Note: target_USB = name of the USB drive you're writing to (2) Install Clover with following config, add appropriate Sierra bootpacks Only + Generic EFI from post #2 above ( See note1 below for updating bootpack for HS) UEFI: Install for UEFI booting only Install Clover in the ESP Drivers64UEFI\AptioMemoryFix Legacy: Install Clover in the ESP Bootloader/Install boot0af in MBR CloverEFI/CloverEFI 64-bits SATA (3) Boot with the USB installer, start Disk Utility and initialize your SSD as an APFS drive. Close Disk Utility, select Install MacOS. If you DO NOT want APFS, then select HFS+ format instead. Then Close Disk Utility and follow step 4, otherwise continue to Step 5 (4) Open the terminal (on the menu bar click Utility>Terminal), and launch this command /Volumes/"Image Volume"/"install macOS High Sierra.app"/Contents/Resources/startosinstall --volume /Volumes/"HighSierra" --agreetolicense --converttoapfs NO Note: HighSierra = name of the drive you're targeting (5) System will auto reboot after files has been copied (6) Boot with USB installer, select "Boot macOS Install from HighSierra". Installation will continue installing and reboot (Might have to do this rebooting a couple of times) (7) Boot with USB installer, finish the customization (8) Follow post install steps from Post # 1 NOTE1: Updating the Sierra Bootpack to be use for High Sierra 1) Edit config.plist from Sierra Bootpack (I recommend using Clover Configurator 4.59 or newer) and activate FixHeaders option under Acpi: 2) Update USB port limit for High Sierra where applicable, if current Sierra Bootpack doesn't have it, then you don't need this. Either disable 10.12 (Red) and add 10.13 (Green - 9 or 100 Series) or modify 10.12 to 10.13 port limit Update: New USB port Limit patch for 10.13.4+ credits to PMHeart 3) Under SMBIOS, update the definition so that Firmware Features and Firmware Feature Mask is now populated 4) [Recommended] Update the Sierra kexts under /EFI/CLOVER/kexts/Other/ Common links for new kexts: https://github.com/vit9696/Lilu/releases https://github.com/vit9696/Lilu/blob/master/KnownPlugins.md https://bitbucket.org/RehabMan/ Upgrading to High Sierra and keeping HFS+ format If you want to keep HFS+ format, run this command instead of launching the "Install MacOS High Sierra.app" /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/startosinstall --agreetolicense --converttoapfs NO If you want to install or upgrade to a different partition/drive /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/startosinstall --volume /Volumes/"targetdrive" --agreetolicense --converttoapfs NO Note: Repair permission and rebuild cache if you lost audio after upgrade. You must upgrade Clover, Config.plist and kexts as noted in NOTE1: Updating the Sierra Bootpack to be use for High Sierra
  20. 1 point
    I'll have a better understanding in a few days as I'm going to be using this computer as my main laptop at work this week. So far today I did notice one incidence of garbling (although minor) so it appears better then before. However I've also had an incidence of the computer crashing, which I don't think ever happened while on Sierra. Again I'll post my results later on in the new week.
  21. 1 point
    Hi Herve, ok I just wanted to let you know that I decided to just back up my system and then try to add the patch to the kext like in the thread. It still shows 512 in the "About this Apple" -"Overview" But when using Photoshop I can see that the VRAM has now changed and the max is 1082. Not sure why 1082 but I can definitely see the Photoshop Filters work faster now so that trick works. I'll keep you posted regarding whether it actually fixes the garbling graphics issues. Thanks again my friend.
  22. 1 point
    Hi balazs630 See in attached my full directory EFI my computer E5440. All seems to be OK (with post install audio kext ALC292 and wifi bluetooth) Stable with sierra 10.12.3 without success for me to install a 3G module (DW5570 or Hp un 2420) best regards EFI.zip
  23. 1 point
    Updates El Capitan 10.11.1 STATUS: GOOD UPDATE METHOD: APP STORE/SYSTEM UPDATE MODIFICATIONS NEEDED: None El Capitan 10.11.2 (15C50) STATUS: GOOD UPDATE METHOD: APP STORE/SYSTEM UPDATE MODIFICATIONS NEEDED: None El Capitan 10.11.3 (15D21) STATUS: GOOD UPDATE METHOD: APP STORE/SYSTEM UPDATE MODIFICATIONS NEEDED: None El Capitan 10.11.4 (15E65) STATUS: GOOD UPDATE METHOD: APP STORE/SYSTEM UPDATE MODIFICATIONS NEEDED: Upgrade to latest Clover prior to upgrade just in case New Issues: 1) KP on some systems with VoodooPS2Controller (Alps touchpad). Reboot with USB installer, select HD/SSD to boot. Remove /EFI/Clover/Kexts/Other/VoodooPS2Controller and replace it with Dr. Hurt's version R6B6 2) DummyHDA with Clover-on-the-fly patch stopped working Install new kexts for according to your CodecID Latitude Exx20 AppleHDAIDT.kext.zip Latitude Exx30 AppleHDA_IDT.kext.zip Latitude E7x40, E6540, E5440 Precision M4800, M6800 AppleHDA_ALC292.kext.zip Latitude E7x70, E7x50, E5450 Precision 7510 AppleHDA_ALC293.kext.zip Inspiron 3542, 5548, 5558, 5458 Latitude 3340, 3550 AppleHDA_ALC255.kext.zip Inspiron 5537 Latitude 3440, 3540 AppleHDA_ALC283.kext.zip Optiplex 9020 AppleHDA_ALC280.kext.zip Lenovo Z51-70 AppleHDA_ALC236.kext.zip * If your dummyHDA is not listed here and was working prior to 10.11.4, see here how to update it El Capitan 10.11.5 (15F34) STATUS: GOOD UPDATE METHOD: APP STORE/SYSTEM UPDATE MODIFICATIONS NEEDED: Same fix applied from 10.11.4 if you're upgrading from 10.11.3 and below or new install using provided bootpacks El Capitan 10.11.6 (15G31) STATUS: GOOD UPDATE METHOD: APP STORE/SYSTEM UPDATE MODIFICATIONS NEEDED: Same fix applied from 10.11.4 if you're upgrading from 10.11.3 and below or new install using provided bootpacks
  24. 1 point
    Clover Bootpacks I'll be adding more bootpacks when I have them confirmed working by members of this forum... Don't forget to check the Update section below (post #4) for updated files and information!!! Note: Sierra bootpacks already have the updated files listed in post #4 Note: Bootpack (EFI) consists of combining the Generic EFI + the model you're downloading!!! Instruction: 1) Download the Generic EFI folder. Generic EFI Folder EFI_4558.zip 2) Download model below and add the contents into the Generic /EFI/Clover <- folder Latitude UEFI Only - GUID Scheme - Kabylake (OS X 10.12.6 and Up)- (See Note2 below) Sierra / High Sierra 5480_HD620_v1.6.4_HS.zip 5480_HD630-Optimus_HS.zip (BIOS 1.9.3) - Skylake (OS X 10.11.4 and Up)- (See Note2 below) E7x70.zip - latest bootpack here Sierra 5480_BIOSv1.5.2.zip E5470_1.17.3_HS.zip - Broadwell - (See Note2 below) El Capitan E7450_update.zip - latest Sierra pack here E5450_HD5500.zip E5550.zip Sierra E5550_A15.zip E5550_A15_Disable_GT820M.zip E5450_HD5500_A15.zip 3450_A13.zip - Haswell El Capitan E7440.zip E6540.zip E5540.zip E5450_HD4400.zip 3550.zip 3540.zip 3440.zip 3340.zip Sierra E5440_A13.zip - update with this AppleHDA_ALC292.kext E5540_Sierra.zip - update with this AppleHDA_ALC292.kext E6440_A14.zip - based on Hervé's work, - update with this AppleHDA_ALC292.kext E7440_A20.zip - update with this AppleHDA_ALC292.kext E6540_HD4600_Only.zip - update with this AppleHDA_ALC292.kext E6540_Optimus_A17.zip - update with this AppleHDA_ALC292.kext 3550_HD4400_A12.zip - update with this AppleHDA_ALC255.kext - IvyBridge El Capitan E6230.zip - 1366x768 E6430.zip - 1600x900 and above E5530.zip - Rename Config/DSDT depending on display resolution Sierra E6530_HD4000_Only.zip 6430u_1366x768.zip - BIOS A06 See here for 6430u HiRes (1600x900) file E6430_A12.zip - check Readme.txt inside bootpack E5530_A12.zip E6330_A11.zip - check Readme.txt inside bootpack E6230_A11.zip E6230_HD3000.zip -> this has SandyBridge CPU Legacy - GUID Scheme - See Note1 below - SandyBridge El Capitan E6420.zip - 1600x900 E6x20_NVS.zip E6220.zip - 1366x768 E5420.zip Sierra E6220_A13.zip E5520_A14.zip - check Readme.txt inside bootpack E5420.zip - check Readme.txt inside bootpack E6420_HD3000_A23.zip- check Readme.txt inside ACPI/Patched folder E6420_Optimus_A23.zip - check Readme.txt inside ACPI/Patched folder E6520_Optimus_A19.zip - check Readme.txt inside ACPI/Patched folder High Sierra E6520_Disabled-NVS_HS.zip Inspiron UEFI Only - GUID Scheme - Broadwell - (See Note2 below) El Capitan 5458.zip Inspiron_5548.zip FixBattery - update for 5548 5558_HD5500_Only.zip 5558_HD5500_DisableNvidia.zip Sierra 3543_A08.zip 5548_HD5500_Only.zip 5548_m270-Disabed_A07.zip 5558_920M-Disabled_A14.zip - Haswell El Capitan 5558_HD4400.zip Fix Webcam for 5558 3542.zip Sierra 3542_A12.zip Precision UEFI Only - GUID Scheme - Skylake (OS X 10.11.4 and Up)- (See Note2 below) 5510_HD530_Disabled-Nvidia.zip Update: Add to /L/E to enable HDMI / DP audio https://bitbucket.or...s-x-fake-pci-id FakePCIID.kext FakePCIID_Intel_HDMI_Audio.kext Sierra 5510_HD530_1.2.25.zip 7510_HD530_1.12.4.zip - (See more info here) Vostro UEFI Only - GUID Scheme - Kabylake Sierra / High Sierra Vostro_3468_Biosv01.07.00_HS.zip XPS UEFI Only - GUID Scheme - Haswell Sierra / High Sierra XPS 12 9Q33_A07.zip Note1: For Exx20 (SandyBridge models), use Legacy - GUID Scheme. Not UEFI Install Clover with the following settings in 1: Prepare Bootable USB Drive step 26 above: Install Clover in the ESP Bootloader/Install boot0af in MBR CloverEFI/CloverEFI 64-bits SATA Note2: Systems with Broadwell / Skylake / Kabylake CPU such as Latitude E7450 and Inspiron 5548, you'll need to set the DVMT prealloc to 96MB in order to bypass KP and to enable full graphics with full QE/CI. For more info, see here. /!\ New Development: If you don't want to mod the BIOS as it might be difficult for some models, you could skip this step by adding 2 new kexts to /EFI/Clover/kexts/Other Lilu.kext & IntelGraphicsDVMTFixup.kext Notes3: To prevent artifacts with HD 4000, the following models should not exceed BIOS A11. Downgrade to A02/A03 and then upgrade to A11 if it has exceeded: E6x30, E5x30
  25. 1 point
    A better choice is to use 10.9.1 FB, HDMI won't hang the system when you plug it in, but that only works well on OSX 10.9.3 and 10.9.2. Like you said, you lose QE/CI on 10.9.4 if you rollback FB. A workaround for now is go to display preference, under color, use sRGB profile or select one by one until you get one without artifacts.
This leaderboard is set to Amsterdam/GMT+02:00