Jump to content

[AGPM] AppleGraphicsPowerManagement.kext e comportamenti vari


Mela quadrata
 Share

85 posts in this topic

Recommended Posts

Apro questo tread, per chiedere aiuto su una cosa molto particolare, che mi sta succedendo

sul hackintosh...

 

Praticamente la mia scheda video funziona apparentemente perfettamente, compresi gli speed step dei vari stadi di risparmio energetico:

 

Frequenze_HM_Minime.jpg Frequenze_HM_Massime.jpg

 

questi sono i vari stadi funzionanti che usa la mia scheda video:

 

GPU9800m.jpg

 

Per farglieli riconoscere correttamente ho modificato all'interno del AGPM.kext il suo info plist inserendo, nella macchina corrispondente a quella dell'smbios.plist che uso, il vendor id e device della scheda grafica...

 

I vari pstate paiono funzionare senza problemi, ma se metto in stop il sistema, quando ritorno sul desktop la scheda video  inizia a lavorare solo ed esclusivamente alla massima frequenza e voltaggio... L'unico modo per farla tornare a lavorare correttamente è riavviare la macchina... :(

 

Capite bene che su un portatile nel caso volessi utilizzarlo a batteria è alquanto sconveniente, oltre a far si che ci sia un surriscaldamento inutile della macchina stessa...

 

Qualcuno ha idea di come evitare che al ritorno dallo sleep la scheda torni ad utilizzare correttamente l'agpm che ho impostato?

 

Help me... :help:

Link to comment
Share on other sites

Presumo sia corretto.

Vendor: 10de (nVidia)

Device: 062C (GeForce 9800M GTS)

 

Quello che non mi convince sono i parametri AGPM, dove li hai trovati?

Oppure hai modificato un profilo esistente cambiando Device id? 

Link to comment
Share on other sites

Presumo sia corretto.

Vendor: 10de (nVidia)

Device: 062C (GeForce 9800M GTS)

 

Quello che non mi convince sono i parametri AGPM, dove li hai trovati?

Oppure hai modificato un profilo esistente cambiando Device id? 

 

Ciao Ciro82, grazie anche a te...

 

Ho inserito device ID ad un profilo macbookpro 5,1... i parametri funzionavano anche di base, ma avevo un flickering dello schermo, cosi a tentativi al momento è la soluzione più stabile (il flickering sembra molto meno frequente)... comunque sia al di la dei parametri impostati anche come erano nel profilo originale, il problema è solo al ritorno dallo sleep...

 

Lo sleep di suo funziona perfettamente, il portatile entra in sleep anche se chiudo il monitor sulla tastiera, non ho bisogno neanche di dargli il comando... ma quando riapro, la scheda funziona sempre a palla e non utilizza più i parametri che invece prima dello sleep utilizzava

Link to comment
Share on other sites

Quale device id aveva il profilo prima che tu lo modificassi? Solo per capire a quale scheda video apparteneva il profilo originale.

 

EDIT: ho controllato ora, GeForce 9600M GT, quindi i valori degli "states" potrebbero andare bene.

Link to comment
Share on other sites

Quale device id aveva il profilo prima che tu lo modificassi? Solo per capire a quale scheda video apparteneva il profilo originale.

 

EDIT: ho controllato ora, GeForce 9600M GT, quindi i valori degli "states" potrebbero andare bene.

 esatto

anche se non c'era il device id, visto che i macbook pro 5,1 usano 2 schede:

 

9400m come base e 9600gt come discreta...

 

 

e nell agpm del macbookpro 5,1 venivano identificate come GFX0 e IGPU ... io ho cambiato GFX0 con il device id della mia e ho cancellato l'integrata, dato che il mio portatile ha solo una scheda video... se lasciavo tutto come era, lo speedstep della mia scheda funzionava fisso a 400mhz in alimentazione, (il massimo è 600mhz), e se lo mettevo a batteria in automatico, scalava ma il massimo sembrava sempre e solo 400mhz)

questo era come era l'agpm del macbook pro5,1 in originale:

 

Schermata_2014_11_02_alle_15_46_09.jpg

 

e di seguito come l'ho impostato io:

 

Schermata_2014_11_02_alle_15_48_03.jpg

Link to comment
Share on other sites

