Jump to content

1,085 posts in this topic

Recommended Posts

ciao a tutti, approfitto di questo topic in italiano per fare i complimenti agli sviluppatori di enoch perché trovo sia un'ottima risorsa.

Però chiedo qualche spiegazione perché non trovo un howto su tutti i parametri impostabili.

In particolare con Sierra sul dell m6400 in firma ho problemi a caricare il webdriver Nvidia e non riesco a caricare alcun kext da E/E: in fase di avvio non appare alcuna scritta tipo "attempting to loading drivers from extra repository" e dunque vengono ignorati i kext presenti in quella cartella.

Per quanto riguarda il webdriver Nvidia, riesco a caricarlo correttamente solo con l'utilizzo del modulo fileNVRAM, che in precedenza però non utilizzavo. In pratica seguendo questo metodo.

Però credo di capire che in questo modo E/E verrà sempre ignorata.

Senza il modulo fileNVRAM ho provato diversi flag senza successo, dopo il boot ritrovo sempre settati i driver apple.

Qualche suggerimento?

Share this post


Link to post
Share on other sites
Advertisement

ciao a tutti, approfitto di questo topic in italiano per fare i complimenti agli sviluppatori di enoch perché trovo sia un'ottima risorsa.

Però chiedo qualche spiegazione perché non trovo un howto su tutti i parametri impostabili.

In particolare con Sierra sul dell m6400 in firma ho problemi a caricare il webdriver Nvidia e non riesco a caricare alcun kext da E/E: in fase di avvio non appare alcuna scritta tipo "attempting to loading drivers from extra repository" e dunque vengono ignorati i kext presenti in quella cartella.

Per quanto riguarda il webdriver Nvidia, riesco a caricarlo correttamente solo con l'utilizzo del modulo fileNVRAM, che in precedenza però non utilizzavo. In pratica seguendo questo metodo.

Però credo di capire che in questo modo E/E verrà sempre ignorata.

Senza il modulo fileNVRAM ho provato diversi flag senza successo, dopo il boot ritrovo sempre settati i driver apple.

Qualche suggerimento?

Ciao c0ke

 

vedo solo adesso il tuo post...

I modulo FileNVRAM era diventato praticamente inutilizzabile dopo Maveric erano cambiate molte cose a livello

di sistema operativo il quale lo rendevano praticamente inutile per le versioni successive do OS X.

 

Recentemente (Gennaio 2017) un nostro caro amico Micky1979 ha ripreso il modulo abbandonato e lo ha aggiornato e sistemato

(per dirtela in termini brevi) rendendolo compatibile con El Capitan -> High Sierra aggiungendogli funzionalitá come ad esempio

l'uso dei WebDriver.

 

Enoch é cresciuto moltissimo,

tra le versioni di Chameleon é la piú aggiornata la piú completa e la piú performante persino del suo "papá"... Chameleon stesso

 

