Well, the intention here is to give some insight on Chameleon file loading, as well as providing detailed info about what files are (or can be) loaded, from what devices, used paths, differences between paths, if there's user overriding available, etc... For now, it will just focus on comparing what's available (on trunk) and one of the many "paths" we can follow (my branch); also, only the most frequently used files are featured. For the purpose of comparison, there's a FileLoad-trunk.txt similar to this one, that will reflect the current Chameleon (trunk) status on the matter. To be honest, the info on this file will depend greatly on "feedback"; writing down this stuff it's not the most pleasing and fruitful task i have to do atm, time is never enough and i don't feel particularly inspired for the job; so if i see no interest in this, i will ditch it as quickly as i started it. Note: unless other wise specified, first file found is the one used. Before we go on: - Selected volume = root volume (volume/partition were a system is installed) - Booter volume = boot volume (volume/partition were the bootloader installed) ---------------//---------------//--------------- azimutz ---------------//---------------//--------------- - Extra extensions (kext) Default name: Extensions (a directory with kext/s) Name override: No Default path/s: User override rd(0,0)/Extensions - ramdisk bt(0,0)/Extra/specificOSfolder/Extensions - booter volume or ramdisk aliased as bt(0,0) (1*) bt(0,0)/Extra/Extensions - same as above Helper partition/s: - Apple_Boot (2*): checked only if exists /com.apple.boot.P/System/Library/Extensions /com.apple.boot.R/System/Library/Extensions /com.apple.boot.S/System/Library/Extensions Path override: Yes User override: kext=path to folder with Extensions sub folder; e.g. /Extra/drivers/ Note: see CHANGES.txt, (revs 337 --> 360), second Change. -------/-/------- - same search scheme as above. - Extra extensions (mkext) Default name: Extensions.mkext (kext cache) Name override: No Default path/s: User override rd(0,0)/Extensions.mkext bt(0,0)/Extra/specificOSfolder/Extensions.mkext bt(0,0)/Extra/Extensions.mkext Helper partition/s: /com.apple.boot.P/System/Library/Extensions.mkext /com.apple.boot.R/System/Library/Extensions.mkext /com.apple.boot.S/System/Library/Extensions.mkext Path override: Yes User override: kext=path to folder with a Extensions.mkext; e.g. /Extra/drivers/ Note: see CHANGES.txt, (revs 337 --> 360), second Change. ---------------//---------------//--------------- - Default configuration file (plist) Default name: com.apple.Boot.plist Name override: No Default path/s: (3*) bt(0,0)/Extra/com.apple.Boot.plist /Library/Preferences/SystemConfiguration/com.apple.Boot.plist Helper partition/s: /com.apple.boot.P/Library/Preferences/SystemConfiguration/com.apple.Boot.plist /com.apple.boot.R/Library/Preferences/SystemConfiguration/com.apple.Boot.plist /com.apple.boot.S/Library/Preferences/SystemConfiguration/com.apple.Boot.plist Path override: No ---------------//---------------//--------------- - Override configuration file (plist) Default name: com.apple.Boot.plist Name override: Yes Default path/s: User override rd(0,0)/com.apple.Boot.plist bt(0,0)/Extra/specificOSfolder/com.apple.Boot.plist (4*) Path override: Yes User override: config=path to file; e.g. /Extra/test/com.apple.Boot.plist or /Extra/b.plist ---------------//---------------//--------------- - ACPI table (aml) Default name: dsdt.aml Name override: Yes Default path/s: User override rd(0,0)/dsdt.aml bt(0,0)/Extra/specificOSfolder/dsdt.aml bt(0,0)/Extra/dsdt.aml Path override: Yes User override: DSDT=path to file; e.g. rd(0,0)/Extra/dsdt.aml or /Extra/test.aml -------/-/------- ssdt.aml (5*) ---------------//---------------//--------------- - SMBIOS (plist) Default name: smbios.plist Name override: Yes Default path/s: User override rd(0,0)/smbios.plist bt(0,0)/Extra/specificOSfolder/smbios.plist bt(0,0)/Extra/smbios.plist Path override: Yes User override: SMBIOS=path to file; e.g. bt(0,0)/Extra/smbios.plist or /Extra/MP21.plist ---------------//---------------//--------------- - ramdisk (dmg) Default name: Preboot.dmg Name override: Yes Default path/s: User override bt(0,0)/Extra/Preboot.dmg Path override: Yes User override: rd=path to file; e.g. /Extra/Preboot.dmg or /Leo.dmg ---------------//---------------//--------------- ---------------//---------------//--------------- (1*) Ramdisks (rd) are simple image files (dmg, etc...) most commonly associated with the pre-boot discs used to boot retail Mac OS X Installer dvd's; in this case, they are used to load needed files into memory, before discs can be swapped. But, pre-boot it's not their only use; they can be loaded from any device the booter has access to and used to test/load, from kexts to complete boot configurations. A rd aliased as bt(0,0), is a normal rd with a btalias activated pointing to it. The btalias is activated via a configuration file placed on the root of the rd (RAMDisk.plist), using the pair BTAlias=y. When this alias is activated on a rd, all paths started by bt(0,0) (pointing to the Booter volume) will instead point to the rd. This makes rd's aliased as bt, ideal to load full sets of files, like when using the mentioned pre-boot discs. (2*) Helper partitions - boot support partitions (Apple_Boot) Need to gather more info on these, since i have no experience with them. All i can say for now is that /com.apple.boot.P /com.apple.boot.R /com.apple.boot.S are directories on Apple_boot partitions. So far, the only real case scenario i could find that uses these partitions is software RAID, were the root partition can't be accessed before the "software RAID" is running. In this situation, these partitions are used as Booter volume and hold the necessary files, that on a normal setup are loaded directly from the root volume (were the system is installed). Here is a link to the only decent explanation i ever found on the net: http://lists.apple.com/archives/boot-dev/2009/May/msg00009.html (RPS) Rock, Paper, Scissors (the next beats the previous) (3*) I'm not searching /Extra/com.apple.Boot.plist on Default paths (c.a.B.plist on selected volume). The reason is pretty evident, if we don't forget that this booter only loads files from booter volume. But that's not all; there's also a concept so, for now i'm going to focus only on it. The concept is: Default configuration file should be loaded either from the Booter volume or from one of the default system paths. Why? Because it's the Default configuration file, with the Default configuration files, that the booter is supposed to use by Default, on a hands-off situation. All these values can still be override by the user in more ways than one, if the user wishes so! (read 4*) Wish we could use just "One" default path!?? (4*) Here i have my doubts if what i have is the ideal, if there's any ideal situation to follow?! Anyway, explaining what i have now and why. I'm not searching Default paths for now because: - they are already checked when loading the Default configuration. In "many" situations (not to say "most") this will just be reloading the already loaded values. - on this booter, Selected volume is replaced by the use of a specific OS folder so, in some sense the selected volume is still checked. And there's also a override key! My doubts are related to the fact that, searching default paths here does make sense (in a way) and i'm not entirely sure that's not needed in some configurations?! It's just that, the way it's done now it gets confuse... Does using a different name for the Override configuration file make any sense?? (5*) ssdt: need to gather more info on these, since i have no experience with them. As far as i understand, same paths as for dsdt.aml are used and if anything different from "dsdt.aml" is found, it's loaded. 30 tables can be loaded and must be named as: ssdt.aml, ssdt-1.aml, ssdt-2.aml,... ssdt-30.aml ??? bla bla bla... damn confusion :-/ reminder: - no ambiguous paths - what override paths can be used. ---------------//...still plenty to edit...//--------------- ---------------//...still plenty brainstorm...//--------------- Azimutz