Guardando IoReg la video lavora GFX0, dalla foto modifichi info.plist eliminando la parte relativa GFX0 e IGPU 

Secondo me l'errore è qui

 

Fabio

 

ti ringrazio, ma se lo lasciavo inalterato, la frequenza con uso alimentatore, rimaneva sempre fissa a 400mhz (quando il massimo è comunque 600mhz) e lo speed step verso gli states inferiori avveniva solo se scollegavo la presa ed iniziavo l'uso con la batteria...

 

dici che non occorre dargli il vendor id ed il device id?

 

Eppure se sostituisco con quello la parte GFX0, lo speedsteep non lavora più fisso a 400mhz con alimentatore ma scende a 168mhz salendo anche fino a 600 mhz se le richieste grafiche lo necessitano

 

Tu come proveresti ad impostarlo?

 

 

 

EDIT: mi sa che ho detto una boiata ragazzi... ho scaricato open gl estension viewer e riprovato con agpm originale e durante il test la gpu è salita magicamente a 600mhz... se poi metto in stop, al ritorno, la gpu va a 400mhz fissi fino a che nn abbisogna di aumentare, però a sto punto mi chiedo come mai se invece sostituisco GFX0 con il vendor id e il device id, anche in alimentazione la gpu non rimane come minimo a 400mhz... se non ne ha bisogno scende fino a 168mhz... diciamo che usa meno energia sempre...

Link to comment
Share on other sites

ti ringrazio, ma se lo lasciavo inalterato, la frequenza con uso alimentatore, rimaneva sempre fissa a 400mhz (quando il massimo è comunque 600mhz) e lo speed step verso gli states inferiori avveniva solo se scollegavo la presa ed iniziavo l'uso con la batteria...

 

dici che non occorre dargli il vendor id ed il device id?

 

Eppure se sostituisco con quello la parte GFX0, lo speedsteep non lavora più fisso a 400mhz con alimentatore ma scende a 168mhz salendo anche fino a 600 mhz se le richieste grafiche lo necessitano

 

Tu come proveresti ad impostarlo?

 

 

 

EDIT: mi sa che ho detto una boiata ragazzi... ho scaricato open gl estension viewer e riprovato con agpm originale e durante il test la gpu è salita magicamente a 600mhz... se poi metto in stop, al ritorno, la gpu va a 400mhz fissi fino a che nn abbisogna di aumentare, però a sto punto mi chiedo come mai se invece sostituisco GFX0 con il vendor id e il device id, anche in alimentazione la gpu non rimane come minimo a 400mhz... se non ne ha bisogno scende fino a 168mhz... diciamo che usa meno energia sempre...

 

La risposta l'hai data se non ha bisogno la frequenza scende al minimo e risparmia energia.

 

Fabio

Link to comment
Share on other sites

Però non è sbagliato, cioè, la discesa verso gli states inferiori quando è alimentato a batteria è corretto IMHO

 

si su questo mi trovi d'accordo con te, ma non capisco perchè invece se uso l'alimentatore debba stare costantemente ad un minimo di 400mhz anche se non necessario...

 

Ho appena fatto un altra prova, lasciando l'agpm originale con GFX0 e IGPU, ed installando un legacyAGPM.kext con all'interno il mio vendor id e device id...

 

Computer con alimentaore lo speedstep funziona con tutti i suoi pstates, infatti se non necessita di grafica rimane al minimo (168mhz) per poi salire 275mhz, 400mhz, 600mhz se necessario, ma se metto in stop ritorna il problema che avevo con l'id device al posto di GFX0 nell'agpm originale...

 

Dite che devo accontentarmi di tenermi come frequenza minima 400mhz durante il collegamento del laptop all'alimentatore?

La risposta l'hai data se non ha bisogno la frequenza scende al minimo e risparmia energia.

 

Fabio

 

 

forse hai letto di fretta o non mi sono spiegato bene io... non scende al minimo, con il kext originale... rimane a 400mhz mentre il minimo è 168mhz e ci va solo se modifico l'id device, ma con conseguente problema di ripartire a palla (600mhz fissi) dal risveglio dallo sleep...

Link to comment
Share on other sites

