Jump to content

[GUIDA] Catalina su HP Spectre x360 15" 2020 (Comet Lake)


fred99

Recommended Posts

Il 9/11/2020 at 14:01, Gengik84 ha scritto:

Ciao, hai i. log dei KP?

sicuro che sia la batteria?

 

sinceramente no perchè non avevo attivi i flag per leggere il tutto, comunque sono quasi certo, guardando da hackintool vedo che ogni 1-2 secondi circa mandava un messaggio da parte di robe coinvolte con la batteria, la ciliegina sulla torta è arrivata con l'aggiornamento di opencore, praticamente si rifiuta di partire e all'accensione mi dice proprio che le ACPI patch non vanno bene. per cui ho disattivato le patch coinvolte e riesco ad avviare il pc. dovrei rimettere la versione precedente di opencore per controllare l'errore ma non mi pare utile, ti dico cosa ho fatto (con le mia limitata conoscienza)

ho seguito la guida di rehabman e questo è quello che ho prodotto:

into device label EC0 code_regex (SMD0,)\s+(256) replace_matched begin SMDX,%2,//%1%2 end;
into device label EC0 code_regex SMW0,\s+16 replace_matched begin MW00,8,MW01,8 end;
into device label EC0 code_regex (FLD0,)\s+(64) replace_matched begin FLEX,%2,//%1%2 end;
into device label EC0 code_regex (FLD1,)\s+(128) replace_matched begin FLFX,%2,//%1%2 end;
into device label EC0 code_regex (FLD2,)\s+(192) replace_matched begin FLGX,%2,//%1%2 end;
into device label EC0 code_regex (FLD3,)\s+(256) replace_matched begin FLHX,%2,//%1%2 end;