Enoch fa uso di due nuovi .plist il kernel.plist ed il kext.plist rispettivamente per patchare al volo (durante l'avvio)

il kernel ed gli Kext...

 

da Maverick in su risulta veramente complicato usare un bootloader che non abbia tali caratteristiche...

Fai conto che giá (se non ricordo male) da Snow Leopard mamma Apple ha reso difficile il caricamento degli Kext che non fossero quelli contenuti

all'interno di S/L/E cosa che Enoch permette grazie al parametro KernelBooter_kexts = yes settato nel kernel.plist e quindi carica i nostri Kext preferiti da E/E :D

 

esempio del kernel.plist lo puoi trovare sul mio repo in github o sull'SVN ufficiale di Chameleon

kernel.plist -> https://github.com/fabiomartino/Enoch/blob/master/package/kernel.plist

kext.plist -> https://github.com/fabiomartino/Enoch/blob/master/package/kexts.plist

 

Per i WebDriver ed la sua attivazione ed utilizzo ti consiglio di dare una lettura al topic di Chameleon/Enoch sull'Internazionale intorno alla pagina 210 http://www.insanelymac.com/forum/topic/231075-chameleon-24svn-official-pkg-installer/page-210

 

ErmaC

Share this post


Link to post
Share on other sites

(...)

all'interno di S/L/E cosa che Enoch permette grazie al parametro KernelBooter_kexts = yes settato nel kernel.plist e quindi carica i nostri Kext preferiti da E/E :D

(...)

 

Ciao ErmaC,

grazie della tua risposta! Gran bel lavoro, uso Chameleon/Enoch ormai da qualche anno e lo trovo veramente efficace.

Non ho provato ancora kext.plist, ma a breve lo testerò perché a quanto ho capito potrebbe aiutarmi a patchare AppleGraphicsPowerManagement, che tuttora devo ritoccare manualmente ad ogni upgrade.

Rigurardo il quote qui sopra su E/E ti confermo di aver settato il parametro KernelBooter_kexts su Yes su kernel.plist situato nella cartella Extra. tuttavia ho provato a mettere Nullcpupowermanagement in E/E (solo per provare l'efficacia della funzionalità), ma a quanto vedo non viene caricato.

Non mi è chiaro se con KernelBooter_kexts -> Yes durante il verbose boot dovrei nuovamente leggere il messaggio "attempting to loading drivers from extra repository", perché è un bel pezzo che non lo vedo più.

Inoltre su system profiler nella sez. estensioni non c'è traccia alcuna dei kext che metto su E/E.

Per ora cerco di fare a meno di fileNVRAM. successivamente approfondirò il perché i webdriver caricano solo in presenza di questo modulo. 

credo che allo stato attuale E/E venga ignorata, ma non capisco perché.

 

grazie ancora!

Share this post


Link to post
Share on other sites
Ciao a tutti,
Ho appena realizzato (ben tardi è vero) che la fonazione
"long NTFSGetUUID (CICell ih, char * uuidStr)" da "\ chameleon \ branches \ ErmaC \ Enoch \ i386 \ libsaio \ ntfs.c" (linea 310)
non può restituire l'UUID di una partizione o di un volume NTFS perché il numero di serie che è modificare per creare l'UUID, viene generalmente utilizzato nell'UUID di un volume NTFS n ma non è l'UUID di un volume NTFS. Per trovare l'UUID di un volume NTFS è necessario eseguire diverse ricerche descritte di seguito
 
Su una partizione NTFS l'UUID è circa 3352 byte dall'inizio della MFT, per trovare l'offset della MFT è necessario leggere gli 8 byte che partono dal byte 48 dell'inizio della partizione, Questi 8 byte una volta convertiti darà l'offset del settore in cui inizia la MFT. Per ottenere l'offset della MFT, gli 8 byte convertiti devono essere moltiplicati per il numero di byte per settore (512) e il numero di settori per cluster (8) (8 e 512 sono i valori predefiniti per una partizione NTFS).

Ad esempio, gli 8 byte che iniziano alla 48a (in lettura sono due caratteri per un byte) possono essere 0x698c670000000000 che dovranno essere invertiti 0x0000000000678c69 e convertiti in decimale 6786153. Quindi applicare la formula (6786153 * 8 * 512) o ( 6786153 * 4096) = 27796082688 (offset della MFT) + 3352 (offset UUID) = 27796086040. così nella partizione se passiamo al byte 27796086040 troveremo l'UUID della partizione su 16 byte che dovrà essere convertito in esadecimale e invertito per i primi 8.

Non c'è molto interesse nel modificare l'UUID di una partizione NTFS, Microsoft a quanto pare non lo usa, Mac OS X visualizza gli UUID delle partizioni. Non c'è molto commento sull'UUID delle partizioni NTFS.

Una precisione sull'offset UUID nella MFT di un volume NTFS, 3320 o 3352. La differenza deriva dall'origine della formattazione. Se si formatta un hdd o un vhd da Microsoft Windows, l'offset per l'UUID nella MFT sarà 3352 byte dall'inizio della MFT. Se si formatta un volume o VHD da Mac OS X, con Diskutil l'offset dell'UUID sarà 3320 byte dall'inizio della MFT. Tutto questo per un volume (o VHD) NTFS, ovviamente

Share this post


Link to post
Share on other sites

Ciao a tutti,

Sotto, la funzione "long NTFSGetUUID (CICell ih, char * uuidStr)" è stata modificata per visualizzare l'UUID effettivo di una partizione o di un volume NTFS, tutte le funzioni elencate sono in "

~/chameleon/branches/ErmaC/Enoch/i386/libsaio/ntfs.c

 

".

Per chiamare la funzione

Definisci ih, CICell ih;

e

char uuidstr [40];

Ho creato la chiamata della funzione in "void NTFSGetDescription (CICell ih, char * str, long strMaxLen)"
 
Quote

NTFSGetUUID(ih, uuidstr);


 

Quote

 

long NTFSGetUUID(CICell ih, char *uuidStr)
{
bool NTFSProbe(const void*);

long long mftOffset;

char sero[20];

const unsigned char bufff[32];
    struct bootfile *boot;
    void *buf = malloc(MAX_BLOCK_SIZE);
    if ( !buf )
    {
        return -1;
    }
    bzero(buf,MAX_BLOCK_SIZE);

    /*
     * Read the boot sector, check signatures, and do some minimal
     * sanity checking.     NOTE: the size of the read below is intended
     * to be a multiple of all supported block sizes, so we don't
     * have to determine or change the device's block size.
     */
    Seek(ih, 0);
    Read(ih, (long)buf, MAX_BLOCK_SIZE);

    boot = (struct bootfile *) buf;

    // Check for NTFS signature
    if ( memcmp((void*)boot->bf_sysid, NTFS_BBID, NTFS_BBIDLEN) != 0 )
    {
        // If not NTFS, maybe it is EXFAT
        free(buf);
        return EXFATGetUUID(ih, uuidStr);
    }

    // Check for non-null volume serial number

    if( !boot->bf_volsn )
    {
        free(buf);
        return -1;
    }

    free(buf);

    sprintf(sero,"%016llx",boot->bf_volsn);

    sprintf(sero,"%c%c%c%c-%c%c%c%c-%c%c%c%c-%c%c%c%c",sero[0],sero[1],sero[2],sero[3],sero[4],sero[5],sero[6],sero[7],sero[8],sero[9],sero[10],sero[11],sero[12],sero[13],sero[14],sero[15]);

    verbose("Numero de Serie %s\n " ,sero);

    mftOffset = (boot->bf_mftcn * boot->bf_bps * boot->bf_spc);

    bzero((void*)bufff,32);

    bzero(uuidStr,40);
    
    Seek(ih, mftOffset);

    Read(ih, (long)bufff, 5);
    
  if((unsigned char )bufff[4]==0x30)
        mftOffset = (mftOffset + 3352);
    else
        mftOffset = (mftOffset + 3320);

    bzero((void*)bufff,32);

    Seek(ih, mftOffset);

    Read(ih, (long)bufff,16);


    snprintf(uuidStr,
             37,
             "%02X%02X%02X%02X-"
             "%02X%02X-"
             "%02X%02X-"

             "%02X%02X-"
             "%02X%02X%02X%02X%02X%02X",
             bufff[3], bufff[2], bufff[1], bufff[0],
             bufff[5], bufff[4],
             bufff[7], bufff[6],
             bufff[8], bufff[9],
             bufff[10], bufff[11], bufff[12], bufff[13], bufff[14], bufff[15]);

    verbose("UUID : %s\n\n" ,uuidStr);

         return 0;
}

 

 

 

 

Edited by deek5

Share this post


Link to post
Share on other sites

Hi Ermac

1. Can Enoch dump virgin dsdt/ssdt like clover? somehow the dsdt linux and windows different..
2. The SkipNvidiaGfx s could stop optimus? i  usually removed the kext Geforce kext ad NV kext, otherwise it will no run. yes i need to kill it via dsdt....
3. The HDAEnabler in 2700 built somehow it not replaced the layoutid, apple-layoutid, and alc-layoutid. it stay on 7 and 0c/12 eventhough has set to 03000000 in com.chameleon.boot.plist. i had use the dsdt patch directly.
4. Does it work with lilu and applealc ? (need -lilubeta -alcbeta -kext-dev-mode=1 ?)
5. Does it patch the vanilla kext via plist like clover for applehda?
6. Does it has macOS Native CPU/IGPU Power Management like Plugintype=yes?
 

 

UPDATE: just tested

2. the nvidia off still need dsdt patches.

3. HDAEnabler can't change directly if had layoutid dsdt patches at mbr partition

4. it works well with lilu and applealc, i am suing flag kernel -kext-dev-mode=1 -lilubeta -alcbeta , so none patches to applehda

 

5. can it do kext patches to wifi io kext, especially i had 9285 (8211 bluetooth + 9002 Wifi)

 

 

----


1. Può Enoch scaricare vergine dsdt / ssdt come trifoglio? in qualche modo il dsdt linux e windows diversi ..
2. SkipNvidiaGfx s potrebbe fermare optimus? di solito ho rimosso il kext Geforce kext ad NV kext, altrimenti non funzionerà. sì ho bisogno di ucciderlo via dsdt ....
3. L'HDAEnabler nel 2700 ha costruito in qualche modo non sostituito il layoutid, apple-layoutid e alc-layoutid. rimane su 7 e 0c / 12 anche se è impostato su 03000000 in com.chameleon.boot.plist. ho usato direttamente la patch dsdt.
4. Funziona con lilu e applealc? (necessario -lilubeta -alcbeta -kext-dev-mode = 1?)
5. Applica la vaniglia kext tramite plist come il trifoglio per applehda?
6. Ha MacOS Native CPU / IGPU Power Management come Plugintype = sì?

 

Edited by Babiloe

Share this post


Link to post
Share on other sites
On 6/20/2018 at 10:43 AM, deek5 said:

 

 

 

 

 

Buongiorno,
per essere più preciso e sicuro di trovare l'offset UUID di una partizione NTFS (3352 o 3320 potrebbero non riuscire a seconda dell'applicazione utilizzata per formattare in NTFS) Ho trovato l'offset UUID a 3324 byte. Quindi, per l'effettivo offset di un UUID, ho cercato qualsiasi formattazione, un elemento comune a tutte le partizioni NTFS, sapendo che l'UUID è dopo 3300 byte dell'offset della MFT. l'elemento comune è "(" o 0x28 in esadecimale, si trova dopo "$ V olume", questo "(" si trova 20 byte dall'UUID.) Per trovare l'UUID prendo un campione di 40 byte dopo i ($ MFT +3300) byte, faccio un confronto di caratteri trovo il "(" e aggiungo 20 byte, che mi consente per il momento di trovare l'offset dell'UUID di una partizione NTFS.

