1 | Well, the intention here is to give some insight on Chameleon file loading, as well as providing␊ |
2 | detailed info about what files are (or can be) loaded, from what devices, used paths, differences␊ |
3 | between paths, if there's user overriding available, etc...␊ |
4 | For now, it will just focus on comparing what's available (on trunk) and one of the many "paths"␊ |
5 | we can follow (my branch); also, only the most frequently used files are featured.␊ |
6 | For the purpose of comparison, there's a FileLoad-trunk.txt similar to this one, that will␊ |
7 | reflect the current Chameleon (trunk) status on the matter.␊ |
8 | ␊ |
9 | To be honest, the info on this file will depend greatly on "feedback"; writing down this stuff it's␊ |
10 | not the most pleasing and fruitful task i have to do atm, time is never enough and i don't feel␊ |
11 | particularly inspired for the job atm; so if i see no interest in this,␊ |
12 | i will ditch it as quickly as i started it.␊ |
13 | ␊ |
14 | ␊ |
15 | Note: unless other wise specified, first file found is the one used.␊ |
16 | ␊ |
17 | Note: path/name search is not case sensitive! Meaning that:␊ |
18 | - this /Extra/DSDT.aml␊ |
19 | - or this /extra/dsdt.aml␊ |
20 | points exactly to the same location.␊ |
21 | ␊ |
22 | Before we go on:␊ |
23 | - Selected volume = root volume (volume/partition were a system is installed)␊ |
24 | - Booter volume = boot volume (volume/partition were the bootloader installed)␊ |
25 | ␊ |
26 | ␉␉␉␉---------------//---------------//---------------␊ |
27 | ␉␉␉␉␉␉␉␉Chazi - CleanCut␊ |
28 | ␉␉␉␉---------------//---------------//---------------␊ |
29 | ␊ |
30 | ␊ |
31 | - Extra extensions (kext)␊ |
32 | ␊ |
33 | Default name:␉Extensions (a directory with kext/s)␊ |
34 | Name override:␉No␊ |
35 | ␊ |
36 | Default path/s: - User override␊ |
37 | ␉␉␉␉- ramdisk:␊ |
38 | ␉␉␉␉␉rd(0,0)/Extensions␊ |
39 | ␉␉␉␉- booter volume or ramdisk aliased as bt(0,0) (1*):␊ |
40 | ␉␉␉␉␉bt(0,0)/Extra/specificOSfolder/Extensions␊ |
41 | ␉␉␉␉- same as above:␊ |
42 | ␉␉␉␉␉bt(0,0)/Extra/Extensions␊ |
43 | ␉␉␉␉- Helper partition/s (Apple_Boot): checked only if exists (2*)␊ |
44 | ␉␉␉␉␉/com.apple.boot.P/System/Library/Extensions␊ |
45 | ␉␉␉␉␉/com.apple.boot.R/System/Library/Extensions␊ |
46 | ␉␉␉␉␉/com.apple.boot.S/System/Library/Extensions␊ |
47 | Path override: Yes␊ |
48 | ␊ |
49 | User override: kext=path to folder with Extensions sub folder; e.g. /Extra/drivers/␊ |
50 | ␉␉␉␉Note: see CHANGES.txt, (revs 337 --> 360), second Change.␊ |
51 | ␉␉␉␉␊ |
52 | ␉-------/-/------- - same search scheme as above.␊ |
53 | ␊ |
54 | - Extra extensions (mkext)␊ |
55 | ␊ |
56 | Default name: Extensions.mkext (kext cache)␊ |
57 | Name override: No␊ |
58 | ␊ |
59 | Default path/s: User override␊ |
60 | ␉␉␉␉rd(0,0)/Extensions.mkext␊ |
61 | ␉␉␉␉bt(0,0)/Extra/specificOSfolder/Extensions.mkext␊ |
62 | ␉␉␉␉bt(0,0)/Extra/Extensions.mkext␊ |
63 | ␉␉␉␉␉/com.apple.boot.P/System/Library/Extensions.mkext␊ |
64 | ␉␉␉␉␉/com.apple.boot.R/System/Library/Extensions.mkext␊ |
65 | ␉␉␉␉␉/com.apple.boot.S/System/Library/Extensions.mkext␊ |
66 | Path override: Yes␊ |
67 | ␊ |
68 | User override: kext=path to folder with a Extensions.mkext; e.g. /Extra/drivers/␊ |
69 | ␉␉␉␉Note: see CHANGES.txt, (revs 337 --> 360), second Change.␊ |
70 | ␉␉␉␉␊ |
71 | ␉␉␉␉---------------//---------------//---------------␊ |
72 | ␊ |
73 | - Default configuration file (plist)␊ |
74 | ␊ |
75 | Default name: com.apple.Boot.plist␊ |
76 | Name override: No␊ |
77 | ␊ |
78 | Default path/s: (3*)␊ |
79 | ␉␉␉␉bt(0,0)/Extra/com.apple.Boot.plist␊ |
80 | ␉␉␉␉/Library/Preferences/SystemConfiguration/com.apple.Boot.plist␊ |
81 | ␉␉␉␉- Helper partition/s (Apple_Boot):␊ |
82 | ␉␉␉␉␉␉/com.apple.boot.P/Library/Preferences/SystemConfiguration/com.apple.Boot.plist␊ |
83 | ␉␉␉␉␉␉/com.apple.boot.R/Library/Preferences/SystemConfiguration/com.apple.Boot.plist␊ |
84 | ␉␉␉␉␉␉/com.apple.boot.S/Library/Preferences/SystemConfiguration/com.apple.Boot.plist␊ |
85 | Path override: No␊ |
86 | ␊ |
87 | ␉␉␉␉---------------//---------------//---------------␊ |
88 | ␊ |
89 | - Override configuration file (plist)␊ |
90 | ␊ |
91 | Default name: com.apple.Boot.plist␊ |
92 | Name override: Yes␊ |
93 | ␊ |
94 | Default path/s: User override␊ |
95 | ␉␉␉␉rd(0,0)/com.apple.Boot.plist␊ |
96 | ␉␉␉␉bt(0,0)/Extra/specificOSfolder/com.apple.Boot.plist␊ |
97 | ␉␉␉␉(4*)␊ |
98 | Path override: Yes␊ |
99 | ␊ |
100 | User override: config=path to file; e.g. /Extra/test/com.apple.Boot.plist or /Extra/b.plist␊ |
101 | ␊ |
102 | ␉␉␉␉---------------//---------------//---------------␊ |
103 | ␊ |
104 | - ACPI table (aml)␊ |
105 | ␊ |
106 | Default name: DSDT.aml␊ |
107 | Name override: Yes␊ |
108 | ␊ |
109 | Default path/s: User override␊ |
110 | ␉␉␉␉rd(0,0)/DSDT.aml␊ |
111 | ␉␉␉␉bt(0,0)/Extra/specificOSfolder/DSDT.aml␊ |
112 | ␉␉␉␉bt(0,0)/Extra/DSDT.aml␊ |
113 | Path override: Yes␊ |
114 | ␊ |
115 | User override: DSDT=path to file; e.g. rd(0,0)/Extra/dsdt.aml or /Extra/test.aml␊ |
116 | ␊ |
117 | ␉-------/-/-------␊ |
118 | ssdt.aml (5*)␊ |
119 | ␉␉␉␉---------------//---------------//---------------␊ |
120 | ␊ |
121 | - SMBIOS (plist)␊ |
122 | ␊ |
123 | Default name: SMBIOS.plist␊ |
124 | Name override: Yes␊ |
125 | ␊ |
126 | Default path/s: User override␊ |
127 | ␉␉␉␉rd(0,0)/SMBIOS.plist␊ |
128 | ␉␉␉␉bt(0,0)/Extra/specificOSfolder/SMBIOS.plist␊ |
129 | ␉␉␉␉bt(0,0)/Extra/SMBIOS.plist␊ |
130 | Path override: Yes␊ |
131 | ␊ |
132 | User override: SMBIOS=path to file; e.g. bt(0,0)/Extra/smbios.plist or /Extra/MP21.plist␊ |
133 | ␊ |
134 | ␉␉␉␉---------------//---------------//---------------␊ |
135 | ␊ |
136 | - ramdisk (dmg)␊ |
137 | ␊ |
138 | Default name: Preboot.dmg␊ |
139 | Name override: Yes␊ |
140 | ␊ |
141 | Default path/s: User override␊ |
142 | ␉␉␉␉bt(0,0)/Extra/Preboot.dmg␊ |
143 | Path override: Yes␊ |
144 | ␊ |
145 | User override: rd=path to file; e.g. /Extra/Preboot.dmg or /Leo.dmg␊ |
146 | ␊ |
147 | ␉␉␉␉---------------//---------------//---------------␊ |
148 | The long story:␊ |
149 | ␉␉␉␉---------------//---------------//---------------␊ |
150 | ␊ |
151 | ␊ |
152 | (1*)␊ |
153 | Ramdisks (rd) are simple image files (dmg, etc...) most commonly associated with the pre-boot discs␊ |
154 | used to boot retail Mac OS X Installer dvd's; in this case, they are used to load needed files into␊ |
155 | memory, before discs can be swapped. But, pre-boot it's not their only use; they can be loaded from␊ |
156 | any device the booter has access to and used to test/load, from kexts to complete boot configurations.␊ |
157 | A rd aliased as bt(0,0), is a normal rd with a btalias activated pointing to it. The btalias is activated␊ |
158 | via a configuration file placed on the root of the rd (RAMDisk.plist), using the pair BTAlias=y.␊ |
159 | When this alias is activated on a rd, all paths started by bt(0,0) (pointing to the Booter volume)␊ |
160 | will instead point to the rd. This makes rd's aliased as bt, ideal to load full sets of files,␊ |
161 | like when using the mentioned pre-boot discs.␊ |
162 | ␊ |
163 | (2*)␊ |
164 | Helper partitions - boot support partitions (Apple_Boot)␊ |
165 | Need to gather more info on these, since i have no experience with them.␊ |
166 | All i can say for now is that /com.apple.boot.P /com.apple.boot.R /com.apple.boot.S are directories on␊ |
167 | Apple_boot partitions. So far, the only real case scenario i could find that uses these partitions is␊ |
168 | software RAID, were the root partition can't be accessed before the "software RAID" is running.␊ |
169 | In this situation, these partitions are used as Booter volume and hold the necessary files, that on a␊ |
170 | normal setup are loaded directly from the root volume (were the system is installed).␊ |
171 | Here is a link to the only decent explanation i ever found on the net:␊ |
172 | http://lists.apple.com/archives/boot-dev/2009/May/msg00009.html␊ |
173 | ␊ |
174 | (RPS) Rock, Paper, Scissors (the next beats the previous)␊ |
175 | ␊ |
176 | (3*)␊ |
177 | I'm not searching /Extra/com.apple.Boot.plist on Default paths (c.a.B.plist on selected volume).␊ |
178 | The reason is pretty evident, if we don't forget that this booter only loads files from booter volume.␊ |
179 | But that's not all; there's also a concept so, for now i'm going to focus only on it.␊ |
180 | The concept is: Default configuration file should be loaded either from the Booter volume or from one␊ |
181 | of the default system paths.␊ |
182 | Why? Because it's the Default configuration file, with the Default configuration files, that the booter␊ |
183 | is supposed to use by Default, on a hands-off situation. All these values can still be override by␊ |
184 | the user in more ways than one, if the user wishes so! (read 4*)␊ |
185 | Wish we could use just "One" default path!??␊ |
186 | ␊ |
187 | (4*)␊ |
188 | Here i have my doubts if what i have is the ideal, if there's any ideal situation to follow?!␊ |
189 | Anyway, explaining what i have now and why.␊ |
190 | I'm not searching Default paths for now because:␊ |
191 | - they are already checked when loading the Default configuration. In "many" situations␊ |
192 | (not to say "most") this will just be reloading the already loaded values.␊ |
193 | - on this booter, Selected volume is replaced by the use of a specific OS folder so, in some sense␊ |
194 | the selected volume is still checked. And there's also a override key!␊ |
195 | ␊ |
196 | My doubts are related to the fact that, searching default paths here does make sense (in a way)␊ |
197 | and i'm not entirely sure that's not needed in some configurations?! It's just that, the way␊ |
198 | it's done now it gets confuse...␊ |
199 | Does using a different name for the Override configuration file make any sense??␊ |
200 | ␊ |
201 | (5*)␊ |
202 | ssdt: need to gather more info on these, since i have no experience with them.␊ |
203 | As far as i understand, same paths as for dsdt.aml are used and if anything different from "dsdt.aml"␊ |
204 | is found, it's loaded. 30 tables can be loaded and must be named as:␊ |
205 | ssdt.aml, ssdt-1.aml, ssdt-2.aml,... ssdt-30.aml ??? bla bla bla... damn confusion :-/␊ |
206 | ␊ |
207 | ␊ |
208 | reminder:␊ |
209 | - no ambiguous paths␊ |
210 | - what override paths can be used.␊ |
211 | ␊ |
212 | ␉␉␉␉␉---------------//...still plenty to edit...//---------------␊ |
213 | ␉␉␉␉␉---------------//...still plenty brainstorm...//---------------␊ |
214 | ␊ |
215 | ␊ |
216 | ␊ |
217 | Azimutz␊ |
218 | ␊ |
219 | ␊ |
220 | |