into method label SMRD code_regex \(SMW0, replace_matched begin (B1B2(MW00,MW01), end;
into method label SMRD code_regex  \(FLD1, replace_matched begin (RECB(0x04,128), end;
into method label SMRD code_regex \(FLD2, replace_matched begin (RECB(0x04,192), end;
into method label SMRD code_regex \(FLD3, replace_matched begin (RECB(0x04,256), end;

into method label SMWR code_regex SMW0\) replace_matched begin B1B2(MW00,MW01)) end;
into method label SMWR code_regex Store\s+\(Arg3,\sSMD0\)  replace_matched begin WECB(0x04,256,Arg3) end;

into definitionblock code_regex . insert
begin
Method (B1B2, 2, NotSerialized) \n
{\n
 Return(Or(Arg0, ShiftLeft(Arg1, 8)))\n
 }\n
end;
into method label RE1B parent_label EC0 remove_entry;
into method label RECB parent_label EC0 remove_entry;
into device label EC0 insert
begin
Method (RE1B, 1, NotSerialized)\n
{\n
    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    Return(BYTE)\n
}\n
Method (RECB, 2, Serialized)\n
// Arg0 - offset in bytes from zero-based EC\n
// Arg1 - size of buffer in bits\n
{\n
    ShiftRight(Add(Arg1,7), 3, Arg1)\n
    Name(TEMP, Buffer(Arg1) { })\n
    Add(Arg0, Arg1, Arg1)\n
    Store(0, Local0)\n
    While (LLess(Arg0, Arg1))\n
    {\n
        Store(RE1B(Arg0), Index(TEMP, Local0))\n
        Increment(Arg0)\n
        Increment(Local0)\n
    }\n
    Return(TEMP)\n
}\n
end;
into method label WE1B parent_label EC0 remove_entry;
into method label WECB parent_label EC0 remove_entry;
into device label EC0 insert
begin
Method (WE1B, 2, NotSerialized)\n
{\n
    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    Store(Arg1, BYTE)\n
}\n
Method (WECB, 3, Serialized)\n
// Arg0 - offset in bytes from zero-based EC\n
// Arg1 - size of buffer in bits\n
// Arg2 - value to write\n
{\n
    ShiftRight(Add(Arg1,7), 3, Arg1)\n
    Name(TEMP, Buffer(Arg1) { })\n
    Store(Arg2, TEMP)\n
    Add(Arg0, Arg1, Arg1)\n
    Store(0, Local0)\n
    While (LLess(Arg0, Arg1))\n
    {\n
        WE1B(Arg0, DerefOf(Index(TEMP, Local0)))\n
        Increment(Arg0)\n
        Increment(Local0)\n
    }\n
}\n
end;

 

dopo aver fatto tutto questo ho fatto da terminale i files misti con dentro i codici in HEX, quindi ho confrontato le due versioni e sono andato a sostituire quel che serviva, le hotpatch sono dentro al config, tutto il resto, i vari method li ho copiati altrove creando un SSDT-BATT

Edited by fred99
Link to comment
Share on other sites

Il 9/11/2020 at 14:01, Gengik84 ha scritto:

Ciao, hai i. log dei KP?

sicuro che sia la batteria?

 

ho sistemato, ora le patch del dsdt sono scritte nel modo corretto, nel senso che applicandole va a sostituire correttamente, rimane il dubbio che le patch funzionino.

inoltre, mi ripeto, le hotpatch non funzionano e non saprei come sistemarle, tuttavia se vado avvio con dsdt modificato non riesco a fare andare il touchpad, nonostante abbia provato ad applicare tutte le patch OSI. mi servirebbe quindi una conferma per quanto riguarda le nuove patch per la batteria, un aiuto per abilitare il touchpad e il touchscreen senza usare OSI XOSI / OS check fixes , e poi un controllo generale per vedere se c'è qualcosa di migliorabile.

ps: non so se ho disabilitato correttamente la dgpu e poi c'è qualche rogna con i vari RHUB

Edited by fred99
Link to comment
Share on other sites

11 minuti fa, Gengik84 ha scritto:

forse per hotpatch usavi rename a riguardo di I2C? o cose correlate?

per abilitare il touchpad e il touchscreen uso rename OSI XOSI + ssdt.

sinceramente volevo fare le cose "fatte bene" senza usare questo, ma seguendo la guida su dortania non riesco perchè il mio dsdt è diverso rispetto al caso spiegato.

so che osi xosi va far credere credere al dsdt che quando gira darwin in realtà stia andando windows e quindi abilita i dispositivi, la guida a cui mi riferivo è quella che parla di pin vari da abilitare....

il problema è che senza hotpatch per la batteria sono costretto a mettere il dsdt moddato, quindi poi il rename osi xosi non funziona, per cui da quel che ho capito, o si fa tutto tramite rename e ssdt, oppure includo il dsdt e rinuncio ai vari rename

giusto?

ho provato anche a sostituire nel dsdt i vari _OSI con XOSI, ma non fuziona poi, non so perchè

ed ho risolto gli errori aggiungendo su all'inizio i vari external

Edited by fred99
Link to comment
Share on other sites

  • Administrators

mm non esattamente

il rename diciamo blocca la definizione corrente sul DSDT e la reinietta con ssdt aggiungendo anche il darwin, ma questo può essere fatto o direttamente su DSDT oppure anche non toccando tale parte sul dsdt stesso e andando comunque ad appaggiarsi a un ssdt solo per questo

6 minuti fa, fred99 ha scritto:

includo il dsdt e rinuncio ai vari rename

puoi farlo, la rinuncia totale dei rename...dipende da quali essi sono

non è detto che tu possa applicare i soli rename fisici su DSDT perchè potrebbero esserci altrove "cose" definite e non rinominate che porterebbero quindi a problemi

un rename fatto da bootloader o anche ssdt se vogliamo, agisce su tutte "le definizioni" da rinominare in qualsiasi tabella

Link to comment
Share on other sites

3 minuti fa, Gengik84 ha scritto:

mm non esattamente

il rename diciamo blocca la definizione corrente sul DSDT e la reinietta con ssdt aggiungendo anche il darwin, ma questo può essere fatto o direttamente su DSDT oppure anche non toccando tale parte sul dsdt stesso e andando comunque ad appaggiarsi a un ssdt solo per questo

puoi farlo, la rinuncia totale dei rename...dipende da quali essi sono

non è detto che tu possa applicare i soli rename fisici su DSDT perchè potrebbero esserci altrove "cose" definite e non rinominate che porterebbero quindi a problemi

un rename fatto da bootloader o anche ssdt se vogliamo, agisce su tutte "le definizioni" da rinominare in qualsiasi tabella

quindi vuoi dire che in questo caso non mi funziona il rename perchè osiè scritto anche da qualche altra parte oltre il dsdt e i vari ssdt oem? la soluzione sarebbe quindi sistemare con la patch OS check fix, ma non funziona, qualsiasi versione di windows scelga, anche manualmente guardando i valori che assume

Link to comment
Share on other sites

1 minuto fa, Gengik84 ha scritto:

W10 non funziona?

ti copio il codice dal dsdt per farti vedere effettivamente cosa cambia, ho provato fino a 2018 ma niente, i valori di cui ti parlavo prima sono questi, di fatto emulare 2018 e 2018.2 non cambia nulla giusto?

				If (_OSI ("Windows 2015"))
                {
                    Store (0x07DF, OSYS)
                }

                If (_OSI ("Windows 2016"))
                {
                    Store (0x07E0, OSYS)
                }

                If (_OSI ("Windows 2017"))
                {
                    Store (0x07E1, OSYS)
                }

                If (_OSI ("Windows 2017.2 "))
                {
                    Store (0x07E1, OSYS)
                }

                If (_OSI ("Windows 2018"))
                {
                    Store (0x07E2, OSYS)
                }

                If (_OSI ("Windows 2018.2"))
                {
                    Store (0x07E2, OSYS)
                }

 

Link to comment
Share on other sites

ah giusto per aggiornare tutti:

ho comprato il nuovo ssd, alla fine ho optato per un samsung 970 evo 1tb , non ho preso il plus perchè costava 80 euro in più ( con coupon vari alla fine sono riuscito a pagare quello che ho preso 100) e comunque confrontando i benchmark è il 3% più veloce, mi sono accontentato. inoltre ho comprato (finalmente) un adattatore usb3.1-usb c e un cavo usb c- usb c per cui posso mappare completamente le porte usb, RHUB vari permettendo

Link to comment
Share on other sites

  • Administrators
                If (LOr(_OSI("Darwin"),_OSI("Windows 2015")))
                {
                   Store (0x07DF,OSYS)
                }

io intendevo la patch Windows10

into_all method code_regex If\s+\([\\]?_OSI\s+\(\"Windows\s2015\"\)\) replace_matched begin If(LOr(_OSI("Darwin"),_OSI("Windows 2015"))) end;

Link to comment
Share on other sites

21 ore fa, Gengik84 ha scritto:

                If (LOr(_OSI("Darwin"),_OSI("Windows 2015")))
                {
                   Store (0x07DF,OSYS)
                }

io intendevo la patch Windows10

into_all method code_regex If\s+\([\\]?_OSI\s+\(\"Windows\s2015\"\)\) replace_matched begin If(LOr(_OSI("Darwin"),_OSI("Windows 2015"))) end;

Proverò di nuovo questa patch. Ho aggiornato a big sur:

Il sistema si carica ma arrivo ad una schermata nera, sento che sotto il computer risponde a quel che faccio con la tastiera, l'unico modo per vedere qualcosa è levare il device-id così che fallisca ad attivare l'accelerazione grafica, devo aspettare un aggiornamento di whatevergreen o dici che posso risolvere in qualche altro modo? sembra anche che ci siano problemi con il flag -cdfon che è assolutamente necessario per me da quel che ho capito, visto che il display è 4k

Link to comment
Share on other sites

1 ora fa, Gengik84 ha scritto:

si ti serve, quale fakeID stai usando che ti da problemi?

ho riletto le info ufficiali riguardo l'aggiornamento e il problema non è il fake id.

 

ti racconto quel che è stata la mia esperienza:

-iniettando solo AAPL,ig-platform-id non riconosce l'ID per cui si avvia senza trasparenze e con lentezza infinita, in questo caso aggiungere o meno -cdfon non influisce, ed ecco perchè omettendo il fakeID vedo qualcosa

-iniettando AAPL,ig-platform-id + fakeID va in schermo nero a causa del display 4k, tuttavia a posteriori, dopo aver sistemato il pipe hdmi uno schermo esterno qualsiasi funziona.

-il vero tassello mancante è proprio -cdfon o enablehdmi20, aggiungendo questo flag su catalina il display interno funzionava, con l'aggiornamento non va più il flag.

 

come ti avevo scritto su, avevo letto di sfuggita questo che trovi sotto ma non gli avevo dato il giusto peso:

 

Unfortunately with the aforementioned KernelCollections, some kexts have unfortunately broken or have been hindered in some way. The main kexts that currently have issues are anything relying on Lilu’s userspace patching functionality:

WhateverGreen’s DRM and -cdfon patches

 

fino a quando non sistemeranno whatevergreen non avrò l'accelerazione grafica

Edited by fred99
  • Like 1
Link to comment
Share on other sites

Nuovo problema:

Non riesco ad avviare macOS con Opencore installato nella EFI del (nuovo) ssd interno; da quel che ho capito è un bug proprio del bios hp, che interessa solo i dispositivi touch.

Visivamente quando avvio OC da ssd vedo un'icona in alto per fare apparire la tastiera su schermo, mentre quando avvio OC da usb l'icona non c'è.

Alla fine si blocca proprio l'avvio dell'OS e vedo quel quadratino che rimane.

 

Qualcuno ha provato anche ad usare un "preloader" e rinominare il file efi di clover in "loader":

il funzionamento di questo preloader è proprio semplice, va alla ricerca di un file leader.efi e cerca di avviarlo;

con OC non funziona, allora ho provato anche a tornare indietro a clover, ma niente da fare lo stesso.

 

Link to comment
Share on other sites

Il 18/11/2020 at 19:01, Gengik84 ha scritto:

Scusa ma che differenze ci sono tra prima e ora?

solo il cambio col nuovo ssd, erro?

 

il fatto di non aver mai avviato OC dall'ssd interno, se uso una chiavetta con sopra oc funziona tutto senza problemi.

a sostegno di questo disabilitando la voce keysupport dentro al config UEFI->Input, il quadratino in alto della tastiera scompare e tutto funziona perfettamente, non posso muovermi a destra o a sinistra con le frecce per selezionare il sistema ma posso selezionarlo con il click del touchpad, in realtà ho messo il timer a 0 e selezionato macOS come preferito, per cui va direttamente alla mela avviando il sistema operativo, giusto per informarvi: 8 sec da quando premo il tasto di accensione alla mela, 20 secondi per ultimare la barra. 28 secondi per avviare il sistema, sono un pò deluso di questo sinceramente, Windows ci mette 8 secondi e la velocità non si allontana di molto dal mio vecchio portatile i3 Broadwell con ssd sata.

il vero problema è che non posso attivare FileVault, senza key attivo non posso inserire la password

Edited by fred99
Link to comment
Share on other sites

Il 13/11/2020 at 15:41, Gengik84 ha scritto:

                If (LOr(_OSI("Darwin"),_OSI("Windows 2015")))
                {
                   Store (0x07DF,OSYS)
                }

io intendevo la patch Windows10

into_all method code_regex If\s+\([\\]?_OSI\s+\(\"Windows\s2015\"\)\) replace_matched begin If(LOr(_OSI("Darwin"),_OSI("Windows 2015"))) end;

ho provato ora, ho fatto il dsdt con le patch per la batteria + questo che mi hai consigliato ma niente, ne touchpad ne touchscreeen funzionano.

potresti provare a guardare tu il dsdt e vedere 3 cose per favore:

-se le patch della batteria sono a posto

-attivare il touchpad senza simulare windows. ho provato ma veramente non riesco a trovare le variabili a cui assegnare i valori

-vedere se c'è qualcos'altro da sistemare (in particolare mi rimane il dubbio sulle porte usb e i vari rhub)

 

per la batteria ho trovato su internet questa possibile alternativa, l'ho scritto solo per la variabile SMD0, credi sia la stessa cosa?

into device label EC0 code_regex SMD0,\s+256, replace_matched begin SMD0,8,SMD1,8,SMD2,8,SMD3,8,SMD4,8,SMD5,8,SMD6,8,SMD7,8,SMD8,8,SMD9,8,SMDA,8,SMDB,8,SMDC,8,SMDD,8,SMDE,8,SMDF,8,SME0,8,SME1,8,SME2,8,SME3,8,SME4,8,SME5,8,SME6,8,SME7,8,SME8,8,SME9,8,SMEA,8,SMEB,8,SMEC,8,SMED,8,SMEE,8,SMEF,8, end;

into_all method label SMWR code_regex SMD0\s+=\s+Arg3 replaceall_matched begin WSMD(Arg3) end;

into method label WSMD parent_label EC0 remove_entry;
into device label EC0 insert
begin
Method (WSMD, 1, NotSerialized)\n
{\n
    Name (TEMP, Buffer (0x20){})
    TEMP = Arg0
    SMD0 = DerefOf (TEMP [Zero])
    SMD1 = DerefOf (TEMP [One])
    SMD2 = DerefOf (TEMP [0x02])
    SMD3 = DerefOf (TEMP [0x03])
    SMD4 = DerefOf (TEMP [0x04])
    SMD5 = DerefOf (TEMP [0x05])
    SMD6 = DerefOf (TEMP [0x06])
    SMD7 = DerefOf (TEMP [0x07])
    SMD8 = DerefOf (TEMP [0x08])
    SMD9 = DerefOf (TEMP [0x09])
    SMDA = DerefOf (TEMP [0x0A])
    SMDB = DerefOf (TEMP [0x0B])
    SMDC = DerefOf (TEMP [0x0C])
    SMDD = DerefOf (TEMP [0x0D])
    SMDE = DerefOf (TEMP [0x0E])
    SMDF = DerefOf (TEMP [0x0F])
    SME0 = DerefOf (TEMP [0x10])
    SME1 = DerefOf (TEMP [0x11])
    SME2 = DerefOf (TEMP [0x12])
    SME3 = DerefOf (TEMP [0x13])
    SME4 = DerefOf (TEMP [0x14])
    SME5 = DerefOf (TEMP [0x15])
    SME6 = DerefOf (TEMP [0x16])
    SME7 = DerefOf (TEMP [0x17])
    SME8 = DerefOf (TEMP [0x18])
    SME9 = DerefOf (TEMP [0x19])
    SMEA = DerefOf (TEMP [0x1A])
    SMEB = DerefOf (TEMP [0x1B])
    SMEC = DerefOf (TEMP [0x1C])
    SMED = DerefOf (TEMP [0x1D])
    SMEE = DerefOf (TEMP [0x1E])
    SMEF = DerefOf (TEMP [0x1F])
}\n
end;

 

Edited by fred99
Link to comment
Share on other sites

  • 1 month later...
  • 4 months later...

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.