Leaderboard
Popular Content
Showing content with the highest reputation on 02/02/2022 in all areas
-
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!2 points
-
2 points
-
Just replace libmkl_waves.dylib in /Library/Application\ Support/Waves/Modules/MklWaves.framework/Versions/A/libmkl_waves.dylib Recodesign it: sudo codesign --force --deep --sign - /Library/Application\ Support/Waves/Modules/MklWaves.framework/Versions/A/libmkl_waves.dylib If you mix them with v12 or inferior versions plugins you'll need further patches. libmkl_waves.dylib.zip1 point
-
1 point
-
OK messo NO e tolto le patch, avevo capito che era meglio a prescindere... Ciao Fabio grazie per ora1 point
-
Since I joined the Hackintosh scene I've always loved to run macOS on AMD hardware because of my "think REALLY different" way of living the Apple world: using an officially not supported cpu on a non official hardware doubles the fun to make macOS work fine with standard PCs. Thanks to the AMD vanilla patches we can run even the latest macOS on modern AMD machines without creating a custom kernel, but there are still some caveats. Certain apps use the infamous Intel MKL libraries, now called Intel OneAPI: those libraries are x86_64 compliant but in the macOS porting certain functions work only on genuine intel cpus: these are __intel_fast_memset.A and __intel_fast_memcpy.A. We can fool these libraries redirecting those calls to __intel_fast_memset.J and __intel_fast_memcpy.J which work perfectly on AMD Hackintoshes, and as fast as possible given the fact that we lack AVX512. But we also need to fool them changing the function __mkl_serv_intel_cpu_true returning TRUE even when running on AMD cpus. Using only these three "patches" we can make every intel only app run on our AMD Hacks natively without using hypervisors and without bypassing or deleting important functions / files of our specific app. It is possible to have SIP Enabled or Disabled. Some examples below: After Effects CC Libraries to be patched: 1) libiomp5.dylib 2) libmkl_core.1.dylib 3) libmkl_avx512.1.dylib Photoshop: Library / plugin to be patched: 1) libmkl_core.dylib 2) Adaptive Wide angle Premiere Pro: Effects / plugins to be patched: 1) Stabiliser 2) Rolling Shutter 3) Morph Cut If you want to keep SIP enabled we need to force codesigning of our modified binaries. You can achieve this by running in terminal, for each modded binary: sudo codesign --force --deep --sign - as an example if we patch the Premiere Pro "MorphCut" plugin we must issue this command to recreate the correct sign for this binary: sudo codesign --force --deep --sign - /Applications/Adobe\ Premiere\ Pro\ 2021/Adobe\ Premiere\ Pro\ 2021.app/Contents/Plug-Ins/Common/AEFilterMorphCut.bundle given that we have modified the macOS executable inside this path: /Applications/Adobe Premiere Pro 2021/Adobe Premiere Pro 2021.app/Contents/Plug-Ins/Common/AEFilterMorphCut.bundle/Contents/MacOS Adobe Photoshop 22.5.1 Adobe After Effects 18.4.1 Adobe Premiere Pro 15.4.1 Autodesk Autocad 2022 Autodesk Maya 2022 Wolfram Mathematica 12.3 Matlab 2021a MatLab 2021b Skylum Luminar AI 2021 Topaz Gigapixel AI Discord Krisp AI 1.30.10 + 1.31.22 Waves 13 Complete Neo 0.9.1 Luminar Adobe After Effects 22.1.2 Adobe Premiere Pro 22.1.2 Adobe Photoshop 23.1 Adobe Photoshop 23.2.0 After Effects 22.3.0 (Build 47) PyTorch 1.10.2 Krisp 1.32 and up1 point