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 )
7Change:template
8
9Motif:
10
11---------------//---------------//---------------
12
13- (rev 299)
14Change: added "hands off" (without user intervention) setting of EFI32 values, for 32 bit only
15processors. Works according to the architecture in use, either chosen by the booter or
16forced by user.
17
18 Note: on pre 10.6 systems, the default EFI values used for 64 bit processors while booting i386
19arch (only arch on these systems), will still be EFI64, which causes absolutely no problem.
20EFI32 values still can be forced by using the respective booter flag.
21Tested only on Leopard.
22
23 Note: there's a typo on the comment of rev 299 commit;
24RC3 should read RC4.
25
26Motif: fixes http://forge.voodooprojects.org/p/chameleon/issues/21/.
27
28---------------//---------------//---------------
29
30- (rev 320)
31Change: using the original code i suggested to Mozodojo, for memory modules Part Number extraction.
32(http://www.projectosx.com/forum/index.php?s=&showtopic=1337&view=findpost&p=8809)
33
34Motif: If i don't do:
35
36if (isspace(sPart[i]))
37break;
38
39i get extra characters that don't belong to the Part Number, according to CPU-Z or
40Everest. This is consistent on the 2 brands of modules i own, Qimonda & Kingston
41and others i saw on some user reports.
42If someone wishes to test this, contact me and i'll cook a booter to help debug
43this behavior.
44
45---------------//---------------//---------------
46
47- (rev 321)
48Change: a tweak that got hidden on this commit; changed RestartFix from true to false, by default.
49
50Motif: this goes against at least one of my "Guidelines" for the booter!
51(check README.txt). It's absolutely not needed by all users! If someone proves that this is
52needed by more than 50% of the motherboards Chameleon needs to handle atm
53(recommended OSx86 motherboards don't count), then i'll change it back to true.
54
55---------------//---------------//---------------
56
57- (rev 335)
58Change: merged the educational side of arch=i386 + the practical one of -x32, into a simple 32
59booter flag.
60
61Type just 32 to get you booted into i386 arch.
62
63 Note: only useful on 64 bit processors.
6432 bit only processors, will cause i386 arch to be loaded by default.
65
66Motif: 2 keys to do the same, should never had happen!
67I really think that arch=i386 is a more "educational" definition, since what we're really
68doing here is select an architecture to boot, but while reading the Chameleon TODO
69"Integrate... quick shortcut modified version of 18seven" and knowing that these shortcuts
70use the 3 + 2 key combination to select i386 arch, i can't avoid to think,
71why not extend it to the boot prompt now!?
72
73---------------//---------------//---------------
74
75- (rev 335)
76Change: added -legacy kernel flag. This flag tells the booter to load i386 arch before is passed to
77the kernel. This only needs to be done on Snow Leopard.
78
79Type -legacy to get you booted into i386 arch, Legacy Mode.
80
81 Note: only useful on 64 bit processors.
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 had this need to add the 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
146
147Man paused for dinner while reviewing work :P uff... were is my beer??
148::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
149
150
151Change: added a key to allow overriding the default paths to load Extra extensions.
152kext=/path-to-folder/ loads drivers from an alternate folder.
153
154e.g. kext=/Extra/test
155
156 Note: with the introduction of this key, all main files can now be overrided by the user.
157Well, not all yet.. keep reading ;)
158
159 Note: there's a typo on the comment of rev 337 commit;
160Extensions=/path-to-folder/ should be read like kext=/path-to-folder/.
161
162Motif: there was no key to do this. (read next)
163
164---------------//---------------//---------------
165
166Change: added a "new" search algo, to load Extra extensions.
167Pros:
168- "hands off" search of all main files. If you don't want a certain file to be loaded,
169 just don't place it on a default searched path (as usual) or override it with key.
170 First file found, is the one loaded (also as usual).
171 Check FileLoad.txt for info on searched paths.
172- easy to configure with other paths.
173- easy add to another file load functions.
174- no ambiguous paths!! It's bt(0,0) or nothing! (yeah, i'll explain this else were).
175- consistency.
176
177Cons:
178- none that i can test, so far. The only booter install configuration that i can't
179 really test is RAID.
180
181Motif: after adding the kext= key, i still couldn't override the Extra extensions loaded from
182the Selected volume, in case they were messed up and i needed to load another set from
183else were. It happens that similarly as with override Boot.plist, /Extra/Extensions
184(or /Extra/Extensions.mkext) is the first path to be checked on a HDD and worse,
185there's no argument to limit the action; this path is ALWAYS checked and if files are
186found they are loaded and will override any other files loaded from another path, like a
187ramdisk (only path checked before /Extra/Extensions), making the recovery much more
188complicated (not impossible).
189So, according to at leas one of my guidelines (simplify booter use as much as possible),
190changes to the code are/were needed.
191This algo was initially a merge between the search algo found on search_and_get_acpi_fd()
192(acpi_patcher.c), to load ACPI table and the one on LoadDrivers() (driver.c); also, the
193/Extra/* path was still included. I tried a long time playing with the used arguments
194(and others) to keep this path, as all i wanted was to give another priority to the file
195loading, but there was always problems; a file that kept defaulting to the Booter volume
196when i was trying to load it from Selected volume or the other way around.
197So, as i always wanted to try taking advantage of Chameleon's ability to load files
198from specific OS folders (e.g. /Extra/10.5), i gave it a try and here is the outcome.
199
200 Note: it doesn't make any sense taking advantage of this specific OS folders and still check
201the Selected volume. Thus except for the obvious files like /kernel,
202/System/Library/CoreServices/SystemVersion.plist, system caches, etc..., no other file is
203loaded from Selected volume (paths started with / ).
204To put it simple, as an example, when installed to a usb stick, this booter will not search
205for any files on the Extra folder of the volume were the system is installed!
206Or in other words, the booter will only check the Extra folder on the booter volume
207(paths started with bt(0,0) ), the usb stick in this example.
208Anyway, /Extra paths can still be passed with the use of override keys!
209
210---------------//---------------//---------------
211
212Change: expanded this "new" search algo to dsdt.aml and smbios.plist.
213
214 Note: same override keys used.
215
216Motif: check Guidelines.
217
218---------------//---------------//---------------
219
220Change: tweaked the loading of override Boot.plist (loadOverrideConfig(), stringTable.c) according
221the new search algo guideline: everything loads from Booter volume.
222The search for this file was also extended to specific OS folders, to "emulate" the search
223on Selected volume. Also added a verbose message to signal when user doesn't provide a
224override plist.
225
226 Note: again, as far as i know, loading a override Boot.plist is not mandatory!
227
228Motif: payback for all the neurons i burned while i was not aware of override Boot.plist function!!
229Not kidding :P
230
231---------------//---------------//---------------
232
233Change: reactivated config= key, included on loadOverrideConfig changes.
234config=<file> loads override plist from specified path.
235
236e.g. config=/Extra/test.plist
237
238 Note: now all main files can be overrided by the user!
239
240Motif: the key wasn't working anymore and it's useful.
241
242---------------//---------------//---------------
243
244Final note: there can be some inaccuracy on some of the mentioned facts. That's due to lack of time to test
245all this stuff at all times; so, things can get fuzzy while trying to remember them.
246And that's really what i'm trying to do, as i stupidly lost all the documentation i had ready to
247add to the forge. Anyway, it's not coming out that bad so...F
248Like i mention on the README.txt, any feedback is appreciated; if you read any bs, please return
249it to me and i'll correct it.
250
251Thanks :)
252
253Don't forget to check FileLoad.txt for detailed info on file loading search paths
254
255---------------//---------------//---------------
256
257
258
259Azimutz
260
261
262

Archive Download this file

Revision: 423