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

Archive Download this file

Revision: 815