Jump to content

Documention: Adding a new model to EDP


Recommended Posts

  • Administrators

While this info is not for the average user - it might help a bit to shed some light on how model info is stored in EDP.

There is certain steps you need to follow to add a new model to EDP  (and understand)

1. Create model folder
2. Add the model build data to the modelinfo file
3. Commit to SVN, Request BPG update and update mysql

Step 1) - Creating a model folder
The model folder contains all the raw data (dsdt, ssdt, plists, kexts etc.) for the specific model, a typical layout looks like this


The Modelname is defined by __ (eg. Dell_Latitude_D430) - you have to use the exact structure with 3 _ to make sure BPG picks it up right

<model name>
 - Common (Contains common plists, chameleon, kernel, dsdt and ssdt used under all OS)
    Extensions (Contains common kexts used under all OS)
 - sl
 - lion
 - ml

Basically, the OS folders overwrites the common folders, meaning, if you have a certain kexts, plist or dsdt that is needed for that OS only, it will overwrite anything you have under common .. smart, huh? :)

The above folder structure should be created under "model-data" in the SVN server

Step 2) - Add the model build data to the modelinfo file
The modelinfo is essentially a multidim. php array that acts as a configuration file for the models under that brand and type.
Example: modelinfo.samsung.laptop.inc.php holds information about Samsung laptops.

Looking inside the file you will find a structure like this:

We should allways try and use as many of the "common" kexts as we can, since it makes maintenance easier - also, dont add a any kexts to the AudioDB if they just work for that model - eg. a patched AppleHDA might as well go in the model-data folder instead.

array( 	name => "Samsung_np_900x3c", (model name from step 1)
        desc 		=> "Samsung NP900 X3C", (Full name of the model)
        nullcpu 	=> "no", (Do you need NullCPUManagement.kext?)
        sleepEnabler 	=> "no", (Do you need sleepenabler.kext for sleep?)                     		
        ps2pack 	=> "9", (This is an ID from ps2db.inc.php, count starting by 0)
        emulatedST 	=> "no", (Do you want to use emulated speedstep aka voodoopstate)                     		
        tscsync 	=> "no", (Do you need VoodooTSCSync.kext ?)                    		
        batteryKext	=> "3", (This is an ID from batterydb.inc.php, count starting by 0, "no" for nothing
        loadIOATAFamily	=> "no", (Do you need to load IOAtaFamily.kext ?)
        loadNatit	=> "no", (Do you need natit.kext ?)
        useACPIfix	=> "yes", (Do you want to load a AppleACPIPlatform.kext from 10.6.7 ?)
        patchCPU	=> "yes", (Do you want on-the-fly patching of AppleIntelPowerManagement.kext ?)
        patchAHCIml     => "no",  (Patches IOAHCIBlockStorage on systems that get "Waiting for root device")    		                    		
        ethernet	=> "8", (This is an ID from ethernetdb.inc.php, count starting by 0, "no" for nothing
        wifikext	=> "0", (This is an ID from wifidb.inc.php, count starting by 0, "no" for nothing
        audiopack	=> "2", (This is an ID from audiodb.inc.php, count starting by 0, "no" for nothing)                       		                      		
        supports_sl	=> "no", (Does this model support Snow Leopard ?)
        supports_lion	=> "yes", (Does this model support Lion ?)
        supports_ml	=> "yes", (Does this mode support Mountain Lion ?)                    		 
        customCham 	=> "no", (Have you bundled a different version of chameleon ?)                     		
        customKernel 	=> "no" (Have you bundled a custom kernel ?)                     		 


You will need to copy/paste an existing model to the BOTTOM of the file but before the last






3) Commit to SVN, Request BPG update and update mysql

The hard part is now done, all you have to do now is:

 1. Commit your new model to SVN
 2. Contact Leon and have him update BPG (Boot Pack Generator)
 3. Talk to mick have the model compat. db updated


Link to comment
Share on other sites


  • Create New...