Di conseguenza, ho cambiato la funzione "long NTFSGetUUID (CICell ih, char * uuidStr)"

 

/chameleon/branches/ErmaC/Enoch/i386/libsaio/ntfs.c

 

 

long NTFSGetUUID(CICell ih, char *uuidStr)
{

 

    bool NTFSProbe(const void*);

   

long long mftOffset;
    
    int i=0;

    char sero[20];

   

const unsigned char bufff[32];
    
    struct bootfile *boot;
    
    void *buf = malloc(MAX_BLOCK_SIZE);
    
    if ( !buf )
    {
        return -1;
    }

 

    bzero(buf,MAX_BLOCK_SIZE);

 

    /*
     * Read the boot sector, check signatures, and do some minimal
     * sanity checking.     NOTE: the size of the read below is intended
     * to be a multiple of all supported block sizes, so we don't
     * have to determine or change the device's block size.
     */

 

    Seek(ih, 0);
 

    Read(ih, (long)buf, MAX_BLOCK_SIZE);

 

    boot = (struct bootfile *) buf;

 

    // Check for NTFS signature
    if ( memcmp((void*)boot->bf_sysid, NTFS_BBID, NTFS_BBIDLEN) != 0 )
    {
        // If not NTFS, maybe it is EXFAT
        free(buf);
        return EXFATGetUUID(ih, uuidStr);
    }

    // Check for non-null volume serial number
    if( !boot->bf_volsn )
    {
        free(buf);
        return -1;
    }
    free(buf);

    sprintf(sero,"%016llx",boot->bf_volsn);
    sprintf(sero,"%c%c%c%c-%c%c%c%c-%c%c%c%c-%c%c%c%c",sero[0],sero[1],sero[2],sero[3],sero[4],sero[5],sero[6],sero[7],sero[8],sero[9],sero[10],sero[11],sero[12],sero[13],sero[14],sero[15]);
    verbose("Numero de Serie %s\n " ,sero);

    mftOffset = (boot->bf_mftcn * boot->bf_bps * boot->bf_spc)+3300;
 
    bzero((void*)bufff,32);
    
    bzero(uuidStr,40);
    
    
    Seek(ih, mftOffset);
    
    Read(ih, (long)uuidStr, 40);
 
    for (i=0;i<34;i++)
    {
        if((unsigned char )
uuidStr ==0x28)
        {
        
            mftOffset = (mftOffset+i+20);
            break;
        }
    }
  
    bzero(uuidStr,40);
    
    bzero((void*)bufff,32);
    
    Seek(ih, mftOffset);
    
    Read(ih, (long)bufff,16);


    snprintf(uuidStr,
             37,
             "%02X%02X%02X%02X-"
             "%02X%02X-"
             "%02X%02X-"

             "%02X%02X-"
             "%02X%02X%02X%02X%02X%02X",
             bufff[3], bufff[2], bufff[1], bufff[0],
             bufff[5], bufff[4],
             bufff[7], bufff[6],
             bufff[8], bufff[9],
             bufff[10], bufff[11], bufff[12], bufff[13], bufff[14], bufff[15]);

 

    verbose("UUID : %s\n\n" ,uuidStr);
 

         return 0;
}

 

 

 

 

 