Il discorso AGPM è complesso, almeno per me, in quanto bisognerebbe avere un profilo di power management riferito alla scheda (o comunque una scheda con pari valori) che si vuole far funzionare e lavorare su quello. Io per ora non ho ancora provato a lavorare sulla mia GTX 660 e non ho modificato l'AGPM. 

Link to comment
Share on other sites

rimane a 400mhz mentre il minimo è 168mhz e ci va solo se modifico l'id device, ma con conseguente problema di ripartire a palla dal risveglio dallo sleep...

 

Eppure se sostituisco con quello la parte GFX0, lo speedsteep non lavora più fisso a 400mhz con alimentatore ma scende a 168mhz salendo anche fino a 600 mhz se le richieste grafiche lo necessitano

 

No, intendevo come detto che la frequenza scende, ma come riferimento mi riferisco sempre alla modifica che fai, c'è qualcosa che crea il problema al rsveglio

 

Fabio

Link to comment
Share on other sites

No, intendevo come detto che la frequenza scende, ma come riferimento mi riferisco sempre alla modifica che fai, c'è qualcosa che crea il problema al rsveglio

 

Fabio

 

E' questo che non capisco, ovvero agpm lavorerebbe come dovrebbe, ma poi al risveglio sembra che non venga più caricato, o che venga caricato solo lo state con frequenza massima, e non capisco da cosa possa dipendere questo...

 

Può anche darsi che apple nelle impostazioni avesse considerato di fare lavorare al minimo la scheda discreta, solo con uso batteria e tenerla ad uno state medio alto se collegato alla presa di corrente?

per il mio portatile uso un dsdt.aml adattato anche per la scheda video, e credo sia per quello che essa venga vista come GFX0... potrebbe essere in conflitto il dsdt per il risveglio corretto dell'agpm delle GPU?

 

Il dsdt.aml lo trovai qui:

 

 

http://wiki.osx86project.org/wiki/index.php/HCL_10.7.0/Portables#M860TU

 

come scrisse l'autore:

 works only with Clevo M860TU with nVidia GeForce 9800GTS. If you have some graphics card, you need to delete or correction GFX0 section in my DSDT or use GraphicsEnabler/NVEnabler

 

Può essere che la sezione GFX0 del dsdt.aml ora mi crei conflitto per il corretto risveglio degli pstates della gpu nel caso io inserisca l'iddevice?

Link to comment
Share on other sites

C'è da considerare che utilizzare la video con solo la batteria il sistema e hardware assieme cercheranno di risparmiare energia se no durerebbe poco.

Caso contrario se collegato alla presa di corrente, in quel caso da sfruttare al max la video, ma questo ne siete a conoscenza.

Riferendomi al AGPM modificato è per due schede video GFX0 e IGPU prova modificandolo lasciando solo la parte GFX0 è una prova.

 

Fabio

Link to comment
Share on other sites

C'è da considerare che utilizzare la video con solo la batteria il sistema e hardware assieme cercheranno di risparmiare energia se no durerebbe poco.

Caso contrario se collegato alla presa di corrente, in quel caso da sfruttare al max la video, ma questo ne siete a conoscenza.

Riferendomi al AGPM modificato è per due schede video GFX0 e IGPU prova modificandolo lasciando solo la parte GFX0 è una prova.

 

Fabio

 

E' una delle tante prove già fatte, ma non ha funzionato, la gpu in alimentazione lavora anche al minimo pstate, ma poi al risveglio si fissa solo sulla massima frequenza

Link to comment
Share on other sites

Allora ragazzi nessuna idea?

 

Tengo le cose come stanno ora con la Gpu che lavora fissa al pstate 3 di 400mhz come frequenza minima con alimentazione?

A parte la prova che ti ho detto, ma che hai fatto non ho suggerimenti, meglio lasciare agpm senza modifica

 

Fabio

Link to comment
Share on other sites

Già, ho fatto un altra prova togliendo anche il dsdt.aml, ma i risultati non hanno portato a pensare che ci fossero conflitti in essere a causa del dsdt.aml...

 

Il discorso che non mi è chiaro è come apple gestisca il tutto, perchè ho fatto una prova togliendo dall'agpm il profilo macbookpro5,1 che uso sul smbios rinominandolo in 5,0,   ma i pstates continuavano a funzionare ugualmente andando anche al minimo di 168mhz, ma poi il problema dello sleep continuava ad esistere...

 

