Chameleon

Chameleon Svn Source Tree

Root/branches/azimutz/Chazi/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) (REVERTED to trunk way, rev 520)
53Change: merged the educational side of arch=i386 + the practical one of -x32, into a simple 32
54booter flag.
55
56 Note: -x32 was removed from trunk on rev 377.
57
58 Note: only useful on 64 bit processors.
5932 bit only processors, will cause i386 arch to be loaded by default.
60
61Motif: 2 keys to do the same, should never had happen!
62I really think that arch=i386 is a more "educational" definition, since what we're really
63doing here is select an architecture to boot, but while reading the Chameleon TODO
64"Integrate... quick shortcut modified version of 18seven" and knowing that these shortcuts
65use the 3 + 2 key combination to select i386 arch, i can't avoid to think,
66why not extend it to the boot prompt now!?
67
68---------------//---------------//---------------
69
70- (rev 335) (REMOVED, rev 520)
71Change: added -legacy kernel flag. This flag tells the booter to load i386 arch before is passed to
72the kernel. This procedure only needs to be done on Snow Leopard. -legacy tells the kernel
73to disable "64 Bit Mode", which allows 64 bit processors to run 64 bit apps under i386
74mach kernel.
75
76Type -legacy to get you booted into Legacy Mode.
77
78 Note: only useful on 64 bit processors.
79
80 Note: just out of curiosity and for those who don't know, Legacy Mode is in fact the mode used
81by 32 bit "only" processors! Since OS X kernel can handle 64 bit apps even on i386 arch,
8264 bit processors need this flag to disable any handling of 64 bit instructions, when
83"emulating a full" 32 bit environment.
84
85Motif: this flag was not being passed on > 10.6; the reason why, is this mode is only available
86under i386 arch. So, while testing Meklort's kernel patcher, i felt the need to add this key.
87
88---------------//---------------//---------------
89
90- (rev 335) (REVERTED to trunk way, rev 520)
91Change: added 64 bit booter flag, to keep company to the 32 one :)
92
93Motif: mainly to override 32 or -legacy if they are flagged on the Boot.plist.
94Like -legacy, was born while testing kernel builds and with the need to do the above.
95
96---------------//---------------//---------------
97
98- (rev 336)
99Change: removed 3 keys to handle PCI Root UID, two of them executing the exact same code
100(PCIRootUID & PciRoot). Kept just the already existing PciRoot=<uid>, plus the new code.
101
1020 is still the default value, use the key to set any other.
103
104Motif: these many keys, should never had happened!
105This came along when the Asere code was ported to Chameleon, but even on Asere's booter,
106what's the point? Compatibility? None, it's seems!
107The only key in use on Asere's booter is PCIRootUID. The others are commented out.
108
109---------------//---------------//---------------
110
111- (revs 337 --> 360)
112Changes: file loading related (search algo). The short story:
113
114Change: added a key to disable "override" Boot.plist from overriding the values on the "default"
115Boot.plist. Only the values overriding is disabled, not the file loading.
116
117CanOverride=n disables overriding of the default Boot.plist values.
118
119 Note: as far as i know, loading a override Boot.plist is not mandatory!
120Please correct me if i'm wrong.
121
122Motif: just in case ;)
123I was totally unaware of this Boot.plist override for a long time; this messed with my mind
124a lot of times! too many. So the first thing i did to the booter when i had the chance,
125was make sure i had this under control.
126The problem:
127- first path checked: rd(0,0)/Extra/com.apple.Boot.plist
128 nice, override Boot.plist can be loaded from a ramdisk.
129- second path: /Extra/com.apple.Boot.plist (the plist on Selected volume)
130 great, if we have the booter installed on a usb stick, that by the way it's the
131 main device used these days to hold a rescue booter, the Boot.plist on it will be
132 ignored (unlike one on a ramdisk) and the one on Selected volume loaded.
133- and there's no way to override it (config=<file> is not working).
134This can cause all sorts of anxiety and panic attacks, if you are unaware of this
135like many people are.
136
137 Note: This key it's not mentioned on BootHelp.txt on purpose, since it's not needed
138with my actual booter configuration.
139
140---------------//---------------//---------------
141
142Change: added a key to allow overriding the default paths to load Extra extensions.
143kext=/path-to-folder/ loads drivers from an alternate folder.
144
145e.g. kext=/Extra/test/
146
147 Note: this key needs to point to a "folder" with either a Extensions sub folder or a
148Extensions.mkext kext cache, thus always ends with / (slash).
149
150 Note: there's a typo on the comment of rev 337 commit;
151Extensions=/path-to-folder/ should be read like kext=/path-to-folder/.
152
153Motif: there was no key to do this. (read next)
154
155---------------//---------------//---------------
156
157Change: added a "new" search algo, to load Extra extensions.
158Pros:
159- hands-off search of all main files. If you don't want a certain file to be loaded,
160 just don't place it on a default searched path (as usual) or override it with key.
161 First file found, is the one loaded.
162 Check FileLoad.txt for info on searched paths.
163- easy to configure with other paths.
164- easy add to another file load functions.
165- no ambiguous paths!! It's bt(0,0) or nothing! (yeah, i'll explain this else were).
166- consistency across all file loading.
167
168Cons:
169- none that i could test, so far. The only booter install configuration that i can't
170 really test is RAID.
171
172Motif: after adding the kext= key, i still couldn't override the Extra extensions loaded from
173the Selected volume, in case they were messed up and i needed to load another set from
174else were. It happens that similarly as with override Boot.plist, /Extra/Extensions
175(or /Extra/Extensions.mkext) is the first path to be checked on a HDD and worse,
176there's no argument to limit the action; this path is ALWAYS checked and if files are
177found they are loaded and will override any other files loaded from another path, like a
178ramdisk (only path checked before /Extra/Extensions), making a recovery much more
179complicated (not impossible).
180So, according to at least one of my guidelines (simplify booter use as much as possible),
181changes to the code are/were needed.
182This algo was initially a merge between the search algo found on search_and_get_acpi_fd()
183(acpi_patcher.c), to load ACPI table and the one on LoadDrivers() (driver.c); also, the
184/Extra/* path was still included. I tried a long time playing with the used arguments
185(and others) to keep this path, as all i wanted was to give another priority to the file
186loading, but there was always problems; a file that kept defaulting to the Booter volume
187when i was trying to load it from Selected volume or the other way around.
188So, as i always wanted to try taking advantage of Chameleon's ability to load files
189from specific OS folders (e.g. /Extra/10.5), i gave it a try and here is the outcome.
190
191 Note: it doesn't make any sense taking advantage of this specific OS folders and still check
192the Selected volume. Thus except for the obvious files like kernel, SystemVersion.plist,
193system caches, etc..., no other file is loaded from Selected volume (paths started with / ).
194To put it simple, as an example, when installed to a usb stick, this booter will not search
195for any files on the Extra folder of the volume were the system is installed!
196Or in other words, the booter will only check the Extra folder on the booter volume
197(paths started with bt(0,0) ), the usb stick in this example.
198Anyway, /Extra paths can still be passed with the use of override keys!
199
200---------------//---------------//---------------
201
202Change: expanded this "new" search algo to dsdt.aml and smbios.plist.
203
204 Note: same override keys used.
205
206Motif: check Guidelines.
207
208---------------//---------------//---------------
209
210Change: tweaked the loading of override Boot.plist (loadOverrideConfig(), stringTable.c) according
211the new search algo guideline: everything loads from Booter volume.
212The search for this file was also extended to specific OS folders, to "emulate" the search
213on Selected volume. Also added a verbose message to signal when user doesn't provide a
214override plist.
215
216 Note: again, as far as i know, loading a override Boot.plist is not mandatory!
217
218Motif: payback for all the neurons i burned while i was not aware of override Boot.plist function!!
219Not kidding :P
220
221---------------//---------------//---------------
222
223Change: reactivated config= key, included on loadOverrideConfig changes.
224config=<file> loads override plist from specified path.
225
226e.g. config=/Extra/test.plist
227
228 Note: with the introduction of this key, all main files can now be overrided by the user.
229
230Motif: the key wasn't working anymore and it's useful.
231
232---------------//---------------//---------------
233
234Don't forget to check FileLoad.txt/FileLoad-trunk.txt for detailed info on file loading search paths
235
236---------------//---------------//---------------
237
238- (rev 419)
239Change: started adding documentation, with the creation of a dedicated folder, doc-azi. It would get very
240messy mixing these with main Chameleon documentation and as i want to keep things as clean as
241possible on CleanCut, thought a separate folder would be better idea.
242
243Motif: do i need to say? :) i thought so.
244
245---------------//---------------//---------------
246
247- (rev 427)
248Change: removed Chameleon.xcodeproj.
249
250Motif: it's not up to date and i need time to update it properly, at least on Chazi.
251Will reintroduce it later in the process. It's also giving me problems with the svn client
252when i update it; need to check what i'm doing wrong!?
253
254---------------//---------------//---------------
255
256- (rev 460)
257Change: added a key to display some debug info, that can only be accessed via code edit.
258Check http://forge.voodooprojects.org/p/chameleon/issues/12/ for history.
259mm & attr, resolution specific info, are borrowed from autoResolution branch.
260
261DebugInfo=y enables display of debug info.
262
263 Note: Boot Banner(*)=n will override DebugInfo=y , disabling the display of this info.
264Disabled by default.
265
266Motif: just making this info easily accessible.
267
268---------------//---------------//---------------
269---------------//---------------//---------------
270
271- (rev 462)
272Change:creation of this project, replacing Chazileon as my work folder;
273hence, Chazileon is now frozen until archival and deletion.
274
275Motif: Chazileon (Chazi) has no svn history.
276
277---------------//---------------//---------------
278
279- (revs 465 --> 467, 469 --> 471)
280Change:added AutoResolution patch, by Lebidou (autoResolution branch). The main intention of this
281patch, is allowing native resolution after boot, even without graphics acceleration (qe/ci).
282The "side effect" is that it also enables native resolution at boot prompt (Gui).
283The con: doesn't work for all devices!!
284
285AutoResolution=y enables the patch.
286
287 Note: Obviously, it only works in Graphics Mode (Gui).
288
289 Note: resolution set on theme.plist is overriding the native one set by AutoResolution. For now the
290possible solutions are, remove the boot resolution (boot_width, boot_height) from theme.plist
291or add Graphics Mode=<native resolution> to com.appleBoot.plist.reminder: ""
292
293Motif: ... mentioned above. Check the topic for more details:
294http://forum.voodooprojects.org/index.php/topic,1227.0.html
295
296---------------//---------------//---------------
297
298- (starting at rev 480)
299Change: added Meklort's Modules support, plus Kernel Patcher (Kpatcher) module.
300
301PatchKernel=y enables Kernel Patcher.
302
303 Note: Check Modules.txt for more info.
304
305Motif: Testing Modules support.
306
307---------------//---------------//---------------
308
309- (rev 520)
310Change: removed -legacy flag interaction with the booter and reverted 32/64 flags to the trunk way.
311
312Type arch=i386 to load i386 kernel architecture.
313arch=x86_64 overrides i386 arch, if flagged on Boot.plist.
314On Snow type arch=i386 -legacy to load i386 arch Legacy Mode.
315
316Motif: don't want to contribute to confusion... and laziness ;)
317
318---------------//---------------//---------------
319
320- (rev 524)
321Change: Added GraphicsEnabler module. Needs no introduction :)
322Feedback is welcome.
323Working as usual with my ATI Radeon X1300 openGL engine, doing the injection thing.
324
325 Newsflash: looks like it's raining modules over Meklort's branch :D
326
327Motif: ---
328
329---------------//---------------//---------------
330
331- (rev 526)
332Change: Added Memory detection module. Also needs no intro...
333Working properly with my controler:
334Intel Corporation 82945G/GZ/P/PL Memory Controller Hub [8086:2770] (rev 02)
335
336 Note: latest changes need a call for ATTENTION; the bootloader install procedure is gaining
337new steps! So far, we wre just playing with KernelPatcher module, which most people
338don't use. Check Modules.txt for info on installing modules.
339
340Motif: ---
341
342---------------//---------------//---------------
343
344 Been a while since i last updated this file, as there were no major events to justify
345doing so. There was however some activity, which deserves to be mentioned; resuming
346the most relevant:
347
348- changed all the /Extra... paths to bt(0,0)/Extra... according to my approach to file
349loading. I also spent time checking the code involved, which already revealed some BS
350on this approach; the research isn't complete so, more news later.
351
352- (rev 592) disabled the limit to hide only foreign partitions. Did this mostly for
353testing purposes as i don't have any "foreign" partition/s to hide. I understand the
354logic behind this limit, but i just can't avoid to ask my self why?
355
356- studied and played a lot with AutoResolution code. No new functionality, just tweaked
357the way it interacts with the booter, wich fixed some glitches and lost functionality,
358mostly due to lack of maintenance to fit the changes on the trunk. Next on the plan it's
359changing this code into a module, which i already started lining up.
360Will add specific info soon.
361
362- (rev 614) Doubled the size of memory reserved for booter log, which is more than enough
363to hold the full log generated booting with -f argument and turns out to also be a fix
364for some problems related with -f arg boot.
365Trunk'ed on rev 616.
366
367---------------//---------------//---------------
368
369- (rev )
370Change:template
371
372Motif:
373
374---------------//---------------//---------------
375
376
377
378Azimutz
379
380
381

Archive Download this file

Revision: 622