Edited by deek5

Share this post


Link to post
Share on other sites
Ciao, per trovare in realtà l'UUID di una partizione NTFS, mi sono rassegnato ad utilizzare lo strumento di Microsoft, già utilizzato da attributo "NTFS_A_VOLUMENAME" nel file "Enoch / i386 / libsaio / ntfs.c" in function "void NTFSGetDescription (", ho scelto praticamente gli stessi elementi con

"#define OBJECT_ID 0x40"
    void * ObjectIDAttr = NULL;
    
    size_t ObjectIDSize = 0;
       const unsigned char * uuidstr1;
    
    char uuidstr [40];

    
    mftOffset = ((boot> bf_mftcn boot - *> * boot-bf_bps> bf_spc) + ((1 << - ((int8_t) boot> bf_mftrecsz)) * NTFS_VOLUMEINO));
    
    
    Cerca (ih, mftOffset);
    
    Leggi (IH (lungo) buf, (1 << - ((int8_t) boot> bf_mftrecsz)));
    
    
    if (ntfs_find_attr (BUF, OBJECT_ID, e ObjectIDAttr, e ObjectIDSize) == 0)
    {
        
        Bzero (uuidstr, 40);
        
        static char msg [40] = "";
        
        memcpy (uuidstr, ObjectIDAttr, (int) ObjectIDSize);
        
        uuidstr1 = (unsigned char *) uuidstr;
        
        snprintf (msg, 37, "% 02X% 02X% 02X% 02X 02X - %%% 02X- 02X 02X - %%% 02X- 02X% 02X% 02X% 02X% 02X% 02X% 02X", uuidstr1 [3], uuidstr1 [2], uuidstr1 [1], uuidstr1 [0], uuidstr1 [5], uuidstr1 [4], uuidstr1 [7] uuidstr1 [6], uuidstr1 [8] uuidstr1 [9] uuidstr1 [10] uuidstr1 [11] uuidstr1 [12] uuidstr1 [13] uuidstr1 [14] uuidstr1 [15]);
        
        verbose ("UID ID oggetto NTFS:% s \ n", msg);
    }
