WhiteDragon Posted March 29, 2020 Share Posted March 29, 2020 Hi! This is my first attempt at a Hackintosh. I have successfully gotten Catalina running on my ASUS Zenbook Q526FA-BI7T10 and I am now into the difficult part of getting all of the features to work. I started with 10.15.3 and then successfully upgraded it to 10.15.4. The system has an i7-8565U CPU with Intel UHD 620 (1920x1080) graphics. Here is what seems to be working: - Dual boot Catalina and Windows 10 via Clover 5102 * I have successfully logged into the App Store and installed software on and upgraded Catalina. * Windows works as expected when I boot into it. - Keyboard and USB Mouse * Seems to function normally. - Bluetooth * I tested it via Bluetooth PAN and connected to my MacBook. - Wired Networking via Thunderbolt Ethernet Adapter. * I am using an Apple Thunderbolt/Ethernet adapter. - Wi-Fi via a Nano Wi-Fi Dongle. * A 3rd-party driver was required, but it works. - Battery and Power Indicator. * Seems to properly indicate the battery and power status. - Touchscreen Cursor Positioning (It actually works in conjunction with Mouse Keys and the USB Mouse!) * Clicking and gestures do not work. * Cursor positioning via touchscreen stops working after sleep, other unknown events, or just a matter of time. * Touchscreen only (temporarily) works when I install VoodooI2C, VoodooI2CHID, VoodooI2CELAN, and VoodooI2CFTE via Clover/kexts/Other. It doesn’t work if they are installed via /L/E or if any of those Voodoo kexts are missing. - Sleep when laptop closed * Not fully verified, but the screen shuts off and the Wi-Fi adapter disconnects, so it seems like it is working. I need to get the FTE 1200 Precision Touchpad (trackpad) working for it to be functional enough to use as a backup laptop. System Preferences detects that there is a trackpad, but the trackpad does nothing. This is the first area that I am hoping to get some help on. These are areas that I need solved for it to actually be a good backup laptop: - ELAN 9008 Touchscreen Clicking and Gestures (and it working all the time) - Realtek ALC294 Audio Input and Output (note that display audio is Intel 280B) - Backlit Keyboard These areas are highly desirable: - HDMI Output - Screen Saver I consider everything else to be icing on the cake. I have done a lot of searching and have tried many variations of VoodooI2C, AppleALC, other kexts and drivers, various SSDTs, and many other Clover settings and additions and /Library/Extensions additions with no success. I am at a point where it seems like I will have to disassemble, patch, and then compile a DSDT, but I am hoping to find solutions for some of the features using prebuilt kexts, drivers, SSDTs, and Clover settings. I have attached the types of problem report files that another well-known Hackintosh site requests. I would appreciate pointers on any “easy” ways to get more of the features working, if any exist. If I cannot find any “easy” guidance, then I guess will have to become familiar with iasl and MaciASL and start hacking away at the remaining issues. I would appreciate any pointers if I need to go this route, as well. Thanks in advance! CLOVER.zip IOReg.ioreg RehabMan.zip KextstatOutput.txt.zip KextcacheOutput.txt.zip DiagnosticOutput.txt.zip Link to comment Share on other sites More sharing options...
WhiteDragon Posted April 1, 2020 Author Share Posted April 1, 2020 I got the trackpad working! I used VoodooI2C and VoodooI2CHID and followed the GPIO pinning guide. It took a ton of trial and error, but the GPIO pin is x6D and it is working great! Single click and two-finger click and clicking corners work as desired. The touchscreen cursor positioning still works, too. I've attached my latest CLOVER (san themes) with my patched DSDT and supporting SSDTs in case anyone else is trying to do this. CLOVER.zip Link to comment Share on other sites More sharing options...
WhiteDragon Posted April 3, 2020 Author Share Posted April 3, 2020 I'm not asking for help. I'm just updating the thread with my progress, just in case anyone else is working on the same or a similar laptop. Update: I have gotten the ELAN 9008 touchscreen follow and gestures working (no click) using GPIO pin x72. Keyboard lighting is now turning on at boot up (I cannot turn it off yet, but I prefer it on for now for late-night work). I have cleaned up the USB ports with Hackintool (and its SSDT export). I got the Realtek ALC 294 sound going -- AppleALC.kext and ALC layout 21 (via the Clover boot args). I have tuned the HDU 620 graphics a bit and it seems pretty crisp. The sound control and touchpad control FN keys are working. The biggest issue I'm working on right now is getting sleep to work. Right now I am seeing two sleep preventers: IODisplayWrangler and .Display_boot. I will figure it out... I'm generally happy with my first Hackintosh. I am already scheming a second one. If anyone wants any of my files or details, feel free to ask. Cheers! Link to comment Share on other sites More sharing options...
WhiteDragon Posted April 4, 2020 Author Share Posted April 4, 2020 i got sleep working by doing the following: (1) Relabeling all of the USB ports as "internal" using Hackintool. They all seem to be working fine still and that eliminated all of the sleep kernel assertions. (2) Got the display backlight control working using applebacklightfixup.kext, SSDT-PNLFCFL.aml, and the Clover "igfxcflbklt=1" (from WEG) boot arg. This also had the nice effect of providing display brightness control. Cheers! Link to comment Share on other sites More sharing options...
Moderators Jake Lo Posted April 4, 2020 Moderators Share Posted April 4, 2020 Shouldn't need applebacklightfixup.kext with latest Whatevergreen, it's probably the addition of SSDT-PNLFCFL.aml fixed the issue. Also not a good idea to turn all USB ports as internal. Sleep issue could be due to USB _pwr. Try patching your DSDT with this Spoiler #Maintained by: RehabMan for: Laptop Patches #usb_prw_0x6d_xhc_skl.txt # remove _PRW methods to prevent instant wake # delete any existing XHC1 device into device label XHC1 name_adr 0x00140000 remove_entry; # if _PRW objects are methods into method label _PRW parent_adr 0x00140000 remove_entry; into method label _PRW parent_adr 0x00140001 remove_entry; into method label _PRW parent_adr 0x001F0003 remove_entry; # some other LAN cards use 0x00190000 into method label _PRW parent_adr 0x00190000 remove_entry; into method label _PRW parent_adr 0x001F0006 remove_entry; # if _PRW methods are stuffed into a separate scope into method label _PRW parent_label _SB.PCI0.EHC1 remove_entry; into method label _PRW parent_label _SB.PCI0.EHC2 remove_entry; into method label _PRW parent_label _SB.PCI0.XHC remove_entry; into method label _PRW parent_label \_SB.PCI0.EHC1 remove_entry; into method label _PRW parent_label \_SB.PCI0.EHC2 remove_entry; into method label _PRW parent_label \_SB.PCI0.XHC remove_entry; # if _PRW objects are names into device name_adr 0x00140000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched; into device name_adr 0x00140001 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched; into device name_adr 0x001F0003 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched; into device name_adr 0x00190000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched; into device name_adr 0x001F0006 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\}\) remove_matched; # some _PRW have three entries in the Package into device name_adr 0x00140000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched; into device name_adr 0x00140001 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched; into device name_adr 0x001F0003 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched; into device name_adr 0x00190000 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched; into device name_adr 0x001F0006 code_regex Name.*_PRW.*\n.*\n.*\n.*\n.*\n.*\}\) remove_matched; # seems to work better if _PRW is present, but returns 0 (original was 3) for sleep state # Note: These are methods because some Skylake DSDT call _PRW as a method for no reason into device name_adr 0x00140000 insert begin Method(_PRW) { Return(Package() { 0x6D, 0 }) } end; into device name_adr 0x00140001 insert begin Method(_PRW) { Return(Package() { 0x6D, 0 }) } end; into device name_adr 0x001F0003 insert begin Method(_PRW) { Return(Package() { 0x6D, 0 }) } end; into device name_adr 0x00190000 insert begin Method(_PRW) { Return(Package() { 0x6D, 0 }) } end; into device name_adr 0x001F0006 insert begin Method(_PRW) { Return(Package() { 0x6D, 0 }) } end; # Insert Apple USB properties into USB 3.0 XHC into method label _DSM parent_adr 0x00140000 remove_entry; into device name_adr 0x00140000 insert begin Method (_DSM, 4, NotSerialized)\n {\n If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }\n Return (Package()\n {\n "subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 },\n "subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 },\n "AAPL,current-available", 2100,\n "AAPL,current-extra", 2200,\n "AAPL,current-extra-in-sleep", 1600,\n "AAPL,device-internal", 0x02,\n "AAPL,max-port-current-in-sleep", 2100,\n })\n }\n end; Link to comment Share on other sites More sharing options...
WhiteDragon Posted April 5, 2020 Author Share Posted April 5, 2020 Thanks, Jake! I removed the superfluous kext and everything still worked. I will apply the _PRW patch and rework my USB port labeling later. Cheers! Link to comment Share on other sites More sharing options...
WhiteDragon Posted April 10, 2020 Author Share Posted April 10, 2020 I tried the _PRW patch with properly labeled USB ports and ran into various issues. I ended going back to labeling the ports "internal" for now and everything is working well. I may explore this more in the future. Link to comment Share on other sites More sharing options...
Recommended Posts