Jump to content

Trackpad and other issues with Catalina install on Zenbook Q526FA-BI7T10


WhiteDragon
 Share

Recommended Posts

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

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

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

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

  • Moderators

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

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...