Riutilizzando ntfs_find_attr (
 
Ottengo l'offset dell'UUID e dell'UUID stesso.
sotto la chiamata della funzione "long NTFSGetUUID (CICell ih, char * uuidStr)" e la funzione stessa

    

"
utf_encodestr( nameAttr, nameSize / 2, (u_int8_t *)str, strMaxLen, OSLittleEndian );
    
    verbose("\nPartition NTFS %s\n",str);
   
    NTFSGetUUID(ih, uuidstr);
error:
    if (buf)
    {
        free(buf);
    }
    return;
}

"
long NTFSGetUUID(CICell ih, char *uuidStr)
{
    bool NTFSProbe(const void*);

    long long mftOffset;

    char sero[20];
 
    struct bootfile *boot;
    
    void *ObjectIDAttr=NULL;
    
    size_t ObjectIDSize=0;
    
    const unsigned char *uuidstr1;
    
    char uuidstr[40];
    

    void *buf = malloc(MAX_BLOCK_SIZE);
    
    if ( !buf )
    {
        return -1;
    }

    bzero(buf,MAX_BLOCK_SIZE);

    /*
     * Read the boot sector, check signatures, and do some minimal
     * sanity checking.     NOTE: the size of the read below is intended
     * to be a multiple of all supported block sizes, so we don't
     * have to determine or change the device's block size.
     */
    Seek(ih, 0);
    Read(ih, (long)buf, MAX_BLOCK_SIZE);

    boot = (struct bootfile *) buf;

    // Check for NTFS signature
    if ( memcmp((void*)boot->bf_sysid, NTFS_BBID, NTFS_BBIDLEN) != 0 )
    {
        // If not NTFS, maybe it is EXFAT
        free(buf);
        return EXFATGetUUID(ih, uuidStr);
    }

    // Check for non-null volume serial number
    if( !boot->bf_volsn )
    {
        free(buf);
        return -1;
    }

    sprintf(sero,"%016llX",boot->bf_volsn);
 
    sprintf(sero,"%c%c%c%c-%c%c%c%c-%c%c%c%c-%c%c%c%c",sero[0],sero[1],sero[2],sero[3],sero[4],sero[5],sero[6],sero[7],sero[8],sero[9],sero[10],sero[11],sero[12],sero[13],sero[14],sero[15]);
    
    verbose("Numero de Serie %s\n " ,sero);
    
    
    mftOffset = ((boot->bf_mftcn * boot->bf_bps * boot->bf_spc)+((1 << - ((int8_t) boot->bf_mftrecsz)) * NTFS_VOLUMEINO));
    
    
    Seek(ih, mftOffset);
    
    Read(ih, (long)buf, (1 << - ((int8_t) boot->bf_mftrecsz)));
    
    
    if(ntfs_find_attr(buf, OBJECT_ID, &ObjectIDAttr, &ObjectIDSize) == 0)
    {
              
        bzero(uuidstr,40);  
        
        static char msg[40] = "";
        
        memcpy(uuidstr,ObjectIDAttr,(int)ObjectIDSize);
        
        uuidstr1 = (unsigned char *) uuidstr;
        
        snprintf(msg, 37,"%02X%02X%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X%02X%02X%02X%02X",uuidstr1[3], uuidstr1[2], uuidstr1[1], uuidstr1[0],uuidstr1[5], uuidstr1[4],uuidstr1[7], uuidstr1[6],uuidstr1[8], uuidstr1[9], uuidstr1[10], uuidstr1[11], uuidstr1[12], uuidstr1[13], uuidstr1[14], uuidstr1[15]);
        
        
        verbose("NTFS ObjectID UUID : %s \n",msg);
    }
    
     
     
    free(buf);

    
    return 0;
}

 