Da questa prova mi viene da pensare che il profilo macbook5,1 nell'agpm non venisse affatto utilizzato... ma allora perchè se tolgo l'intero AppleGraphicsPowerManager.kext, i pstates non vengono più riconosciuti e la scheda lavora al massimo della frequenza?!?

Link to comment
Share on other sites

Io non utilizzo un profilo per l'AGPM e la scheda lavora correttamente, se mando la macchina in stop e la risveglio, le frequenze della GPU e della VRAM schizzano al massimo per circa 3-4 secondi per poi tornare ai livelli idle: 

28i15yh.png

  • Like 1
Link to comment
Share on other sites

Io non utilizzo un profilo per l'AGPM e la scheda lavora correttamente, se mando la macchina in stop e la risveglio, le frequenze della GPU e della VRAM schizzano al massimo per circa 3-4 secondi per poi tornare ai livelli idle: 

28i15yh.png

 

come fai a non utilizzare un profilo?!?

 

Schermata_2014_11_04_alle_01_01_24.png

 

 

 

Nel senso, da come l'avevo capita io, se il tuo hack viene riconosciuto con un profilo di un relativo mac, in automatico AppleGraphicsPowerManagement.kext, al suo interno (voce Machines dell'info.plist), ha il profilo corrispondente che utilizzerebbe per i pstate della GPU... ma a sto punto non mi tornano le cose, visto l'esempio che ti ho fatto, quando ho tolto da suddetto kext il profilo del macbookpro5,1 con cui il mio hack viene identificato

Link to comment
Share on other sites

Ragazzi! Svelato l'arcano!

 

Il problema non è nel AGPM, ma nell' AppleACPIPlatform.kext!

 

Siccome nel mio portatile per fargli riconoscere correttamente la lettura della carica della batteria con l'AppleSmartBatteryManager.kext patchato per tale scopo, sono costretto a portarmi dietro da anni il vecchio AppleACPIPlatform.kext che usavo anche in Snow Leopard, è questo che va in conflitto e crea il problema della GPU a palla al risveglio...

 

Ho provato a rimettere il kext originale, che oltrettutto anche con l'alimentatore non mi fa tenere come frequenza minima i 400 mhz, ma la reale minima frequenza dei 168mhz...

 

Ora che ho capito l'arcano però mi si presenta un nuovo problema...

 

Con AppleACPIPlatform.kext di snow leopard, ho questi problemi:

 

1) Il numero seriale messo nell'smbio.plist non viene mai riportato nelle informazioni di sistema

2) La frequenza minima con alimentatore della GPU rimane a 400 mhz a meno che non ci metta il device id della scheda video nell'AGPM, in questo caso però poi il risveglio dallo sleep lascia la GPU alla massima frequenza di 600 mhz...

 

 

Se invece rimetto l' AppleACPIPlatform.kext originale di Yosemite, succede questo:

 

1) Il numero seriale presente nel smbios.plist viene riconosciuto nelle info di sistema

2) Le frequenze della GPU tornano a funzionare tutte, anche le minime anche se collegato ad alimentatore, senza inserire nessun device id nell'agpm.

3) di contro non posso più leggere la carica e lo stato della batteria in quanto con questo kext l'appleSmartBatteryManager.kext patchato non è più in grado di compiere il suo lavoro...

 

E' chiaro a sto punto che la soluzione ottimale sarebbe quella di continuare ad utilizzare l'appleACPIPlatform originale di yosemite, ma visto che ho un portatile, non poter leggere lo stato e la carica della batteria mi da alquanto noia... :(

 

Soluzioni? Idee? :blush:

 

 

Edit: rettifico...Dopo aver scritto questo post con l'appleACPIplatform originale, ho riprovato a rimandare in sleep la macchina , ma sembra andarci per mezzo secondo spegnendo lo schermo ma si riaccende subito... Questo dopo che il primo tentativo di sleep era andato a buon fine con conseguente positivo risveglio con frequenza minima di 168mhz..  Edit ora al riavvio lo sleep sembra andare di nuovo...

Link to comment
Share on other sites

 Share

×
×
  • Create New...