Jump to content

HP 15s-fq0020nl - Trackpad non funzionante


lucsout

Recommended Posts

Buonasera a tutti,

mi sono appena iscritto in questo forum, spero possiate aiutarmi.

 

Vado subito al dunque:

Ho installato Catalina sul mio notebook HP 15s-fq0020nl. Diciamo che tutto funziona correttamente tranne il trackpad. Ho seguito diverse guide, scritto in diversi forum e fatte infinite prove ma ancora non sono riuscito a farlo funzionare.

 

SPECS:

i5-8265U (WHISKEY LAKE!!)

16 GB Ram

Intel UHD620

 

Vi spiego cosa ho fatto per farvi capire meglio:

 

Intanto parto da Windows, individuando il controller I2C e segnandomi il nome BIOS per essere sicuri che il device sia corretto e trovo:

SB_PCI0_I2C1.TPD0

Ok. Installo Catalina e uso, ovviamente, un mouse USB. Configuro tutto, audio funzionante, scheda video funzionante, sembra andare tutto ok.

Estraggo DSDT con Clover, disassemblo e creo DSDT.dsl con maciasl. Ok.

Premetto che ho fatto TANTISSIME prove di patch DSDT, anche con hotpatch ecc.., riassumo quella che per me sembra la configurazione più' promettente:

Prima di procedere, faccio un IOREG per capire l'interrupt specifiers del TPD0, ovvero 43.

Apro il DSDT e applico una patch per la batteria (di un laptop HP, funziona). 

Applico patch windows 10 e GPIO enable per skylake+, copio le kext VoodooI2C e VoodooHID (HID O ELAN?), applico patch coolstar per bloccare i kext apple.

In GenI2C ho: 

 

2042053762_Schermata2020-03-15alle20_55_25.png.d6aee9982ad0b36b7b750ae1d9177bc6.png

 

Questa sarà la schermata IMMUTATA, qualsiasi cosa faccio.

 

Inizio a modificare il mio DSDT, la parte relativa al device TPD0.

E' un device well-root-pinned in quanto ho la dichiarazione del SBFG nella root. Allego la parte relativa al TPD0:

 

Spoiler

Scope (_SB.PCI0.I2C1)
    {
        Name (I2CN, Zero)
        Name (I2CX, Zero)
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (SDS1, I2CN)
            Store (One, I2CX)
            If (CondRefOf (\_SB.PCI0.I2C1.INC1))
            {
                INC1 ()
            }
        }
        
        Device (TPD0)
        {
            Name (HID2, Zero)
            Name (SBFB, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x002C, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                    0x00, ResourceConsumer, _Y3A, Exclusive,
                    )
            })
            Name (SBF1, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x0015, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                    0x00, ResourceConsumer, , Exclusive,
                    )
            })
            Name (SBFG, ResourceTemplate ()
            {
                GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
                    "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0093
                    }
            })
            Name (SBFI, ResourceTemplate ()
            {
                Interrupt (ResourceConsumer, Level, ActiveLow, ExclusiveAndWake, ,, _Y3B)
                {
                    0x00000000,
                }
            })
            CreateWordField (SBFB, \_SB.PCI0.I2C1.TPD0._Y3A._ADR, BADR)  // _ADR: Address
            CreateDWordField (SBFB, \_SB.PCI0.I2C1.TPD0._Y3A._SPE, SPED)  // _SPE: Speed
            CreateWordField (SBFG, 0x17, INT1)
            CreateDWordField (SBFI, \_SB.PCI0.I2C1.TPD0._Y3B._INT, INT2)  // _INT: Interrupts
            Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                If (LLess (OSYS, 0x07DC))
                {
                    SRXO (GPDI, One)
                }

                Store (GNUM (GPDI), INT1)
                Store (INUM (GPDI), INT2)
                If (LEqual (TPDM, Zero))
                {
                    SHPO (GPDI, One)
                }

                If (LEqual (SKUN, Zero))
                {
                    Store ("SYNA3296", _HID)
                    Store (0x20, HID2)
                }
                Else
                {
                    Store ("ELAN0712", _HID)
                    Store (One, HID2)
                }

                Store (0x00061A80, SPED)
                Return (Zero)
            }

            Name (_HID, "MSFT1234")  // _HID: Hardware ID
            Name (_CID, "PNP0C50")  // _CID: Compatible ID
            Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg0, HIDG))
                {
                    Return (HIDD (Arg0, Arg1, Arg2, Arg3, HID2))
                }

                If (LEqual (SKUN, Zero))
                {
                    If (LEqual (Arg0, TP7G))
                    {
                        Return (TP7D (Arg0, Arg1, Arg2, Arg3, SBFB, SBFG))
                    }
                }
                ElseIf (LEqual (Arg0, TP7G))
                {
                    Return (TP7D (Arg0, Arg1, Arg2, Arg3, SBF1, SBFG))
                }

                Return (Buffer (One)
                {
                     0x00                                           
                })
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (0x0F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Return (ConcatenateResTemplate (SBFB, SBFG))
              
            }
        }
 

 