ntfs.c

Edited by deek5

Share this post


Link to post
Share on other sites
On 5/2/2012 at 11:38 AM, ErmaC said:

Enoch Bootloader The son of Chameleon

by ErmaC

Introduzione:

  Reveal hidden contents

Tutti sappiamo che per utilizzare (avviare aka=boot) un sistema operativa abbiamo bisogno di un bootloader.

L'utilizzo di un bootloader in ambienti Winzoz avviene in maniera transparente, ma anche in questo caso è presente un "programma" che si occupa
di avviare e fornire determinate informazioni al Sistema operativo in modo schematico.

In ambiente HackMacintosh avviene la stessa cosa anche se in modo molto più visibile.

Cerco di non dilungarmi più di tanto... (vuole essere una piccola introduzione).
Chameleon.png
Chameleon è presentato in differenti versioni:

  • La trunk:
    La trunk viene definita come versione stabile e come prodotto finale.
  • Le varie sotto branches:
    Le branches sono delle "varianti" al progetto principale come la "trunk",
    tali varianti possono essere esperimenti, miglioramenti, personalizzazioni, ecc.... in fase di test da parte dei programmatori
    appartenenti al Team di sviluppo.

Essendo io stesso collaboratore del Team di Chameleon, ho "realizzato" nel corso del tempo la mia
versione personalizzata, la quale ritengo abbastanza matura e stabile.
Essa include (o meglio è) per quasi totalità il medesimo codice sorgente della trunk ma con personalizzazioni, miglioramenti e patch
a volte proposte dagli utilizzatori tramite il sistema delle issue.

 

