Chameleon

Chameleon Svn Source Tree

Root/branches/azimutz/CleanCut/doc-azi/CHANGES.txt

1Note: this text doesn't use the "most recent layout" of the main Chameleon CHANGES file.
2 Also, not all the changes done on the code will end up here, for obvious reasons.
3
4---------------//---------------//---------------
5
6- (rev 299)
7Change: added hands-off (without user intervention) setting of EFI32 values, for 32 bit only
8processors. Works according to the architecture in use, either chosen by the booter or
9forced by user.
10
11 Note: on pre 10.6 systems, the default EFI values used for 64 bit processors while booting i386
12arch (only arch on these systems), will still be EFI64, which causes absolutely no problem.
13EFI32 values still can be forced by using the respective booter flag.
14Tested only on Leopard.
15
16 Note: there's a typo on the comment of rev 299 commit;
17RC3 should read RC4.
18
19Motif: fixes http://forge.voodooprojects.org/p/chameleon/issues/21/.
20
21 Note: included on the trunk at revs 449 & 450 :) Thanks!
22
23---------------//---------------//---------------
24
25- (rev 320)
26Change: using the original code i suggested to Mozodojo, for memory modules Part Number extraction.
27(http://www.projectosx.com/forum/index.php?s=&showtopic=1337&view=findpost&p=8809)
28
29Motif: If i don't do:
30
31if (isspace(sPart[i]))
32break;
33
34i get extra characters that don't belong to the Part Number, according to CPU-Z or
35Everest. This is consistent on the 2 brands of modules i own, Qimonda & Kingston
36and others i saw on some user reports.
37If someone wishes to test this, contact me and i'll cook a booter to help debug
38this behavior.
39
40---------------//---------------//---------------
41
42- (rev 321)
43Change: a tweak that got hidden on this commit; changed RestartFix from true to false, by default.
44
45Motif: this goes against at least one of my "Guidelines" for the booter!
46(check README.txt). It's absolutely not needed by all users! If someone proves that this is
47needed by more than 50% of the motherboards Chameleon needs to handle atm
48(recommended OSx86 motherboards don't count), then i'll change it back to true.
49
50---------------//---------------//---------------
51
52- (rev 335)
53Change: merged the educational side of arch=i386 + the practical one of -x32, into a simple 32
54booter flag.
55
56Type just 32 to get you booted into i386 arch.
57
58 Note: -x32 was removed from trunk on rev 377.
59
60 Note: only useful on 64 bit processors.
6132 bit only processors, will cause i386 arch to be loaded by default.
62
63Motif: 2 keys to do the same, should never had happen!
64I really think that arch=i386 is a more "educational" definition, since what we're really
65doing here is select an architecture to boot, but while reading the Chameleon TODO
66"Integrate... quick shortcut modified version of 18seven" and knowing that these shortcuts
67use the 3 + 2 key combination to select i386 arch, i can't avoid to think,
68why not extend it to the boot prompt now!?
69
70---------------//---------------//---------------
71
72- (rev 335)
73Change: added -legacy kernel flag. This flag tells the booter to load i386 arch before is passed to
74the kernel. This procedure only needs to be done on Snow Leopard. -legacy tells the kernel
75to disable "64 Bit Mode", which allows 64 bit processors to run 64 bit apps under i386
76mach kernel.
77
78Type -legacy to get you booted into i386 arch, Legacy Mode.
79
80 Note: only useful on 64 bit processors.
81
82 Note: this flag is not really needed; typing "32 -legacy" (no "") does the trick. It's just handy!
83
84 Note: just out of curiosity and for those who don't know, Legacy Mode is in fact the mode used
85by 32 bit "only" processors! Since OS X kernel can handle 64 bit apps even on i386 arch,
8664 bit processors need this flag to disable any handling of 64 bit instructions, when
87"emulating a full" 32 bit environment.
88
89Motif: this flag was not being passed on > 10.6; the reason why, is this mode is only available
90under i386 arch. So, while testing Meklort's kernel patcher, i felt the need to add this key.
91
92---------------//---------------//---------------
93
94- (rev 335)
95Change: added 64 bit booter flag, to keep company to the 32 one :)
96
97Motif: mainly to override 32 or -legacy if they are flagged on the Boot.plist.
98Like -legacy, was born while testing kernel builds and with the need to do the above.
99
100---------------//---------------//---------------
101
102- (rev 336)
103Change: removed 3 keys to handle PCI Root UID, two of them executing the exact same code
104(PCIRootUID & PciRoot). Kept just the already existing PciRoot=<uid>, plus the new code.
105
1060 is still the default value, use the key to set any other.
107
108Motif: these many keys, should never had happened!
109This came along when the Asere code was ported to Chameleon, but even on Asere's booter,
110what's the point? Compatibility? None, it's seems!
111The only key in use on Asere's booter is PCIRootUID. The others are commented out.
112
113---------------//---------------//---------------
114
115- (revs 337 --> 360)
116Changes: file loading related changes (search algo).
117
118Change: added a key to disable "override" Boot.plist from overriding the values on the "default"
119Boot.plist. Only the values overriding is disabled, not the file loading.
120
121CanOverride=n disables overriding of the default Boot.plist values.
122
123 Note: as far as i know, loading a override Boot.plist is not mandatory!
124Please correct me if i'm wrong.
125
126Motif: just in case ;)
127I was totally unaware of this Boot.plist override for a long time; this messed with my mind
128a lot of times! too many. So the first thing i did to the booter when i had the chance,
129was make sure i had this under control.
130The problem:
131- first path checked: rd(0,0)/Extra/com.apple.Boot.plist
132 nice, override Boot.plist can be loaded from a ramdisk.
133- second path: /Extra/com.apple.Boot.plist (the plist on Selected volume)
134 great, if we have the booter installed on a usb stick, that by the way it's the
135 main device used these days to hold a rescue booter, the Boot.plist on it will be
136 ignored (unlike one on a ramdisk) and the one on Selected volume loaded.
137- and there's no way to override it (config=<file> is not working).
138This can cause all sorts of anxiety and panic attacks, if you are unaware of this
139like many people are.
140
141 Note: This key it's not mentioned on BootHelp.txt on purpose, since it's not needed
142with my actual booter configuration.
143
144---------------//---------------//---------------
145
146Change: added a key to allow overriding the default paths to load Extra extensions.
147kext=/path-to-folder/ loads drivers from an alternate folder.
148
149e.g. kext=/Extra/test/
150
151 Note: this key needs to point to a "folder" with either a Extensions sub folder or a
152Extensions.mkext kext cache, thus always ends with / (slash).
153
154 Note: there's a typo on the comment of rev 337 commit;
155Extensions=/path-to-folder/ should be read like kext=/path-to-folder/.
156
157Motif: there was no key to do this. (read next)
158
159---------------//---------------//---------------
160
161Change: added a "new" search algo, to load Extra extensions.
162Pros:
163- hands-off search of all main files. If you don't want a certain file to be loaded,
164 just don't place it on a default searched path (as usual) or override it with key.
165 First file found, is the one loaded.
166 Check FileLoad.txt for info on searched paths.
167- easy to configure with other paths.
168- easy add to another file load functions.
169- no ambiguous paths!! It's bt(0,0) or nothing! (yeah, i'll explain this else were).
170- consistency across all file loading.
171
172Cons:
173- none that i could test, so far. The only booter install configuration that i can't
174 really test is RAID.
175
176Motif: after adding the kext= key, i still couldn't override the Extra extensions loaded from
177the Selected volume, in case they were messed up and i needed to load another set from
178else were. It happens that similarly as with override Boot.plist, /Extra/Extensions
179(or /Extra/Extensions.mkext) is the first path to be checked on a HDD and worse,
180there's no argument to limit the action; this path is ALWAYS checked and if files are
181found they are loaded and will override any other files loaded from another path, like a
182ramdisk (only path checked before /Extra/Extensions), making a recovery much more
183complicated (not impossible).
184So, according to at least one of my guidelines (simplify booter use as much as possible),
185changes to the code are/were needed.
186This algo was initially a merge between the search algo found on search_and_get_acpi_fd()
187(acpi_patcher.c), to load ACPI table and the one on LoadDrivers() (driver.c); also, the
188/Extra/* path was still included. I tried a long time playing with the used arguments
189(and others) to keep this path, as all i wanted was to give another priority to the file
190loading, but there was always problems; a file that kept defaulting to the Booter volume
191when i was trying to load it from Selected volume or the other way around.
192So, as i always wanted to try taking advantage of Chameleon's ability to load files
193from specific OS folders (e.g. /Extra/10.5), i gave it a try and here is the outcome.
194
195 Note: it doesn't make any sense taking advantage of this specific OS folders and still check
196the Selected volume. Thus except for the obvious files like kernel, SystemVersion.plist,
197system caches, etc..., no other file is loaded from Selected volume (paths started with / ).
198To put it simple, as an example, when installed to a usb stick, this booter will not search
199for any files on the Extra folder of the volume were the system is installed!
200Or in other words, the booter will only check the Extra folder on the booter volume
201(paths started with bt(0,0) ), the usb stick in this example.
202Anyway, /Extra paths can still be passed with the use of override keys!
203
204---------------//---------------//---------------
205
206Change: expanded this "new" search algo to dsdt.aml and smbios.plist.
207
208 Note: same override keys used.
209
210Motif: check Guidelines.
211
212---------------//---------------//---------------
213
214Change: tweaked the loading of override Boot.plist (loadOverrideConfig(), stringTable.c) according
215the new search algo guideline: everything loads from Booter volume.
216The search for this file was also extended to specific OS folders, to "emulate" the search
217on Selected volume. Also added a verbose message to signal when user doesn't provide a
218override plist.
219
220 Note: again, as far as i know, loading a override Boot.plist is not mandatory!
221
222Motif: payback for all the neurons i burned while i was not aware of override Boot.plist function!!
223Not kidding :P
224
225---------------//---------------//---------------
226
227Change: reactivated config= key, included on loadOverrideConfig changes.
228config=<file> loads override plist from specified path.
229
230e.g. config=/Extra/test.plist
231
232 Note: with the introduction of this key, all main files can now be overrided by the user.
233
234Motif: the key wasn't working anymore and it's useful.
235
236---------------//---------------//---------------
237
238Don't forget to check FileLoad.txt/FileLoad-trunk.txt for detailed info on file loading search paths
239
240---------------//---------------//---------------
241
242- (rev 419)
243Change: started adding documentation, with the creation of a dedicated folder, doc-azi. It would get very
244messy mixing these with main Chameleon documentation and as i want to keep things as clean as
245possible on CleanCut, thought a separate folder would be better idea.
246
247Motif: do i need to say? :) i thought so.
248
249---------------//---------------//---------------
250
251- (rev 427)
252Change: removed Chameleon.xcodeproj.
253
254Motif: it's not up to date and i need time to update it properly, at least on Chazileon (Chazi).
255Will reintroduce it later in the process. It's also giving me problems with the svn client
256when i update it; need to check what i'm doing wrong!?
257
258---------------//---------------//---------------
259
260- (rev )
261Change:template
262
263Motif:
264
265---------------//---------------//---------------
266
267
268
269Azimutz
270
271
272

Archive Download this file

Revision: 453