Ho già modificato il return del _CRS con SBFB,SBFG (la versione originale prevede una serie di if con vari return, tra cui SBFB,SBFG).

Ho anche inserito il pin 0x93 (seguendo le varie tabelle, partendo dal valore 43, ottengo due valori: 0x33 e 0x93)

 

Non accade nulla, usando maclog il tutto si ferma a:

 

2020-03-15 20:25:38.578062+0100  localhost kernel[0]: (kernel) VoodooI2CDeviceNub::Got GPIO Controller! VoodooGPIOCannonLakeLP

 

Ho anche provato una cosa, ovvero a cambiare il return del _CRS con SBF1,SBFG.

Cambiando in questo modo, il trackpad viene riconosciuto dal sistema (System Preferences), non funziona e il log va avanti dando questo errore:

 

2020-03-15 19:33:39.749510+0100  localhost kernel[0]: (kernel) VoodooGPIOCannonLakeLP:: pin 44 cannot be used as IRQ
 

Il problema è che questo messaggio appare QUALSIASI pin io metta sul SBFG.

 

Spero di aver reso chiaro un po' la situazione e spero che qualcuno possa aiutarmi.

 

Grazie,

Luca.

 

 

 

 

Schermata 2020-03-15 alle 20.58.06.png

Link to comment
Share on other sites

366291465_Schermata2020-03-16alle14_36_33.png.db878e1c6320312081a26dd6db13e70b.png

 

Questi sono i kext. Dentro PS2 Controller ovviamente c'è solo il Keyboard.

 

Io nelle varie prove che ho fatto, modificando il metodo _CRS e mettendo return SBF1,SBFG, il trackpad viene riconosciuto dal sistema (non funziona comunque).

 

Questo il log di maclog:

 

1414565461_Schermata2020-03-16alle14_39_26.thumb.png.412be607a9244918467b5e841155e92f.png

Link to comment
Share on other sites

780653596_Schermata2020-03-16alle15_21_27.thumb.png.0fed6051507739bd03423a263a240267.png

 

Allora, ho fatto delle scoperte. 

 

Ho modificato il return del _CRS, prima con SBFB, SBFG e poi con SBF1, SBFG.

Non è cambiato nulla.

 

Ho patchato la batteria utilizzando una patch già pronta (non per il mio portatile ma per un hp, la batteria funziona).

 

Ho riprovato a sostituire il _CRS e con SBF1, SBFG mi riconosce il trackpad nelle impostazione (PERO' NON FUNZIONA).

 

Ora, credo che la batteria influisca in questo processo.

 

Secondo te potrebbe essere che la patch che utilizzo, essendo per altri modelli HP, non sia adatta e possa causare problemi?

 

 

 

Link to comment
Share on other sites

Inoltre, con return SBFB, SBFG, il log si interrompe e non va avanti al punto "pin 44 cannot be used as IRQ".

Con SBF1, SBFG invece dà sempre lo stesso errore.

 

Secondo te, se facciamo una patch per la batteria adatta al mio notebook potrebbe cambiare qualcosa?

1441483862_Schermata2020-03-16alle15_27_10.thumb.png.2ef46696aabf9492f45cc1f65cc6bbf6.png

 

1143795626_Schermata2020-03-16alle15_27_29.png.9c7040c223728d504634ab488db9d9f2.png

 

349727666_Schermata2020-03-16alle15_27_39.thumb.png.bd121fcdea57c10f6390a0d4fd63ee85.png

 

Questo con Return SBF1,SBFG e la batteria patchata!

 

Link to comment
Share on other sites

  • 1 year later...
  • 2 months later...

perdonatemi ma sono nuovo di Hackintosh per portatili. sul mio fisso non ho avuto alcuna difficoltà. ma sul mio hp 15s-fq0 proprio non riesco. sto provando ad installare Monterey. tutto fatto per la pendrive per l'installazione ed al check risulta tutto corretto. o almeno sembra. mi sa che sbaglio qualcosa nel bios, che tra l'altro sembra darmi molti pochi parametri da configurare.  potreste indicarmi la vostra configurazione? e i kext da utilizzare per far si che tutto funzioni?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • There are no registered users currently online
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.