========================================

Aggiornamento :
Per cortesia non postare questi file su altri server e non rielaborarli per altre distribuzioni, grazie.

========================================

Le KeyFlag di Enoch per l'org.chameleon.Boot.plist:

  • IntelCapriFB settato con un valore compreso tra 0 e 11 (FB per le Intel HD4000)
  • IntelAzulFB settato con un valore compreso tra 0 e 15 (FB per le Intel Haswell)
  • IntelBdwFB  settato con valore compreso tra 0 e 18  (FB per le Intel Broadwell)
  • NvidiaGeneric settato su Yes nel o.c.B.p visualizza il nome generico per le schede grafiche nVidia (GraphicsEnbler)
  • EnableDualLink settato su Yes nel o.c.B.p inietta il valore AAPL00,DualLink sia nVidia che ATi (GraphicsEnbler)
  • SkipIntelGfx settato su Yes nel o.c.B.p salta il riconoscimento delle schede grafiche Intel (GraphicsEnbler)
  • SkipNvidiaGfx settato su Yes nel o.c.B.p salta il riconoscimento delle schede grafiche nVidia (GraphicsEnbler)
  • SkipAtiGfx settato su Yes nel o.c.B.p salta il riconoscimento delle schede grafiche AMD/Ati (GraphicsEnbler)
  • USBInject settato su Yes nel o.c.B.p assegna valori alle tipologie di USB incontrate (UHCI/OHCI/EHCI/XHCI)
  • EnableBacklight settato su Yes nel o.c.B.p abilita il Backlight © a Marchrius (GraphicsEnbler)
  • EnableWifi settato su Yes nel o.c.B.p setta i device wifi come Built-In

Le KeyFlag di Enoch per l'smbios.plist

  • SMboardtype settato su 11 (congiuntamente a un MacProX.1) nel smbios.plist visualizza il numero slot processore in System Profiler

========================================

Caratteristiche in lavorazione:

--------------------

  • HDA.pngAbilitazione Audio HDAEnabler senza ausilio di HDEF nel DSDT o HDAEnabler.kext TESTING
      Reveal hidden contents

    Modulo HDAEnabler.dylib
    Modulo_Chamelon.png
    Questo modulo permette l'iniezione del valore dato al layout-it per l'HDEF e per HDAU dei controller audio.
    Il vantaggio dato dall'utilizzo e dovuto al semplice utilizzo e non è più necessario mettere mano al DSDT,
    infatti copiando il modulo nella cartella /Extra/modules e utilizzando le chiavi HDAEnabler=Yes
    in combinazione con HDEFLayoutID=un valore decimale per l'HDEF e HDALayoutID=un valore decimale per l'HDAU,
    il modulo si prenderà cura di iniettare il layout-id specificato per l'abilitazione del controller audio.
    =====
    Esempio

    
    
    <key>HDAEnabler</key>
    <string>Yes</string>
    <key>HDEFLayoutID</key>
    <string>12</string>
    <key>HDAULayoutID</key>
    <string>12</string>

     

    --------------------

  • nvidia.png Riconoscimento del subvendorId e subdeviceId anche per le schede nVidia COMPLETATO
      Reveal hidden contents

    Che beneficio porterebbe tale Features?
    A livello prestazione non cambia nulla, avremo nel nostro "Informazioni su questo Mac" visualizzata la scheda esatta montata dalla macchina.
    Esempio invece di avere mostrata una scheda generica della stessa famiglia verrebbe visualizzata la marca esatta
    Da:

    
    
    GeForce GTX 260M

    A:

    
    
    Dell GeForce GTX 260M

    Come procedere?
    In questo allegato sono presenti i binari compilati (Xcode4.5.2) con l'aggiunta della caratteristica descritta in precedenza.
    - (Consiglio vivamente di reinstallare tutti e tre i binari, specialmente se arrivate da una versione diversa di chameleon)
    Installati i binari, riavviate.
    Aprite Chameleon Wizard e spostatevi nella TAB bdmesg (potreste fare tale operazione anche da terminale con bdmesg).
    A questo punto avrete un "output" di log simile a questo:
     


    Ho evidenziato in blu la parte interessata, attualmente ho inserito diversi subId per alcune schede, è probabile che non noterete alcuna differenza...
    questo perché la vostra scheda "esatta" non è ancora presente nell'elenco.

    Postate tale porzione di output con una descrizione della scheda (ad esempio se ha un nome particolare ... il nome sulla confezione ad esempio?)
    Anche il quantitativo di memoria effettiva è importante (in alcuni modelli la memoria posseduta non è calcolata correttamente)

    Il codice sorgente di tale features verrà aggiornato sull'svn appena avrò collezionato un numero significativo di subsID oltreché a feedback positivi sul funzionamento.

     

    --------------------

  • nvidia.pngHDMI.png Abilitazione Connessioni HDMi su schede nVidia e Ati. COMPLETATO

