Supervisor fabiosun Posted February 1, 2022 Supervisor Share Posted February 1, 2022 (edited) In questo thread proveremo a spiegare la funzione di questo interessantissimo quirk e soprattutto della correlata sezione di MMIO Whitelist che e' ancora piu' fondamentale per diversi sistemi. L'argomento e' stato documentato recentemente in modo piu' esaustivo nel pdf di configurazione di OpenCore, ma ha assunto al giorno d'oggi sempre piu' valore per avere un Hackintosh al massimo delle sue potenzialità anche alla luce delle nuove architetture di CPU in uso. Di base il quirk non e' attivo e per molti sistemi non e' indispensabile per far funzionare e partire il proprio Hack. A dicembre 2019 con l'uscita delle CPU AMD ThreadRipper della terza generazione (sTRX4), molti utenti, loro malgrado, sono stati costretti ad interessarsi al funzionamento del quirk in oggetto. In quel periodo la documentazione di OpenCore sull'argomento era poco esaustiva anche perche' era un quirk utile solo per vecchi sistemi. Con l'aiuto a volte criptico degli sviluppatori di OpenCore (ai quali e' sempre dovuto un ringraziamento per il loro lavoro) si sono iniziati a muovere i primi passi per capire come utilizzarlo per fare dei debug su una piattaforma come quella descritta poco sopra (sTRX4) in unione alla funzionalità della MMIO Whitelist. link Attivando il quirk e solo utilizzando una versione di debug di OpenCore con opzione Misc/Debug/Target impostato su 67, e' possibile, anche con una macchina che non parte, un debug nel quale sono evidenziate le aree MMIO del proprio PC (numero di aree e valori possono variare): 08:808 00:001 OCABC: MMIO devirt 0xE2100000 (0x81 pages, 0x8000000000000001) skip 0 08:809 00:001 OCABC: MMIO devirt 0xE3180000 (0x81 pages, 0x8000000000000001) skip 0 08:810 00:001 OCABC: MMIO devirt 0xEF100000 (0x181 pages, 0x8000000000000001) skip 0 08:811 00:001 OCABC: MMIO devirt 0xFA180000 (0x81 pages, 0x8000000000000001) skip 0 08:812 00:001 OCABC: MMIO devirt 0xFA300000 (0x100 pages, 0x8000000000000001) skip 0 08:813 00:001 OCABC: MMIO devirt 0xFEA00000 (0x100 pages, 0x8000000000000001) skip 0 08:814 00:001 OCABC: MMIO devirt 0xFEC00000 (0x1 pages, 0x8000000000000001) skip 0 08:816 00:001 OCABC: MMIO devirt 0xFEC10000 (0x1 pages, 0x8000000000000001) skip 0 08:817 00:001 OCABC: MMIO devirt 0xFED00000 (0x1 pages, 0x8000000000000001) skip 0 08:818 00:001 OCABC: MMIO devirt 0xFED40000 (0x5 pages, 0x8000000000000001) skip 0 08:819 00:001 OCABC: MMIO devirt 0xFED80000 (0x10 pages, 0x8000000000000001) skip 0 08:820 00:001 OCABC: MMIO devirt 0xFEDC2000 (0xE pages, 0x8000000000000001) skip 0 08:821 00:001 OCABC: MMIO devirt 0xFEDD4000 (0x2 pages, 0x8000000000000001) skip 0 08:822 00:001 OCABC: MMIO devirt 0xFEE00000 (0x100 pages, 0x8000000000000001) skip 0 08:823 00:001 OCABC: MMIO devirt 0xFF000000 (0x1000 pages, 0x8000000000000001) skip 0 08:825 00:001 OCABC: MMIO devirt 0x4040000000 (0x10400 pages, 0x8000000000000001) skip 0 08:826 00:001 OCABC: MMIO devirt 0x8BB0000000 (0x10400 pages, 0x8000000000000001) skip 0 08:827 00:001 OCABC: MMIO devirt 0x8BE0000000 (0x10400 pages, 0x8000000000000001) skip 0 08:828 00:001 OCABC: MMIO devirt 0xD750000000 (0x10400 pages, 0x8000000000000001) skip 0 E' di particolare importanza che queste aree possono essere diverse anche in condizioni di stesso BIOS e produttore, ma solo scambiando delle opzioni nel BIOS o riempendo gli slot nvme e pciexpress in maniera diversa. Nota: un errore comune e' prendere questa lista da una configurazione qualsiasi e inserirla nel proprio config.plist Va sempre necessariamente presa e calcolata nel sistema in uso e ricontrollata se si cambiano opzioni nel BIOS o si aggiunge hardware! Attivare il quirk comporta aver devirtualizzato le aree di memoria ed in alcuni casi liberati diversi megabyte di memoria (tipicamente dai 64 ai 256 Mb) fatto questo che consente ad alcuni sistemi problematici di partire senza avere il famigerato errore al boot (memory allocation errors), e questo proprio nelle fasi iniziali del boot. skip 0 significa area devirtualizzata e nel caso durante le sue operazioni interne macOS necessitasse di quell'area, non avendola a sua disposizione, si creerebbero mal funzionamenti o Kernel Panic. Su indicazioni dei devs di Opencore ci si e' concentrati sulle ultime 4 aree che sono quelle piu' corpose a livello di pagine da eventualmente devirtualizzare e con 16 combinazioni (4!) si stabili' che le patches del Kernel in uso allora erano malfunzionanti per i sistemi sTRX4. Trascuriamo ora questa affermazione rivelatasi poi non propriamente corretta, ma allora era praticamente un dato di fatto che porto' molti utenti sTRX4 con desiderio di utilizzare OSX sulle proprie macchine ad esplorare l'affascinante mondo della virtualizzazione con ProXmox. Ora le prove fatte all'epoca furono di riportare le ultime 4 aree a completo utilizzo di OSX (skip 1) in varie combinazioni (16). Come? Aggiungendo queste aree nella sezione Booter/MmioWhitelist del nostro config.plist. Per fare questo ci viene in aiuto la calcolatrice scientifica o la ottima app presente in area download HackCheck (visibile in foto) per il download clicca qui: https://www.macos86.it/files/file/95-hack-check/ ora concentriamoci solo sull'area: 08:828 00:001 OCABC: MMIO devirt 0xD750000000 (0x10400 pages, 0x8000000000000001) skip 0 e prendiamo il valore esadecimale 0xD750000000, questo andrà convertito in numero come da figura qui sotto: e andrà riportato precisamente nella apposita area del config.plist attivandolo: Dopo aver salvato il config.plist e riavviato avremo nel nostro successivo debug log questa situazione: 08:808 00:001 OCABC: MMIO devirt 0xE2100000 (0x81 pages, 0x8000000000000001) skip 0 08:809 00:001 OCABC: MMIO devirt 0xE3180000 (0x81 pages, 0x8000000000000001) skip 0 08:810 00:001 OCABC: MMIO devirt 0xEF100000 (0x181 pages, 0x8000000000000001) skip 0 08:811 00:001 OCABC: MMIO devirt 0xFA180000 (0x81 pages, 0x8000000000000001) skip 0 08:812 00:001 OCABC: MMIO devirt 0xFA300000 (0x100 pages, 0x8000000000000001) skip 0 08:813 00:001 OCABC: MMIO devirt 0xFEA00000 (0x100 pages, 0x8000000000000001) skip 0 08:814 00:001 OCABC: MMIO devirt 0xFEC00000 (0x1 pages, 0x8000000000000001) skip 0 08:816 00:001 OCABC: MMIO devirt 0xFEC10000 (0x1 pages, 0x8000000000000001) skip 0 08:817 00:001 OCABC: MMIO devirt 0xFED00000 (0x1 pages, 0x8000000000000001) skip 0 08:818 00:001 OCABC: MMIO devirt 0xFED40000 (0x5 pages, 0x8000000000000001) skip 0 08:819 00:001 OCABC: MMIO devirt 0xFED80000 (0x10 pages, 0x8000000000000001) skip 0 08:820 00:001 OCABC: MMIO devirt 0xFEDC2000 (0xE pages, 0x8000000000000001) skip 0 08:821 00:001 OCABC: MMIO devirt 0xFEDD4000 (0x2 pages, 0x8000000000000001) skip 0 08:822 00:001 OCABC: MMIO devirt 0xFEE00000 (0x100 pages, 0x8000000000000001) skip 0 08:823 00:001 OCABC: MMIO devirt 0xFF000000 (0x1000 pages, 0x8000000000000001) skip 0 08:825 00:001 OCABC: MMIO devirt 0x4040000000 (0x10400 pages, 0x8000000000000001) skip 0 08:826 00:001 OCABC: MMIO devirt 0x8BB0000000 (0x10400 pages, 0x8000000000000001) skip 0 08:827 00:001 OCABC: MMIO devirt 0x8BE0000000 (0x10400 pages, 0x8000000000000001) skip 0 08:828 00:001 OCABC: MMIO devirt 0xD750000000 (0x10400 pages, 0x8000000000000001) skip 1 Quindi l'area che abbiamo convertito e inserito nel config attivando YES ora e' listata nel config come skip 1. Che significa? Significa che ora questa area e' di nuovo a disposizione di OSX come se non avessimo attivato il quirk..ma solo lei. Se nella fortunata ipotesi che il nostro sistema parta ugualmente e arrivi al login, e' possibile procedere ad inserire ed attivare in MMIOWhitelist tutte le altre aree fino a quando non troviamo quella che e' deleteria nel nostro sistema. Quale e' un obiettivo utile per l'utente che necessita di utilizzare questa procedura? Riavere piu' skip 1 possibili! Se attivo il quirk DevirtualizeMMIO e metto tutte le aree in Whitelist che accade? Prima possibilità: - il sistema parte regolarmente! Bene avete perso un sacco di tempo perche' a voi non serve questa procedura! avere tutte le aree dichiarate e attivate nel config plist sezione Booter/MmmioWhitelist e' come lasciare il quirk DevirtualiseMMIO su OFF. Seconda possibilità: - il sistema non parte regolarmente! Benissimo e' per questo che avete attivato il quirk, se fosse possibile per noi mantenere tutto invariato non avremmo attivato il quirk. Quindi, di santa pazienza si provano a convertire uno ad uno tutti i valori ed ad inserirli in MMIOWhitelist (skip 1) fino a trovare quelli che non si possono inserire e che bloccano il proprio sistema. A questo punto, se le idee non si sono piu' ingarbugliate di quando avevate iniziato a leggere vi dovreste chiedere: Ma perche' fare questa operazione di ri-mettere a disposizione di OSX piu' aree possibili? Semplice, anche se il vostro pc parte e sembra funzionare correttamente solo attivando il quirk DevirtualiseMMIO, durante l'operatività quotidiana si potrebbero (si hanno di certo) dei problemi di KP, Reboot o semplicemente cattivi funzionamenti della Nvram e del ciclo sleep/wake. Quindi e' buona cosa perdere un po' di tempo ri-assegnandoli al libero utilizzo di OSX fino a quando non si trova o trovano quelli impossibili da riassegnare! Edited February 2, 2022 by fabiosun enfatizzata una linea per chiarezza 4 1 Link to comment Share on other sites More sharing options...
Moderators netgear Posted February 2, 2022 Moderators Share Posted February 2, 2022 Interessante dici dovrei farlo..? Spoiler 06:692 00:013 OCABC: MMIO devirt start 06:696 00:004 OCABC: MMIO devirt 0xF0000000 (0x8000 pages, 0x8000000000000000) skip 0 06:700 00:004 OCABC: MMIO devirt 0xFE000000 (0x11 pages, 0x8000000000000001) skip 0 06:704 00:004 OCABC: MMIO devirt 0xFEC00000 (0x1 pages, 0x8000000000000001) skip 0 06:708 00:004 OCABC: MMIO devirt 0xFED00000 (0x1 pages, 0x8000000000000001) skip 0 06:713 00:004 OCABC: MMIO devirt 0xFEE00000 (0x1 pages, 0x800000000000100D) skip 0 06:717 00:004 OCABC: MMIO devirt 0xFF000000 (0x1000 pages, 0x800000000000100D) skip 0 06:721 00:003 OCABC: MMIO devirt end, saved 147536 KB Spoiler 07:465 00:020 OCABC: MMIO devirt start 07:475 00:010 OCABC: MMIO devirt 0xF0000000 (0x8000 pages, 0x8000000000000000) skip 0 07:486 00:010 OCABC: MMIO devirt 0xFE000000 (0x11 pages, 0x8000000000000001) skip 0 07:496 00:010 OCABC: MMIO devirt 0xFEC00000 (0x1 pages, 0x8000000000000001) skip 0 07:507 00:010 OCABC: MMIO devirt 0xFED00000 (0x1 pages, 0x8000000000000001) skip 0 07:518 00:010 OCABC: MMIO devirt 0xFEE00000 (0x1 pages, 0x800000000000100D) skip 0 07:529 00:011 OCABC: MMIO devirt 0xFF000000 (0x1000 pages, 0x800000000000100D) skip 1 07:540 00:010 OCABC: MMIO devirt end, saved 131152 KB Link to comment Share on other sites More sharing options...
Moderators netgear Posted February 2, 2022 Moderators Share Posted February 2, 2022 Le voci sopra all'ultima rimangono skip 0 Link to comment Share on other sites More sharing options...
Supervisor fabiosun Posted February 2, 2022 Author Supervisor Share Posted February 2, 2022 Dipende @netgearse hai problemi o no Di solito non e' utile per tutti Link to comment Share on other sites More sharing options...
Moderators netgear Posted February 2, 2022 Moderators Share Posted February 2, 2022 DevirtualizeMMIO lo devo disabilitare per far funzionare le patch Link to comment Share on other sites More sharing options...
Supervisor fabiosun Posted February 2, 2022 Author Supervisor Share Posted February 2, 2022 1 minute ago, netgear said: Le voci sopra all'ultima rimangono skip 0 le devi dichiarare ed attivare Conversione da esadecimale a numero attivazione con Yes nel config Just now, netgear said: DevirtualizeMMIO lo devo disabilitare per far funzionare le patch Di che patch parli? Link to comment Share on other sites More sharing options...
Moderators netgear Posted February 2, 2022 Moderators Share Posted February 2, 2022 Si quello si se no non veniva skip 1 Link to comment Share on other sites More sharing options...
Supervisor fabiosun Posted February 2, 2022 Author Supervisor Share Posted February 2, 2022 perfetto skip 1 e' come se avessi il quirk su Off/no/False 🙂 gli altri ora li hai devritualizzati (dallo schema che hai postato) e per alcune operazioni e funzionalità di OSX non e' cosa buona (reboot/shutdown/Nvram) Link to comment Share on other sites More sharing options...
Moderators netgear Posted February 2, 2022 Moderators Share Posted February 2, 2022 Deve essere attivo Link to comment Share on other sites More sharing options...
Supervisor fabiosun Posted February 2, 2022 Author Supervisor Share Posted February 2, 2022 Ok allora se hai tempo e voglia dichiara tutti gli altri e attivali nel config poi vedi quali di questi e' essenziale riportare a 0 Link to comment Share on other sites More sharing options...
Moderators netgear Posted February 2, 2022 Moderators Share Posted February 2, 2022 Si ho capito MA: Deve essere ATTIVO..? Link to comment Share on other sites More sharing options...
Supervisor fabiosun Posted February 2, 2022 Author Supervisor Share Posted February 2, 2022 Come ti dicevo di solito non serve 🙂 Se lo attivi e non metti su yes nessuno dei valori MMIO del tuo sistema nel config Ti devirtualizza tutte quelle aree di memoria e se OSX ne ha bisogno e ci scrive potresti avere dei problemi Se il tuo sistema parte con DevirtualiseMMIO su NO, non devi perdere tempo con queste cose 🙂 Se non lo attivi la lista degli MMIO non serve e non viene utilizzata nemmeno se li dichiari! Link to comment Share on other sites More sharing options...
Moderators netgear Posted February 2, 2022 Moderators Share Posted February 2, 2022 Si parte con NO, ho messo tutte le aree e ora non trovo più gli SKIP Link to comment Share on other sites More sharing options...
Supervisor fabiosun Posted February 2, 2022 Author Supervisor Share Posted February 2, 2022 Si corretto te li espone solo mettendo quel quirk su YES Poi se la tua macchina ha bisogno del quirk per partire (non e' il tuo caso) si rimettono su skip 1 tutti quanti gli MMIO che e' possibile ridare a OSX Nel caso di macchine problematiche non e' possibile farlo su tutti, e si cerca di metterne il piu' possibile su 1 Se non si capisce dal primo post devo rivedere cosa ho scritto 🙂 Link to comment Share on other sites More sharing options...
Moderators netgear Posted February 2, 2022 Moderators Share Posted February 2, 2022 Quindi tolgo tutto e lascio come prima con DevirtualizeMMIO su NO in origine era su SI Link to comment Share on other sites More sharing options...
Supervisor fabiosun Posted February 2, 2022 Author Supervisor Share Posted February 2, 2022 16 hours ago, fabiosun said: Quale e' un obiettivo utile per l'utente che necessita di utilizzare questa procedura? Riavere piu' skip 1 possibili! Se attivo il quirk DevirtualizeMMIO e metto tutte le aree in Whitelist che accade? Prima possibilità: - il sistema parte regolarmente! Bene avete perso un sacco di tempo perche' a voi non serve questa procedura! avere tutte le aree dichiarate e attivate nel config plist sezione Booter/MmmioWhitelist e' come lasciare il quirk DevirtualiseMMIO su OFF. Seconda possibilità: - il sistema non parte regolarmente! Benissimo e' per questo che avete attivato il quirk, se fosse possibile per noi mantenere tutto invariato non avremmo attivato il quirk. Quindi, di santa pazienza si provano a convertire uno ad uno tutti i valori ed ad inserirli in MMIOWhitelist (skip 1) fino a trovare quelli che non si possono inserire e che bloccano il proprio sistema. A questo punto, se le idee non si sono piu' ingarbugliate di quando avevate iniziato a leggere vi dovreste chiedere: Ma perche' fare questa operazione di ri-mettere a disposizione di OSX piu' aree possibili? Semplice, anche se il vostro pc parte e sembra funzionare correttamente solo attivando il quirk DevirtualiseMMIO, durante l'operatività quotidiana si potrebbero (si hanno di certo) dei problemi di KP, Reboot o semplicemente cattivi funzionamenti della Nvram e del ciclo sleep/wake. Quindi e' buona cosa perdere un po' di tempo ri-assegnandoli al libero utilizzo di OSX fino a quando non si trova o trovano quelli impossibili da riassegnare! si qui si dovrebbe capire 1 minute ago, netgear said: Quindi tolgo tutto e lascio come prima con DevirtualizeMMIO su NO in origine era su SI Se prima di leggere questo thread era su No lascialo come era Se invece era su SI puoi provare a vedere quali degli MMIO puoi riassegnare Se il sistema parte con NO lascialo su NO Link to comment Share on other sites More sharing options...
Moderators netgear Posted February 2, 2022 Moderators Share Posted February 2, 2022 OK messo NO e tolto le patch, avevo capito che era meglio a prescindere... Ciao Fabio grazie per ora 1 Link to comment Share on other sites More sharing options...
Moderators netgear Posted February 2, 2022 Moderators Share Posted February 2, 2022 Ripulisci te il post dalle cose inutili Link to comment Share on other sites More sharing options...
Supervisor fabiosun Posted February 2, 2022 Author Supervisor Share Posted February 2, 2022 Ma no per me va bene cosi' alla fine sono domande lecite e la documentazione non e' proprio il massimo quindi dubbi e domande legittime 🙂 1 Link to comment Share on other sites More sharing options...
Moderators netgear Posted February 7, 2022 Moderators Share Posted February 7, 2022 Testato la z370 e h310 con DevirtualizeMMIO su NO e tutto risulta funzionare correttamente, prima lo tenevo attivato. 1 Link to comment Share on other sites More sharing options...
Moderators netgear Posted February 23, 2022 Moderators Share Posted February 23, 2022 Quindi se avvia senza DevirtualiseMMIO non devo fare altre verifiche lascio disabilitato..? Link to comment Share on other sites More sharing options...
Supervisor fabiosun Posted February 23, 2022 Author Supervisor Share Posted February 23, 2022 Si confermo 1 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now