1 | Note: 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)␊ |
7 | Change: added hands-off (without user intervention) setting of EFI32 values, for 32 bit only␊ |
8 | ␉␉processors. Works according to the architecture in use, either chosen by the booter or␊ |
9 | ␉␉forced by user.␊ |
10 | ␉␉␊ |
11 | Note: on pre 10.6 systems, the default EFI values used for 64 bit processors while booting i386␊ |
12 | ␉␉arch (only arch on these systems), will still be EFI64, which causes absolutely no problem.␊ |
13 | ␉␉EFI32 values still can be forced by using the respective booter flag.␊ |
14 | ␉␉Tested only on Leopard.␊ |
15 | ␊ |
16 | Note: there's a typo on the comment of rev 299 commit;␊ |
17 | ␉␉RC3 should read RC4.␊ |
18 | ␊ |
19 | Motif: fixes http://forge.voodooprojects.org/p/chameleon/issues/21/.␊ |
20 | ␊ |
21 | ␉␉---------------//---------------//---------------␊ |
22 | ␊ |
23 | - (rev 320)␊ |
24 | Change: 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 | ␊ |
27 | Motif: If i don't do:␊ |
28 | ␊ |
29 | ␉␉if (isspace(sPart[i]))␊ |
30 | ␉␉␉break;␊ |
31 | ␉␉␊ |
32 | ␉␉i get extra characters that don't belong to the Part Number, according to CPU-Z or␊ |
33 | ␉␉Everest. This is consistent on the 2 brands of modules i own, Qimonda & Kingston␊ |
34 | ␉␉and others i saw on some user reports.␊ |
35 | ␉␉If someone wishes to test this, contact me and i'll cook a booter to help debug␊ |
36 | ␉␉this behavior.␊ |
37 | ␊ |
38 | ␉␉---------------//---------------//---------------␊ |
39 | ␊ |
40 | - (rev 321)␊ |
41 | Change: a tweak that got hidden on this commit; changed RestartFix from true to false, by default.␊ |
42 | ␊ |
43 | Motif: 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␊ |
45 | ␉␉needed 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)␊ |
51 | Change: merged the educational side of arch=i386 + the practical one of -x32, into a simple 32␊ |
52 | ␉␉booter flag.␊ |
53 | ␉␉␊ |
54 | ␉␉Type 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.␊ |
59 | ␉␉32 bit only processors, will cause i386 arch to be loaded by default.␊ |
60 | ␊ |
61 | Motif: 2 keys to do the same, should never had happen!␊ |
62 | ␉␉I really think that arch=i386 is a more "educational" definition, since what we're really␊ |
63 | ␉␉doing 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␊ |
65 | ␉␉use the 3 + 2 key combination to select i386 arch, i can't avoid to think,␊ |
66 | ␉␉why not extend it to the boot prompt now!?␊ |
67 | ␊ |
68 | ␉␉---------------//---------------//---------------␊ |
69 | ␊ |
70 | - (rev 335)␊ |
71 | Change: added -legacy kernel flag. This flag tells the booter to load i386 arch before is passed to␊ |
72 | ␉␉the kernel. This procedure only needs to be done on Snow Leopard. -legacy tells the kernel␊ |
73 | ␉␉to disable "64 Bit Mode", which allows 64 bit processors to run 64 bit apps under i386␊ |
74 | ␉␉mach kernel.␊ |
75 | ␉␉␊ |
76 | ␉␉Type -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␊ |
83 | ␉␉by 32 bit "only" processors! Since OS X kernel can handle 64 bit apps even on i386 arch,␊ |
84 | ␉␉64 bit processors need this flag to disable any handling of 64 bit instructions, when␊ |
85 | ␉␉"emulating a full" 32 bit environment.␊ |
86 | ␊ |
87 | Motif: this flag was not being passed on > 10.6; the reason why, is this mode is only available␊ |
88 | ␉␉under i386 arch. So, while testing Meklort's kernel patcher, i felt the need to add this key.␊ |
89 | ␊ |
90 | ␉␉---------------//---------------//---------------␊ |
91 | ␊ |
92 | - (rev 335)␊ |
93 | Change: added 64 bit booter flag, to keep company to the 32 one :)␊ |
94 | ␊ |
95 | Motif: mainly to override 32 or -legacy if they are flagged on the Boot.plist.␊ |
96 | ␉␉Like -legacy, was born while testing kernel builds and with the need to do the above.␊ |
97 | ␊ |
98 | ␉␉---------------//---------------//---------------␊ |
99 | ␊ |
100 | - (rev 336)␊ |
101 | Change: 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 | ␉␉␊ |
104 | ␉␉0 is still the default value, use the key to set any other.␊ |
105 | ␊ |
106 | Motif: these many keys, should never had happened!␊ |
107 | ␉␉This came along when the Asere code was ported to Chameleon, but even on Asere's booter,␊ |
108 | ␉␉what's the point? Compatibility? None, it's seems!␊ |
109 | ␉␉The only key in use on Asere's booter is PCIRootUID. The others are commented out.␊ |
110 | ␊ |
111 | ␉␉---------------//---------------//---------------␊ |
112 | ␊ |
113 | - (revs 337 --> 360)␊ |
114 | Changes: file loading related changes (search algo).␊ |
115 | ␊ |
116 | ␉␉Change: added a key to disable "override" Boot.plist from overriding the values on the "default"␊ |
117 | ␉␉␉␉Boot.plist. Only the values overriding is disabled, not the file loading.␊ |
118 | ␉␉␉␉␊ |
119 | ␉␉␉␉CanOverride=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!␊ |
122 | ␉␉␉␉Please correct me if i'm wrong.␊ |
123 | ␉␉␊ |
124 | ␉␉Motif: just in case ;)␊ |
125 | ␉␉␉␉I was totally unaware of this Boot.plist override for a long time; this messed with my mind␊ |
126 | ␉␉␉␉a lot of times! too many. So the first thing i did to the booter when i had the chance,␊ |
127 | ␉␉␉␉was make sure i had this under control.␊ |
128 | ␉␉␉␉The 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).␊ |
136 | ␉␉␉␉This can cause all sorts of anxiety and panic attacks, if you are unaware of this␊ |
137 | ␉␉␉␉like many people are.␊ |
138 | ␉␉␊ |
139 | ␉␉ Note: This key it's not mentioned on BootHelp.txt on purpose, since it's not needed␊ |
140 | ␉␉␉␉with my actual booter configuration.␊ |
141 | ␉␉␊ |
142 | ␉␉␉␉---------------//---------------//---------------␊ |
143 | ␉␉␉␉␊ |
144 | ␉␉Change: added a key to allow overriding the default paths to load Extra extensions.␊ |
145 | ␉␉␉␉kext=/path-to-folder/ loads drivers from an alternate folder.␊ |
146 | ␉␉␉␉␊ |
147 | ␉␉␉␉e.g. kext=/Extra/test/␊ |
148 | ␉␉␊ |
149 | ␉␉ Note: this key needs to point to a "folder" with either a Extensions sub folder or a␊ |
150 | ␉␉␉␉Extensions.mkext kext cache, thus always ends with / (slash).␊ |
151 | ␉␉␊ |
152 | ␉␉ Note: there's a typo on the comment of rev 337 commit;␊ |
153 | ␉␉␉␉Extensions=/path-to-folder/ should be read like kext=/path-to-folder/.␊ |
154 | ␉␉␊ |
155 | ␉␉Motif: there was no key to do this. (read next)␊ |
156 | ␉␉␊ |
157 | ␉␉␉␉---------------//---------------//---------------␊ |
158 | ␊ |
159 | ␉␉Change: added a "new" search algo, to load Extra extensions.␊ |
160 | ␉␉␉␉Pros:␊ |
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 | ␉␉␉␉␊ |
170 | ␉␉␉␉Cons:␊ |
171 | ␉␉␉␉- none that i could test, so far. The only booter install configuration that i can't␊ |
172 | ␉␉␉␉ really test is RAID.␊ |
173 | ␉␉␊ |
174 | ␉␉Motif: after adding the kext= key, i still couldn't override the Extra extensions loaded from␊ |
175 | ␉␉␉␉the Selected volume, in case they were messed up and i needed to load another set from␊ |
176 | ␉␉␉␉else 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,␊ |
178 | ␉␉␉␉there's no argument to limit the action; this path is ALWAYS checked and if files are␊ |
179 | ␉␉␉␉found they are loaded and will override any other files loaded from another path, like a␊ |
180 | ␉␉␉␉ramdisk (only path checked before /Extra/Extensions), making a recovery much more␊ |
181 | ␉␉␉␉complicated (not impossible).␊ |
182 | ␉␉␉␉So, according to at least one of my guidelines (simplify booter use as much as possible),␊ |
183 | ␉␉␉␉changes to the code are/were needed.␊ |
184 | ␉␉␉␉This 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␊ |
188 | ␉␉␉␉loading, but there was always problems; a file that kept defaulting to the Booter volume␊ |
189 | ␉␉␉␉when i was trying to load it from Selected volume or the other way around.␊ |
190 | ␉␉␉␉So, as i always wanted to try taking advantage of Chameleon's ability to load files␊ |
191 | ␉␉␉␉from 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␊ |
194 | ␉␉␉␉the Selected volume. Thus except for the obvious files like kernel, SystemVersion.plist,␊ |
195 | ␉␉␉␉system caches, etc..., no other file is loaded from Selected volume (paths started with / ).␊ |
196 | ␉␉␉␉To put it simple, as an example, when installed to a usb stick, this booter will not search␊ |
197 | ␉␉␉␉for any files on the Extra folder of the volume were the system is installed!␊ |
198 | ␉␉␉␉Or 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.␊ |
200 | ␉␉␉␉Anyway, /Extra paths can still be passed with the use of override keys!␊ |
201 | ␊ |
202 | ␉␉␉␉---------------//---------------//---------------␊ |
203 | ␉␉␊ |
204 | ␉␉Change: expanded this "new" search algo to dsdt.aml and smbios.plist.␊ |
205 | ␉␉␊ |
206 | ␉␉ Note: same override keys used.␊ |
207 | ␉␉␊ |
208 | ␉␉Motif: check Guidelines.␊ |
209 | ␊ |
210 | ␉␉␉␉---------------//---------------//---------------␊ |
211 | ␊ |
212 | ␉␉Change: tweaked the loading of override Boot.plist (loadOverrideConfig(), stringTable.c) according␊ |
213 | ␉␉␉␉the new search algo guideline: everything loads from Booter volume.␊ |
214 | ␉␉␉␉The search for this file was also extended to specific OS folders, to "emulate" the search␊ |
215 | ␉␉␉␉on Selected volume. Also added a verbose message to signal when user doesn't provide a␊ |
216 | ␉␉␉␉override plist.␊ |
217 | ␊ |
218 | ␉␉ Note: again, as far as i know, loading a override Boot.plist is not mandatory!␊ |
219 | ␊ |
220 | ␉␉Motif: payback for all the neurons i burned while i was not aware of override Boot.plist function!!␊ |
221 | ␉␉␉␉Not kidding :P␊ |
222 | ␊ |
223 | ␉␉␉␉---------------//---------------//---------------␊ |
224 | ␊ |
225 | ␉␉Change: reactivated config= key, included on loadOverrideConfig changes.␊ |
226 | ␉␉␉␉config=<file> loads override plist from specified path.␊ |
227 | ␉␉␊ |
228 | ␉␉␉␉e.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 | ␉␉␊ |
232 | ␉␉Motif: the key wasn't working anymore and it's useful.␊ |
233 | ␊ |
234 | ␉␉␉␉---------------//---------------//---------------␊ |
235 | ␉␉␉␊ |
236 | ␉Don't forget to check FileLoad.txt/FileLoad-trunk.txt for detailed info on file loading search paths␊ |
237 | ␊ |
238 | ␉␉---------------//---------------//---------------␊ |
239 | ␊ |
240 | - (rev 419)␊ |
241 | Change: started adding documentation, with the creation of a dedicated folder, doc-azi. It would get very␊ |
242 | ␉␉messy mixing these with main Chameleon documentation and as i want to keep things as clean as␊ |
243 | ␉␉possible on CleanCut, thought a separate folder would be better idea.␊ |
244 | ␊ |
245 | Motif: do i need to say? :) i thought so.␊ |
246 | ␊ |
247 | ␉␉---------------//---------------//---------------␊ |
248 | ␉␉␊ |
249 | - (rev 427)␊ |
250 | Change: removed Chameleon.xcodeproj.␊ |
251 | ␊ |
252 | Motif: it's not up to date and i need time to update it properly, at least on Chazileon (Chazi).␊ |
253 | ␉␉Will reintroduce it later in the process. It's also giving me problems with the svn client␊ |
254 | ␉␉when i update it; need to check what i'm doing wrong!?␊ |
255 | ␊ |
256 | ␉␉---------------//---------------//---------------␊ |
257 | ␉␉␊ |
258 | - (rev )␊ |
259 | Change:␉␉␉␉template␊ |
260 | ␊ |
261 | Motif:␊ |
262 | ␊ |
263 | ␉␉---------------//---------------//---------------␊ |
264 | ␊ |
265 | ␊ |
266 | ␊ |
267 | Azimutz␊ |
268 | ␊ |
269 | ␊ |
270 | |