========================================

Fabio

 

Share this post


Link to post
Share on other sites
Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Rohan20
      Opencore is running really really slow on Catalina 10.15.4. So It was running perfectly before I put the ssdt-pnlf for enabling Brightness control. it is running really slow and I verified my config with the sanity checker and its all correct. can someone please help. I am attaching my oc folder.

       
      https://www.dropbox.com/s/drkek0eaz19ina5/OC.zip?dl=0
       
    • By StarFighter_77
      I built this hack years ago now. Started with Lion, now on El Cap. I want to update now to High Sierra.

      I think I messed up my Clover when I downloaded the update .pkg and just installed it without taking my time or customizing the install. Was on Clover r3423, now I think I'm on r5104

      I've been searching and reading this site and others for a few days before making this thread, but I need help compiling what I've learned to get my system running correctly again and ready to update to High Sierra. Then, eventually, I want to update my graphics card, switch to UEFI (if necessary) and update to Mojave.

      I couldn't get system to boot. Could get to Clover and all the options, except the Shell... I hit enter on the Shell and I get black screen and nothing.

      The only way I got it to boot was to add -v to boot args, and change smbios from 14,2 to 13,2. Not sure why that worked still. Also I'm running two monitors, but I can only now run one of them off the Intel 3000 Graphics and the second one off my GFX Card.

      So now I'm afraid to shut down or reboot.... I could really use some help with Clover.

      I'm pretty sure my config file in Clover is not right. Also, some of the files in my Clover backups are not in the new Clover install. (2.5k 5104)

      If someone could please take a look at the files I've attached and help me sort this out, I would be grateful. Thank you, Thank you, Thank you.

      I've attached
      - The last boot log
      - The current Clover folder from the EFI partition after performing Clover update. (.zip)
      - The Clover backup that was working before Clover update (.zip)
      - Library/Extensions Folder (screen shot)
      - System/Library/Extensions Folder (.zip)

      Here is my current hardware:

      Mobo: GIGABYTE GA-Z68MX-UD2H-B3

      CPU: Intel Core i7-2600K

      GPU: GIGABYTE ATI Radeon HD6870 1GB DDR5 2DVI/HDMI/2x

      RAM: Corsair Vengeance Blue 16 GB DDR3 SDRAM Dual Channel Memory Kit CMZ16GX3M4A1600?C9B

      HD0 (for OS and Apps): OCZ Technology 120 GB Vertex Series SATA II Solid State Drive

      HD1 (file storage, Adobe scratch disk): Samsung 1 TB Spinpoint 7200 RPM 32MB Cache SATA

      BURNER: LG CD/DVD Burner Model GH22NS50

      CPU COOLER: Corsair Cooling Hydro Series H50 All in One High-performanc?e CPU Cooler CWCH50-1

      P/S: Antec CP-850 850 Watt CPX Power Supply Unit

      CASE: Antec Performance One P183 V3 Case
      CLOVER.zip
      CloverBackup.zip
      bootlog.txt

      S_L_E.zip
×