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---------------//---------------//---------------
22
23- (rev 320)
24Change: using the original code i suggested to Mozodojo, for memory modules Part Number extraction.
25(http://www.projectosx.com/forum/index.php?s=&showtopic=1337&view=findpost&p=8809)
26
27Motif: If i don't do:
28
29if (isspace(sPart[i]))
30break;
31
32i get extra characters that don't belong to the Part Number, according to CPU-Z or
33Everest. This is consistent on the 2 brands of modules i own, Qimonda & Kingston
34and others i saw on some user reports.
35If someone wishes to test this, contact me and i'll cook a booter to help debug
36this behavior.
37
38---------------//---------------//---------------
39
40- (rev 321)
41Change: a tweak that got hidden on this commit; changed RestartFix from true to false, by default.
42
43Motif: this goes against at least one of my "Guidelines" for the booter!
44(check README.txt). It's absolutely not needed by all users! If someone proves that this is
45needed by more than 50% of the motherboards Chameleon needs to handle atm
46(recommended OSx86 motherboards don't count), then i'll change it back to true.
47
48---------------//---------------//---------------
49
50- (rev 335)
51Change: merged the educational side of arch=i386 + the practical one of -x32, into a simple 32
52booter flag.
53
54Type just 32 to get you booted into i386 arch.
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)
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 i386 arch, Legacy Mode.
77
78 Note: only useful on 64 bit processors.
79
80 Note: this flag is not really needed; typing "32 -legacy" (no "") does the trick. It's just handy!
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)
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 changes (search algo).
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 Chazileon (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 )
259Change:template
260
261Motif:
262
263---------------//---------------//---------------
264
265
266
267Azimutz
268
269
270

Archive Download this file

Revision: 431